Example #1
0
        internal void Write(IMODBUSMessage message)
        {
            var frameBytes    = BuildMessageFrame(message);
            var frameLength   = frameBytes.Length;
            var bufferedBytes = new byte[frameLength];

            Buffer.BlockCopy(frameBytes, 0, bufferedBytes, 0, frameLength);
            Channel.Write(ref bufferedBytes, 0, frameLength);
        }
Example #2
0
        internal byte[] BuildMessageFrame(IMODBUSMessage message)
        {
            List <byte> messageBody = new List <byte>();

            messageBody.AddRange(message.MessageFrame);

            using (Crc16 Hash = new Crc16())
            {
                Hash.Initialize();
                messageBody.AddRange(Hash.ComputeHash(message.MessageFrame, 0, messageBody.Count));
            }

            return(messageBody.ToArray());
        }