Example #1
0
        /// <summary>
        /// 断帧
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        internal static void SetResultArray(byte[] result)
        {
            try
            {
                if (result.Length > 0)
                {
                    if (result[0] != 0x03)
                    {
                        return;
                    }

                    int contentLength = 0, nowIndex = 1;
                    while (result.Length > contentLength)
                    {
                        contentLength += BytesSerialize.returnByteLengthRight(result.Skip(nowIndex).Take(4).ToArray());
                        queueArray.Add(result.Skip(nowIndex - 1).Take(contentLength).ToArray());
                        nowIndex += contentLength + 1;
                    }
                }
            }
            catch (Exception msg)
            {
                Log.LogWrite(msg);
            }
        }
Example #2
0
 private void reportSel(byte[] data)
 {
     while (true)
     {
         if (data.Length == 0)
         {
             break;
         }
         if (data[0] != 0x03)
         {
             break;
         }
         int reportLength = BytesSerialize.returnByteLengthRight(data.Skip(1).Take(4).ToArray());
         if (reportLength > data.Length)
         {
             break;
         }
         byte[] report = data.Skip(0).Take(reportLength).ToArray();
         reports.Add(report);
         data = data.Skip(reportLength).Take(data.Length - reportLength).ToArray();
     }
 }