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)); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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)); }
/// <summary> /// 主链路连接保持请求消息 /// </summary> /// <param name="request"></param> /// <returns>主链路连接保持应答消息</returns> public virtual JT809Response Msg0x1005(JT809Request request) { var package = JT809BusinessType.主链路连接保持应答消息.Create(); return(new JT809Response(package, 100)); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <returns>从链路注销应答消息</returns> public virtual JT809Response Msg0x9004(JT809Request request) { return(null); }
/// <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);