public void Test1() { byte[] data = new byte[] { 0x24, 0x24, 0x00, 0x11, 0x13, 0x61, 0x23, 0x45, 0x67, 0x8f, 0xff, 0x50, 0x00 }; ushort crc = CRCCalculator.Calculate(data, data.Length); byte[] crcBytes = BitConverter.GetBytes(crc); Assert.AreEqual(2, crcBytes.Length); Console.WriteLine("CRC: {0:X2} {1:X2}", crcBytes[0], crcBytes[1]); Assert.AreEqual(0x05, crcBytes[1]); Assert.AreEqual(0xd8, crcBytes[0]); }
private byte[] BuildSendLine(int address) { ByteBuilder bb = new ByteBuilder(); bb.Append((byte)RcpProtocol.PREAMBLE); bb.Append((byte)'W'); bb.Append((byte)(address >> 8)); bb.Append((byte)(address & 0x00FF)); for (int i = 0; i < 0x10; i++) { bb.Append(rawCode[address + i]); } bb.Append((byte)RcpProtocol.ENDMARK); bb.Append(CRCCalculator.Cal_CRC16(bb.GetByteArray())); return(bb.GetByteArray()); }