Przeglądaj źródła

1,添加0x03补发消息命令

2,优化0x80查询响应命令,通过组合模式将0x81作为响应消息属性
tags/1.0.0
TK 6 lat temu
rodzic
commit
4329ff794d
48 zmienionych plików z 366 dodań i 1085 usunięć
  1. +144
    -0
      src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs
  2. +103
    -81
      src/JTNE.Protocol.Test/MessageBody/JTNE_0x80ReplyTest.cs
  3. +19
    -16
      src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBodyTest.cs
  4. +12
    -12
      src/JTNE.Protocol.Test/MessageBody/JTNE_0x81Test.cs
  5. +2
    -2
      src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBodyTest.cs
  6. +24
    -0
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Formatter.cs
  7. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x01Formatter.cs
  8. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x02Formatter.cs
  9. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x03Formatter.cs
  10. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x04Formatter.cs
  11. +0
    -27
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x05Formatter.cs
  12. +0
    -27
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x06Formatter.cs
  13. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x07Formatter.cs
  14. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x08Formatter.cs
  15. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x09Formatter.cs
  16. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0AFormatter.cs
  17. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0BFormatter.cs
  18. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0CFormatter.cs
  19. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0DFormatter.cs
  20. +0
    -27
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0EFormatter.cs
  21. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0FFormatter.cs
  22. +0
    -26
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x10Formatter.cs
  23. +2
    -39
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs
  24. +2
    -2
      src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Formatter.cs
  25. +33
    -0
      src/JTNE.Protocol/JTNE.Protocol.csproj
  26. +0
    -28
      src/JTNE.Protocol/JTNEGlobalConfigs.cs
  27. +17
    -0
      src/JTNE.Protocol/MessageBody/JTNE_0x03.cs
  28. +2
    -10
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply.cs
  29. +0
    -26
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x01.cs
  30. +0
    -26
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x02.cs
  31. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x03.cs
  32. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x04.cs
  33. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x05.cs
  34. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x06.cs
  35. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x07.cs
  36. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x08.cs
  37. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x09.cs
  38. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0A.cs
  39. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0B.cs
  40. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0C.cs
  41. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0D.cs
  42. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0E.cs
  43. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0F.cs
  44. +0
    -25
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x10.cs
  45. +1
    -29
      src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_Body.cs
  46. +3
    -3
      src/JTNE.Protocol/MessageBody/JTNE_0x81.cs
  47. +1
    -29
      src/JTNE.Protocol/MessageBody/JTNE_0x81_Body.cs
  48. +1
    -13
      src/JTNE.Protocol/MessageBody/JTNE_0x82_Body.cs

+ 144
- 0
src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs Wyświetl plik

@@ -0,0 +1,144 @@
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using JTNE.Protocol.Extensions;

namespace JTNE.Protocol.Test.MessageBody
{
public class JTNE_0x03Test
{
[Fact]
public void Test1()
{
JTNE_0x03 jTNE_0X03 = new JTNE_0x03();
JTNE_0x02 jTNE_0X02 = new JTNE_0x02();
jTNE_0X02.Values = new Dictionary<byte, JTNE_0x02_Body>();

JTNE_0x02_0x01 jTNE_0X02_0X01 = new JTNE_0x02_0x01();
jTNE_0X02_0X01.Accelerator = 0x02;
jTNE_0X02_0X01.Brakes = 0x03;
jTNE_0X02_0X01.CarStatus = 0x04;
jTNE_0X02_0X01.ChargeStatus = 0x05;
jTNE_0X02_0X01.DCStatus = 0x06;
jTNE_0X02_0X01.OperationMode = 0x07;
jTNE_0X02_0X01.Resistance = 123;
jTNE_0X02_0X01.SOC = 0x03;
jTNE_0X02_0X01.Speed = 58;
jTNE_0X02_0X01.Stall = 0x02;
jTNE_0X02_0X01.TotalDis = 6666;
jTNE_0X02_0X01.TotalTemp = 99;
jTNE_0X02_0X01.TotalVoltage = 100;
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x01, jTNE_0X02_0X01);

JTNE_0x02_0x02 jTNE_0X02_0X02 = new JTNE_0x02_0x02();
jTNE_0X02_0X02.Electricals = new List<Metadata.Electrical>();
Metadata.Electrical electrical1 = new Metadata.Electrical();
electrical1.ElControlTemp = 0x01;
electrical1.ElCurrent = 100;
electrical1.ElNo = 0x01;
electrical1.ElSpeed = 65;
electrical1.ElStatus = 0x02;
electrical1.ElTemp = 0x03;
electrical1.ElTorque = 55;
electrical1.ElVoltage = 236;
Metadata.Electrical electrical2 = new Metadata.Electrical();
electrical2.ElControlTemp = 0x02;
electrical2.ElCurrent = 101;
electrical2.ElNo = 0x02;
electrical2.ElSpeed = 66;
electrical2.ElStatus = 0x03;
electrical2.ElTemp = 0x05;
electrical2.ElTorque = 566;
electrical2.ElVoltage = 2136;
jTNE_0X02_0X02.Electricals.Add(electrical1);
jTNE_0X02_0X02.Electricals.Add(electrical2);
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x02, jTNE_0X02_0X02);

JTNE_0x02_0x03 jTNE_0X02_0X03 = new JTNE_0x02_0x03();
jTNE_0X02_0X03.DCStatus = 0x02;
jTNE_0X02_0X03.FuelBatteryCurrent = 111;
jTNE_0X02_0X03.FuelBatteryVoltage = 2222;
jTNE_0X02_0X03.FuelConsumptionRate = 3222;
jTNE_0X02_0X03.HydrogenSystemMaxConcentrations = 6666;
jTNE_0X02_0X03.HydrogenSystemMaxConcentrationsNo = 0x56;
jTNE_0X02_0X03.HydrogenSystemMaxPressure = 3336;
jTNE_0X02_0X03.HydrogenSystemMaxPressureNo = 0x65;
jTNE_0X02_0X03.HydrogenSystemMaxTemp = 3355;
jTNE_0X02_0X03.HydrogenSystemMaxTempNo = 0x22;
jTNE_0X02_0X03.Temperatures = new byte[]
{
0x01,0x02,0x03
};
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x03, jTNE_0X02_0X03);
jTNE_0X03.Supplement = jTNE_0X02;
var hex = JTNESerializer.Serialize(jTNE_0X03).ToHexString();
//01 04 05 07 00 3A 00 00 1A 0A 00 64 00 63 03 06 02 00 7B 02 03 -21
//02 02 01 02 01 00 41 00 37 03 00 EC 00 64 02 03 02 00 42 02 36 05 08 58 00 65 -26
//03 08 AE 00 6F 0C 96 00 03 01 02 03 0D 1B 22 1A 0A 56 0D 08 65 02
Assert.Equal("01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502", hex);
}
[Fact]
public void Test2()
{
var data = "01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes();
JTNE_0x03 jTNE_0X03 = JTNESerializer.Deserialize<JTNE_0x03>(data);
JTNE_0x02 jTNE_0X02 = jTNE_0X03.Supplement;
JTNE_0x02_0x01 jTNE_0X02_0X01 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x01] as JTNE_0x02_0x01;
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x01, jTNE_0X02_0X01.TypeCode);
Assert.Equal(0x02, jTNE_0X02_0X01.Accelerator);
Assert.Equal(0x03, jTNE_0X02_0X01.Brakes);
Assert.Equal(0x04, jTNE_0X02_0X01.CarStatus);
Assert.Equal(0x05, jTNE_0X02_0X01.ChargeStatus);
Assert.Equal(0x06, jTNE_0X02_0X01.DCStatus);
Assert.Equal(0x07, jTNE_0X02_0X01.OperationMode);
Assert.Equal(123, jTNE_0X02_0X01.Resistance);
Assert.Equal(0x03, jTNE_0X02_0X01.SOC);
Assert.Equal(58, jTNE_0X02_0X01.Speed);
Assert.Equal(0x02, jTNE_0X02_0X01.Stall);
Assert.Equal((uint)6666, jTNE_0X02_0X01.TotalDis);
Assert.Equal(99, jTNE_0X02_0X01.TotalTemp);
Assert.Equal(100, jTNE_0X02_0X01.TotalVoltage);


