/// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public JT808_CarDVR_Up_0x07 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x07 value = new JT808_CarDVR_Up_0x07();

            value.ProductionPlantCCCCertificationCode = reader.ReadASCII(7);
            value.CertifiedProductModels      = reader.ReadASCII(16);
            value.ProductionDate              = reader.ReadDateTime3();
            value.ProductProductionFlowNumber = reader.ReadString(4);
            value.Reversed = reader.ReadString(5);
            return(value);
        }
Beispiel #2
0
        public JT808_CarDVR_Down_0x82 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Down_0x82 value = new JT808_CarDVR_Down_0x82();

            value.Vin       = reader.ReadASCII(17);
            value.VehicleNo = reader.ReadASCII(9);
            reader.Skip(3);
            value.VehicleType = reader.ReadString(6);
            reader.Skip(4);
            return(value);
        }
Beispiel #3
0
        public void ReadASCIITest()
        {
            byte[] array1 = new byte[] { 0x53, 0x56, 0x31, 0x2E, 0x31, 0x2E, 0x30 };
            JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(array1);

            Assert.Equal("SV1.1.0", jT808MessagePackReader.ReadASCII(7));
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public JT808_CarDVR_Up_0x10 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x10 value = new JT808_CarDVR_Up_0x10();

            value.JT808_CarDVR_Up_0x10_AccidentSuspectins = new List <JT808_CarDVR_Up_0x10_AccidentSuspectin>();
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 234;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x10_AccidentSuspectin jT808_CarDVR_Up_0x10_AccidentSuspectin = new JT808_CarDVR_Up_0x10_AccidentSuspectin();
                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime         = reader.ReadDateTime_yyMMddHHmmss();
                jT808_CarDVR_Up_0x10_AccidentSuspectin.DriverLicenseNo = reader.ReadASCII(18);
                jT808_CarDVR_Up_0x10_AccidentSuspectin.JT808_CarDVR_Up_0x10_DrivingStatuss = new List <JT808_CarDVR_Up_0x10_DrivingStatus>();
                for (int j = 0; j < 100; j++)//100组
                {
                    jT808_CarDVR_Up_0x10_AccidentSuspectin.JT808_CarDVR_Up_0x10_DrivingStatuss.Add(new JT808_CarDVR_Up_0x10_DrivingStatus
                    {
                        Speed        = reader.ReadByte(),
                        StatusSignal = reader.ReadByte()
                    });
                }
                jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLng = reader.ReadInt32();
                jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLat = reader.ReadInt32();
                jT808_CarDVR_Up_0x10_AccidentSuspectin.Height = reader.ReadInt16();
                value.JT808_CarDVR_Up_0x10_AccidentSuspectins.Add(jT808_CarDVR_Up_0x10_AccidentSuspectin);
            }
            return(value);
        }
Beispiel #5
0
        public JT808_CarDVR_Up_0x01 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x01 value = new JT808_CarDVR_Up_0x01();

            value.DriverLicenseNo = reader.ReadASCII(18);
            return(value);
        }
