public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x1201 value, IJT809Config config)
 {
     writer.WriteBigNumber(value.PlateformId, 11);
     writer.WriteBigNumber(value.ProducerId, 11);
     writer.WriteStringPadRight(value.TerminalModelType, 20);
     writer.WriteStringPadRight(value.TerminalId.ToUpper(), 7);
     writer.WriteStringPadRight(value.TerminalSimCode, 12);
 }
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1500_0x1504 value, IJT809Config config)
 {
     writer.WriteByte((byte)value.CommandType);
     // 先计算内容长度(汉字为两个字节)
     writer.Skip(4, out int lengthPosition);
     writer.WriteString(value.TraveldataInfo);
     writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition);
 }
示例#3
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9200_0x920D value, IJT809Config config)
 {
     writer.WriteUInt32(value.DRVLineID);
     writer.WriteByte(value.Result.ToByteValue());
     writer.Skip(2, out int position);
     writer.WriteString(value.Reason);
     writer.WriteUInt16Return((ushort)(writer.GetCurrentPosition() - position - 2), position);
 }
示例#4
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1001 value, IJT809Config config)
 {
     writer.WriteUInt32(value.UserId);
     writer.WriteStringPadRight(value.Password, 8);
     writer.WriteUInt32(value.MsgGNSSCENTERID);
     writer.WriteStringPadRight(value.DownLinkIP, 32);
     writer.WriteUInt16(value.DownLinkPort);
 }
示例#5
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1102 value, IJT809Config config)
 {
     writer.WriteBigNumber(value.PlateformId, 11);
     writer.WriteUTCDateTime(value.StartTime);
     writer.WriteUTCDateTime(value.EndTime);
     writer.WriteUInt32(value.LoseDymamicSum);
     writer.WriteByte(value.DisconnectNum);
     writer.WriteUInt32(value.DisconnectTime);
 }
示例#6
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1600_0x1601 value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUInt16(value.SourceDataType);
         writer.WriteUInt32(value.SourceMsgSn);
     }
     writer.WriteString(value.CarInfo);
 }
示例#7
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x1206 value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUInt16(value.SourceDataType);
         writer.WriteUInt32(value.SourceMsgSN);
         writer.WriteUInt32(value.DataLength);
     }
 }
示例#8
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9200_0x9209 value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUInt16(value.SourceDataType);
         writer.WriteUInt32(value.SourceMsgSn);
     }
     writer.WriteByte((byte)value.Result);
 }
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9500_0x9503 value, IJT809Config config)
 {
     writer.WriteUInt32(value.MsgSequence);
     writer.WriteByte(value.MsgPriority);
     // 先计算内容长度(汉字为两个字节)
     writer.Skip(4, out int lengthPosition);
     writer.WriteString(value.MsgContent);
     writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition);
 }
示例#10
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1300_0x1303 value, IJT809Config config)
 {
     writer.WriteByte(value.SerialCount);
     foreach (var item in value.SerialList)
     {
         writer.WriteArray(item);
     }
     writer.WriteUTCDateTime(value.Time);
 }
示例#11
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9102 value, IJT809Config config)
 {
     writer.WriteUInt16(value.SubBusinessType);
     writer.Skip(4, out int subContentLengthPosition);
     writer.WriteStringPadRight(value.PlateformId, 11);
     writer.WriteUTCDateTime(value.StartTime);
     writer.WriteUTCDateTime(value.EndTime);
     writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
 }
示例#12
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1300_0x1301 value, IJT809Config config)
 {
     writer.WriteByte((byte)value.ObjectType);
     writer.WriteStringPadRight(value.ObjectID, 12);
     writer.WriteUInt32(value.InfoID);
     // 先计算内容长度(汉字为两个字节)
     writer.Skip(4, out int lengthPosition);
     writer.WriteString(value.InfoContent);
     writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition);
 }
示例#13
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B02 value, IJT809Config config)
 {
     writer.WriteByte((byte)value.Result);
     writer.WriteUInt16(value.SessionId);
     writer.WriteStringPadLeft(value.ServerIp, 32);
     writer.WriteUInt16(value.TcpPort);
     writer.WriteStringPadLeft(value.UserName, 49);
     writer.WriteStringPadLeft(value.Password, 22);
     writer.WriteStringPadLeft(value.FilePath, 200);
 }
