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)); }
public void Test1() { ConsumerTestService consumerTestService = ServiceProvider.GetRequiredService <ConsumerTestService>(); consumerTestService.GpsConsumer.OnMessage((Message) => { Assert.Equal(JT809SubBusinessType.实时上传车辆定位信息.ToValueString(), Message.MsgId); JT809GpsPosition jT809GpsPosition = JT809GpsPosition.Parser.ParseFrom(Message.Data); Assert.Equal("粤A23456", jT809GpsPosition.Vno); Assert.Equal(2, jT809GpsPosition.VColor); Assert.Equal("smallchi", jT809GpsPosition.FromChannel); }); consumerTestService.GpsConsumer.Subscribe(); Thread.Sleep(100000); }