public override JT809Response Msg0x1200_0x1202(JT809Request request)
        {
            var exchangeMessageBodies    = request.Package.Bodies as JT809ExchangeMessageBodies;
            var gpsBodies                = exchangeMessageBodies.SubBodies as JT809_0x1200_0x1202;
            JT809GpsPosition gpsPosition = new JT809GpsPosition();

            gpsPosition.Vno       = exchangeMessageBodies.VehicleNo;
            gpsPosition.VColor    = (byte)exchangeMessageBodies.VehicleColor;
            gpsPosition.Alarm     = (int)gpsBodies.VehiclePosition.Alarm;
            gpsPosition.Altitude  = gpsBodies.VehiclePosition.Altitude;
            gpsPosition.Direction = gpsBodies.VehiclePosition.Direction;
            gpsPosition.Encrypt   = (byte)gpsBodies.VehiclePosition.Encrypt;
            gpsPosition.State     = (int)gpsBodies.VehiclePosition.State;
            gpsPosition.Lat       = gpsBodies.VehiclePosition.Lat;
            gpsPosition.Lon       = gpsBodies.VehiclePosition.Lon;
            gpsPosition.Vec1      = gpsBodies.VehiclePosition.Vec1;
            gpsPosition.Vec2      = gpsBodies.VehiclePosition.Vec2;
            gpsPosition.Vec3      = (int)gpsBodies.VehiclePosition.Vec3;
            gpsPosition.GpsTime   = (new DateTime(
                                         gpsBodies.VehiclePosition.Year,
                                         gpsBodies.VehiclePosition.Month,
                                         gpsBodies.VehiclePosition.Day,
                                         gpsBodies.VehiclePosition.Hour,
                                         gpsBodies.VehiclePosition.Minute,
                                         gpsBodies.VehiclePosition.Second).ToUniversalTime().Ticks - 621355968000000000) / 10000000;
            gpsPosition.FromChannel = gpsOptions.FromChannel;
            producer.ProduceAsync($"{0x1202}", $"{exchangeMessageBodies.VehicleNo}{exchangeMessageBodies.VehicleColor}", gpsPosition.ToByteArray());
            return(base.Msg0x1200_0x1202(request));
        }
Пример #2
0
 /// <summary>
 /// 主链路连接保持应答消息
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public virtual JT809Response Msg0x1006(JT809Request request)
 {
     if (Logger.IsEnabled(LogLevel.Information))
     {
         Logger.LogInformation(JsonConvert.SerializeObject(request));
     }
     return(null);
 }
Пример #3
0
        /// <summary>
        /// 主链路注销请求消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>主链路注销应答消息</returns>
        public virtual JT809Response Msg0x1003(JT809Request request)
        {
            var jT809_0x1003 = request.Package.Bodies as JT809_0x1003;

            Logger.LogInformation(JsonConvert.SerializeObject(jT809_0x1003));
            var package = JT809BusinessType.主链路注销应答消息.Create();

            return(new JT809Response(package, 256));
        }
Пример #4
0
        /// <summary>
        /// 从链路连接保持请求消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>从链路连接保持应答消息</returns>
        public virtual JT809Response Msg0x9005(JT809Request request)
        {
            var package = JT809BusinessType.从链路连接保持应答消息.Create();

            if (Logger.IsEnabled(LogLevel.Information))
            {
                Logger.LogInformation(JsonConvert.SerializeObject(request));
            }
            return(new JT809Response(package, 256));
        }
        //public Dictionary<JT809SubBusinessType, Func<JT809Request, JT809Response>> SubHandlerDict { get; protected set; }

        /// <summary>
        /// 主链路登录应答消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public virtual JT809Response Msg0x1001(JT809Request request)
        {
            var package = JT809BusinessType.主链路登录应答消息.Create(new JT809_0x1002()
            {
                Result     = JT809_0x1002_Result.成功,
                VerifyCode = verifyCodeGenerator.Create()
            });

            return(new JT809Response(package, 100));
        }
        /// <summary>
        /// 从链路连接请求消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>从链路连接应答消息</returns>
        public virtual JT809Response Msg0x9001(JT809Request request)
        {
            var package = JT809BusinessType.从链路连接应答消息.Create(new JT809_0x9002 {
                Result = JT809_0x9002_Result.成功
            });

            if (Logger.IsEnabled(LogLevel.Information))
            {
                Logger.LogInformation(JsonConvert.SerializeObject(request));
            }
            return(new JT809Response(package, 100));
        }
Пример #7
0
        /// <summary>
        /// 主链路登录应答消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public virtual JT809Response Msg0x1002(JT809Request request)
        {
            if (Logger.IsEnabled(LogLevel.Information))
            {
                Logger.LogInformation(JsonConvert.SerializeObject(request));
            }
            var jT809_0x1002 = request.Package.Bodies as JT809_0x1002;

            if (jT809_0x1002.Result == JT809_0x1002_Result.成功)
            {
                ManualResetEvent.Resume();
            }
            return(null);
        }
Пример #8
0
        /// <summary>
        /// 主链路登录请求消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>主链路登录应答消息</returns>
        public virtual JT809Response Msg0x1001(JT809Request request)
        {
            var verifyCode = VerifyCodeGenerator.Create();

            Logger.LogInformation($"主链路登录请求消息:VerifyCode-{verifyCode}");
            var package = JT809BusinessType.主链路登录应答消息.Create(new JT809_0x1002()
            {
                Result     = JT809_0x1002_Result.成功,
                VerifyCode = verifyCode
            });
            var jT809_0x1001 = request.Package.Bodies as JT809_0x1001;

            SubordinateLoginService.Login(jT809_0x1001.DownLinkIP, jT809_0x1001.DownLinkPort);
            return(new JT809Response(package, 256));
        }
Пример #9
0
        /// <summary>
        /// 主链路连接保持请求消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>主链路连接保持应答消息</returns>
        public virtual JT809Response Msg0x1005(JT809Request request)
        {
            var package = JT809BusinessType.主链路连接保持应答消息.Create();

            return(new JT809Response(package, 100));
        }
Пример #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="request"></param>
 /// <returns>从链路注销应答消息</returns>
 public virtual JT809Response Msg0x9004(JT809Request request)
 {
     return(null);
 }
Пример #11
0
        /// <summary>
        /// 主链路断开通知消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns>本条消息无需被通知方应答</returns>
        public virtual JT809Response Msg0x1007(JT809Request request)
        {
            var jT809_0x1007 = request.Package.Bodies as JT809_0x1007;

            Logger.LogInformation($"主链路断开通知消息:{jT809_0x1007.ErrorCode}-{jT809_0x1007.ErrorCode}");
            return(default);