JTNE_0x02_0x02 jTNE_0X02_0X02 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x02] as JTNE_0x02_0x02;
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x02, jTNE_0X02_0X02.TypeCode);
Assert.Equal(2, jTNE_0X02_0X02.ElectricalCount);
Metadata.Electrical electrical1 = jTNE_0X02_0X02.Electricals[0];
Assert.Equal(0x01, electrical1.ElControlTemp);
Assert.Equal(100, electrical1.ElCurrent);
Assert.Equal(0x01, electrical1.ElNo);
Assert.Equal(65, electrical1.ElSpeed);
Assert.Equal(0x02, electrical1.ElStatus);
Assert.Equal(0x03, electrical1.ElTemp);
Assert.Equal(55, electrical1.ElTorque);
Assert.Equal(236, electrical1.ElVoltage);
Metadata.Electrical electrical2 = jTNE_0X02_0X02.Electricals[1];
Assert.Equal(0x02, electrical2.ElControlTemp);
Assert.Equal(101, electrical2.ElCurrent);
Assert.Equal(0x02, electrical2.ElNo);
Assert.Equal(66, electrical2.ElSpeed);
Assert.Equal(0x03, electrical2.ElStatus);
Assert.Equal(0x05, electrical2.ElTemp);
Assert.Equal(566, electrical2.ElTorque);
Assert.Equal(2136, electrical2.ElVoltage);

JTNE_0x02_0x03 jTNE_0X02_0X03 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x03] as JTNE_0x02_0x03;

Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x03, jTNE_0X02_0X03.TypeCode);
Assert.Equal(0x02, jTNE_0X02_0X03.DCStatus);
Assert.Equal(111, jTNE_0X02_0X03.FuelBatteryCurrent);
Assert.Equal(2222, jTNE_0X02_0X03.FuelBatteryVoltage);
Assert.Equal(3222, jTNE_0X02_0X03.FuelConsumptionRate);
Assert.Equal(6666, jTNE_0X02_0X03.HydrogenSystemMaxConcentrations);
Assert.Equal(0x56, jTNE_0X02_0X03.HydrogenSystemMaxConcentrationsNo);
Assert.Equal(3336, jTNE_0X02_0X03.HydrogenSystemMaxPressure);
Assert.Equal(0x65, jTNE_0X02_0X03.HydrogenSystemMaxPressureNo);
Assert.Equal(3355, jTNE_0X02_0X03.HydrogenSystemMaxTemp);
Assert.Equal(0x22, jTNE_0X02_0X03.HydrogenSystemMaxTempNo);
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03.Temperatures);
}
}
}

+ 103
- 81
src/JTNE.Protocol.Test/MessageBody/JTNE_0x80ReplyTest.cs Wyświetl plik

@@ -13,15 +13,19 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test1() public void Test1()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81
jTNE_0x80Reply.ParamNum = 1; {
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { OperateTime = DateTime.Parse("2019-01-22 23:55:56"),
new JTNE_0x80Reply_0x01{ ParamNum = 1,
ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x01{
ParamId=0x01, ParamId=0x01,
ParamLength=2, ParamLength=2,
ParamValue=10 ParamValue=10
} }
}
}; };
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("1301161737380101000A", hex); Assert.Equal("1301161737380101000A", hex);
} }
@@ -31,28 +35,32 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380101000A".ToHexBytes(); var data = "1301161737380101000A".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(1, jTNE_0x80Reply.ParamNum); Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x80Reply_0x01 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01
{ {
ParamId = 0x01, ParamId = 0x01,
ParamLength = 2, ParamLength = 2,
ParamValue = 10 ParamValue = 10
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList[0] )); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0]));
} }
[Fact] [Fact]
public void Test2() public void Test2()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81
jTNE_0x80Reply.ParamNum = 1; {
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { OperateTime = DateTime.Parse("2019-01-22 23:55:56"),
new JTNE_0x80Reply_0x02{ ParamNum = 1,
ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x02{
ParamId=0x02, ParamId=0x02,
ParamLength=2, ParamLength=2,
ParamValue=20 ParamValue=20
} }
}
}; };
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("13011617373801020014", hex); Assert.Equal("13011617373801020014", hex);
} }
@@ -62,31 +70,35 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "13011617373801020014".ToHexBytes(); var data = "13011617373801020014".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(1, jTNE_0x80Reply.ParamNum); Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x80Reply_0x02 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02
{ {
ParamId = 0x02, ParamId = 0x02,
ParamLength = 2, ParamLength = 2,
ParamValue = 20 ParamValue = 20
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList[0])); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0]));
} }
[Fact] [Fact]
public void Test4() public void Test4()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { {
new JTNE_0x80Reply_0x04{ OperateTime = DateTime.Parse("2019-01-22 23:55:56"),
ParamNum=3,
ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x04{
ParamValue=8 ParamValue=8
},new JTNE_0x80Reply_0x05{ },new JTNE_0x81_0x05{
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 }
}, },
new JTNE_0x80Reply_0x06{ new JTNE_0x81_0x06{
ParamValue=40 ParamValue=40
} }
}
}; };
jTNE_0x80Reply.ParamNum =(byte)jTNE_0x80Reply.ParamList.Count; jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("130116173738030408050102030405060708060028", hex); Assert.Equal("130116173738030408050102030405060708060028", hex);
} }
@@ -96,18 +108,18 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "130116173738030408050102030405060708060028".ToHexBytes(); var data = "130116173738030408050102030405060708060028".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(jTNE_0x80Reply.ParamList.Count, jTNE_0x80Reply.ParamNum); Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x80Reply_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x80Reply_0x04{ new JTNE_0x81_0x04{
ParamValue=8 ParamValue=8
},new JTNE_0x80Reply_0x05{ },new JTNE_0x81_0x05{
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, ParamValue=new byte[]{1,2,3,4,5,6,7,8 },
ParamLength=8 ParamLength=8
}, new JTNE_0x80Reply_0x06{ }, new JTNE_0x81_0x06{
ParamValue=40 ParamValue=40
} }
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList)); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList));
} }




