public override void Transmit(Message telemetry)
 {
 }
        /// <summary>
        /// Transmit the telemetry message and append appropriate sync and checksum bytes.
        /// </summary>
        /// <param name="telemetry"></param>
        public virtual void Transmit(Message telemetry)
        {
            byte[] msgPayload = telemetry.GetRawBytes();

            byte[] completeMsg = new byte[msgPayload.Length + MsgHeaderFooterSize];

            //First synch byte used to determine if this data is a start of a new msg.
            completeMsg[0] = SyncByte1;
            completeMsg[1] = SyncByte2;
            completeMsg[2] = SyncByte3;

            msgPayload.CopyTo(completeMsg, 3);

            byte checksumA = 0;
            byte checksumB = 0;

            calculateChecksum(msgPayload, ref checksumA, ref checksumB);

            //insert checksum values into message to send.
            completeMsg[completeMsg.Length - 2] = checksumA;
            completeMsg[completeMsg.Length - 1] = checksumB;

            port.Write(completeMsg, 0, completeMsg.Length);
        }