示例#1
0
        public byte[] CalcAu3MAC(MaslAu3Frame frame, uint destAddress)
        {
            using (var memStream = new MemoryStream(30))
            {
                // L
                memStream.WriteByte(0x00);
                memStream.WriteByte(0x14);

                // DA
                memStream.WriteByte((byte)((destAddress >> 16) & 0xFF));
                memStream.WriteByte((byte)((destAddress >> 8) & 0xFF));
                memStream.WriteByte((byte)((destAddress) & 0xFF));

                // ETY+MTI+DF
                memStream.WriteByte(frame.GetHeaderByte());

                // RB + RA
                memStream.Write(_macCalc.RandomB, 0, _macCalc.RandomB.Length);
                memStream.Write(_macCalc.RandomA, 0, _macCalc.RandomA.Length);

                var mac = _macCalc.CalcMac(memStream.ToArray());

                return(mac);
            }
        }