@@ -115,18 +127,22 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test5() public void Test5()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { {
new JTNE_0x80Reply_0x0D{ OperateTime = DateTime.Parse("2019-01-22 23:55:56"),
ParamNum=3,
ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x0D{
ParamValue=8 ParamValue=8
},new JTNE_0x80Reply_0x0E{ },new JTNE_0x81_0x0E{
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 }
}, },
new JTNE_0x80Reply_0x0F{ new JTNE_0x81_0x0F{
ParamValue=40 ParamValue=40
} }
}
}; };
jTNE_0x80Reply.ParamNum = (byte)jTNE_0x80Reply.ParamList.Count; jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("130116173738030D080E01020304050607080F0028", hex); Assert.Equal("130116173738030D080E01020304050607080F0028", hex);
} }
@@ -136,18 +152,18 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "130116173738030D080E01020304050607080F0028".ToHexBytes(); var data = "130116173738030D080E01020304050607080F0028".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(jTNE_0x80Reply.ParamList.Count, jTNE_0x80Reply.ParamNum); Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x80Reply_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x80Reply_0x0D{ new JTNE_0x81_0x0D{
ParamValue=8 ParamValue=8
},new JTNE_0x80Reply_0x0E{ },new JTNE_0x81_0x0E{
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, ParamValue=new byte[]{1,2,3,4,5,6,7,8 },
ParamLength=8 ParamLength=8
}, new JTNE_0x80Reply_0x0F{ }, new JTNE_0x81_0x0F{
ParamValue=40 ParamValue=40
} }
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList)); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList));
} }




@@ -155,15 +171,18 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test3() public void Test3()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81 {
jTNE_0x80Reply.ParamNum = 1; OperateTime= DateTime.Parse("2019-01-22 23:55:56"),
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { ParamNum=1,
new JTNE_0x80Reply_0x03{ ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x03{
ParamId=0x03, ParamId=0x03,
ParamLength=2, ParamLength=2,
ParamValue=30 ParamValue=30
} }
}
}; };
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("1301161737380103001E", hex); Assert.Equal("1301161737380103001E", hex);
} }
@@ -173,59 +192,62 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380103001E".ToHexBytes(); var data = "1301161737380103001E".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(1, jTNE_0x80Reply.ParamNum); Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x80Reply_0x03 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03
{ {
ParamId = 0x03, ParamId = 0x03,
ParamLength = 2, ParamLength = 2,
ParamValue = 30 ParamValue = 30
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList[0])); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0]));
} }
[Fact] [Fact]
public void TestAll() public void TestAll()
{ {
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81 {
jTNE_0x80Reply.ParamNum = 12; OperateTime = DateTime.Parse("2019-01-22 23:55:56"),
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { ParamNum=12,
new JTNE_0x80Reply_0x01{ ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x01{
ParamValue=10 ParamValue=10
}, },
new JTNE_0x80Reply_0x02{ new JTNE_0x81_0x02{
ParamValue=20 ParamValue=20
}, },
new JTNE_0x80Reply_0x03{ new JTNE_0x81_0x03{
ParamValue=30 ParamValue=30
}, },
new JTNE_0x80Reply_0x06{ new JTNE_0x81_0x06{
ParamValue=40 ParamValue=40
}, },
new JTNE_0x80Reply_0x07{ new JTNE_0x81_0x07{
ParamValue="abcde" ParamValue="abcde"
}, },
new JTNE_0x80Reply_0x08{ new JTNE_0x81_0x08{
ParamValue="12345" ParamValue="12345"
}, },
new JTNE_0x80Reply_0x09{ new JTNE_0x81_0x09{
ParamValue=50 ParamValue=50
}, },
new JTNE_0x80Reply_0x0A{ new JTNE_0x81_0x0A{
ParamValue=60 ParamValue=60
}, },
new JTNE_0x80Reply_0x0B{ new JTNE_0x81_0x0B{
ParamValue=70 ParamValue=70
}, },
new JTNE_0x80Reply_0x0C{ new JTNE_0x81_0x0C{
ParamValue=80 ParamValue=80
}, },
new JTNE_0x80Reply_0x0F{ new JTNE_0x81_0x0F{
ParamValue=90 ParamValue=90
}, },
new JTNE_0x80Reply_0x10{ new JTNE_0x81_0x10{
ParamValue=0x01 ParamValue=0x01
} }
}
}; };
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001", hex); Assert.Equal("1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001", hex);
} }
@@ -235,46 +257,46 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes(); var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(12, jTNE_0x80Reply.ParamNum); Assert.Equal(12, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x80Reply_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x80Reply_0x01{ new JTNE_0x81_0x01{
ParamValue=10 ParamValue=10
}, },
new JTNE_0x80Reply_0x02{ new JTNE_0x81_0x02{
ParamValue=20 ParamValue=20
}, },
new JTNE_0x80Reply_0x03{ new JTNE_0x81_0x03{
ParamValue=30 ParamValue=30
}, },
new JTNE_0x80Reply_0x06{ new JTNE_0x81_0x06{
ParamValue=40 ParamValue=40
}, },
new JTNE_0x80Reply_0x07{ new JTNE_0x81_0x07{
ParamValue="abcde" ParamValue="abcde"
}, },
new JTNE_0x80Reply_0x08{ new JTNE_0x81_0x08{
ParamValue="12345" ParamValue="12345"
}, },
new JTNE_0x80Reply_0x09{ new JTNE_0x81_0x09{
ParamValue=50 ParamValue=50
}, },
new JTNE_0x80Reply_0x0A{ new JTNE_0x81_0x0A{
ParamValue=60 ParamValue=60
}, },
new JTNE_0x80Reply_0x0B{ new JTNE_0x81_0x0B{
ParamValue=70 ParamValue=70
}, },
new JTNE_0x80Reply_0x0C{ new JTNE_0x81_0x0C{
ParamValue=80 ParamValue=80
}, },
new JTNE_0x80Reply_0x0F{ new JTNE_0x81_0x0F{
ParamValue=90 ParamValue=90
}, },
new JTNE_0x80Reply_0x10{ new JTNE_0x81_0x10{
ParamValue=0x01 ParamValue=0x01
} }
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList)); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList));
} }
} }
} }

