private byte[] ReadOneFrame(IPack pack, bool isFinish) { byte[] result = new byte[100]; int pos = 0; byte before = 0; while (Box.ReadBytes(result, pos++, 1) == 1) { if (before == 0x0D && (result[pos - 1] == 0x0A)) { break; } before = result[pos - 1]; } if (before == 0x0D && result[pos - 1] == 0x0A) { // break normal result = pack.Unpack(result, 0, pos); } else { result = null; } FinishExecute(isFinish); return result; }
private byte[] ReadOneFrame(IPack pack, bool isFinish) { byte[] result = new byte[100]; int pos = 0; byte before = 0; while (Box.ReadBytes(result, pos++, 1) == 1) { if (before == 0x0D && (result[pos - 1] == 0x0A)) { break; } before = result[pos - 1]; } if (before == 0x0D && result[pos - 1] == 0x0A) { // break normal result = pack.Unpack(result, 0, pos); } else { result = null; } FinishExecute(isFinish); return(result); }
public byte[] ReadFrames(IPack pack) { byte[] buff = new byte[128]; int i; for (i = 0; i < buff.Length; i++) { if (Box.ReadBytes(buff, i, 1) != 1) { break; } } if (i < 5) { FinishExecute(true); return(null); } List <byte> result = new List <byte>(); int j = 3; int k = 0; while (j < i) // Multi Frame { if ((buff[k] == buff[j]) && (buff[k + 1] == buff[j + 1]) && (buff[k + 2] == buff[j + 2])) { result.AddRange(pack.Unpack(buff, k, j - k)); k = j; } j++; } result.AddRange(pack.Unpack(buff, k, j - k)); // Add last frame or it's a single frame FinishExecute(true); return(result.ToArray()); }
public byte[] ReadOneFrame(IPack pack) { byte[] buff = new byte[128]; int i; for (i = 0; i < buff.Length; i++) { if (Box.ReadBytes(buff, i, 1) != 1) break; } if (i < 5 || i > 11) { return null; } return pack.Unpack(buff, 0, i); }
public byte[] ReadOneFrame(IPack pack) { byte[] buff = new byte[128]; int i; for (i = 0; i < buff.Length; i++) { if (Box.ReadBytes(buff, i, 1) != 1) { break; } } if (i < 5 || i > 11) { return(null); } return(pack.Unpack(buff, 0, i)); }
private byte[] ReadOneFrame(IPack pack, bool isFinish) { byte[] temp = new byte[3]; byte[] result = new byte[255]; int frameLength = 0; int length = 0; byte checksum = 0; int i; length = Box.ReadBytes(temp, 0, temp.Length); if (length <= 0) { FinishExecute(isFinish); return(null); } if (temp[1] == options.SourceAddress) { if (temp[0] == 0x80) { byte[] b = new byte[1]; length = Box.ReadBytes(b, 0, 1); if (length <= 0) { FinishExecute(isFinish); return(null); } length = Convert.ToInt32(b[0]); if (length <= 0) { FinishExecute(isFinish); return(null); } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; Array.Copy(b, 0, result, frameLength, 1); ++frameLength; length = Box.ReadBytes(result, KWPPack.KWP80_HEADER_LENGTH, length + KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } else { length = Convert.ToInt32(temp[0] - 0x80); if (length <= 0) { FinishExecute(isFinish); return(null); } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length + KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } } else { if (temp[0] == 0x00) { length = Convert.ToInt32(temp[1]); if (length <= 0) { FinishExecute(isFinish); return(null); } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length); frameLength += length; } else { length = Convert.ToInt32(temp[0]); if (length <= 0) { FinishExecute(isFinish); return(null); } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length - KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } } FinishExecute(isFinish); if (frameLength <= 0) { return(null); } for (i = 0; i < frameLength - 1; i++) { checksum += result[i]; } if (checksum != result[frameLength - 1]) { return(null); } return(pack.Unpack(result, 0, frameLength)); }
public byte[] ReadFrames(IPack pack) { byte[] buff = new byte[128]; int i; for (i = 0; i < buff.Length; i++) { if (Box.ReadBytes(buff, i, 1) != 1) break; } if (i < 5) { FinishExecute(true); return null; } List<byte> result = new List<byte>(); int j = 3; int k = 0; while (j < i) // Multi Frame { if ((buff[k] == buff[j]) && (buff[k + 1] == buff[j + 1]) && (buff[k + 2] == buff[j + 2])) { result.AddRange(pack.Unpack(buff, k, j - k)); k = j; } j++; } result.AddRange(pack.Unpack(buff, k, j - k)); // Add last frame or it's a single frame FinishExecute(true); return result.ToArray(); }
private byte[] ReadOneFrame(IPack pack, bool isFinish) { byte[] temp = new byte[3]; byte[] result = new byte[255]; int frameLength = 0; int length = 0; byte checksum = 0; int i; length = Box.ReadBytes(temp, 0, temp.Length); if (length <= 0) { FinishExecute(isFinish); return null; } if (temp[1] == options.SourceAddress) { if (temp[0] == 0x80) { byte[] b = new byte[1]; length = Box.ReadBytes(b, 0, 1); if (length <= 0) { FinishExecute(isFinish); return null; } length = Convert.ToInt32(b[0]); if (length <= 0) { FinishExecute(isFinish); return null; } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; Array.Copy(b, 0, result, frameLength, 1); ++frameLength; length = Box.ReadBytes(result, KWPPack.KWP80_HEADER_LENGTH, length + KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } else { length = Convert.ToInt32(temp[0] - 0x80); if (length <= 0) { FinishExecute(isFinish); return null; } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length + KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } } else { if (temp[0] == 0x00) { length = Convert.ToInt32(temp[1]); if (length <= 0) { FinishExecute(isFinish); return null; } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length); frameLength += length; } else { length = Convert.ToInt32(temp[0]); if (length <= 0) { FinishExecute(isFinish); return null; } Array.Copy(temp, 0, result, 0, temp.Length); frameLength += temp.Length; length = Box.ReadBytes(result, temp.Length, length - KWPPack.KWP_CHECKSUM_LENGTH); frameLength += length; } } FinishExecute(isFinish); if (frameLength <= 0) { return null; } for (i = 0; i < frameLength - 1; i++) { checksum += result[i]; } if (checksum != result[frameLength - 1]) { return null; } return pack.Unpack(result, 0, frameLength); }