protected override byte[] BuildPacket(Packet packet) { var packetSize = packet.GetSize(); // Calculate header size var headerSize = 3; int n = packetSize; do { headerSize++; n >>= 7; } while (n != 0); // Write header var result = new byte[headerSize + packetSize]; result[0] = 0x55; result[1] = 0x12; result[2] = 0x00; // Length var ptr = 3; n = packetSize; do { result[ptr++] = (byte)(n > 0x7F ? (0x80 | (n & 0xFF)) : n & 0xFF); n >>= 7; } while (n != 0); // Write packet packet.Build(ref result, ptr); return result; }
protected override byte[] BuildPacket(Packet packet) { var result = new byte[6 + packet.GetSize() + 4]; // header + packet + checksum result[0] = 0x88; System.Buffer.BlockCopy(BitConverter.GetBytes(result.Length), 0, result, 1, sizeof(int)); packet.Build(ref result, 6); return result; }
protected override byte[] BuildPacket(Packet packet) { var result = new byte[6 + packet.GetSize() + 4]; // header + packet + checksum result[0] = 0x88; System.Buffer.BlockCopy(BitConverter.GetBytes(result.Length), 0, result, 1, sizeof(int)); packet.Build(ref result, 6); return(result); }