Beispiel #6
0
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x01 value = new JT808_CarDVR_Up_0x01();
            var hex = reader.ReadVirtualArray(18);

            value.DriverLicenseNo = reader.ReadASCII(18);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]当前驾驶人的机动车驾驶证号码", value.DriverLicenseNo);
        }
        public JT808_CarDVR_Up_0x05 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x05 value = new JT808_CarDVR_Up_0x05();

            value.Vin         = reader.ReadASCII(17);
            value.VehicleNo   = reader.ReadString(12);
            value.VehicleType = reader.ReadString(10);
            return(value);
        }
        public JT808_CarDVR_Down_0xE1 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Down_0xE1 value = new JT808_CarDVR_Down_0xE1();

            value.UniqueNumber     = reader.ReadASCII(35);
            value.PulseCoefficient = reader.ReadUInt16();
            value.Speed            = reader.ReadUInt16();
            value.TotalMileage     = reader.ReadUInt32();
            value.StatusSignal     = reader.ReadByte();
            return(value);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="writer"></param>
        /// <param name="config"></param>
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x07 value = new JT808_CarDVR_Up_0x07();
            var hex = reader.ReadVirtualArray(7);

            value.ProductionPlantCCCCertificationCode = reader.ReadASCII(7);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]生产厂 CCC 认证代码", value.ProductionPlantCCCCertificationCode);
            hex = reader.ReadVirtualArray(16);
            value.CertifiedProductModels = reader.ReadASCII(16);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]认证产品型号", value.CertifiedProductModels);
            hex = reader.ReadVirtualArray(3);
            value.ProductionDate = reader.ReadDateTime3();
            writer.WriteString($"[{hex.ToArray().ToHexString()}]生产日期", value.ProductionDate);
            hex = reader.ReadVirtualArray(4);
            value.ProductProductionFlowNumber = reader.ReadString(4);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]产品生产流水号", value.ProductProductionFlowNumber);
            hex            = reader.ReadVirtualArray(5);
            value.Reversed = reader.ReadString(5);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]备用", value.Reversed);
        }
Beispiel #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public JT808_0x0900_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_0x0900_0xF8 value = new JT808_0x0900_0xF8();

            value.USBMessageCount = reader.ReadByte();
            if (value.USBMessageCount > 0)
            {
                value.USBMessages = new List <JT808_0x0900_0xF8_USB>();
                for (int i = 0; i < value.USBMessageCount; i++)
                {
                    JT808_0x0900_0xF8_USB item = new JT808_0x0900_0xF8_USB();
                    item.USBID                       = reader.ReadByte();
                    item.MessageLength               = reader.ReadByte();
                    item.CompantNameLength           = reader.ReadByte();
                    item.CompantName                 = reader.ReadASCII(item.CompantNameLength);
                    item.ProductModelLength          = reader.ReadByte();
                    item.ProductModel                = reader.ReadASCII(item.ProductModelLength);
                    item.HardwareVersionNumberLength = reader.ReadByte();
                    item.HardwareVersionNumber       = reader.ReadASCII(item.HardwareVersionNumberLength);
                    item.SoftwareVersionNumberLength = reader.ReadByte();
                    item.SoftwareVersionNumber       = reader.ReadASCII(item.SoftwareVersionNumberLength);
                    item.DevicesIDLength             = reader.ReadByte();
                    item.DevicesID                   = reader.ReadASCII(item.DevicesIDLength);
                    item.CustomerCodeLength          = reader.ReadByte();
                    item.CustomerCode                = reader.ReadASCII(item.CustomerCodeLength);
                    value.USBMessages.Add(item);
                }
            }
            return(value);
        }
        public JT808_CarDVR_Down_0x84 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Down_0x84 value = new JT808_CarDVR_Down_0x84();

            value.RealTime      = reader.ReadDateTime6();
            value.SignalOperate = reader.ReadByte();
            value.D0            = reader.ReadASCII(10);
            value.D1            = reader.ReadASCII(10);
            value.D2            = reader.ReadASCII(10);
            value.NearLight     = reader.ReadASCII(10);
            value.FarLight      = reader.ReadASCII(10);
            value.RightTurn     = reader.ReadASCII(10);
            value.LeftTurn      = reader.ReadASCII(10);
            value.Brake         = reader.ReadASCII(10);
            return(value);
        }
