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));
        }
Beispiel #2
0
        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);
        }