+ 19
- 16
src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBodyTest.cs Wyświetl plik

@@ -14,37 +14,40 @@ namespace JTNE.Protocol.Test.MessageBody
[Fact] [Fact]
public void Test1() public void Test1()
{ {
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomBody(0x80, typeof(JTNE_0x80Reply_0x80)); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80));
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomBody(0x81, typeof(JTNE_0x80Reply_0x81)); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81));
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomDepenedBody(0x81, 0x80); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80);


JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = DateTime.Parse("2019-01-22 23:55:56"); JTNE_0x81 jTNE_0X81 = new JTNE_0x81 {
jTNE_0x80Reply.ParamNum = 2; OperateTime= DateTime.Parse("2019-01-22 23:55:56"),
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { ParamNum=2,
new JTNE_0x80Reply_0x80{ ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x80Reply_0x80{
ParamValue=6 ParamValue=6
}, },
new JTNE_0x80Reply_0x81{ new JTNE_0x80Reply_0x81{
ParamLength=6, ParamLength=6,
ParamValue=new byte[]{ 1,2,3,4,5,6 } ParamValue=new byte[]{ 1,2,3,4,5,6 }
} }
}
}; };
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81;
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString();
Assert.Equal("13011617373802800681010203040506", hex); Assert.Equal("13011617373802800681010203040506", hex);
} }
[Fact] [Fact]
public void Test1_1() public void Test1_1()
{ {
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomBody(0x80, typeof(JTNE_0x80Reply_0x80)); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80));
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomBody(0x81, typeof(JTNE_0x80Reply_0x81)); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81));
JTNEGlobalConfigs.Instance.Register_JTNE0x80ReplyCustomDepenedBody(0x81, 0x80); JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80);


