Procházet zdrojové kódy

0x9504兼容修复

tags/v2.2.0
waterliu99 před 5 roky
rodič
revize
639993de2e
2 změnil soubory, kde provedl 70 přidání a 7 odebrání
  1. +1
    -1
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs
  2. +69
    -6
      src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs

+ 1
- 1
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs Zobrazit soubor

@@ -22,7 +22,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Command= JT809CommandType.采集记录仪事故疑点记录,
StartTime=DateTime.Parse("2018-09-27 20:00:20"),
EndTime=DateTime.Parse("2018-09-27 23:00:20"),
//Max=5556
Max=5556
};
var hex = JT809Serializer.Serialize(jT809_0X9500_0X9504).ToHexString();
//"10 18 09 27 20 00 20 18 09 27 23 00 20 15 B4"


+ 69
- 6
src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs Zobrazit soubor

@@ -29,21 +29,84 @@ namespace JT809.Protocol.SubMessageBody
/// 命令字ID
/// </summary>
public JT809CommandType Command { get; set; }
/// <summary>
/// 最大数据数
/// </summary>
public ushort Max { get; set; }

public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
var value = new JT809_0x9500_0x9504();
value.StartTime = reader.ReadUTCDateTime();
value.EndTime = reader.ReadUTCDateTime();
value.Command = (JT809CommandType)reader.ReadByte();
if(config.Version == JT809Version.JTT2019){
value.StartTime = reader.ReadUTCDateTime();
value.EndTime = reader.ReadUTCDateTime();
value.Command = (JT809CommandType)reader.ReadByte();
}
else {
value.Command = (JT809CommandType)reader.ReadByte();
switch (value.Command)
{
case JT809CommandType.记录仪标准版本:
case JT809CommandType.当前驾驶人信息:
case JT809CommandType.记录仪时间:
case JT809CommandType.记录仪累计行驶里程:
case JT809CommandType.记录仪脉冲系数:
case JT809CommandType.车辆信息:
case JT809CommandType.记录仪状态信号配置信息:
case JT809CommandType.记录仪唯一性编号:
break;
case JT809CommandType.采集记录仪行驶记录:
case JT809CommandType.采集记录仪位置信息记录:
case JT809CommandType.采集记录仪事故疑点记录:
case JT809CommandType.采集记录仪超时驾驶记录:
case JT809CommandType.采集记录仪驾驶人身份记录:
case JT809CommandType.采集记录仪外部供电记录:
case JT809CommandType.采集记录仪参数修改记录:
case JT809CommandType.采集记录仪速度状态日志:
value.StartTime = reader.ReadDateTime6();
value.EndTime = reader.ReadDateTime6();
value.Max = reader.ReadUInt16();
break;
}
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9500_0x9504 value, IJT809Config config)
{
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteByte((byte)value.Command);
if (config.Version == JT809Version.JTT2019)
{
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteByte((byte)value.Command);
}
else {
writer.WriteByte((byte)value.Command);
switch (value.Command)
{
case JT809CommandType.记录仪标准版本:
case JT809CommandType.当前驾驶人信息:
case JT809CommandType.记录仪时间:
case JT809CommandType.记录仪累计行驶里程:
case JT809CommandType.记录仪脉冲系数:
case JT809CommandType.车辆信息:
case JT809CommandType.记录仪状态信号配置信息:
case JT809CommandType.记录仪唯一性编号:
break;
case JT809CommandType.采集记录仪行驶记录:
case JT809CommandType.采集记录仪位置信息记录:
case JT809CommandType.采集记录仪事故疑点记录:
case JT809CommandType.采集记录仪超时驾驶记录:
case JT809CommandType.采集记录仪驾驶人身份记录:
case JT809CommandType.采集记录仪外部供电记录:
case JT809CommandType.采集记录仪参数修改记录:
case JT809CommandType.采集记录仪速度状态日志:
writer.WriteDateTime6(value.StartTime);
writer.WriteDateTime6(value.EndTime);
writer.WriteUInt16(value.Max);
break;
}
}
}
}
}

Načítá se…
Zrušit
Uložit