예제 #1
0
        /// <summary>
        /// 这里解析的到的数据是会把头和尾部都给去掉的 包括0x7E
        /// </summary>
        /// <param name="readBuffer"></param>
        /// <param name="offset"></param>
        /// <param name="length"></param>
        /// <returns></returns>
        protected override HLProtocolRequestInfo ProcessMatchedRequest(byte[] readBuffer, int offset, int length)
        {
            //var aJT808_PackageData = new JT808_PackageData();
            string all = "";

            for (int i = 0; i < length; i++)
            {
                all = all + readBuffer[offset + i].ToString("X2") + " ";
            }

            //转义还原
            byte[] message = ExplainUtils.DoEscape4Receive(readBuffer, offset, offset + length);
            string all2    = "";

            for (int i = 0; i < message.Length; i++)
            {
                all2 = all2 + message[i].ToString("X2") + " ";
            }

            //解析消息头
            JT808_PackageData aJT808_PackageData = decoder.Bytes2PackageData(message);

            aJT808_PackageData.all  = all;
            aJT808_PackageData.all2 = all2;

            if (aJT808_PackageData.errorlog == null)
            {
                //解析消息体
                ProcessPackageData(ref aJT808_PackageData);
            }


            return(new HLProtocolRequestInfo(aJT808_PackageData));
        }
        protected override NewEnergyRequestInfo ProcessMatchedRequest(byte[] readBuffer, int offset, int length)
        {
            //转义还原
            byte[] message = ExplainUtils.DoEscape4Receive(readBuffer, offset, offset + length);
            string all     = "";

            for (int i = 0; i < message.Length; i++)
            {
                all = all + message[i].ToString("X2") + " ";
            }

            NewEnergyProtocol protocol = new NewEnergyProtocol();

            protocol.all = all;

            return(new NewEnergyRequestInfo(protocol));
        }