public JianCheBao3006Data(JianCheBaoGPRSFrame gprsFrame) : base(gprsFrame) { }
/// <summary> /// 转换数据 /// </summary> /// <param name="buffer"></param> /// <param name="responseList"></param> /// <param name="fullGpsCode"></param> /// <param name="sessionID"></param> /// <returns></returns> public List<GPSDataEntity> Parse(byte[] buffer, out List<byte[]> responseList, out string fullGpsCode, string sessionID) { //Transfer.TraceToFile(buffer,@"c:\gps.txt"); //Transfer.TraceToConsole(buffer); List<GPSDataEntity> gpsDatalist = new List<GPSDataEntity>(); responseList = new List<byte[]>(); fullGpsCode = string.Empty; //GPRS数据信息 JianCheBaoGPRSFrame gprsFrame = new JianCheBaoGPRSFrame(this.CodePrefix, buffer); fullGpsCode = gprsFrame.FullGpsCode; if (!string.IsNullOrEmpty(fullGpsCode)) { OnAddConnectionEvent(fullGpsCode, sessionID); } JianCheBaoData data = null; switch (gprsFrame.Type) { case JianCheBaoType.Register: //注册 上行 //注册 下行 responseList.Add(gprsFrame.GetResponeMsgForRegister()); //0x0B 进气歧管绝对压力 0xB021 break; case JianCheBaoType.Login: //登陆 上行 //登陆 下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 }, new byte[] { 0x00 })); //0xB021 消息头 //0x05 冷却液温度 //0x04 计算负荷值 //0x0F 进气温度 //0x10 空气流量 //0x11 节气门绝对位置 //0x46 环境温度 //0x07 长期燃油修正 //0x0E 第一缸点火正时提前角 //0x0B 进气歧管绝对压力 //0x0B 进气歧管绝对压力 //0x04 计算负荷值 //0x0F 进气温度 //0x11 节气门绝对位置 //0x46 环境温度 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x21 }, new byte[] { 0x05, 0x0B, 0x04, 0x0F, 0x11, 0x46 })); Logger.Info("Device Login:" + fullGpsCode); break; case JianCheBaoType.LoginOut: //注销 上行 //注销 下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 },new byte[] { 0x00 })); break; case JianCheBaoType.Heartbeat: //心跳上行 //心跳下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 }, null)); break; case JianCheBaoType.GetLocation: //请求地理位置上行 //请求地理位置下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 }, new byte[] { 0x00 })); break; case JianCheBaoType.GetTime: //请求时间上行 //请求时间下行 responseList.Add(gprsFrame.GetResponeMsgForGetTime()); break; case JianCheBaoType.RouteData: //行程 开始或者结束 上行 data = new JianCheBao3005Data(gprsFrame); data.AnalyseData(); gpsDatalist.Add(data.GetResult()); //行程 开始或者结束 下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 },new byte[] { 0x00 })); break; case JianCheBaoType.DataStream: //行程数据 上行 data = new JianCheBao3006Data(gprsFrame); data.AnalyseData(); gpsDatalist.AddRange(data.GetResultList()); //行程数据 下行 responseList.Add(gprsFrame.GetResponeMsg(new byte[] { 0xB0, 0x03 }, new byte[] { 0x00 })); break; default: break; } return gpsDatalist; }