示例#14
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800_0x9801 value, IJT809Config config)
 {
     writer.WriteByte(value.ChannelId);
     writer.WriteByte(value.AVitemType);
     writer.WriteStringPadRight(value.AuthorizeCode, 64);
     if (value.GnssData != null && value.GnssData.Length > 0)
     {
         writer.WriteArray(value.GnssData);
     }
 }
示例#15
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809Header value, IJT809Config config)
 {
     writer.WriteUInt32(value.MsgLength);
     writer.WriteUInt32(value.MsgSN);
     writer.WriteUInt16(value.BusinessType);
     writer.WriteUInt32(value.MsgGNSSCENTERID);
     writer.WriteArray(value.Version.Buffer);
     writer.WriteByte((byte)value.EncryptFlag);
     writer.WriteUInt32(value.EncryptKey);
 }
示例#16
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x120B value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUInt16(value.SourceDataType);
         writer.WriteUInt32(value.SourceMsgSn);
     }
     writer.WriteUInt32((uint)value.EwaybillInfo.Length);
     writer.WriteString(value.EwaybillInfo);
 }
示例#17
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9400_0x9403 value, IJT809Config config)
 {
     writer.WriteByte((byte)value.WarnSrc);
     writer.WriteUInt16((ushort)value.WarnType);
     writer.WriteUTCDateTime(value.WarnTime);
     // 先计算内容长度(汉字为两个字节)
     writer.Skip(4, out int lengthPosition);
     writer.WriteString(value.WarnContent);
     writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition);
 }
示例#18
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9007 value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteByte((byte)value.ErrorCode);
     }
     else
     {
         writer.WriteByte((byte)value.ReasonCode);
     }
 }
示例#19
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_Record value, IJT809Config config)
 {
     writer.WriteByte(value.ChannelId);
     writer.WriteUTCDateTime(value.StartTime);
     writer.WriteUTCDateTime(value.EndTime);
     writer.WriteUInt64(value.AlarmType);
     writer.WriteByte(value.AVItemType);
     writer.WriteByte(value.StreamType);
     writer.WriteByte(value.MemType);
     writer.WriteUInt32(value.FileSize);
 }
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00_0x9A01 value, IJT809Config config)
 {
     writer.WriteByte(value.ChannelId);
     writer.WriteByte(value.AVItemType);
     writer.WriteByte(value.StreamType);
     writer.WriteByte(value.MemType);
     writer.WriteUTCDateTime(value.PlayBackStartTime);
     writer.WriteUTCDateTime(value.PlayBackEndTime);
     writer.WriteArray(value.AuthorizeCode);
     writer.WriteArray(value.GnssData);
 }
示例#21
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x120C value, IJT809Config config)
 {
     writer.WriteStringPadRight(value.DriverName, 16);
     writer.WriteStringPadRight(value.DriverID, 20);
     writer.WriteStringPadRight(value.Licence, 40);
     writer.WriteStringPadRight(value.OrgName, 200);
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUTCDateTime(value.ValidDate);
     }
 }
示例#22
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1102 value, IJT809Config config)
 {
     writer.WriteUInt16(value.SubBusinessType);
     writer.WriteUInt32(value.DataLength);
     writer.WriteStringPadRight(value.PlateformId, 11);
     writer.WriteUTCDateTime(value.StartTime);
     writer.WriteUTCDateTime(value.EndTime);
     writer.WriteUInt32(value.LoseDymamicSum);
     writer.WriteByte(value.DisconnectNum);
     writer.WriteUInt32(value.DisconnectTime);
 }
示例#23
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9500_0x9505 value, IJT809Config config)
 {
     writer.WriteBCD(value.AuthenticationCode, 20);
     writer.WriteStringPadRight(value.AccessPointName, 20);
     writer.WriteStringPadRight(value.UserName, 49);
     writer.WriteStringPadRight(value.Password, 22);
     writer.WriteStringPadRight(value.ServerIP, 32);
     writer.WriteUInt16(value.TcpPort);
     writer.WriteUInt16(value.UdpPort);
     writer.WriteUTCDateTime(value.EndTime);
 }
