示例#1
0
        public SLIPMessage getSlipMessage()
        {
            SLIPMessage message;

            message = new SLIPMessage(getMessage());
            /* Validy if getMessage is valid or if it is null */
            return(message);
        }
示例#2
0
        public bool encodeSLIPMessage(SLIPMessage message)
        {
            EncodeSuccess = false;
            MessageSize   = 0;

            if (message == null)
            {
                return(false);
            }

            byte[] slip_message     = message.RawMessage;
            byte   message_checksum = message.MessageChecksum;
            int    position         = 0;
            byte   tx_byte;

            MessageResult[position++] = SLIP_FLAG;

            for (int i = 0; i < (slip_message.Length + 1); i++)
            {
                if (position > (SLIP_MAX_DATA - 2))
                {
                    return(false);
                }

                if (i == slip_message.Length)
                {
                    tx_byte = message_checksum;
                }
                else
                {
                    tx_byte = slip_message[i];
                }

                if (tx_byte == SLIP_FLAG)
                {
                    MessageResult[position++] = SLIP_ESC;
                    tx_byte = SLIP_ESC_FLAG;
                }
                else if (tx_byte == SLIP_ESC)
                {
                    MessageResult[position++] = SLIP_ESC;
                    tx_byte = SLIP_ESC_ESC;
                }
                else
                {
                    // do nothing
                }
                MessageResult[position++] = tx_byte;
            }

            MessageResult[position++] = SLIP_FLAG;
            MessageSize   = position;
            EncodeSuccess = true;

            return(true);
        }