var data = "13011617373802800681010203040506".ToHexBytes(); var data = "13011617373802800681010203040506".ToHexBytes();
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.ReplyTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime);
Assert.Equal(jTNE_0x80Reply.ParamList.Count, jTNE_0x80Reply.ParamNum); Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x80Reply_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x80Reply_0x80{ new JTNE_0x80Reply_0x80{
ParamValue=6 ParamValue=6
}, },
@@ -52,18 +55,18 @@ namespace JTNE.Protocol.Test.MessageBody
ParamLength=6, ParamLength=6,
ParamValue=new byte[]{ 1,2,3,4,5,6 } ParamValue=new byte[]{ 1,2,3,4,5,6 }
} }
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.ParamList)); }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList));
} }
} }
[JTNEFormatter(typeof(JTNE_0x80Reply_0x80Formatter))] [JTNEFormatter(typeof(JTNE_0x80Reply_0x80Formatter))]
public class JTNE_0x80Reply_0x80 : JTNE_0x80Reply_Body public class JTNE_0x80Reply_0x80 : JTNE_0x81_Body
{ {
public override byte ParamId { get; set; }= 0x80; public override byte ParamId { get; set; }= 0x80;
public override byte ParamLength { get; set; } = 1; public override byte ParamLength { get; set; } = 1;
public byte ParamValue { get; set; } public byte ParamValue { get; set; }
} }
[JTNEFormatter(typeof(JTNE_0x80Reply_0x81Formatter))] [JTNEFormatter(typeof(JTNE_0x80Reply_0x81Formatter))]
public class JTNE_0x80Reply_0x81 : JTNE_0x80Reply_Body public class JTNE_0x80Reply_0x81 : JTNE_0x81_Body
{ {
public override byte ParamId { get; set; } = 0x81; public override byte ParamId { get; set; } = 0x81;
public override byte ParamLength { get; set; } public override byte ParamLength { get; set; }


+ 12
- 12
src/JTNE.Protocol.Test/MessageBody/JTNE_0x81Test.cs Wyświetl plik

@@ -13,7 +13,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test1() public void Test1()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamNum = 1; jTNE_0X81.ParamNum = 1;
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x01{ new JTNE_0x81_0x01{
@@ -31,7 +31,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380101000A".ToHexBytes(); var data = "1301161737380101000A".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(1, jTNE_0X81.ParamNum); Assert.Equal(1, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01
{ {
@@ -44,7 +44,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test2() public void Test2()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamNum = 1; jTNE_0X81.ParamNum = 1;
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x02{ new JTNE_0x81_0x02{
@@ -62,7 +62,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "13011617373801020014".ToHexBytes(); var data = "13011617373801020014".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(1, jTNE_0X81.ParamNum); Assert.Equal(1, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02
{ {
@@ -75,7 +75,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test4() public void Test4()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x04{ new JTNE_0x81_0x04{
ParamValue=8 ParamValue=8
@@ -96,7 +96,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "130116173738030408050102030405060708060028".ToHexBytes(); var data = "130116173738030408050102030405060708060028".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x81_0x04{ new JTNE_0x81_0x04{
@@ -115,7 +115,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test5() public void Test5()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x0D{ new JTNE_0x81_0x0D{
ParamValue=8 ParamValue=8
@@ -136,7 +136,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "130116173738030D080E01020304050607080F0028".ToHexBytes(); var data = "130116173738030D080E01020304050607080F0028".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x81_0x0D{ new JTNE_0x81_0x0D{
@@ -155,7 +155,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void Test3() public void Test3()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamNum = 1; jTNE_0X81.ParamNum = 1;
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x03{ new JTNE_0x81_0x03{
@@ -173,7 +173,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380103001E".ToHexBytes(); var data = "1301161737380103001E".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(1, jTNE_0X81.ParamNum); Assert.Equal(1, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03 Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03
{ {
@@ -186,7 +186,7 @@ namespace JTNE.Protocol.Test.MessageBody
public void TestAll() public void TestAll()
{ {
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamNum = 12; jTNE_0X81.ParamNum = 12;
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x01{ new JTNE_0x81_0x01{
@@ -235,7 +235,7 @@ namespace JTNE.Protocol.Test.MessageBody
{ {
var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes(); var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(12, jTNE_0X81.ParamNum); Assert.Equal(12, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x81_0x01{ new JTNE_0x81_0x01{


+ 2
- 2
src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBodyTest.cs Wyświetl plik

@@ -22,7 +22,7 @@ namespace JTNE.Protocol.Test.MessageBody




JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = DateTime.Parse("2019-01-22 23:55:56"); jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
jTNE_0X81.ParamNum = 2; jTNE_0X81.ParamNum = 2;
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
new JTNE_0x81_0x80{ new JTNE_0x81_0x80{
@@ -45,7 +45,7 @@ namespace JTNE.Protocol.Test.MessageBody


var data = "13011617373802800681010203040506".ToHexBytes(); var data = "13011617373802800681010203040506".ToHexBytes();
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.SetTime); Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum);
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
new JTNE_0x81_0x80{ new JTNE_0x81_0x80{


+ 24
- 0
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Formatter.cs Wyświetl plik

@@ -0,0 +1,24 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x03_Formatter : IJTNEFormatter<JTNE_0x03>
{
public JTNE_0x03 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
JTNE_0x03 jTNE_0X03 = new JTNE_0x03();
jTNE_0X03.Supplement= JTNEFormatterExtensions.GetFormatter<JTNE_0x02>().Deserialize(bytes, out readSize);
return jTNE_0X03;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x03 value)
{
offset = JTNEFormatterExtensions.GetFormatter<JTNE_0x02>().Serialize(ref bytes, offset,value.Supplement);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x01Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x01Formatter : IJTNEFormatter<JTNE_0x80Reply_0x01>
{
public JTNE_0x80Reply_0x01 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x01 jTNE_0x80Reply_0x01 = new JTNE_0x80Reply_0x01();
jTNE_0x80Reply_0x01.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x01;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x01 value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x02Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x02Formatter : IJTNEFormatter<JTNE_0x80Reply_0x02>
{
public JTNE_0x80Reply_0x02 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x02 jTNE_0x80Reply_0x02 = new JTNE_0x80Reply_0x02();
jTNE_0x80Reply_0x02.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x02;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x02 value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x03Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x03Formatter : IJTNEFormatter<JTNE_0x80Reply_0x03>
{
public JTNE_0x80Reply_0x03 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x03 jTNE_0x80Reply_0x03 = new JTNE_0x80Reply_0x03();
jTNE_0x80Reply_0x03.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x03;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x03 value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x04Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x04Formatter : IJTNEFormatter<JTNE_0x80Reply_0x04>
{
public JTNE_0x80Reply_0x04 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x04 jTNE_0x80Reply_0x04 = new JTNE_0x80Reply_0x04();
jTNE_0x80Reply_0x04.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x04;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x04 value)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 27
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x05Formatter.cs Wyświetl plik

@@ -1,27 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x05Formatter : IJTNEFormatter<JTNE_0x80Reply_0x05>
{
public JTNE_0x80Reply_0x05 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x05 jTNE_0x80Reply_0x05 = new JTNE_0x80Reply_0x05();
jTNE_0x80Reply_0x05.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset);
jTNE_0x80Reply_0x05.ParamLength = (byte)bytes.Length;
readSize = offset;
return jTNE_0x80Reply_0x05;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x05 value)
{
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 27
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x06Formatter.cs Wyświetl plik

@@ -1,27 +0,0 @@

using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x06Formatter : IJTNEFormatter<JTNE_0x80Reply_0x06>
{
public JTNE_0x80Reply_0x06 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x06 jTNE_0x80Reply_0x06 = new JTNE_0x80Reply_0x06();
jTNE_0x80Reply_0x06.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x06;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x06 value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x07Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x07Formatter : IJTNEFormatter<JTNE_0x80Reply_0x07>
{
public JTNE_0x80Reply_0x07 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x07 jTNE_0x80Reply_0x07 = new JTNE_0x80Reply_0x07();
jTNE_0x80Reply_0x07.ParamValue = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0x80Reply_0x07.ParamLength);
readSize = offset;
return jTNE_0x80Reply_0x07;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x07 value)
{
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.ParamValue,value.ParamLength);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x08Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x08Formatter : IJTNEFormatter<JTNE_0x80Reply_0x08>
{
public JTNE_0x80Reply_0x08 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x08 jTNE_0x80Reply_0x08 = new JTNE_0x80Reply_0x08();
jTNE_0x80Reply_0x08.ParamValue = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0x80Reply_0x08.ParamLength);
readSize = offset;
return jTNE_0x80Reply_0x08;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x08 value)
{
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.ParamValue,value.ParamLength);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x09Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x09Formatter : IJTNEFormatter<JTNE_0x80Reply_0x09>
{
public JTNE_0x80Reply_0x09 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x09 jTNE_0x80Reply_0x09 = new JTNE_0x80Reply_0x09();
jTNE_0x80Reply_0x09.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x09;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x09 value)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0AFormatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0AFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0A>
{
public JTNE_0x80Reply_0x0A Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0A jTNE_0x80Reply_0x0A = new JTNE_0x80Reply_0x0A();
jTNE_0x80Reply_0x0A.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x0A;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0A value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0BFormatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0BFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0B>
{
public JTNE_0x80Reply_0x0B Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0B jTNE_0x80Reply_0x0B = new JTNE_0x80Reply_0x0B();
jTNE_0x80Reply_0x0B.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x0B;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0B value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0CFormatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0CFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0C>
{
public JTNE_0x80Reply_0x0C Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0C jTNE_0x80Reply_0x0C = new JTNE_0x80Reply_0x0C();
jTNE_0x80Reply_0x0C.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x0C;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0C value)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0DFormatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0DFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0D>
{
public JTNE_0x80Reply_0x0D Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0D jTNE_0x80Reply_0x0D = new JTNE_0x80Reply_0x0D();
jTNE_0x80Reply_0x0D.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x0D;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0D value)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 27
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0EFormatter.cs Wyświetl plik

@@ -1,27 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0EFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0E>
{
public JTNE_0x80Reply_0x0E Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0E jTNE_0x80Reply_0x0E= new JTNE_0x80Reply_0x0E();
jTNE_0x80Reply_0x0E.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset);
jTNE_0x80Reply_0x0E.ParamLength = (byte)bytes.Length;
readSize = offset;
return jTNE_0x80Reply_0x0E;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0E value)
{
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x0FFormatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x0FFormatter : IJTNEFormatter<JTNE_0x80Reply_0x0F>
{
public JTNE_0x80Reply_0x0F Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x0F jTNE_0x80Reply_0x0F = new JTNE_0x80Reply_0x0F();
jTNE_0x80Reply_0x0F.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x0F;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x0F value)
{
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue);
return offset;
}
}
}

+ 0
- 26
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_0x10Formatter.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Extensions;
using JTNE.Protocol.MessageBody;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{
public class JTNE_0x80Reply_0x10Formatter : IJTNEFormatter<JTNE_0x80Reply_0x10>
{
public JTNE_0x80Reply_0x10 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JTNE_0x80Reply_0x10 jTNE_0x80Reply_0x10 = new JTNE_0x80Reply_0x10();
jTNE_0x80Reply_0x10.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
readSize = offset;
return jTNE_0x80Reply_0x10;
}

public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x10 value)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue);
return offset;
}
}
}

+ 2
- 39
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs Wyświetl plik

@@ -11,51 +11,14 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{ {
public JTNE_0x80Reply Deserialize(ReadOnlySpan<byte> bytes, out int readSize) public JTNE_0x80Reply Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{ {
int offset = 0;
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply();
jTNE_0x80Reply.ReplyTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); jTNE_0x80Reply.JTNE_Reply0x80 = JTNEFormatterExtensions.GetFormatter<JTNE_0x81>().Deserialize(bytes, out readSize);
jTNE_0x80Reply.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
for (int i = 0; i < jTNE_0x80Reply.ParamNum; i++)
{
var paramId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);//参数ID
int readSubBodySize = 0;
if (JTNE_0x80Reply_Body.JTNE_0x80ReplyMethod.TryGetValue(paramId, out Type type))
{
ReadOnlySpan<byte> readOnlySpan = new ReadOnlySpan<byte>();
if (JTNE_0x80Reply_Body.JTNE_0x80ReplyLengthOfADependOnValueOfB.TryGetValue(paramId, out byte dependOnParamId)) {
var length = jTNE_0x80Reply.ParamList.FirstOrDefault(m => m.ParamId== dependOnParamId).ParamLength;
int tempOffset = 0;
int lengthVal = JTNEBinaryExtensions.ReadByteLittle(bytes.Slice(offset - length - 1, length), ref tempOffset);
readOnlySpan = bytes.Slice(offset, lengthVal);
}
else {
readOnlySpan = bytes.Slice(offset);
}
if (jTNE_0x80Reply.ParamList != null)
{
jTNE_0x80Reply.ParamList.Add(JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize));
}
else
{
jTNE_0x80Reply.ParamList = new List<JTNE_0x80Reply_Body> { JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize) };
}
}
offset = offset + readSubBodySize;
}
readSize = offset;
return jTNE_0x80Reply; return jTNE_0x80Reply;
} }


public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply value) public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply value)
{ {
offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.ReplyTime); offset=JTNEFormatterExtensions.GetFormatter<JTNE_0x81>().Serialize(ref bytes, offset,value.JTNE_Reply0x80);
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamNum);
foreach (var item in value.ParamList)
{
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, item.ParamId);
object obj = JTNEFormatterExtensions.GetFormatter(item.GetType());
offset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize(obj, ref bytes, offset, item);
}
return offset; return offset;
} }
} }


+ 2
- 2
src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Formatter.cs Wyświetl plik

@@ -13,7 +13,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters
{ {
int offset = 0; int offset = 0;
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
jTNE_0X81.SetTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); jTNE_0X81.OperateTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset);
jTNE_0X81.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X81.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);
for (int i = 0; i < jTNE_0X81.ParamNum; i++) for (int i = 0; i < jTNE_0X81.ParamNum; i++)
{ {
@@ -48,7 +48,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters


public int Serialize(ref byte[] bytes, int offset, JTNE_0x81 value) public int Serialize(ref byte[] bytes, int offset, JTNE_0x81 value)
{ {
offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.SetTime); offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.OperateTime);
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamNum); offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamNum);
foreach (var item in value.ParamList) foreach (var item in value.ParamList)
{ {


+ 33
- 0
src/JTNE.Protocol/JTNE.Protocol.csproj Wyświetl plik

@@ -26,12 +26,45 @@
</PropertyGroup> </PropertyGroup>


<ItemGroup> <ItemGroup>
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x01Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x02Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x03Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x04Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x05Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x06Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x07Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x08Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x09Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0AFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0BFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0CFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0DFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0EFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x0FFormatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x80Reply_0x10Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x00Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x00Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x02Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x02Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x03Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x03Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x04Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x04Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x05Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x05Formatter.cs" />
<Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x07Formatter.cs" /> <Compile Remove="Formatters\MessageBodyFormatters\JTNE_0x82_0x07Formatter.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x01.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x02.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x03.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x04.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x05.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x06.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x07.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x08.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x09.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0A.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0B.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0C.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0D.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0E.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x0F.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_0x10.cs" />
<Compile Remove="MessageBody\JTNE_0x80Reply_Body.cs" />
</ItemGroup> </ItemGroup>


<ItemGroup> <ItemGroup>


+ 0
- 28
src/JTNE.Protocol/JTNEGlobalConfigs.cs Wyświetl plik

@@ -132,34 +132,6 @@ namespace JTNE.Protocol
/// ///
/// </summary> /// </summary>
/// <param name="typeCode">自定义类型编码</param> /// <param name="typeCode">自定义类型编码</param>
/// <param name="type">继承JTNE.Protocol.MessageBody.JTNE_0x80Reply_Body</param>
/// <returns></returns>
public JTNEGlobalConfigs Register_JTNE0x80ReplyCustomBody(byte typeCode, Type type)
{
if (!JTNE_0x80Reply_Body.JTNE_0x80ReplyMethod.ContainsKey(typeCode))
{
JTNE_0x80Reply_Body.JTNE_0x80ReplyMethod.Add(typeCode, type);
}
return instance.Value;
}
/// <summary>
///
/// </summary>
/// <param name="typeCode">自定义类型编码</param>
/// <param name="type">继承JTNE.Protocol.MessageBody.JTNE_0x80Reply_Body</param>
/// <returns></returns>
public JTNEGlobalConfigs Register_JTNE0x80ReplyCustomDepenedBody(byte DependerParamId, byte DependedParamId)
{
if (!JTNE_0x80Reply_Body.JTNE_0x80ReplyLengthOfADependOnValueOfB.ContainsKey(DependerParamId))
{
JTNE_0x80Reply_Body.JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(DependerParamId, DependedParamId);
}
return instance.Value;
}
/// <summary>
///
/// </summary>
/// <param name="typeCode">自定义类型编码</param>
/// <param name="type">继承JTNE.Protocol.MessageBody.JTNE_0x81_Body</param> /// <param name="type">继承JTNE.Protocol.MessageBody.JTNE_0x81_Body</param>
/// <returns></returns> /// <returns></returns>
public JTNEGlobalConfigs Register_JTNE0x82CustomBody(byte typeCode, Type type) public JTNEGlobalConfigs Register_JTNE0x82CustomBody(byte typeCode, Type type)


+ 17
- 0
src/JTNE.Protocol/MessageBody/JTNE_0x03.cs Wyświetl plik

@@ -0,0 +1,17 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 实时信息上报
/// </summary>
[JTNEFormatter(typeof(JTNE_0x03_Formatter))]
public class JTNE_0x03 : JTNEBodies
{
public JTNE_0x02 Supplement { get; set; }
}
}

+ 2
- 10
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply.cs Wyświetl plik

@@ -13,16 +13,8 @@ namespace JTNE.Protocol.MessageBody
public class JTNE_0x80Reply : JTNEBodies public class JTNE_0x80Reply : JTNEBodies
{ {
/// <summary> /// <summary>
/// 响应查询时间 ///
/// </summary> /// </summary>
public DateTime ReplyTime { get; set; } public JTNE_0x81 JTNE_Reply0x80 { get; set; }
/// <summary>
/// 参数总数
/// </summary>
public byte ParamNum { get; set; }
/// <summary>
/// 参数列表
/// </summary>
public List<JTNE_0x80Reply_Body> ParamList { get; set; }
} }
} }

+ 0
- 26
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x01.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 车载终端本地存储时间周期,有效值范围:0~60 000(表示0ms~60 000ms)最小计量单元:1ms
/// 0x81_0x01
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x01Formatter))]
public class JTNE_0x80Reply_0x01: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x01;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
/// 车载终端本地存储时间周期,(表示0ms~60 000ms)最小计量单元:1ms
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 26
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x02.cs Wyświetl plik

@@ -1,26 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 正常时,信息上报时间周期,有效值范围:1~600(表示1s~600s) 最小计量单元:1s
/// 0x81_0x02
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x02Formatter))]
public class JTNE_0x80Reply_0x02: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x02;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
/// 正常时,信息上报时间周期,有效值范围:1~600(表示1s~600s) 最小计量单元:1s
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x03.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 出现报警时,信息上报时间周期,有效值范围:0~60 000(表示0ms~60 000ms)
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x03Formatter))]
public class JTNE_0x80Reply_0x03: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x03;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
///出现报警时,信息上报时间周期,有效值范围:0~60 000(表示0ms~60 000ms)
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x04.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 远程服务和管理平台域名长度M
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x04Formatter))]
public class JTNE_0x80Reply_0x04: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x04;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 1;
/// <summary>
///远程服务和管理平台域名长度M
/// </summary>
public byte ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x05.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 远程服务和管理平台域名
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x05Formatter))]
public class JTNE_0x80Reply_0x05: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x05;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; }
/// <summary>
///远程服务和管理平台域名
/// </summary>
public byte[] ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x06.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 远程服务和管理平台端口,有效值范围:0~65531
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x06Formatter))]
public class JTNE_0x80Reply_0x06: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x06;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
///远程服务和管理平台端口,有效值范围:0~65531
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x07.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 硬件版本,车载终端厂商自行定义
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x07Formatter))]
public class JTNE_0x80Reply_0x07: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x07;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 5;
/// <summary>
///硬件版本,车载终端厂商自行定义 数据长度= 5;
/// </summary>
public string ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x08.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 固件版本,车载终端厂商自行定义
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x08Formatter))]
public class JTNE_0x80Reply_0x08: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x08;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 5;
/// <summary>
///固件版本,车载终端厂商自行定义
/// </summary>
public string ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x09.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 车载终端心跳发送周期,有效值范围:1~240(表示1s~240s)
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x09Formatter))]
public class JTNE_0x80Reply_0x09: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x09;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 1;
/// <summary>
/// 车载终端心跳发送周期,有效值范围:1~240(表示1s~240s)
/// </summary>
public byte ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0A.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 终端应答超时时间,有效值范围:1~600(表示1s~600s)
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0AFormatter))]
public class JTNE_0x80Reply_0x0A: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0A;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
///终端应答超时时间,有效值范围:1~600(表示1s~600s)
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0B.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 平台应答超时时间,有效值范围:1~600(表示1s~600s)
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0BFormatter))]
public class JTNE_0x80Reply_0x0B: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0B;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
///平台应答超时时间,有效值范围:1~600(表示1s~600s)
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0C.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 连续三次登入失败后,到下一次登入的时间间隔。有效值范围:1~240(表示1min~240min)
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0CFormatter))]
public class JTNE_0x80Reply_0x0C: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0C;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 1;
/// <summary>
/// 连续三次登入失败后,到下一次登入的时间间隔。有效值范围:1~240(表示1min~240min)
/// </summary>
public byte ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0D.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 公共平台域名长度N
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0DFormatter))]
public class JTNE_0x80Reply_0x0D: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0D;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 1;
/// <summary>
///公共平台域名长度N
/// </summary>
public byte ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0E.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 公共平台域名
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0EFormatter))]
public class JTNE_0x80Reply_0x0E: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0E;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; }
/// <summary>
///公共平台域名
/// </summary>
public byte[] ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x0F.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 公共平台端口,有效值访问:0~65531
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x0FFormatter))]
public class JTNE_0x80Reply_0x0F: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x0F;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
///公共平台端口,有效值访问:0~65531
/// </summary>
public ushort ParamValue { get; set; }
}
}