示例#24
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_0x1901 value, IJT809Config config)
 {
     writer.WriteUInt32(value.ItemNum);
     if (value.ItemList.Count > 0)
     {
         var formatter = config.GetMessagePackFormatter <JT809_JT1078_0x1900_Record>();
         foreach (var item in value.ItemList)
         {
             formatter.Serialize(ref writer, item, config);
         }
     }
 }
示例#25
0
        public void WriteCRC16Test()
        {
            var bytes = new byte[4096];
            var data  = "5B000000480000008510010133EFB8010000000000270F0133EFB832303138303932303132372E302E302E31000000000000000000000000000000000000000000000003296A915D".ToHexBytes();
            JT809MessagePackWriter jT809MessagePackWriter = new JT809MessagePackWriter(bytes);

            jT809MessagePackWriter.WriteArray(data);
            jT809MessagePackWriter.WriteEncode();
            var result = jT809MessagePackWriter.FlushAndGetEncodingArray();

            Assert.Equal(data, result);
        }
 public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900_0x9902 value, IJT809Config config)
 {
     writer.WriteByte(value.ChannelId);
     writer.WriteUTCDateTime(value.StartTime);
     writer.WriteUTCDateTime(value.EndTime);
     writer.WriteUInt64(value.AlarmType);
     writer.WriteByte(value.AVItemType);
     writer.WriteByte(value.StreamType);
     writer.WriteByte(value.MemType);
     writer.WriteStringPadRight(value.AuthorizeCode, 64);
     writer.WriteArray(value.GnssData);
 }
示例#27
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1400_0x1413 value, IJT809Config config)
 {
     writer.WriteBigNumber(value.SourcePlatformId, 11);
     writer.WriteUTCDateTime(value.WarnTime);
     writer.WriteUInt16(value.SourceDataType);
     writer.WriteUInt32(value.SourceMsgSn);
     writer.WriteUTCDateTime(value.SupervisionEndTime);
     writer.WriteByte((byte)value.SupervisionLevel);
     writer.WriteStringPadRight(value.Supervisor, 16);
     writer.WriteStringPadRight(value.SupervisorTel, 20);
     writer.WriteStringPadRight(value.SupervisorEmail, 32);
 }
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9400_0x9401 value, IJT809Config config)
 {
     writer.WriteByte((byte)value.WarnSrc);
     writer.WriteUInt16((ushort)value.WarnType);
     writer.WriteUTCDateTime(value.WarnTime);
     writer.WriteHex(value.SupervisionID, 4);
     writer.WriteUTCDateTime(value.SupervisionEndTime);
     writer.WriteByte(value.SupervisionLevel);
     writer.WriteStringPadRight(value.Supervisor, 16);
     writer.WriteStringPadRight(value.SupervisorTel, 20);
     writer.WriteStringPadRight(value.SupervisorEmail, 32);
 }
示例#29
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1300_0x1302 value, IJT809Config config)
 {
     if (config.Version == JT809Version.JTT2019)
     {
         writer.WriteUInt16(value.SourceDataType);
         writer.WriteUInt32(value.SourceMsgSn);
     }
     else
     {
         writer.WriteUInt32(value.InfoID);
     }
 }
示例#30
0
 public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1300_0x1303 value, IJT809Config config)
 {
     if (value.EndMessageNumber - value.BeginMessageNumber >= byte.MaxValue)
     {
         throw new JT809Exception(JT809ErrorCode.IllegalArgument, "序列号间隔不能大于255");
     }
     value.SerialCount = (byte)(value.EndMessageNumber - value.BeginMessageNumber + 1);
     writer.WriteUInt16(RetranDataType);
     writer.WriteByte(value.SerialCount);
     writer.WriteUInt32(value.BeginMessageNumber);
     writer.WriteUInt32(value.EndMessageNumber);
     writer.WriteUTCDateTime(value.Time);
 }