Пример #1
0
        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]);
        }
Пример #2
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());
        }