Example #1
0
        private byte[] GetFullPackage(byte[] body, UpMessageID messageName, out ushort headerOrderID)
        {
            if (body == null)
            {
                body = new byte[0];
            }
            TransferMeanning(ref body);
            var header = GetHeader(messageName, body, out headerOrderID);

            TransferMeanning(ref header);

            byte[] package   = new byte[3 + body.Length + header.Length];
            byte   checkCode = 0x00;//If checkcode = 7e?

            foreach (var dataItem in header)
            {
                checkCode ^= dataItem;
            }
            foreach (var dataItem in body)
            {
                checkCode ^= dataItem;
            }
            package[0] = identifierBit;
            package[package.Length - 1] = identifierBit;
            package[package.Length - 2] = checkCode;

            Array.Copy(header, 0, package, 1, header.Length);
            if (body.Length > 0)
            {
                Array.Copy(body, 0, package, 1 + header.Length, body.Length);
            }
            return(package);
        }
Example #2
0
        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// --                             Message Header                                  --
        /// ---------------------------------------------------------------------------------
        /// --  MessageID | Message Property |      SimNum     |  Order ID |  Package Top  --
        /// --       0000 |       0000       |  0000 0000 0000 |    0000   |               --
        /// ---------------------------------------------------------------------------------
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <param name="messageName"></param>
        /// <param name="realBody">assume no subpackage</param>
        /// <returns></returns>
        private byte[] GetHeader(UpMessageID messageName, byte[] realBody, out ushort headerOrderID)
        {
            var messageId       = encoder.Encode((ushort)messageName);
            var messageProperty = encoder.Encode((ushort)realBody.Length);
            var simnumData      = encoder.EncodeBCD(simnum, 12);

            headerOrderID = orderID;
            var            orderIDData = encoder.Encode(orderID++);
            IList <byte[]> lst         = new List <byte[]>();

            lst.Add(messageId);
            lst.Add(messageProperty);
            lst.Add(simnumData);
            lst.Add(orderIDData);
            return(GetFullData(lst));
        }