+ 0
- 25
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_0x10.cs Wyświetl plik

@@ -1,25 +0,0 @@
using JTNE.Protocol.Attributes;
using JTNE.Protocol.Formatters.MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JTNE.Protocol.MessageBody
{
/// <summary>
/// 是否处于抽样监测中 0x01 表示是 0x02 表示否
/// </summary>
[JTNEFormatter(typeof(JTNE_0x80Reply_0x10Formatter))]
public class JTNE_0x80Reply_0x10: JTNE_0x80Reply_Body
{
public override byte ParamId { get; set; } = 0x10;
/// <summary>
/// 数据 长度
/// </summary>
public override byte ParamLength { get; set; } = 1;
/// <summary>
/// 是否处于抽样监测中 0x01 表示是 0x02 表示否
/// </summary>
public byte ParamValue { get; set; }
}
}

+ 1
- 29
src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_Body.cs Wyświetl plik

@@ -7,7 +7,7 @@ using System.Text;
namespace JTNE.Protocol.MessageBody namespace JTNE.Protocol.MessageBody
{ {
/// <summary> /// <summary>
/// 参数查询 /// 参数查询响应
/// </summary> /// </summary>
public abstract class JTNE_0x80Reply_Body public abstract class JTNE_0x80Reply_Body
{ {
@@ -133,33 +133,5 @@ namespace JTNE.Protocol.MessageBody
JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(JTNE_0x80Reply_0x05_Type, JTNE_0x80Reply_0x04_Type); JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(JTNE_0x80Reply_0x05_Type, JTNE_0x80Reply_0x04_Type);
JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(JTNE_0x80Reply_0x0E_Type, JTNE_0x80Reply_0x0D_Type); JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(JTNE_0x80Reply_0x0E_Type, JTNE_0x80Reply_0x0D_Type);
} }

internal static void AddJTNE_0x80ReplyMethod(byte paramId, Type type)
{
if (!JTNE_0x80ReplyMethod.ContainsKey(paramId))
{
JTNE_0x80ReplyMethod.Add(paramId, type);
}
else
{
JTNE_0x80ReplyMethod[paramId] = type;
}
}
/// <summary>
///
/// </summary>
/// <param name="DependerParamId">依赖者</param>
/// <param name="DependedParamId">被依赖者</param>
internal static void AddJTNE_0x80ReplyLengthOfADependOnValueOfBMethod(byte DependerParamId, byte DependedParamId)
{
if (!JTNE_0x80ReplyLengthOfADependOnValueOfB.ContainsKey(DependerParamId))
{
JTNE_0x80ReplyLengthOfADependOnValueOfB.Add(DependerParamId, DependedParamId);
}
else
{
JTNE_0x80ReplyLengthOfADependOnValueOfB[DependerParamId] = DependedParamId;
}
}
} }
} }

