Exemple #1
0
 /// <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);
         }
     }
 }
Exemple #2
0
 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");
     }
 }