Beispiel #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="writer"></param>
        /// <param name="config"></param>
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x05 value = new JT808_CarDVR_Up_0x05();
            var hex = reader.ReadVirtualArray(17);

            value.Vin = reader.ReadASCII(17);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]车辆识别代号", value.Vin);
            hex             = reader.ReadVirtualArray(12);
            value.VehicleNo = reader.ReadString(12);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]机动车号牌号码", value.VehicleNo);
            hex = reader.ReadVirtualArray(12);
            value.VehicleType = reader.ReadString(12);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]机动车号牌分类", value.VehicleType);
        }
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Down_0xE1 value = new JT808_CarDVR_Down_0xE1();
            var hex = reader.ReadVirtualArray(35);

            value.UniqueNumber = reader.ReadASCII(35);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]记录仪唯一性编号", value.UniqueNumber);
            value.PulseCoefficient = reader.ReadUInt16();
            writer.WriteNumber($"[{value.PulseCoefficient.ReadNumber()}]脉冲系数", value.PulseCoefficient);
            value.Speed = reader.ReadUInt16();
            writer.WriteNumber($"[{value.Speed.ReadNumber()}]当前速度", value.Speed);
            value.TotalMileage = reader.ReadUInt32();
            writer.WriteNumber($"[{value.TotalMileage.ReadNumber()}]累计里程", value.TotalMileage);
            value.StatusSignal = reader.ReadByte();
            writer.WriteNumber($"[{value.StatusSignal.ReadNumber()}]状态信号", value.StatusSignal);
        }
Beispiel #14
0
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x10 value = new JT808_CarDVR_Up_0x10();

            writer.WriteStartArray("请求发送指定的时间范围内 N 个单位数据块的数据");
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 234;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x10_AccidentSuspectin jT808_CarDVR_Up_0x10_AccidentSuspectin = new JT808_CarDVR_Up_0x10_AccidentSuspectin();
                writer.WriteStartObject();
                writer.WriteStartObject($"指定的结束时间之前最近的第{i+1}条事故疑点记录");
                var hex = reader.ReadVirtualArray(6);
                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime = reader.ReadDateTime6();
                writer.WriteString($"[{hex.ToArray().ToHexString()}]行驶结束时间", jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime);
                hex = reader.ReadVirtualArray(18);
                jT808_CarDVR_Up_0x10_AccidentSuspectin.DriverLicenseNo = reader.ReadASCII(18);
                writer.WriteString($"[{hex.ToArray().ToHexString()}]机动车驾驶证号码", jT808_CarDVR_Up_0x10_AccidentSuspectin.DriverLicenseNo);
                for (int j = 0; j < 100; j++)//100组
                {
                    JT808_CarDVR_Up_0x10_DrivingStatus jT808_CarDVR_Up_0X10_DrivingStatus = new JT808_CarDVR_Up_0x10_DrivingStatus();
                    if (j == 0)
                    {
                        writer.WriteStartObject("行驶结束时的速度");
                    }
                    else
                    {
                        writer.WriteStartObject($"行驶结束时间前 { (j * 0.2).ToString("F1")} 秒时的速度");
                    }
                    jT808_CarDVR_Up_0X10_DrivingStatus.Speed = reader.ReadByte();
                    writer.WriteNumber($"[{ jT808_CarDVR_Up_0X10_DrivingStatus.Speed.ReadNumber()}]速度", jT808_CarDVR_Up_0X10_DrivingStatus.Speed);
                    jT808_CarDVR_Up_0X10_DrivingStatus.StatusSignal = reader.ReadByte();
                    writer.WriteNumber($"[{ jT808_CarDVR_Up_0X10_DrivingStatus.StatusSignal.ReadNumber()}]状态信号", jT808_CarDVR_Up_0X10_DrivingStatus.StatusSignal);
                    writer.WriteEndObject();
                }
                jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLng = reader.ReadInt32();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLng.ReadNumber()}]经度", jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLng);
                jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLat = reader.ReadInt32();
                writer.WriteNumber($"[{   jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLat.ReadNumber()}]纬度", jT808_CarDVR_Up_0x10_AccidentSuspectin.GpsLat);
                jT808_CarDVR_Up_0x10_AccidentSuspectin.Height = reader.ReadInt16();
                writer.WriteNumber($"[{  jT808_CarDVR_Up_0x10_AccidentSuspectin.Height.ReadNumber()}]高度", jT808_CarDVR_Up_0x10_AccidentSuspectin.Height);
                writer.WriteEndObject();
                writer.WriteEndObject();
            }
            writer.WriteEndArray();
        }