+ 3
- 3
src/JTNE.Protocol/MessageBody/JTNE_0x81.cs Wyświetl plik

@@ -7,15 +7,15 @@ using System.Text;
namespace JTNE.Protocol.MessageBody namespace JTNE.Protocol.MessageBody
{ {
/// <summary> /// <summary>
/// 参数查询 /// 参数设置
/// </summary> /// </summary>
[JTNEFormatter(typeof(JTNE_0x81_Formatter))] [JTNEFormatter(typeof(JTNE_0x81_Formatter))]
public class JTNE_0x81 : JTNEBodies public class JTNE_0x81 : JTNEBodies
{ {
/// <summary> /// <summary>
/// 设置时间 /// 操作时间
/// </summary> /// </summary>
public DateTime SetTime { get; set; } public DateTime OperateTime { get; set; }
/// <summary> /// <summary>
/// 参数总数 /// 参数总数
/// </summary> /// </summary>


+ 1
- 29
src/JTNE.Protocol/MessageBody/JTNE_0x81_Body.cs Wyświetl plik

@@ -7,7 +7,7 @@ using System.Text;
namespace JTNE.Protocol.MessageBody namespace JTNE.Protocol.MessageBody
{ {
/// <summary> /// <summary>
/// 参数查询 /// 参数设置
/// </summary> /// </summary>
public abstract class JTNE_0x81_Body public abstract class JTNE_0x81_Body
{ {
@@ -133,33 +133,5 @@ namespace JTNE.Protocol.MessageBody
JTNE_0x81LengthOfADependOnValueOfB.Add(JTNE_0x81_0x05_Type, JTNE_0x81_0x04_Type); JTNE_0x81LengthOfADependOnValueOfB.Add(JTNE_0x81_0x05_Type, JTNE_0x81_0x04_Type);
JTNE_0x81LengthOfADependOnValueOfB.Add(JTNE_0x81_0x0E_Type, JTNE_0x81_0x0D_Type); JTNE_0x81LengthOfADependOnValueOfB.Add(JTNE_0x81_0x0E_Type, JTNE_0x81_0x0D_Type);
} }

internal static void AddJTNE_0x81Method(byte paramId, Type type)
{
if (!JTNE_0x81Method.ContainsKey(paramId))
{
JTNE_0x81Method.Add(paramId, type);
}
else
{
JTNE_0x81Method[paramId] = type;
}
}
/// <summary>
///
/// </summary>
/// <param name="DependerParamId">依赖者</param>
/// <param name="DependedParamId">被依赖者</param>
internal static void AddJTNE_0x81LengthOfADependOnValueOfBMethod(byte DependerParamId, byte DependedParamId)
{
if (!JTNE_0x81LengthOfADependOnValueOfB.ContainsKey(DependerParamId))
{
JTNE_0x81LengthOfADependOnValueOfB.Add(DependerParamId, DependedParamId);
}
else
{
JTNE_0x81LengthOfADependOnValueOfB[DependerParamId] = DependedParamId;
}
}
} }
} }

+ 1
- 13
src/JTNE.Protocol/MessageBody/JTNE_0x82_Body.cs Wyświetl plik

@@ -7,7 +7,7 @@ using System.Text;
namespace JTNE.Protocol.MessageBody namespace JTNE.Protocol.MessageBody
{ {
/// <summary> /// <summary>
/// 参数查询 /// 终端控制
/// </summary> /// </summary>
public class JTNE_0x82_Body public class JTNE_0x82_Body
{ {
@@ -67,17 +67,5 @@ namespace JTNE.Protocol.MessageBody
JTNE_0x82Method.Add(JTNE_0x82_0x01_Type, typeof(JTNE_0x82_0x01)); JTNE_0x82Method.Add(JTNE_0x82_0x01_Type, typeof(JTNE_0x82_0x01));
JTNE_0x82Method.Add(JTNE_0x82_0x06_Type, typeof(JTNE_0x82_0x06)); JTNE_0x82Method.Add(JTNE_0x82_0x06_Type, typeof(JTNE_0x82_0x06));
} }

internal static void AddJTNE_0x82Method(byte paramId, Type type)
{
if (!JTNE_0x82Method.ContainsKey(paramId))
{
JTNE_0x82Method.Add(paramId, type);
}
else
{
JTNE_0x82Method[paramId] = type;
}
}
} }
} }

||||||
x
 
000:0
Ładowanie…
Anuluj
Zapisz