/// <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); } }
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(); } }