Beispiel #15
0
        public JT808_CarDVR_Up_0x12 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x12 value = new JT808_CarDVR_Up_0x12();

            value.JT808_CarDVR_Up_0x12_DriveLogins = new List <JT808_CarDVR_Up_0x12_DriveLogin>();
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 25;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x12_DriveLogin jT808_CarDVR_Up_0x12_DriveLogin = new JT808_CarDVR_Up_0x12_DriveLogin();
                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime       = reader.ReadDateTime6();
                jT808_CarDVR_Up_0x12_DriveLogin.DriverLicenseNo = reader.ReadASCII(18);
                jT808_CarDVR_Up_0x12_DriveLogin.LoginType       = reader.ReadByte();
                value.JT808_CarDVR_Up_0x12_DriveLogins.Add(jT808_CarDVR_Up_0x12_DriveLogin);
            }
            return(value);
        }
Beispiel #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public JT808_0x8103_0xF366 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_0x8103_0xF366 value = new JT808_0x8103_0xF366();

            value.ParamId                         = reader.ReadUInt32();
            value.ParamLength                     = reader.ReadByte();
            value.TyreSpecificationType           = reader.ReadASCII(12);
            value.TyrePressureUnit                = reader.ReadUInt16();
            value.NormalFetalPressure             = reader.ReadUInt16();
            value.ThresholdUnbalancedTirePressure = reader.ReadUInt16();
            value.SlowLeakageThreshold            = reader.ReadUInt16();
            value.LowVoltageThreshold             = reader.ReadUInt16();
            value.HighVoltageThreshold            = reader.ReadUInt16();
            value.HighTemperatureThreshold        = reader.ReadUInt16();
            value.VoltageThreshold                = reader.ReadUInt16();
            value.TimedReportingInterval          = reader.ReadUInt16();
            value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
            return(value);
        }
Beispiel #17
0
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x11 value = new JT808_CarDVR_Up_0x11();

            writer.WriteStartArray("请求发送指定的时间范围内 N 个单位数据块的数据");
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 50;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x11_DriveOverTime jT808_CarDVR_Up_0x11_DriveOverTime = new JT808_CarDVR_Up_0x11_DriveOverTime();
                writer.WriteStartObject();
                writer.WriteStartObject($"指定的结束时间前最近的第 {i+1}条超时驾驶记录");
                var hex = reader.ReadVirtualArray(18);
                jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo = reader.ReadASCII(18);
                writer.WriteString($"[{hex.ToArray().ToHexString()}机动车驾驶证号码]", jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo);
                hex = reader.ReadVirtualArray(6);
                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime6();
                writer.WriteString($"[{hex.ToArray().ToHexString()}连续驾驶开始时间]", jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime);
                hex = reader.ReadVirtualArray(6);
                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime = reader.ReadDateTime6();
                writer.WriteString($"[{hex.ToArray().ToHexString()}连续驾驶结束时间]", jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime);
                writer.WriteStartObject("连续驾驶开始时间所在的最近一次有效位置信息");
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng = reader.ReadInt32();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng.ReadNumber()}]经度", jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng);
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLat = reader.ReadInt32();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLat.ReadNumber()}纬度", jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLat);
                jT808_CarDVR_Up_0x11_DriveOverTime.StartHeight = reader.ReadInt16();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.StartHeight.ReadNumber()}]高度", jT808_CarDVR_Up_0x11_DriveOverTime.StartHeight);
                writer.WriteEndObject();
                writer.WriteStartObject("连续驾驶结束时间所在的最近一次有效位置信息");
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLng = reader.ReadInt32();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLng.ReadNumber()}]经度", jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLng);
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLat = reader.ReadInt32();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLat.ReadNumber()}]纬度", jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLat);
                jT808_CarDVR_Up_0x11_DriveOverTime.EndHeight = reader.ReadInt16();
                writer.WriteNumber($"[{ jT808_CarDVR_Up_0x11_DriveOverTime.EndHeight.ReadNumber()}]高度", jT808_CarDVR_Up_0x11_DriveOverTime.EndHeight);
                writer.WriteEndObject();
                writer.WriteEndObject();
                writer.WriteEndObject();
            }
            writer.WriteEndArray();
        }
