/// <summary> /// 解析数据 /// </summary> /// <param name="bGps"></param> /// <remarks></remarks> public void JXJTData(byte[] bGps) { if (bGps.Length > 11 && CheckHelper.CheckXOR(bGps, 0, bGps.Length - 1) == bGps[bGps.Length - 1])//效验通过 { var head = JTHeader.NewEntity(bGps); var item = GetChejiFromList(head.Sim); if (item == null) { item = JTCheji.NewCheji(this, Channel.RemoteHost + ":" + Channel.RemotePort, head, bGps);//1、记录车辆上线** if (item.IsAuthority) { LastSuccessTime = DateTime.Now; //if (!item.IsTest) //{ #region 移除已有连接(防止多次登录) var oldcj = MyTask.GetChejiByClientPool(item.SimKey); if (oldcj != null) { oldcj.cl.RemoveCheji(oldcj, LogOutReason.Relogin, true);//2、此时在数据库记录车辆下线 } #endregion AddChejiToList(head.Sim, item); MyTask.OnChejiAdd(item); } else { item.Dispose(); } } else { item.JXData(head, bGps); } } }
public string Send1078ToDev(string Hex, bool IsSuperiorPlatformSend) { try { var bts = ByteHelper.HexStringToBytes(Hex); var head = JTHeader.NewEntity(bts); var cj = GetChejiByClientPool(head.Sim); if (cj == null) { return("0"); } var bGps = new byte[bts.Length - head.HeadLen]; Array.Copy(bts, head.HeadLen, bGps, 0, bGps.Length); return(cj.Send1078ToDev(IsSuperiorPlatformSend, head, bGps)); } catch (Exception ex) { Log.WriteLog4Ex("Send1078ToDev", ex); return("-1"); } }