Beispiel #18
0
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_CarDVR_Up_0x12 value = new JT808_CarDVR_Up_0x12();

            writer.WriteStartArray("请求发送指定的时间范围内 N 个单位数据块的数据");
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 25;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x12_DriveLogin jT808_CarDVR_Up_0x12_DriveLogin = new JT808_CarDVR_Up_0x12_DriveLogin();
                writer.WriteStartObject();
                writer.WriteStartObject($"指定的结束时间之前最近的第 {i+1}条驾驶人登录退出记录");
                var hex = reader.ReadVirtualArray(6);
                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime = reader.ReadDateTime6();
                writer.WriteString($"[{hex.ToArray().ToHexString()}]登录/登出发生时间", jT808_CarDVR_Up_0x12_DriveLogin.LoginTime);
                hex = reader.ReadVirtualArray(18);
                jT808_CarDVR_Up_0x12_DriveLogin.DriverLicenseNo = reader.ReadASCII(18);
                writer.WriteString($"[{hex.ToArray().ToHexString()}]机动车驾驶证号码", jT808_CarDVR_Up_0x12_DriveLogin.DriverLicenseNo);
                jT808_CarDVR_Up_0x12_DriveLogin.LoginType = reader.ReadByte();
                writer.WriteString($"[{ jT808_CarDVR_Up_0x12_DriveLogin.LoginType.ReadNumber()}]登录/登出事件", LoginTypeDisplay(jT808_CarDVR_Up_0x12_DriveLogin.LoginType));
                writer.WriteEndObject();
                writer.WriteEndObject();
            }
            writer.WriteEndArray();
            string LoginTypeDisplay(byte loginType)
            {
                if (loginType == 1)
                {
                    return("登录");
                }
                else if (loginType == 2)
                {
                    return("退出");
                }
                else
                {
                    return("保留");
                }
            }
        }
Beispiel #19
0
        public JT808_CarDVR_Up_0x11 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_CarDVR_Up_0x11 value = new JT808_CarDVR_Up_0x11();

            value.JT808_CarDVR_Up_0x11_DriveOverTimes = new List <JT808_CarDVR_Up_0x11_DriveOverTime>();
            var count = (reader.ReadCurrentRemainContentLength() - 1) / 50;//记录块个数, -1 去掉校验位

            for (int i = 0; i < count; i++)
            {
                JT808_CarDVR_Up_0x11_DriveOverTime jT808_CarDVR_Up_0x11_DriveOverTime = new JT808_CarDVR_Up_0x11_DriveOverTime();
                jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo          = reader.ReadASCII(18);
                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime6();
                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime   = reader.ReadDateTime6();
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng = reader.ReadInt32();
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLat = reader.ReadInt32();
                jT808_CarDVR_Up_0x11_DriveOverTime.StartHeight = reader.ReadInt16();
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLng   = reader.ReadInt32();
                jT808_CarDVR_Up_0x11_DriveOverTime.GpsEndLat   = reader.ReadInt32();
                jT808_CarDVR_Up_0x11_DriveOverTime.EndHeight   = reader.ReadInt16();
                value.JT808_CarDVR_Up_0x11_DriveOverTimes.Add(jT808_CarDVR_Up_0x11_DriveOverTime);
            }
            return(value);
        }