@@ -28,36 +28,36 @@ namespace JTNE.Protocol.Benchmark | |||
bytes = "2323020131323334353637383900000000000000000100D001040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA20802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A0902010004010203040200040506070867".ToHexBytes(); | |||
} | |||
[Benchmark(Description = "JTNE_0x02_Serialize")] | |||
[Benchmark(Description = "JTNE_0x02_Device_Serialize")] | |||
public void JTNE_0x02_Serialize() | |||
{ | |||
for (int i = 0; i < N; i++) | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = JTNEAskId.Success.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.uploadim.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId_Device.uploadim.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
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<JTNE.Protocol.Metadata.Electrical>(); | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.Values = new Dictionary<byte, JTNE_0x02_Body_Device>(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.Electricals = new List<JTNE.Protocol.Metadata.Electrical>(); | |||
JTNE.Protocol.Metadata.Electrical electrical1 = new JTNE.Protocol.Metadata.Electrical(); | |||
electrical1.ElControlTemp = 0x01; | |||
electrical1.ElCurrent = 100; | |||
@@ -76,77 +76,77 @@ namespace JTNE.Protocol.Benchmark | |||
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[] | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x03, jTNE_0X02_0X03); | |||
JTNE_0x02_0x04 jTNE_0X02_0X04 = new JTNE_0x02_0x04(); | |||
jTNE_0X02_0X04.EngineStatus = 0x01; | |||
jTNE_0X02_0X04.FuelRate = 102; | |||
jTNE_0X02_0X04.Revs = 203; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x04, jTNE_0X02_0X04); | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = new JTNE_0x02_0x05(); | |||
jTNE_0X02_0X05.Lat = 1233355; | |||
jTNE_0X02_0X05.Lng = 3255555; | |||
jTNE_0X02_0X05.PositioStatus = 0x01; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x05, jTNE_0X02_0X05); | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = new JTNE_0x02_0x06(); | |||
jTNE_0X02_0X06.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryValue = 0x08; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x06, jTNE_0X02_0X06); | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = new JTNE_0x02_0x07(); | |||
jTNE_0X02_0X07.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07.AlarmBatteryOthers = new List<uint> | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device); | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04_Device = new JTNE_0x02_0x04_Device(); | |||
jTNE_0X02_0X04_Device.EngineStatus = 0x01; | |||
jTNE_0X02_0X04_Device.FuelRate = 102; | |||
jTNE_0X02_0X04_Device.Revs = 203; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x04_Device, jTNE_0X02_0X04_Device); | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = new JTNE_0x02_0x05_Device(); | |||
jTNE_0X02_0X05_Device.Lat = 1233355; | |||
jTNE_0X02_0X05_Device.Lng = 3255555; | |||
jTNE_0X02_0X05_Device.PositioStatus = 0x01; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x05_Device, jTNE_0X02_0X05_Device); | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = new JTNE_0x02_0x06_Device(); | |||
jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06_Device.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue = 0x08; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x06_Device, jTNE_0X02_0X06_Device); | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07_Device = new JTNE_0x02_0x07_Device(); | |||
jTNE_0X02_0X07_Device.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07_Device.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07_Device.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEls = new List<uint> | |||
jTNE_0X02_0X07_Device.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEngines = new List<uint> | |||
jTNE_0X02_0X07_Device.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07.AlarmOthers = new List<uint> | |||
jTNE_0X02_0X07_Device.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x07, jTNE_0X02_0X07); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x07_Device, jTNE_0X02_0X07_Device); | |||
JTNE_0x02_0x08 jTNE_0X02_0X08 = new JTNE_0x02_0x08(); | |||
jTNE_0X02_0X08.BatteryAssemblies = new List<JTNE.Protocol.Metadata.BatteryAssembly>(); | |||
JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = new JTNE_0x02_0x08_Device(); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies = new List<JTNE.Protocol.Metadata.BatteryAssembly>(); | |||
JTNE.Protocol.Metadata.BatteryAssembly batteryAssembly1 = new JTNE.Protocol.Metadata.BatteryAssembly(); | |||
batteryAssembly1.BatteryAssemblyCurrent = 123; | |||
batteryAssembly1.BatteryAssemblyNo = 0x01; | |||
@@ -167,13 +167,13 @@ namespace JTNE.Protocol.Benchmark | |||
batteryAssembly2.SingleBatteryVoltages = new List<ushort> { | |||
444,555,666 | |||
}; | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly2); | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x08, jTNE_0X02_0X08); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x08_Device, jTNE_0X02_0X08_Device); | |||
JTNE_0x02_0x09 jTNE_0X02_0X09 = new JTNE_0x02_0x09(); | |||
jTNE_0X02_0X09.BatteryTemperatures = new List<JTNE.Protocol.Metadata.BatteryTemperature>(); | |||
JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = new JTNE_0x02_0x09_Device(); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures = new List<JTNE.Protocol.Metadata.BatteryTemperature>(); | |||
JTNE.Protocol.Metadata.BatteryTemperature batteryTemperature1 = new JTNE.Protocol.Metadata.BatteryTemperature(); | |||
batteryTemperature1.BatteryAssemblyNo = 0x01; | |||
@@ -189,13 +189,13 @@ namespace JTNE.Protocol.Benchmark | |||
0x05,0x06,0x07,0x08 | |||
}; | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature2); | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x09, jTNE_0X02_0X09); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x09_Device, jTNE_0X02_0X09_Device); | |||
jTNEPackage.Bodies = jTNE_0X02; | |||
jTNEPackage.Bodies = jTNE_0X02_Device; | |||
var hex = JTNESerializer.Serialize(jTNEPackage); | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage); | |||
} | |||
} | |||
@@ -204,7 +204,7 @@ namespace JTNE.Protocol.Benchmark | |||
{ | |||
for (int i = 0; i < N; i++) | |||
{ | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(bytes); | |||
JTNEPackage_Device jTNEPackage = JTNESerializer_Device.Deserialize(bytes); | |||
} | |||
} | |||
} | |||
@@ -8,12 +8,12 @@ using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Extensions | |||
{ | |||
public class JTNEPackageExtensionsTest | |||
public class JTNEPackageExtensions_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage= JTNEMsgId.login.Create("123456789", JTNEAskId.CMD, new JTNE_0x01 | |||
JTNEPackage_Device jTNEPackage_Device = JTNEMsgId_Device.login.Create("123456789", JTNEAskId.CMD, new JTNE_0x01_Device | |||
{ | |||
PDATime = DateTime.Parse("2019-01-22 23:55:56"), | |||
LoginNum = 1, | |||
@@ -26,7 +26,7 @@ namespace JTNE.Protocol.Test.Extensions | |||
"9870" | |||
} | |||
}); | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Device).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
using JTNE.Protocol.Enums; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Extensions | |||
{ | |||
public class JTNEPackageExtensions_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNEMsgId_Platform.login.Create("123456789", JTNEAskId.CMD, new JTNE_0x01_Platform | |||
{ | |||
PDATime = DateTime.Parse("2019-01-22 23:55:56"), | |||
LoginNum = 1, | |||
BatteryLength = 0x04, | |||
SIM = "12345678998765432100", | |||
BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
} | |||
}); | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
} | |||
} |
@@ -1,55 +0,0 @@ | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
namespace JTNE.Protocol.Test | |||
{ | |||
public class JTNEHeaderPackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEHeaderPackage jTNEHeaderPackage = new JTNEHeaderPackage(); | |||
jTNEHeaderPackage.VIN = "123456789"; | |||
jTNEHeaderPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEHeaderPackage.MsgId = JTNEMsgId.login.ToByteValue(); | |||
JTNE_0x01 jTNE_0X01 = new JTNE_0x01(); | |||
jTNE_0X01.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01.LoginNum = 1; | |||
jTNE_0X01.BatteryLength = 0x04; | |||
jTNE_0X01.SIM = "12345678998765432100"; | |||
jTNE_0X01.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEHeaderPackage.Bodies = JTNESerializer.Serialize(jTNE_0X01); | |||
var hex = JTNESerializer.Serialize(jTNEHeaderPackage).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data= "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes(); | |||
JTNEHeaderPackage jTNEHeaderPackage = JTNESerializer.Deserialize<JTNEHeaderPackage>(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEHeaderPackage.AskId); | |||
Assert.Equal(JTNEMsgId.login.ToByteValue(), jTNEHeaderPackage.MsgId); | |||
Assert.Equal("123456789", jTNEHeaderPackage.VIN); | |||
JTNE_0x01 jTNE_0X01 = JTNESerializer.Deserialize<JTNE_0x01>(jTNEHeaderPackage.Bodies); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01.PDATime); | |||
Assert.Equal(1, jTNE_0X01.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01.SIM); | |||
Assert.Equal(3, jTNE_0X01.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -0,0 +1,55 @@ | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
namespace JTNE.Protocol.Test | |||
{ | |||
public class JTNEHeaderPackage_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEHeaderPackage_Device jTNEHeaderPackage = new JTNEHeaderPackage_Device(); | |||
jTNEHeaderPackage.VIN = "123456789"; | |||
jTNEHeaderPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEHeaderPackage.MsgId = JTNEMsgId_Device.login.ToByteValue(); | |||
JTNE_0x01_Device jTNE_0X01_Device = new JTNE_0x01_Device(); | |||
jTNE_0X01_Device.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Device.LoginNum = 1; | |||
jTNE_0X01_Device.BatteryLength = 0x04; | |||
jTNE_0X01_Device.SIM = "12345678998765432100"; | |||
jTNE_0X01_Device.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEHeaderPackage.Bodies = JTNESerializer_Device.Serialize(jTNE_0X01_Device); | |||
var hex = JTNESerializer_Device.Serialize(jTNEHeaderPackage).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data= "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes(); | |||
JTNEHeaderPackage_Device jTNEHeaderPackage = JTNESerializer_Device.Deserialize<JTNEHeaderPackage_Device>(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEHeaderPackage.AskId); | |||
Assert.Equal(JTNEMsgId_Device.login.ToByteValue(), jTNEHeaderPackage.MsgId); | |||
Assert.Equal("123456789", jTNEHeaderPackage.VIN); | |||
JTNE_0x01_Device jTNE_0X01_Device = JTNESerializer_Device.Deserialize<JTNE_0x01_Device>(jTNEHeaderPackage.Bodies); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Device.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Device.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Device.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Device.SIM); | |||
Assert.Equal(3, jTNE_0X01_Device.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Device.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Device.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Device.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -0,0 +1,54 @@ | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
namespace JTNE.Protocol.Test | |||
{ | |||
public class JTNEHeaderPackage_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEHeaderPackage_Platform jTNEHeaderPackage_Platform = new JTNEHeaderPackage_Platform(); | |||
jTNEHeaderPackage_Platform.VIN = "123456789"; | |||
jTNEHeaderPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEHeaderPackage_Platform.MsgId = JTNEMsgId_Platform.login.ToByteValue(); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = new JTNE_0x01_Platform(); | |||
jTNE_0X01_Platform.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Platform.LoginNum = 1; | |||
jTNE_0X01_Platform.BatteryLength = 0x04; | |||
jTNE_0X01_Platform.SIM = "12345678998765432100"; | |||
jTNE_0X01_Platform.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEHeaderPackage_Platform.Bodies = JTNESerializer_Platform.Serialize(jTNE_0X01_Platform); | |||
var hex = JTNESerializer_Platform.Serialize(jTNEHeaderPackage_Platform).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes(); | |||
JTNEHeaderPackage_Platform jTNEHeaderPackage_Platform = JTNESerializer_Platform.Deserialize<JTNEHeaderPackage_Platform>(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEHeaderPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Platform.login.ToByteValue(), jTNEHeaderPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEHeaderPackage_Platform.VIN); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x01_Platform>(jTNEHeaderPackage_Platform.Bodies); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Platform.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Platform.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Platform.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Platform.SIM); | |||
Assert.Equal(3, jTNE_0X01_Platform.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Platform.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Platform.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Platform.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -1,45 +0,0 @@ | |||
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_0x01Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x01 jTNE_0X01 = new JTNE_0x01(); | |||
jTNE_0X01.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01.LoginNum = 1; | |||
jTNE_0X01.BatteryLength = 0x04; | |||
jTNE_0X01.SIM = "12345678998765432100"; | |||
jTNE_0X01.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X01).ToHexString(); | |||
Assert.Equal("130116173738000131323334353637383939383736353433323130300304313233343435363739383730", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738000131323334353637383939383736353433323130300304313233343435363739383730".ToHexBytes(); | |||
JTNE_0x01 jTNE_0X01 = JTNESerializer.Deserialize<JTNE_0x01>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01.PDATime); | |||
Assert.Equal(1, jTNE_0X01.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01.SIM); | |||
Assert.Equal(3, jTNE_0X01.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -0,0 +1,45 @@ | |||
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_0x01_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x01_Device jTNE_0X01_Device = new JTNE_0x01_Device(); | |||
jTNE_0X01_Device.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Device.LoginNum = 1; | |||
jTNE_0X01_Device.BatteryLength = 0x04; | |||
jTNE_0X01_Device.SIM = "12345678998765432100"; | |||
jTNE_0X01_Device.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X01_Device).ToHexString(); | |||
Assert.Equal("130116173738000131323334353637383939383736353433323130300304313233343435363739383730", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738000131323334353637383939383736353433323130300304313233343435363739383730".ToHexBytes(); | |||
JTNE_0x01_Device jTNE_0X01_Device = JTNESerializer_Device.Deserialize<JTNE_0x01_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Device.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Device.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Device.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Device.SIM); | |||
Assert.Equal(3, jTNE_0X01_Device.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Device.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Device.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Device.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -0,0 +1,45 @@ | |||
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_0x01_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x01_Platform jTNE_0X01_Platform = new JTNE_0x01_Platform(); | |||
jTNE_0X01_Platform.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Platform.LoginNum = 1; | |||
jTNE_0X01_Platform.BatteryLength = 0x04; | |||
jTNE_0X01_Platform.SIM = "12345678998765432100"; | |||
jTNE_0X01_Platform.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X01_Platform).ToHexString(); | |||
Assert.Equal("130116173738000131323334353637383939383736353433323130300304313233343435363739383730", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738000131323334353637383939383736353433323130300304313233343435363739383730".ToHexBytes(); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x01_Platform>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Platform.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Platform.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Platform.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Platform.SIM); | |||
Assert.Equal(3, jTNE_0X01_Platform.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Platform.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Platform.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Platform.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -1,143 +0,0 @@ | |||
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_0x02Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
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); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02).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_0x02 jTNE_0X02 = JTNESerializer.Deserialize<JTNE_0x02>(data); | |||
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); | |||
} | |||
} | |||
} |
@@ -1,54 +0,0 @@ | |||
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_0x02_0x01Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
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; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X01).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B0203", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "01040507003A00001A0A00640063030602007B0203".ToHexBytes(); | |||
JTNE_0x02_0x01 jTNE_0X02_0X01 = JTNESerializer.Deserialize<JTNE_0x02_0x01>(data); | |||
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); | |||
} | |||
} | |||
} |
@@ -0,0 +1,54 @@ | |||
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_0x02_0x01_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X01_Device).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B0203", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "01040507003A00001A0A00640063030602007B0203".ToHexBytes(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x01_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Accelerator); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.Brakes); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Device.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Device.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Device.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Device.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Device.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Device.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Device.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Device.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Device.TotalVoltage); | |||
} | |||
} | |||
} |
@@ -0,0 +1,50 @@ | |||
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_0x02_0x01_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Platform.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Platform.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Platform.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Platform.Resistance = 123; | |||
jTNE_0X02_0X01_Platform.SOC = 0x03; | |||
jTNE_0X02_0X01_Platform.Speed = 58; | |||
jTNE_0X02_0X01_Platform.Stall = 0x02; | |||
jTNE_0X02_0X01_Platform.TotalDis = 6666; | |||
jTNE_0X02_0X01_Platform.TotalTemp = 99; | |||
jTNE_0X02_0X01_Platform.TotalVoltage = 100; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X01_Platform).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "01040507003A00001A0A00640063030602007B".ToHexBytes(); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x01_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform.TypeCode); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Platform.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Platform.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Platform.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Platform.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Platform.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Platform.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Platform.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Platform.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Platform.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Platform.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Platform.TotalVoltage); | |||
} | |||
} | |||
} |
@@ -7,13 +7,13 @@ using JTNE.Protocol.Extensions; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_0x02Test | |||
public class JTNE_0x02_0x02_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x02 jTNE_0X02_0X02 = new JTNE_0x02_0x02(); | |||
jTNE_0X02_0X02.Electricals = new List<Metadata.Electrical>(); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.Electricals = new List<Metadata.Electrical>(); | |||
Metadata.Electrical electrical1 = new Metadata.Electrical(); | |||
electrical1.ElControlTemp = 0x01; | |||
electrical1.ElCurrent = 100; | |||
@@ -32,9 +32,9 @@ namespace JTNE.Protocol.Test.MessageBody | |||
electrical2.ElTemp = 0x05; | |||
electrical2.ElTorque = 566; | |||
electrical2.ElVoltage = 2136; | |||
jTNE_0X02_0X02.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02.Electricals.Add(electrical2); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X02).ToHexString(); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X02_Device).ToHexString(); | |||
Assert.Equal("0202010201004100370300EC0064020302004202360508580065", hex); | |||
} | |||
@@ -42,10 +42,10 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2() | |||
{ | |||
var data = "0202010201004100370300EC0064020302004202360508580065".ToHexBytes(); | |||
JTNE_0x02_0x02 jTNE_0X02_0X02 = JTNESerializer.Deserialize<JTNE_0x02_0x02>(data); | |||
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]; | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x02_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Device.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Device.Electricals[0]; | |||
Assert.Equal(0x01, electrical1.ElControlTemp); | |||
Assert.Equal(100, electrical1.ElCurrent); | |||
Assert.Equal(0x01, electrical1.ElNo); | |||
@@ -54,7 +54,7 @@ namespace JTNE.Protocol.Test.MessageBody | |||
Assert.Equal(0x03, electrical1.ElTemp); | |||
Assert.Equal(55, electrical1.ElTorque); | |||
Assert.Equal(236, electrical1.ElVoltage); | |||
Metadata.Electrical electrical2 = jTNE_0X02_0X02.Electricals[1]; | |||
Metadata.Electrical electrical2 = jTNE_0X02_0X02_Device.Electricals[1]; | |||
Assert.Equal(0x02, electrical2.ElControlTemp); | |||
Assert.Equal(101, electrical2.ElCurrent); | |||
Assert.Equal(0x02, electrical2.ElNo); |
@@ -0,0 +1,68 @@ | |||
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_0x02_0x02_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.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_Platform.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical2); | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X02_Platform).ToHexString(); | |||
Assert.Equal("0202010201004100370300EC0064020302004202360508580065", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "0202010201004100370300EC0064020302004202360508580065".ToHexBytes(); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x02_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Platform.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Platform.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_Platform.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); | |||
} | |||
} | |||
} |
@@ -1,53 +0,0 @@ | |||
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_0x02_0x03Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
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 | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X03).ToHexString(); | |||
Assert.Equal("0308AE006F0C9600030102030D1B221A0A560D086502", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "0308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes(); | |||
JTNE_0x02_0x03 jTNE_0X02_0X03 = JTNESerializer.Deserialize<JTNE_0x02_0x03>(data); | |||
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); | |||
} | |||
} | |||
} |
@@ -0,0 +1,53 @@ | |||
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_0x02_0x03_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X03_Device).ToHexString(); | |||
Assert.Equal("0308AE006F0C9600030102030D1B221A0A560D086502", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "0308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes(); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x03_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Device.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Device.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Device.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Device.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte []{ 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Device.Temperatures); | |||
} | |||
} | |||
} |
@@ -0,0 +1,53 @@ | |||
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_0x02_0x03_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Platform.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X03_Platform).ToHexString(); | |||
Assert.Equal("0308AE006F0C9600030102030D1B221A0A560D086502", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "0308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes(); | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x03_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Platform.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Platform.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Platform.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Platform.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte []{ 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Platform.Temperatures); | |||
} | |||
} | |||
} |
@@ -1,34 +0,0 @@ | |||
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_0x02_0x04Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x04 jTNE_0X02_0X04 = new JTNE_0x02_0x04(); | |||
jTNE_0X02_0X04.EngineStatus = 0x01; | |||
jTNE_0X02_0X04.FuelRate = 102; | |||
jTNE_0X02_0X04.Revs = 203; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X04).ToHexString(); | |||
Assert.Equal("040100CB0066", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "040100CB0066".ToHexBytes(); | |||
JTNE_0x02_0x04 jTNE_0X02_0X04 = JTNESerializer.Deserialize<JTNE_0x02_0x04>(data); | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x04, jTNE_0X02_0X04.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04.Revs); | |||
} | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
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_0x02_0x04_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04_Device = new JTNE_0x02_0x04_Device(); | |||
jTNE_0X02_0X04_Device.EngineStatus = 0x01; | |||
jTNE_0X02_0X04_Device.FuelRate = 102; | |||
jTNE_0X02_0X04_Device.Revs = 203; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X04_Device).ToHexString(); | |||
Assert.Equal("040100CB0066", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "040100CB0066".ToHexBytes(); | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x04_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x04_Device, jTNE_0X02_0X04_Device.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04_Device.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04_Device.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04_Device.Revs); | |||
} | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
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_0x02_0x04_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x04_Platform jTNE_0X02_0X04_Platform = new JTNE_0x02_0x04_Platform(); | |||
jTNE_0X02_0X04_Platform.EngineStatus = 0x01; | |||
jTNE_0X02_0X04_Platform.FuelRate = 102; | |||
jTNE_0X02_0X04_Platform.Revs = 203; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X04_Platform).ToHexString(); | |||
Assert.Equal("040100CB0066", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "040100CB0066".ToHexBytes(); | |||
JTNE_0x02_0x04_Platform jTNE_0X02_0X04_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x04_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x04_Platform, jTNE_0X02_0X04_Platform.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04_Platform.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04_Platform.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04_Platform.Revs); | |||
} | |||
} | |||
} |
@@ -1,34 +0,0 @@ | |||
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_0x02_0x05Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = new JTNE_0x02_0x05(); | |||
jTNE_0X02_0X05.Lat = 1233355; | |||
jTNE_0X02_0X05.Lng = 3255555; | |||
jTNE_0X02_0X05.PositioStatus = 0x01; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X05).ToHexString(); | |||
Assert.Equal("05010031AD030012D1CB", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "05010031AD030012D1CB".ToHexBytes(); | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = JTNESerializer.Deserialize<JTNE_0x02_0x05>(data); | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x05, jTNE_0X02_0X05.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05.PositioStatus); | |||
} | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
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_0x02_0x05_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = new JTNE_0x02_0x05_Device(); | |||
jTNE_0X02_0X05_Device.Lat = 1233355; | |||
jTNE_0X02_0X05_Device.Lng = 3255555; | |||
jTNE_0X02_0X05_Device.PositioStatus = 0x01; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X05_Device).ToHexString(); | |||
Assert.Equal("05010031AD030012D1CB", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "05010031AD030012D1CB".ToHexBytes(); | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x05_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x05_Device, jTNE_0X02_0X05_Device.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05_Device.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05_Device.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05_Device.PositioStatus); | |||
} | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
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_0x02_0x05_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x05_Platform jTNE_0X02_0X05_Platform = new JTNE_0x02_0x05_Platform(); | |||
jTNE_0X02_0X05_Platform.Lat = 1233355; | |||
jTNE_0X02_0X05_Platform.Lng = 3255555; | |||
jTNE_0X02_0X05_Platform.PositioStatus = 0x01; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X05_Platform).ToHexString(); | |||
Assert.Equal("05010031AD030012D1CB", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "05010031AD030012D1CB".ToHexBytes(); | |||
JTNE_0x02_0x05_Platform jTNE_0X02_0X05_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x05_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x05_Platform, jTNE_0X02_0X05_Platform.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05_Platform.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05_Platform.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05_Platform.PositioStatus); | |||
} | |||
} | |||
} |
@@ -1,50 +0,0 @@ | |||
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_0x02_0x06Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = new JTNE_0x02_0x06(); | |||
jTNE_0X02_0X06.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryValue = 0x08; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X06).ToHexString(); | |||
Assert.Equal("061115007B07090008321242113206", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "061115007B07090008321242113206".ToHexBytes(); | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = JTNESerializer.Deserialize<JTNE_0x02_0x06>(data); | |||
Assert.Equal(0x12, jTNE_0X02_0X06.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06.MinVoltageSingleBatteryValue); | |||
} | |||
} | |||
} |
@@ -0,0 +1,50 @@ | |||
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_0x02_0x06_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = new JTNE_0x02_0x06_Device(); | |||
jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06_Device.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue = 0x08; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X06_Device).ToHexString(); | |||
Assert.Equal("061115007B07090008321242113206", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "061115007B07090008321242113206".ToHexBytes(); | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x06_Device>(data); | |||
Assert.Equal(0x12, jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Device.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06_Device.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue); | |||
} | |||
} | |||
} |
@@ -0,0 +1,50 @@ | |||
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_0x02_0x06_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x06_Platform jTNE_0X02_0X06_Platform = new JTNE_0x02_0x06_Platform(); | |||
jTNE_0X02_0X06_Platform.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06_Platform.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06_Platform.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06_Platform.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryValue = 0x08; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X06_Platform).ToHexString(); | |||
Assert.Equal("061115007B07090008321242113206", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "061115007B07090008321242113206".ToHexBytes(); | |||
JTNE_0x02_0x06_Platform jTNE_0X02_0X06_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x06_Platform>(data); | |||
Assert.Equal(0x12, jTNE_0X02_0X06_Platform.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06_Platform.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06_Platform.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Platform.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Platform.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06_Platform.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06_Platform.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryValue); | |||
} | |||
} | |||
} |
@@ -1,67 +0,0 @@ | |||
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_0x02_0x07Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = new JTNE_0x02_0x07(); | |||
jTNE_0X02_0X07.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X07).ToHexString(); | |||
Assert.Equal("07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2".ToHexBytes(); | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = JTNESerializer.Deserialize<JTNE_0x02_0x07>(data); | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x07, jTNE_0X02_0X07.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07.AlarmOthers); | |||
} | |||
} | |||
} |
@@ -0,0 +1,67 @@ | |||
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_0x02_0x07_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07_Device = new JTNE_0x02_0x07_Device(); | |||
jTNE_0X02_0X07_Device.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07_Device.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07_Device.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X07_Device).ToHexString(); | |||
Assert.Equal("07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2".ToHexBytes(); | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x07_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x07_Device, jTNE_0X02_0X07_Device.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07_Device.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07_Device.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07_Device.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07_Device.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07_Device.AlarmOthers); | |||
} | |||
} | |||
} |
@@ -0,0 +1,67 @@ | |||
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_0x02_0x07_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x07_Platform jTNE_0X02_0X07_Platform = new JTNE_0x02_0x07_Platform(); | |||
jTNE_0X02_0X07_Platform.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07_Platform.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07_Platform.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_0X07_Platform).ToHexString(); | |||
Assert.Equal("07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "07110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2".ToHexBytes(); | |||
JTNE_0x02_0x07_Platform jTNE_0X02_0X07_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_0x07_Platform>(data); | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x07_Platform, jTNE_0X02_0X07_Platform.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07_Platform.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07_Platform.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07_Platform.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07_Platform.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07_Platform.AlarmOthers); | |||
} | |||
} | |||
} |
@@ -7,13 +7,13 @@ using JTNE.Protocol.Extensions; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_0x08Test | |||
public class JTNE_0x02_0x08_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x08 jTNE_0X02_0X08 = new JTNE_0x02_0x08(); | |||
jTNE_0X02_0X08.BatteryAssemblies = new List<Metadata.BatteryAssembly>(); | |||
JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = new JTNE_0x02_0x08_Device(); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies = new List<Metadata.BatteryAssembly>(); | |||
Metadata.BatteryAssembly batteryAssembly1 = new Metadata.BatteryAssembly(); | |||
batteryAssembly1.BatteryAssemblyCurrent = 123; | |||
batteryAssembly1.BatteryAssemblyNo = 0x01; | |||
@@ -34,9 +34,9 @@ namespace JTNE.Protocol.Test.MessageBody | |||
batteryAssembly2.SingleBatteryVoltages = new List<ushort> { | |||
444,555,666 | |||
}; | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly2); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X08).ToHexString(); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly2); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X08_Device).ToHexString(); | |||
Assert.Equal("0802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A", hex); | |||
} | |||
@@ -44,11 +44,11 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2() | |||
{ | |||
var data = "0802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A".ToHexBytes(); | |||
JTNE_0x02_0x08 jTNE_0X02_0X08 = JTNESerializer.Deserialize<JTNE_0x02_0x08>(data); | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x08, jTNE_0X02_0X08.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X08.BatteryAssemblyCount); | |||
JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x08_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x08_Device, jTNE_0X02_0X08_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X08_Device.BatteryAssemblyCount); | |||
Metadata.BatteryAssembly batteryAssembly1 = jTNE_0X02_0X08.BatteryAssemblies[0]; | |||
Metadata.BatteryAssembly batteryAssembly1 = jTNE_0X02_0X08_Device.BatteryAssemblies[0]; | |||
Assert.Equal(123, batteryAssembly1.BatteryAssemblyCurrent); | |||
Assert.Equal(0x01, batteryAssembly1.BatteryAssemblyNo); | |||
Assert.Equal(0x02, batteryAssembly1.BatteryAssemblyVoltage); | |||
@@ -59,7 +59,7 @@ namespace JTNE.Protocol.Test.MessageBody | |||
111,222,333 | |||
}, batteryAssembly1.SingleBatteryVoltages); | |||
Metadata.BatteryAssembly batteryAssembly2 = jTNE_0X02_0X08.BatteryAssemblies[1]; | |||
Metadata.BatteryAssembly batteryAssembly2 = jTNE_0X02_0X08_Device.BatteryAssemblies[1]; | |||
Assert.Equal(1234, batteryAssembly2.BatteryAssemblyCurrent); | |||
Assert.Equal(0x03, batteryAssembly2.BatteryAssemblyNo); | |||
Assert.Equal(0x05, batteryAssembly2.BatteryAssemblyVoltage); |
@@ -7,13 +7,13 @@ using JTNE.Protocol.Extensions; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_0x09Test | |||
public class JTNE_0x02_0x09_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_0x09 jTNE_0X02_0X09 = new JTNE_0x02_0x09(); | |||
jTNE_0X02_0X09.BatteryTemperatures = new List<Metadata.BatteryTemperature>(); | |||
JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = new JTNE_0x02_0x09_Device(); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures = new List<Metadata.BatteryTemperature>(); | |||
Metadata.BatteryTemperature batteryTemperature1 = new Metadata.BatteryTemperature(); | |||
batteryTemperature1.BatteryAssemblyNo = 0x01; | |||
@@ -29,9 +29,9 @@ namespace JTNE.Protocol.Test.MessageBody | |||
0x05,0x06,0x07,0x08 | |||
}; | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature2); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02_0X09).ToHexString(); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature2); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_0X09_Device).ToHexString(); | |||
Assert.Equal("09020100040102030402000405060708", hex); | |||
} | |||
@@ -39,11 +39,11 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2() | |||
{ | |||
var data = "09020100040102030402000405060708".ToHexBytes(); | |||
JTNE_0x02_0x09 jTNE_0X02_0X09 = JTNESerializer.Deserialize<JTNE_0x02_0x09>(data); | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x09, jTNE_0X02_0X09.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X09.BatteryTemperatureCount); | |||
JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0x09_Device>(data); | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x09_Device, jTNE_0X02_0X09_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X09_Device.BatteryTemperatureCount); | |||
Metadata.BatteryTemperature batteryTemperature1 = jTNE_0X02_0X09.BatteryTemperatures[0]; | |||
Metadata.BatteryTemperature batteryTemperature1 = jTNE_0X02_0X09_Device.BatteryTemperatures[0]; | |||
Assert.Equal(0x01, batteryTemperature1.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature1.TemperatureProbeCount); | |||
Assert.Equal(new byte[] | |||
@@ -51,7 +51,7 @@ namespace JTNE.Protocol.Test.MessageBody | |||
0x01,0x02,0x03,0x04 | |||
}, batteryTemperature1.Temperatures); | |||
Metadata.BatteryTemperature batteryTemperature2 = jTNE_0X02_0X09.BatteryTemperatures[1]; | |||
Metadata.BatteryTemperature batteryTemperature2 = jTNE_0X02_0X09_Device.BatteryTemperatures[1]; | |||
Assert.Equal(0x02, batteryTemperature2.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature2.TemperatureProbeCount); | |||
Assert.Equal(new byte[] |
@@ -1,170 +0,0 @@ | |||
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_0x02_CompositeTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA1, typeof(JTNE_0x02_0xA1)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA2, typeof(JTNE_0x02_0xA2)); | |||
JTNE_0x02 jTNE_0X02 = new JTNE_0x02(); | |||
jTNE_0X02.Values = new Dictionary<byte, JTNE_0x02_Body>(); | |||
jTNE_0X02.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody>(); | |||
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_0x02_0xA1 jTNE_0X02_0XA1 = new JTNE_0x02_0xA1(); | |||
jTNE_0X02_0XA1.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1.Age = 18; | |||
jTNE_0X02.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1); | |||
JTNE_0x02_0xA2 jTNE_0X02_0XA2 = new JTNE_0x02_0xA2(); | |||
jTNE_0X02_0XA2.CompanyName = "小池有限公司"; | |||
jTNE_0X02.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA1, typeof(JTNE_0x02_0xA1)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA2, typeof(JTNE_0x02_0xA2)); | |||
var data = "01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02 jTNE_0X02 = JTNESerializer.Deserialize<JTNE_0x02>(data); | |||
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); | |||
JTNE_0x02_0xA1 jTNE_0X02_0XA1 = JTNESerializer.Deserialize<JTNE_0x02_0xA1>(jTNE_0X02.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1.Age); | |||
JTNE_0x02_0xA2 jTNE_0X02_0XA2 = JTNESerializer.Deserialize<JTNE_0x02_0xA2>(jTNE_0X02.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2.CompanyName); | |||
} | |||
} | |||
} |
@@ -0,0 +1,170 @@ | |||
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_0x02_Composite_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA1, typeof(JTNE_0x02_0xA1_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA2, typeof(JTNE_0x02_0xA2_Device)); | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.Values = new Dictionary<byte, JTNE_0x02_Body_Device>(); | |||
jTNE_0X02_Device.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody_Device>(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.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_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device); | |||
JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = new JTNE_0x02_0xA1_Device(); | |||
jTNE_0X02_0XA1_Device.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1_Device.Age = 18; | |||
jTNE_0X02_Device.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1_Device); | |||
JTNE_0x02_0xA2_Device jTNE_0X02_0XA2_Device = new JTNE_0x02_0xA2_Device(); | |||
jTNE_0X02_0XA2_Device.CompanyName = "小池有限公司"; | |||
jTNE_0X02_Device.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2_Device); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_Device).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA1, typeof(JTNE_0x02_0xA1_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA2, typeof(JTNE_0x02_0xA2_Device)); | |||
var data = "01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02_Device jTNE_0X02_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_Device>(data); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device] as JTNE_0x02_0x01_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Accelerator); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.Brakes); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Device.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Device.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Device.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Device.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Device.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Device.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Device.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Device.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Device.TotalVoltage); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device] as JTNE_0x02_0x02_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Device.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Device.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_Device.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_Device jTNE_0X02_0X03_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device] as JTNE_0x02_0x03_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Device.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Device.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Device.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Device.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Device.Temperatures); | |||
JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA1_Device>(jTNE_0X02_Device.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1_Device.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1_Device.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1_Device.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1_Device.Age); | |||
JTNE_0x02_0xA2_Device jTNE_0X02_0XA2_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA2_Device>(jTNE_0X02_Device.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2_Device.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2_Device.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2_Device.CompanyName); | |||
} | |||
} | |||
} |
@@ -0,0 +1,166 @@ | |||
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_0x02_Composite_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA1, typeof(JTNE_0x02_0xA1_Platform)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA2, typeof(JTNE_0x02_0xA2_Platform)); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); | |||
jTNE_0X02_Platform.Values = new Dictionary<byte, JTNE_0x02_Body_Platform>(); | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody_Platform>(); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Platform.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Platform.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Platform.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Platform.Resistance = 123; | |||
jTNE_0X02_0X01_Platform.SOC = 0x03; | |||
jTNE_0X02_0X01_Platform.Speed = 58; | |||
jTNE_0X02_0X01_Platform.Stall = 0x02; | |||
jTNE_0X02_0X01_Platform.TotalDis = 6666; | |||
jTNE_0X02_0X01_Platform.TotalTemp = 99; | |||
jTNE_0X02_0X01_Platform.TotalVoltage = 100; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.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_Platform.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical2); | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform); | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Platform.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform); | |||
JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = new JTNE_0x02_0xA1_Platform(); | |||
jTNE_0X02_0XA1_Platform.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1_Platform.Age = 18; | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1_Platform); | |||
JTNE_0x02_0xA2_Platform jTNE_0X02_0XA2_Platform = new JTNE_0x02_0xA2_Platform(); | |||
jTNE_0X02_0XA2_Platform.CompanyName = "小池有限公司"; | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2_Platform); | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_Platform).ToHexString(); | |||
Assert.Equal("01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA1, typeof(JTNE_0x02_0xA1_Platform)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA2, typeof(JTNE_0x02_0xA2_Platform)); | |||
var data = "01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_Platform>(data); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform] as JTNE_0x02_0x01_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform.TypeCode); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Platform.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Platform.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Platform.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Platform.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Platform.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Platform.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Platform.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Platform.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Platform.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Platform.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Platform.TotalVoltage); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform] as JTNE_0x02_0x02_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Platform.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Platform.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_Platform.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_Platform jTNE_0X02_0X03_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform] as JTNE_0x02_0x03_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Platform.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Platform.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Platform.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Platform.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Platform.Temperatures); | |||
JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA1_Platform>(jTNE_0X02_Platform.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1_Platform.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1_Platform.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1_Platform.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1_Platform.Age); | |||
JTNE_0x02_0xA2_Platform jTNE_0X02_0XA2_Platform = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA2_Platform>(jTNE_0X02_Platform.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2_Platform.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2_Platform.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2_Platform.CompanyName); | |||
} | |||
} | |||
} |
@@ -1,139 +0,0 @@ | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.Formatters; | |||
using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_CustomBodyTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA1, typeof(JTNE_0x02_0xA1)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA2, typeof(JTNE_0x02_0xA2)); | |||
JTNE_0x02 jTNE_0X02 = new JTNE_0x02(); | |||
jTNE_0X02.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody>(); | |||
JTNE_0x02_0xA1 jTNE_0X02_0XA1 = new JTNE_0x02_0xA1(); | |||
jTNE_0X02_0XA1.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1.Age = 18; | |||
jTNE_0X02.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1); | |||
JTNE_0x02_0xA2 jTNE_0X02_0XA2 = new JTNE_0x02_0xA2(); | |||
jTNE_0X02_0XA2.CompanyName = "小池有限公司"; | |||
jTNE_0X02.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2); | |||
var hex = JTNESerializer.Serialize(jTNE_0X02).ToHexString(); | |||
Assert.Equal("A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA1, typeof(JTNE_0x02_0xA1)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody(0xA2, typeof(JTNE_0x02_0xA2)); | |||
var data = "A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02 jTNE_0X02 = JTNESerializer.Deserialize<JTNE_0x02>(data); | |||
Assert.Empty(jTNE_0X02.Values); | |||
JTNE_0x02_0xA1 jTNE_0X02_0XA1 = JTNESerializer.Deserialize<JTNE_0x02_0xA1>(jTNE_0X02.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1.Age); | |||
JTNE_0x02_0xA2 jTNE_0X02_0XA2 = JTNESerializer.Deserialize<JTNE_0x02_0xA2>(jTNE_0X02.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2.CompanyName); | |||
} | |||
} | |||
/// <summary> | |||
///自定义0xA1消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA1_Formatter))] | |||
public class JTNE_0x02_0xA1: JTNE_0x02_CustomBody | |||
{ | |||
public override ushort Length { get; set; } = 14; | |||
public override byte TypeCode { get; set; } = 0xA1; | |||
public string UserName { get; set; } | |||
public ushort Age { get; set; } | |||
} | |||
/// <summary> | |||
///自定义0xA2消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA2_Formatter))] | |||
public class JTNE_0x02_0xA2 : JTNE_0x02_CustomBody | |||
{ | |||
public override ushort Length { get; set; } = 20; | |||
public override byte TypeCode { get; set; } = 0xA2; | |||
public string CompanyName { get; set; } | |||
} | |||
/// <summary> | |||
/// 自定义0xA1消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA1_Formatter : IJTNEFormatter<JTNE_0x02_0xA1> | |||
{ | |||
public JTNE_0x02_0xA1 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA1 jTNE_0X02_0XA1 = new JTNE_0x02_0xA1(); | |||
jTNE_0X02_0XA1.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA1.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA1.UserName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset,12); | |||
jTNE_0X02_0XA1.Age = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0XA1; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA1 value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.UserName,12); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Age); | |||
return offset; | |||
} | |||
} | |||
/// <summary> | |||
/// 自定义0xA2消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA2_Formatter : IJTNEFormatter<JTNE_0x02_0xA2> | |||
{ | |||
public JTNE_0x02_0xA2 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA2 jTNE_0X02_0XA2 = new JTNE_0x02_0xA2(); | |||
jTNE_0X02_0XA2.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA2.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA2.CompanyName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
readSize = offset; | |||
return jTNE_0X02_0XA2; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA2 value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.CompanyName, 20); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,139 @@ | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.Formatters; | |||
using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_CustomBody_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA1, typeof(JTNE_0x02_0xA1_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA2, typeof(JTNE_0x02_0xA2_Device)); | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody_Device>(); | |||
JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = new JTNE_0x02_0xA1_Device(); | |||
jTNE_0X02_0XA1_Device.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1_Device.Age = 18; | |||
jTNE_0X02_Device.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1_Device); | |||
JTNE_0x02_0xA2_Device jTNE_0X02_0XA2_Device = new JTNE_0x02_0xA2_Device(); | |||
jTNE_0X02_0XA2_Device.CompanyName = "小池有限公司"; | |||
jTNE_0X02_Device.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2_Device); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_Device).ToHexString(); | |||
Assert.Equal("A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA1, typeof(JTNE_0x02_0xA1_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Device(0xA2, typeof(JTNE_0x02_0xA2_Device)); | |||
var data = "A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02_Device jTNE_0X02_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_Device>(data); | |||
Assert.Empty(jTNE_0X02_Device.Values); | |||
JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA1_Device>(jTNE_0X02_Device.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1_Device.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1_Device.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1_Device.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1_Device.Age); | |||
JTNE_0x02_0xA2_Device jTNE_0X02_0XA2_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA2_Device>(jTNE_0X02_Device.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2_Device.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2_Device.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2_Device.CompanyName); | |||
} | |||
} | |||
/// <summary> | |||
///自定义0xA1消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA1_Device_Formatter))] | |||
public class JTNE_0x02_0xA1_Device : JTNE_0x02_CustomBody_Device | |||
{ | |||
public override ushort Length { get; set; } = 14; | |||
public override byte TypeCode { get; set; } = 0xA1; | |||
public string UserName { get; set; } | |||
public ushort Age { get; set; } | |||
} | |||
/// <summary> | |||
///自定义0xA2消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA2_Device_Formatter))] | |||
public class JTNE_0x02_0xA2_Device : JTNE_0x02_CustomBody_Device | |||
{ | |||
public override ushort Length { get; set; } = 20; | |||
public override byte TypeCode { get; set; } = 0xA2; | |||
public string CompanyName { get; set; } | |||
} | |||
/// <summary> | |||
/// 自定义0xA1消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA1_Device_Formatter : IJTNEFormatter<JTNE_0x02_0xA1_Device> | |||
{ | |||
public JTNE_0x02_0xA1_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = new JTNE_0x02_0xA1_Device(); | |||
jTNE_0X02_0XA1_Device.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA1_Device.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA1_Device.UserName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset,12); | |||
jTNE_0X02_0XA1_Device.Age = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0XA1_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA1_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.UserName,12); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Age); | |||
return offset; | |||
} | |||
} | |||
/// <summary> | |||
/// 自定义0xA2消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA2_Device_Formatter : IJTNEFormatter<JTNE_0x02_0xA2_Device> | |||
{ | |||
public JTNE_0x02_0xA2_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA2_Device jTNE_0X02_0XA2_Device = new JTNE_0x02_0xA2_Device(); | |||
jTNE_0X02_0XA2_Device.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA2_Device.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA2_Device.CompanyName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
readSize = offset; | |||
return jTNE_0X02_0XA2_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA2_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.CompanyName, 20); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,139 @@ | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.Formatters; | |||
using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x02_CustomBody_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA1, typeof(JTNE_0x02_0xA1_Platform)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA2, typeof(JTNE_0x02_0xA2_Platform)); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues = new Dictionary<byte, JTNE_0x02_CustomBody_Platform>(); | |||
JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = new JTNE_0x02_0xA1_Platform(); | |||
jTNE_0X02_0XA1_Platform.UserName = "SmallChi"; | |||
jTNE_0X02_0XA1_Platform.Age = 18; | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues.Add(0xA1, jTNE_0X02_0XA1_Platform); | |||
JTNE_0x02_0xA2_Platform jTNE_0X02_0XA2_Platform = new JTNE_0x02_0xA2_Platform(); | |||
jTNE_0X02_0XA2_Platform.CompanyName = "小池有限公司"; | |||
jTNE_0X02_Platform.CusotmSerializeObjectValues.Add(0xA2, jTNE_0X02_0XA2_Platform); | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_Platform).ToHexString(); | |||
Assert.Equal("A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA1, typeof(JTNE_0x02_0xA1_Platform)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x02CustomBody_Platform(0xA2, typeof(JTNE_0x02_0xA2_Platform)); | |||
var data = "A1000E536D616C6C436869000000000012A20014E5B08FE6B1A0E69C89E99990E585ACE58FB80000".ToHexBytes(); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_Platform>(data); | |||
Assert.Empty(jTNE_0X02_Platform.Values); | |||
JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA1_Platform>(jTNE_0X02_Platform.CusotmValues[0xA1]); | |||
Assert.Equal(0xA1, jTNE_0X02_0XA1_Platform.TypeCode); | |||
Assert.Equal(14, jTNE_0X02_0XA1_Platform.Length); | |||
Assert.Equal("SmallChi", jTNE_0X02_0XA1_Platform.UserName); | |||
Assert.Equal(18, jTNE_0X02_0XA1_Platform.Age); | |||
JTNE_0x02_0xA2_Platform jTNE_0X02_0XA2_Platform = JTNESerializer_Device.Deserialize<JTNE_0x02_0xA2_Platform>(jTNE_0X02_Platform.CusotmValues[0xA2]); | |||
Assert.Equal(0xA2, jTNE_0X02_0XA2_Platform.TypeCode); | |||
Assert.Equal(20, jTNE_0X02_0XA2_Platform.Length); | |||
Assert.Equal("小池有限公司", jTNE_0X02_0XA2_Platform.CompanyName); | |||
} | |||
} | |||
/// <summary> | |||
///自定义0xA1消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA1_Platform_Formatter))] | |||
public class JTNE_0x02_0xA1_Platform : JTNE_0x02_CustomBody_Platform | |||
{ | |||
public override ushort Length { get; set; } = 14; | |||
public override byte TypeCode { get; set; } = 0xA1; | |||
public string UserName { get; set; } | |||
public ushort Age { get; set; } | |||
} | |||
/// <summary> | |||
///自定义0xA2消息 | |||
/// </summary> | |||
[JTNEFormatter(typeof(JTNE_0x02_0xA2_Platform_Formatter))] | |||
public class JTNE_0x02_0xA2_Platform : JTNE_0x02_CustomBody_Platform | |||
{ | |||
public override ushort Length { get; set; } = 20; | |||
public override byte TypeCode { get; set; } = 0xA2; | |||
public string CompanyName { get; set; } | |||
} | |||
/// <summary> | |||
/// 自定义0xA1消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA1_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0xA1_Platform> | |||
{ | |||
public JTNE_0x02_0xA1_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = new JTNE_0x02_0xA1_Platform(); | |||
jTNE_0X02_0XA1_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA1_Platform.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA1_Platform.UserName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset,12); | |||
jTNE_0X02_0XA1_Platform.Age = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0XA1_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA1_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.UserName,12); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Age); | |||
return offset; | |||
} | |||
} | |||
/// <summary> | |||
/// 自定义0xA2消息序列化器 | |||
/// </summary> | |||
public class JTNE_0x02_0xA2_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0xA2_Platform> | |||
{ | |||
public JTNE_0x02_0xA2_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0xA2_Platform jTNE_0X02_0XA2_Platform = new JTNE_0x02_0xA2_Platform(); | |||
jTNE_0X02_0XA2_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0XA2_Platform.Length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0XA2_Platform.CompanyName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
readSize = offset; | |||
return jTNE_0X02_0XA2_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0xA2_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Length); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.CompanyName, 20); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,143 @@ | |||
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_0x02_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.Values = new Dictionary<byte, JTNE_0x02_Body_Device>(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.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_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X02_Device).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_0x02_Device jTNE_0X02_Device = JTNESerializer_Device.Deserialize<JTNE_0x02_Device>(data); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device] as JTNE_0x02_0x01_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Accelerator); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.Brakes); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Device.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Device.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Device.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Device.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Device.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Device.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Device.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Device.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Device.TotalVoltage); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device] as JTNE_0x02_0x02_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Device.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Device.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_Device.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_Device jTNE_0X02_0X03_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device] as JTNE_0x02_0x03_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Device.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Device.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Device.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Device.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Device.Temperatures); | |||
} | |||
} | |||
} |
@@ -0,0 +1,139 @@ | |||
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_0x02_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); | |||
jTNE_0X02_Platform.Values = new Dictionary<byte, JTNE_0x02_Body_Platform>(); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Platform.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Platform.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Platform.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Platform.Resistance = 123; | |||
jTNE_0X02_0X01_Platform.SOC = 0x03; | |||
jTNE_0X02_0X01_Platform.Speed = 58; | |||
jTNE_0X02_0X01_Platform.Stall = 0x02; | |||
jTNE_0X02_0X01_Platform.TotalDis = 6666; | |||
jTNE_0X02_0X01_Platform.TotalTemp = 99; | |||
jTNE_0X02_0X01_Platform.TotalVoltage = 100; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.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_Platform.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical2); | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform); | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Platform.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform); | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X02_Platform).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("01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes(); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x02_Platform>(data); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform] as JTNE_0x02_0x01_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform.TypeCode); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Platform.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Platform.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Platform.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Platform.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Platform.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Platform.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Platform.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Platform.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Platform.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Platform.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Platform.TotalVoltage); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform] as JTNE_0x02_0x02_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Platform.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Platform.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_Platform.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_Platform jTNE_0X02_0X03_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform] as JTNE_0x02_0x03_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Platform.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Platform.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Platform.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Platform.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Platform.Temperatures); | |||
} | |||
} | |||
} |
@@ -1,144 +0,0 @@ | |||
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); | |||
} | |||
} | |||
} |
@@ -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_0x03_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x03_Device jTNE_0X03_Device = new JTNE_0x03_Device(); | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.Values = new Dictionary<byte, JTNE_0x02_Body_Device>(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.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_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device); | |||
jTNE_0X03_Device.Supplement = jTNE_0X02_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X03_Device).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_Device jTNE_0X03_Device = JTNESerializer_Device.Deserialize<JTNE_0x03_Device>(data); | |||
JTNE_0x02_Device jTNE_0X02_Device = jTNE_0X03_Device.Supplement; | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device] as JTNE_0x02_0x01_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Accelerator); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.Brakes); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Device.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Device.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Device.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Device.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Device.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Device.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Device.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Device.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Device.TotalVoltage); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device] as JTNE_0x02_0x02_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Device.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Device.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_Device.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_Device jTNE_0X02_0X03_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device] as JTNE_0x02_0x03_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Device.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Device.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Device.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Device.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Device.Temperatures); | |||
} | |||
} | |||
} |
@@ -0,0 +1,140 @@ | |||
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_0x03_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x03_Platform jTNE_0X03_Platform = new JTNE_0x03_Platform(); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); | |||
jTNE_0X02_Platform.Values = new Dictionary<byte, JTNE_0x02_Body_Platform>(); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Platform.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Platform.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Platform.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Platform.Resistance = 123; | |||
jTNE_0X02_0X01_Platform.SOC = 0x03; | |||
jTNE_0X02_0X01_Platform.Speed = 58; | |||
jTNE_0X02_0X01_Platform.Stall = 0x02; | |||
jTNE_0X02_0X01_Platform.TotalDis = 6666; | |||
jTNE_0X02_0X01_Platform.TotalTemp = 99; | |||
jTNE_0X02_0X01_Platform.TotalVoltage = 100; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.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_Platform.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical2); | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform); | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Platform.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform); | |||
jTNE_0X03_Platform.Supplement = jTNE_0X02_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X03_Platform).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("01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes(); | |||
JTNE_0x03_Platform jTNE_0X03_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x03_Platform>(data); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = jTNE_0X03_Platform.Supplement; | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform] as JTNE_0x02_0x01_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform.TypeCode); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Platform.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Platform.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Platform.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Platform.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Platform.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Platform.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Platform.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Platform.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Platform.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Platform.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Platform.TotalVoltage); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform] as JTNE_0x02_0x02_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Platform.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Platform.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_Platform.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_Platform jTNE_0X02_0X03_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform] as JTNE_0x02_0x03_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Platform.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Platform.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Platform.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Platform.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Platform.Temperatures); | |||
} | |||
} | |||
} |
@@ -1,31 +0,0 @@ | |||
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_0x04Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x04 jTNE_0X04 = new JTNE_0x04(); | |||
jTNE_0X04.LogoutTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X04.LogoutNum = 4444; | |||
var hex = JTNESerializer.Serialize(jTNE_0X04).ToHexString(); | |||
Assert.Equal("130116173738115C", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738115C".ToHexBytes(); | |||
JTNE_0x04 jTNE_0X04 = JTNESerializer.Deserialize<JTNE_0x04>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04.LogoutTime); | |||
Assert.Equal(4444, jTNE_0X04.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
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_0x04_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x04_Device jTNE_0X04_Device = new JTNE_0x04_Device(); | |||
jTNE_0X04_Device.LogoutTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X04_Device.LogoutNum = 4444; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X04_Device).ToHexString(); | |||
Assert.Equal("130116173738115C", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738115C".ToHexBytes(); | |||
JTNE_0x04_Device jTNE_0X04_Device = JTNESerializer_Device.Deserialize<JTNE_0x04_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04_Device.LogoutTime); | |||
Assert.Equal(4444, jTNE_0X04_Device.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
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_0x04_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x04_Platform jTNE_0X04_Platform = new JTNE_0x04_Platform(); | |||
jTNE_0X04_Platform.LogoutTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X04_Platform.LogoutNum = 4444; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X04_Platform).ToHexString(); | |||
Assert.Equal("130116173738115C", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738115C".ToHexBytes(); | |||
JTNE_0x04_Platform jTNE_0X04_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x04_Platform>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04_Platform.LogoutTime); | |||
Assert.Equal(4444, jTNE_0X04_Platform.LogoutNum); | |||
} | |||
} | |||
} |
@@ -1,37 +0,0 @@ | |||
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_0x05Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x05 jTNE_0X05 = new JTNE_0x05(); | |||
jTNE_0X05.LoginTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X05.LoginNum = 6666; | |||
jTNE_0X05.PlatformUserName = "SmallChi518"; | |||
jTNE_0X05.PlatformPassword = "1234567890123456789"; | |||
jTNE_0X05.EncryptMethod = 0x00; | |||
var hex = JTNESerializer.Serialize(jTNE_0X05).ToHexString(); | |||
Assert.Equal("1301161737381A0A536D616C6C43686935313800313233343536373839303132333435363738390000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "1301161737381A0A536D616C6C43686935313800313233343536373839303132333435363738390000".ToHexBytes(); | |||
JTNE_0x05 jTNE_0X05 = JTNESerializer.Deserialize<JTNE_0x05>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X05.LoginTime); | |||
Assert.Equal(6666, jTNE_0X05.LoginNum); | |||
Assert.Equal("SmallChi518", jTNE_0X05.PlatformUserName); | |||
Assert.Equal("1234567890123456789", jTNE_0X05.PlatformPassword); | |||
Assert.Equal(0x00, jTNE_0X05.EncryptMethod); | |||
} | |||
} | |||
} |
@@ -0,0 +1,37 @@ | |||
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_0x05_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x05_Platform jTNE_0X05_Platform = new JTNE_0x05_Platform(); | |||
jTNE_0X05_Platform.LoginTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X05_Platform.LoginNum = 6666; | |||
jTNE_0X05_Platform.PlatformUserName = "SmallChi518"; | |||
jTNE_0X05_Platform.PlatformPassword = "1234567890123456789"; | |||
jTNE_0X05_Platform.EncryptMethod = 0x00; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X05_Platform).ToHexString(); | |||
Assert.Equal("1301161737381A0A536D616C6C43686935313800313233343536373839303132333435363738390000", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "1301161737381A0A536D616C6C43686935313800313233343536373839303132333435363738390000".ToHexBytes(); | |||
JTNE_0x05_Platform jTNE_0X05_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x05_Platform>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X05_Platform.LoginTime); | |||
Assert.Equal(6666, jTNE_0X05_Platform.LoginNum); | |||
Assert.Equal("SmallChi518", jTNE_0X05_Platform.PlatformUserName); | |||
Assert.Equal("1234567890123456789", jTNE_0X05_Platform.PlatformPassword); | |||
Assert.Equal(0x00, jTNE_0X05_Platform.EncryptMethod); | |||
} | |||
} | |||
} |
@@ -1,31 +0,0 @@ | |||
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_0x06Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x06 jTNE_0X06 = new JTNE_0x06(); | |||
jTNE_0X06.LogoutTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X06.LogoutNum = 6666; | |||
var hex = JTNESerializer.Serialize(jTNE_0X06).ToHexString(); | |||
Assert.Equal("1301161737381A0A", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "1301161737381A0A".ToHexBytes(); | |||
JTNE_0x06 jTNE_0X06 = JTNESerializer.Deserialize<JTNE_0x06>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X06.LogoutTime); | |||
Assert.Equal(6666, jTNE_0X06.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
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_0x06_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x06_Platform jTNE_0X06_Platform = new JTNE_0x06_Platform(); | |||
jTNE_0X06_Platform.LogoutTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X06_Platform.LogoutNum = 6666; | |||
var hex = JTNESerializer_Platform.Serialize(jTNE_0X06_Platform).ToHexString(); | |||
Assert.Equal("1301161737381A0A", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "1301161737381A0A".ToHexBytes(); | |||
JTNE_0x06_Platform jTNE_0X06_Platform = JTNESerializer_Platform.Deserialize<JTNE_0x06_Platform>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X06_Platform.LogoutTime); | |||
Assert.Equal(6666, jTNE_0X06_Platform.LogoutNum); | |||
} | |||
} | |||
} |
@@ -9,100 +9,100 @@ using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x80Reply_CustomBodyTest | |||
public class JTNE_0x80Reply_CustomBody_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80); | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 { | |||
JTNE_0x80Reply_Device jTNE_0x80Reply = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device { | |||
OperateTime= DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum=2, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x80Reply_0x80{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x80Reply_0x80_Device{ | |||
ParamValue=6 | |||
}, | |||
new JTNE_0x80Reply_0x81{ | |||
new JTNE_0x80Reply_0x81_Device{ | |||
ParamLength=6, | |||
ParamValue=new byte[]{ 1,2,3,4,5,6 } | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply).ToHexString(); | |||
Assert.Equal("13011617373802800681010203040506", hex); | |||
} | |||
[Fact] | |||
public void Test1_1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x80Reply_0x80_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x80Reply_0x81_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80); | |||
var data = "13011617373802800681010203040506".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x80Reply_0x80{ | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList.Count, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x80Reply_0x80_Device{ | |||
ParamValue=6 | |||
}, | |||
new JTNE_0x80Reply_0x81{ | |||
new JTNE_0x80Reply_0x81_Device{ | |||
ParamLength=6, | |||
ParamValue=new byte[]{ 1,2,3,4,5,6 } | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList)); | |||
} | |||
} | |||
[JTNEFormatter(typeof(JTNE_0x80Reply_0x80Formatter))] | |||
public class JTNE_0x80Reply_0x80 : JTNE_0x81_Body | |||
[JTNEFormatter(typeof(JTNE_0x80Reply_0x80_Device_Formatter))] | |||
public class JTNE_0x80Reply_0x80_Device : JTNE_0x81_Body_Device | |||
{ | |||
public override byte ParamId { get; set; }= 0x80; | |||
public override byte ParamLength { get; set; } = 1; | |||
public byte ParamValue { get; set; } | |||
} | |||
[JTNEFormatter(typeof(JTNE_0x80Reply_0x81Formatter))] | |||
public class JTNE_0x80Reply_0x81 : JTNE_0x81_Body | |||
[JTNEFormatter(typeof(JTNE_0x80Reply_0x81_Device_Formatter))] | |||
public class JTNE_0x80Reply_0x81_Device : JTNE_0x81_Body_Device | |||
{ | |||
public override byte ParamId { get; set; } = 0x81; | |||
public override byte ParamLength { get; set; } | |||
public byte[] ParamValue { get; set; } | |||
} | |||
public class JTNE_0x80Reply_0x80Formatter : IJTNEFormatter<JTNE_0x80Reply_0x80> | |||
public class JTNE_0x80Reply_0x80_Device_Formatter : IJTNEFormatter<JTNE_0x80Reply_0x80_Device> | |||
{ | |||
public JTNE_0x80Reply_0x80 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x80Reply_0x80_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x80Reply_0x80 jTNE_0x80Reply_0x80 = new JTNE_0x80Reply_0x80(); | |||
jTNE_0x80Reply_0x80.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
JTNE_0x80Reply_0x80_Device jTNE_0x80Reply_0x80_Device = new JTNE_0x80Reply_0x80_Device(); | |||
jTNE_0x80Reply_0x80_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0x80Reply_0x80; | |||
return jTNE_0x80Reply_0x80_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x80 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x80_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue); | |||
return offset; | |||
} | |||
} | |||
public class JTNE_0x80Reply_0x81Formatter : IJTNEFormatter<JTNE_0x80Reply_0x81> | |||
public class JTNE_0x80Reply_0x81_Device_Formatter : IJTNEFormatter<JTNE_0x80Reply_0x81_Device> | |||
{ | |||
public JTNE_0x80Reply_0x81 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x80Reply_0x81_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x80Reply_0x81 jTNE_0x80Reply_0x80Reply = new JTNE_0x80Reply_0x81(); | |||
jTNE_0x80Reply_0x80Reply.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); | |||
jTNE_0x80Reply_0x80Reply.ParamLength = (byte)bytes.Length; | |||
JTNE_0x80Reply_0x81_Device jTNE_0x80Reply_0x80Reply_Device = new JTNE_0x80Reply_0x81_Device(); | |||
jTNE_0x80Reply_0x80Reply_Device.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); | |||
jTNE_0x80Reply_0x80Reply_Device.ParamLength = (byte)bytes.Length; | |||
readSize = offset; | |||
return jTNE_0x80Reply_0x80Reply; | |||
return jTNE_0x80Reply_0x80Reply_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x81 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_0x81_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue); | |||
return offset; |
@@ -7,26 +7,26 @@ using JTNE.Protocol.Extensions; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x80ReplyTest | |||
public class JTNE_0x80Reply_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device | |||
{ | |||
OperateTime = DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum = 1, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamId=0x01, | |||
ParamLength=2, | |||
ParamValue=10 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("1301161737380101000A", hex); | |||
} | |||
@@ -34,34 +34,34 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test1_1() | |||
{ | |||
var data = "1301161737380101000A".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01_Device | |||
{ | |||
ParamId = 0x01, | |||
ParamLength = 2, | |||
ParamValue = 10 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0])); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList[0])); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device | |||
{ | |||
OperateTime = DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum = 1, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x02{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x02_Device{ | |||
ParamId=0x02, | |||
ParamLength=2, | |||
ParamValue=20 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("13011617373801020014", hex); | |||
} | |||
@@ -69,37 +69,37 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2_1() | |||
{ | |||
var data = "13011617373801020014".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02_Device | |||
{ | |||
ParamId = 0x02, | |||
ParamLength = 2, | |||
ParamValue = 20 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0])); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList[0])); | |||
} | |||
[Fact] | |||
public void Test4() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device | |||
{ | |||
OperateTime = DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum=3, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x04{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x04_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x05{ | |||
},new JTNE_0x81_0x05_Device{ | |||
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("130116173738030408050102030405060708060028", hex); | |||
} | |||
@@ -107,43 +107,43 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test4_1() | |||
{ | |||
var data = "130116173738030408050102030405060708060028".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x04{ | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList.Count, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x04_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x05{ | |||
},new JTNE_0x81_0x05_Device{ | |||
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, | |||
ParamLength=8 | |||
}, new JTNE_0x81_0x06{ | |||
}, new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList)); | |||
} | |||
[Fact] | |||
public void Test5() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device | |||
{ | |||
OperateTime = DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum=3, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x0D{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x0D_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x0E{ | |||
},new JTNE_0x81_0x0E_Device{ | |||
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=40 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("130116173738030D080E01020304050607080F0028", hex); | |||
} | |||
@@ -151,39 +151,39 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test5_1() | |||
{ | |||
var data = "130116173738030D080E01020304050607080F0028".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply.JTNE_Reply0x80.ParamList.Count, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x0D{ | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList.Count, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x0D_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x0E{ | |||
},new JTNE_0x81_0x0E_Device{ | |||
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, | |||
ParamLength=8 | |||
}, new JTNE_0x81_0x0F{ | |||
}, new JTNE_0x81_0x0F_Device{ | |||
ParamValue=40 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList)); | |||
} | |||
[Fact] | |||
public void Test3() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 { | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device { | |||
OperateTime= DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum=1, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x03{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x03_Device{ | |||
ParamId=0x03, | |||
ParamLength=2, | |||
ParamValue=30 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("1301161737380103001E", hex); | |||
} | |||
@@ -191,64 +191,64 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test3_1() | |||
{ | |||
var data = "1301161737380103001E".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03 | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03_Device | |||
{ | |||
ParamId = 0x03, | |||
ParamLength = 2, | |||
ParamValue = 30 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList[0])); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList[0])); | |||
} | |||
[Fact] | |||
public void TestAll() | |||
{ | |||
JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81 { | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = new JTNE_0x80Reply_Device(); | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device { | |||
OperateTime = DateTime.Parse("2019-01-22 23:55:56"), | |||
ParamNum=12, | |||
ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamValue=10 | |||
}, | |||
new JTNE_0x81_0x02{ | |||
new JTNE_0x81_0x02_Device{ | |||
ParamValue=20 | |||
}, | |||
new JTNE_0x81_0x03{ | |||
new JTNE_0x81_0x03_Device{ | |||
ParamValue=30 | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
}, | |||
new JTNE_0x81_0x07{ | |||
new JTNE_0x81_0x07_Device{ | |||
ParamValue="abcde" | |||
}, | |||
new JTNE_0x81_0x08{ | |||
new JTNE_0x81_0x08_Device{ | |||
ParamValue="12345" | |||
}, | |||
new JTNE_0x81_0x09{ | |||
new JTNE_0x81_0x09_Device{ | |||
ParamValue=50 | |||
}, | |||
new JTNE_0x81_0x0A{ | |||
new JTNE_0x81_0x0A_Device{ | |||
ParamValue=60 | |||
}, | |||
new JTNE_0x81_0x0B{ | |||
new JTNE_0x81_0x0B_Device{ | |||
ParamValue=70 | |||
}, | |||
new JTNE_0x81_0x0C{ | |||
new JTNE_0x81_0x0C_Device{ | |||
ParamValue=80 | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=90 | |||
}, | |||
new JTNE_0x81_0x10{ | |||
new JTNE_0x81_0x10_Device{ | |||
ParamValue=0x01 | |||
} | |||
} | |||
}; | |||
jTNE_0x80Reply.JTNE_Reply0x80 = jTNE_0X81; | |||
var hex = JTNESerializer.Serialize(jTNE_0x80Reply).ToHexString(); | |||
jTNE_0x80Reply_Device.JTNE_Reply0x80_Device = jTNE_0X81_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0x80Reply_Device).ToHexString(); | |||
Assert.Equal("1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001", hex); | |||
} | |||
@@ -256,47 +256,47 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void TestAll_1() | |||
{ | |||
var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes(); | |||
JTNE_0x80Reply jTNE_0x80Reply = JTNESerializer.Deserialize<JTNE_0x80Reply>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply.JTNE_Reply0x80.OperateTime); | |||
Assert.Equal(12, jTNE_0x80Reply.JTNE_Reply0x80.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize<JTNE_0x80Reply_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.OperateTime); | |||
Assert.Equal(12, jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamValue=10 | |||
}, | |||
new JTNE_0x81_0x02{ | |||
new JTNE_0x81_0x02_Device{ | |||
ParamValue=20 | |||
}, | |||
new JTNE_0x81_0x03{ | |||
new JTNE_0x81_0x03_Device{ | |||
ParamValue=30 | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
}, | |||
new JTNE_0x81_0x07{ | |||
new JTNE_0x81_0x07_Device{ | |||
ParamValue="abcde" | |||
}, | |||
new JTNE_0x81_0x08{ | |||
new JTNE_0x81_0x08_Device{ | |||
ParamValue="12345" | |||
}, | |||
new JTNE_0x81_0x09{ | |||
new JTNE_0x81_0x09_Device{ | |||
ParamValue=50 | |||
}, | |||
new JTNE_0x81_0x0A{ | |||
new JTNE_0x81_0x0A_Device{ | |||
ParamValue=60 | |||
}, | |||
new JTNE_0x81_0x0B{ | |||
new JTNE_0x81_0x0B_Device{ | |||
ParamValue=70 | |||
}, | |||
new JTNE_0x81_0x0C{ | |||
new JTNE_0x81_0x0C_Device{ | |||
ParamValue=80 | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=90 | |||
}, | |||
new JTNE_0x81_0x10{ | |||
new JTNE_0x81_0x10_Device{ | |||
ParamValue=0x01 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply.JTNE_Reply0x80.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x80Reply_Device.JTNE_Reply0x80_Device.ParamList)); | |||
} | |||
} | |||
} |
@@ -1,33 +0,0 @@ | |||
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_0x80Test | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x80 jTNE_0X80 = new JTNE_0x80(); | |||
jTNE_0X80.QueryTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X80.ParamNum = 2; | |||
jTNE_0X80.ParamList = new byte[] {0x01,0x02 }; | |||
var hex = JTNESerializer.Serialize(jTNE_0X80).ToHexString(); | |||
Assert.Equal("130116173738020102", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738020102".ToHexBytes(); | |||
JTNE_0x80 jTNE_0X80 = JTNESerializer.Deserialize<JTNE_0x80>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X80.QueryTime); | |||
Assert.Equal(2, jTNE_0X80.ParamNum); | |||
Assert.Equal(new byte[] { 0x01, 0x02 }, jTNE_0X80.ParamList); | |||
} | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
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_0x80_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x80_Device jTNE_0X80_Device = new JTNE_0x80_Device(); | |||
jTNE_0X80_Device.QueryTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X80_Device.ParamNum = 2; | |||
jTNE_0X80_Device.ParamList = new byte[] {0x01,0x02 }; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X80_Device).ToHexString(); | |||
Assert.Equal("130116173738020102", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "130116173738020102".ToHexBytes(); | |||
JTNE_0x80_Device jTNE_0X80_Device | |||
= JTNESerializer_Device.Deserialize<JTNE_0x80_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X80_Device.QueryTime); | |||
Assert.Equal(2, jTNE_0X80_Device.ParamNum); | |||
Assert.Equal(new byte[] { 0x01, 0x02 }, jTNE_0X80_Device.ParamList); | |||
} | |||
} | |||
} |
@@ -9,100 +9,100 @@ using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x81_CustomBodyTest | |||
public class JTNE_0x81_CustomBody_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x81_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x81_0x81)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x81_0x80_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x81_0x81_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80); | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
JTNE_0x81_Device jTNE_0X81 = new JTNE_0x81_Device(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamNum = 2; | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x80{ | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x80_Device{ | |||
ParamValue=6 | |||
}, | |||
new JTNE_0x81_0x81{ | |||
new JTNE_0x81_0x81_Device{ | |||
ParamLength=6, | |||
ParamValue=new byte[]{ 1,2,3,4,5,6 } | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81).ToHexString(); | |||
Assert.Equal("13011617373802800681010203040506", hex); | |||
} | |||
[Fact] | |||
public void Test1_1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x81_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x81_0x81)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x80, typeof(JTNE_0x81_0x80_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomBody(0x81, typeof(JTNE_0x81_0x81_Device)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x81CustomDepenedBody(0x81, 0x80); | |||
var data = "13011617373802800681010203040506".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x80{ | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(jTNE_0X81_Device.ParamList.Count, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x80_Device{ | |||
ParamValue=6 | |||
}, | |||
new JTNE_0x81_0x81{ | |||
new JTNE_0x81_0x81_Device{ | |||
ParamLength=6, | |||
ParamValue=new byte[]{ 1,2,3,4,5,6 } | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList)); | |||
} | |||
} | |||
[JTNEFormatter(typeof(JTNE_0x81_0x80Formatter))] | |||
public class JTNE_0x81_0x80 : JTNE_0x81_Body | |||
[JTNEFormatter(typeof(JTNE_0x81_0x80_Device_Formatter))] | |||
public class JTNE_0x81_0x80_Device : JTNE_0x81_Body_Device | |||
{ | |||
public override byte ParamId { get; set; }= 0x80; | |||
public override byte ParamLength { get; set; } = 1; | |||
public byte ParamValue { get; set; } | |||
} | |||
[JTNEFormatter(typeof(JTNE_0x81_0x81Formatter))] | |||
public class JTNE_0x81_0x81 : JTNE_0x81_Body | |||
[JTNEFormatter(typeof(JTNE_0x81_0x81_Device_Formatter))] | |||
public class JTNE_0x81_0x81_Device : JTNE_0x81_Body_Device | |||
{ | |||
public override byte ParamId { get; set; } = 0x81; | |||
public override byte ParamLength { get; set; } | |||
public byte[] ParamValue { get; set; } | |||
} | |||
public class JTNE_0x81_0x80Formatter : IJTNEFormatter<JTNE_0x81_0x80> | |||
public class JTNE_0x81_0x80_Device_Formatter : IJTNEFormatter<JTNE_0x81_0x80_Device> | |||
{ | |||
public JTNE_0x81_0x80 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x81_0x80_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x81_0x80 jTNE_0x81_0x80 = new JTNE_0x81_0x80(); | |||
jTNE_0x81_0x80.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
JTNE_0x81_0x80_Device jTNE_0x81_0x80_Device = new JTNE_0x81_0x80_Device(); | |||
jTNE_0x81_0x80_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0x81_0x80; | |||
return jTNE_0x81_0x80_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x80 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x80_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue); | |||
return offset; | |||
} | |||
} | |||
public class JTNE_0x81_0x81Formatter : IJTNEFormatter<JTNE_0x81_0x81> | |||
public class JTNE_0x81_0x81_Device_Formatter : IJTNEFormatter<JTNE_0x81_0x81_Device> | |||
{ | |||
public JTNE_0x81_0x81 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x81_0x81_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x81_0x81 jTNE_0x81_0x81 = new JTNE_0x81_0x81(); | |||
jTNE_0x81_0x81.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); | |||
jTNE_0x81_0x81.ParamLength = (byte)bytes.Length; | |||
JTNE_0x81_0x81_Device jTNE_0x81_0x81_Device = new JTNE_0x81_0x81_Device(); | |||
jTNE_0x81_0x81_Device.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); | |||
jTNE_0x81_0x81_Device.ParamLength = (byte)bytes.Length; | |||
readSize = offset; | |||
return jTNE_0x81_0x81; | |||
return jTNE_0x81_0x81_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x81 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x81_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue); | |||
return offset; |
@@ -7,22 +7,22 @@ using JTNE.Protocol.Extensions; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x81Test | |||
public class JTNE_0x81_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamNum = 1; | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamNum = 1; | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamId=0x01, | |||
ParamLength=2, | |||
ParamValue=10 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("1301161737380101000A", hex); | |||
} | |||
@@ -30,30 +30,30 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test1_1() | |||
{ | |||
var data = "1301161737380101000A".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(1, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01 | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01_Device | |||
{ | |||
ParamId = 0x01, | |||
ParamLength = 2, | |||
ParamValue = 10 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0] )); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList[0] )); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamNum = 1; | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x02{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamNum = 1; | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x02_Device{ | |||
ParamId=0x02, | |||
ParamLength=2, | |||
ParamValue=20 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("13011617373801020014", hex); | |||
} | |||
@@ -61,33 +61,33 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2_1() | |||
{ | |||
var data = "13011617373801020014".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(1, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02 | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02_Device | |||
{ | |||
ParamId = 0x02, | |||
ParamLength = 2, | |||
ParamValue = 20 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0])); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList[0])); | |||
} | |||
[Fact] | |||
public void Test4() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x04{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x04_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x05{ | |||
},new JTNE_0x81_0x05_Device{ | |||
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
} | |||
}; | |||
jTNE_0X81.ParamNum =(byte)jTNE_0X81.ParamList.Count; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
jTNE_0X81_Device.ParamNum =(byte)jTNE_0X81_Device.ParamList.Count; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("130116173738030408050102030405060708060028", hex); | |||
} | |||
@@ -95,39 +95,39 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test4_1() | |||
{ | |||
var data = "130116173738030408050102030405060708060028".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x04{ | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(jTNE_0X81_Device.ParamList.Count, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x04_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x05{ | |||
},new JTNE_0x81_0x05_Device{ | |||
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, | |||
ParamLength=8 | |||
}, new JTNE_0x81_0x06{ | |||
}, new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList)); | |||
} | |||
[Fact] | |||
public void Test5() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x0D{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x0D_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x0E{ | |||
},new JTNE_0x81_0x0E_Device{ | |||
ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 } | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=40 | |||
} | |||
}; | |||
jTNE_0X81.ParamNum = (byte)jTNE_0X81.ParamList.Count; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
jTNE_0X81_Device.ParamNum = (byte)jTNE_0X81_Device.ParamList.Count; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("130116173738030D080E01020304050607080F0028", hex); | |||
} | |||
@@ -135,36 +135,36 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test5_1() | |||
{ | |||
var data = "130116173738030D080E01020304050607080F0028".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x0D{ | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(jTNE_0X81_Device.ParamList.Count, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x0D_Device{ | |||
ParamValue=8 | |||
},new JTNE_0x81_0x0E{ | |||
},new JTNE_0x81_0x0E_Device{ | |||
ParamValue=new byte[]{1,2,3,4,5,6,7,8 }, | |||
ParamLength=8 | |||
}, new JTNE_0x81_0x0F{ | |||
}, new JTNE_0x81_0x0F_Device{ | |||
ParamValue=40 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList)); | |||
} | |||
[Fact] | |||
public void Test3() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamNum = 1; | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x03{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamNum = 1; | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x03_Device{ | |||
ParamId=0x03, | |||
ParamLength=2, | |||
ParamValue=30 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("1301161737380103001E", hex); | |||
} | |||
@@ -172,61 +172,61 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test3_1() | |||
{ | |||
var data = "1301161737380103001E".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(1, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03 | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(1, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03_Device | |||
{ | |||
ParamId = 0x03, | |||
ParamLength = 2, | |||
ParamValue = 30 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0])); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList[0])); | |||
} | |||
[Fact] | |||
public void TestAll() | |||
{ | |||
JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); | |||
jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81.ParamNum = 12; | |||
jTNE_0X81.ParamList = new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); | |||
jTNE_0X81_Device.OperateTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X81_Device.ParamNum = 12; | |||
jTNE_0X81_Device.ParamList = new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamValue=10 | |||
}, | |||
new JTNE_0x81_0x02{ | |||
new JTNE_0x81_0x02_Device{ | |||
ParamValue=20 | |||
}, | |||
new JTNE_0x81_0x03{ | |||
new JTNE_0x81_0x03_Device{ | |||
ParamValue=30 | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
}, | |||
new JTNE_0x81_0x07{ | |||
new JTNE_0x81_0x07_Device{ | |||
ParamValue="abcde" | |||
}, | |||
new JTNE_0x81_0x08{ | |||
new JTNE_0x81_0x08_Device{ | |||
ParamValue="12345" | |||
}, | |||
new JTNE_0x81_0x09{ | |||
new JTNE_0x81_0x09_Device{ | |||
ParamValue=50 | |||
}, | |||
new JTNE_0x81_0x0A{ | |||
new JTNE_0x81_0x0A_Device{ | |||
ParamValue=60 | |||
}, | |||
new JTNE_0x81_0x0B{ | |||
new JTNE_0x81_0x0B_Device{ | |||
ParamValue=70 | |||
}, | |||
new JTNE_0x81_0x0C{ | |||
new JTNE_0x81_0x0C_Device{ | |||
ParamValue=80 | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=90 | |||
}, | |||
new JTNE_0x81_0x10{ | |||
new JTNE_0x81_0x10_Device{ | |||
ParamValue=0x01 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X81_Device).ToHexString(); | |||
Assert.Equal("1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001", hex); | |||
} | |||
@@ -234,47 +234,47 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void TestAll_1() | |||
{ | |||
var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes(); | |||
JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime); | |||
Assert.Equal(12, jTNE_0X81.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> { | |||
new JTNE_0x81_0x01{ | |||
JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize<JTNE_0x81_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81_Device.OperateTime); | |||
Assert.Equal(12, jTNE_0X81_Device.ParamNum); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body_Device> { | |||
new JTNE_0x81_0x01_Device{ | |||
ParamValue=10 | |||
}, | |||
new JTNE_0x81_0x02{ | |||
new JTNE_0x81_0x02_Device{ | |||
ParamValue=20 | |||
}, | |||
new JTNE_0x81_0x03{ | |||
new JTNE_0x81_0x03_Device{ | |||
ParamValue=30 | |||
}, | |||
new JTNE_0x81_0x06{ | |||
new JTNE_0x81_0x06_Device{ | |||
ParamValue=40 | |||
}, | |||
new JTNE_0x81_0x07{ | |||
new JTNE_0x81_0x07_Device{ | |||
ParamValue="abcde" | |||
}, | |||
new JTNE_0x81_0x08{ | |||
new JTNE_0x81_0x08_Device{ | |||
ParamValue="12345" | |||
}, | |||
new JTNE_0x81_0x09{ | |||
new JTNE_0x81_0x09_Device{ | |||
ParamValue=50 | |||
}, | |||
new JTNE_0x81_0x0A{ | |||
new JTNE_0x81_0x0A_Device{ | |||
ParamValue=60 | |||
}, | |||
new JTNE_0x81_0x0B{ | |||
new JTNE_0x81_0x0B_Device{ | |||
ParamValue=70 | |||
}, | |||
new JTNE_0x81_0x0C{ | |||
new JTNE_0x81_0x0C_Device{ | |||
ParamValue=80 | |||
}, | |||
new JTNE_0x81_0x0F{ | |||
new JTNE_0x81_0x0F_Device{ | |||
ParamValue=90 | |||
}, | |||
new JTNE_0x81_0x10{ | |||
new JTNE_0x81_0x10_Device{ | |||
ParamValue=0x01 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81_Device.ParamList)); | |||
} | |||
} | |||
} |
@@ -9,57 +9,57 @@ using JTNE.Protocol.Attributes; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x82_CustomBodyTest | |||
public class JTNE_0x82_CustomBody_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x82CustomBody(0x80, typeof(JTNE_0x82_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x82CustomBody(0x80, typeof(JTNE_0x82_0x80_Device)); | |||
JTNE_0x82 jTNE_0X82 = new JTNE_0x82(); | |||
jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82.ParamID = 0x80; | |||
jTNE_0X82.Parameter = new JTNE_0x82_0x80 | |||
JTNE_0x82_Device jTNE_0X82_Device = new JTNE_0x82_Device(); | |||
jTNE_0X82_Device.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82_Device.ParamID = 0x80; | |||
jTNE_0X82_Device.Parameter = new JTNE_0x82_0x80_Device | |||
{ | |||
ParamValue=100 | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X82_Device).ToHexString(); | |||
Assert.Equal("1301161737388064", hex); | |||
} | |||
[Fact] | |||
public void Test1_1() | |||
{ | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x82CustomBody(0x80, typeof(JTNE_0x82_0x80)); | |||
JTNEGlobalConfigs.Instance.Register_JTNE0x82CustomBody(0x80, typeof(JTNE_0x82_0x80_Device)); | |||
var data = "1301161737388064".ToHexBytes(); | |||
JTNE_0x82 jTNE_0x82 = JTNESerializer.Deserialize<JTNE_0x82>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x82.ControlTime); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x80 | |||
JTNE_0x82_Device jTNE_0x82_Device = JTNESerializer_Device.Deserialize<JTNE_0x82_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0x82_Device.ControlTime); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x80_Device | |||
{ | |||
ParamValue = 100 | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x82.Parameter)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0x82_Device.Parameter)); | |||
} | |||
} | |||
[JTNEFormatter(typeof(JTNE_0x82_0x80Formatter))] | |||
public class JTNE_0x82_0x80 : JTNE_0x82_Body | |||
[JTNEFormatter(typeof(JTNE_0x82_0x80_Device_Formatter))] | |||
public class JTNE_0x82_0x80_Device : JTNE_0x82_Body_Device | |||
{ | |||
public override byte ParamId { get; set; }= 0x80; | |||
public override byte ParamLength { get; set; } = 1; | |||
public byte ParamValue { get; set; } | |||
} | |||
public class JTNE_0x82_0x80Formatter : IJTNEFormatter<JTNE_0x82_0x80> | |||
public class JTNE_0x82_0x80_Device_Formatter : IJTNEFormatter<JTNE_0x82_0x80_Device> | |||
{ | |||
public JTNE_0x82_0x80 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x82_0x80_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x82_0x80 jTNE_0x82_0x80 = new JTNE_0x82_0x80(); | |||
jTNE_0x82_0x80.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
JTNE_0x82_0x80_Device jTNE_0x82_0x80_Device = new JTNE_0x82_0x80_Device(); | |||
jTNE_0x82_0x80_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0x82_0x80; | |||
return jTNE_0x82_0x80_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x80 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x80_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue); | |||
return offset; |
@@ -8,15 +8,15 @@ using System.Linq; | |||
namespace JTNE.Protocol.Test.MessageBody | |||
{ | |||
public class JTNE_0x82Test | |||
public class JTNE_0x82_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNE_0x82 jTNE_0X82 = new JTNE_0x82(); | |||
jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82.ParamID =0x02; | |||
var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString(); | |||
JTNE_0x82_Device jTNE_0X82_Device = new JTNE_0x82_Device(); | |||
jTNE_0X82_Device.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82_Device.ParamID =0x02; | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X82_Device).ToHexString(); | |||
Assert.Equal("13011617373802", hex); | |||
} | |||
@@ -24,18 +24,18 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test2() | |||
{ | |||
var data = "13011617373802".ToHexBytes(); | |||
JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime); | |||
Assert.Equal(0x02, jTNE_0X82.ParamID); | |||
JTNE_0x82_Device jTNE_0X82_Device = JTNESerializer_Device.Deserialize<JTNE_0x82_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82_Device.ControlTime); | |||
Assert.Equal(0x02, jTNE_0X82_Device.ParamID); | |||
} | |||
[Fact] | |||
public void Test3() | |||
{ | |||
JTNE_0x82 jTNE_0X82 = new JTNE_0x82(); | |||
jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82.ParamID = 0x01; | |||
jTNE_0X82.Parameter = new JTNE_0x82_0x01 { | |||
JTNE_0x82_Device jTNE_0X82_Device = new JTNE_0x82_Device(); | |||
jTNE_0X82_Device.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82_Device.ParamID = 0x01; | |||
jTNE_0X82_Device.Parameter = new JTNE_0x82_0x01_Device { | |||
UpgradeCommand = new Metadata.UpgradeCommand { | |||
DialName="TK", | |||
DialUserName="TKUser", | |||
@@ -49,7 +49,7 @@ namespace JTNE.Protocol.Test.MessageBody | |||
ConnectTimeLimit=10 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X82_Device).ToHexString(); | |||
Assert.Equal("13011617373801687474703A2F2F7777772E62616964752E636F6D3A383338333B544B3B544B557365723B544B5077643B62642E636F6D3B383338333B4D616E7566616374757265724E616D653B322E303B312E303B3130", hex); | |||
} | |||
@@ -57,10 +57,10 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test4() | |||
{ | |||
var data = "13011617373801687474703A2F2F7777772E62616964752E636F6D3A383338333B544B3B544B557365723B544B5077643B62642E636F6D3B383338333B4D616E7566616374757265724E616D653B322E303B312E303B3130".ToHexBytes(); | |||
JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime); | |||
Assert.Equal(0x01, jTNE_0X82.ParamID); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x01 | |||
JTNE_0x82_Device jTNE_0X82_Device = JTNESerializer_Device.Deserialize<JTNE_0x82_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82_Device.ControlTime); | |||
Assert.Equal(0x01, jTNE_0X82_Device.ParamID); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x01_Device | |||
{ | |||
UpgradeCommand = new Metadata.UpgradeCommand | |||
{ | |||
@@ -75,22 +75,22 @@ namespace JTNE.Protocol.Test.MessageBody | |||
ServerPort = 8383, | |||
ConnectTimeLimit = 10 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82.Parameter)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82_Device.Parameter)); | |||
} | |||
[Fact] | |||
public void Test5() | |||
{ | |||
JTNE_0x82 jTNE_0X82 = new JTNE_0x82(); | |||
jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82.ParamID = 0x06; | |||
jTNE_0X82.Parameter = new JTNE_0x82_0x06 | |||
JTNE_0x82_Device jTNE_0X82_Device = new JTNE_0x82_Device(); | |||
jTNE_0X82_Device.ControlTime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X82_Device.ParamID = 0x06; | |||
jTNE_0X82_Device.Parameter = new JTNE_0x82_0x06_Device | |||
{ | |||
AlarmCommand=new Metadata.AlarmCommand { | |||
AlarmLevel= Enums.JTNEAlarmLevel.一级报警 | |||
} | |||
}; | |||
var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString(); | |||
var hex = JTNESerializer_Device.Serialize(jTNE_0X82_Device).ToHexString(); | |||
Assert.Equal("1301161737380601", hex); | |||
} | |||
@@ -98,16 +98,16 @@ namespace JTNE.Protocol.Test.MessageBody | |||
public void Test6() | |||
{ | |||
var data = "1301161737380601".ToHexBytes(); | |||
JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime); | |||
Assert.Equal(0x06, jTNE_0X82.ParamID); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x06 | |||
JTNE_0x82_Device jTNE_0X82_Device = JTNESerializer_Device.Deserialize<JTNE_0x82_Device>(data); | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82_Device.ControlTime); | |||
Assert.Equal(0x06, jTNE_0X82_Device.ParamID); | |||
Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x06_Device | |||
{ | |||
AlarmCommand = new Metadata.AlarmCommand | |||
{ | |||
AlarmLevel = Enums.JTNEAlarmLevel.一级报警 | |||
} | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82.Parameter)); | |||
}), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82_Device.Parameter)); | |||
} | |||
} | |||
} |
@@ -9,28 +9,28 @@ using JTNE.Protocol.Internal; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x01_PackageTest | |||
public class JTNE_0x01_Package_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.login.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId_Device.login.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
JTNE_0x01 jTNE_0X01 = new JTNE_0x01(); | |||
jTNE_0X01.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01.LoginNum = 1; | |||
jTNE_0X01.BatteryLength = 0x04; | |||
jTNE_0X01.SIM = "12345678998765432100"; | |||
jTNE_0X01.BatteryNos = new List<string>() | |||
JTNE_0x01_Device jTNE_0X01_Device = new JTNE_0x01_Device(); | |||
jTNE_0X01_Device.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Device.LoginNum = 1; | |||
jTNE_0X01_Device.BatteryLength = 0x04; | |||
jTNE_0X01_Device.SIM = "12345678998765432100"; | |||
jTNE_0X01_Device.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEPackage.Bodies = jTNE_0X01; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
jTNEPackage.Bodies = jTNE_0X01_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
@@ -38,20 +38,20 @@ namespace JTNE.Protocol.Test.Package | |||
public void Test2() | |||
{ | |||
var data = "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
JTNEPackage_Device jTNEPackage = JTNESerializer_Device.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.login.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal(JTNEMsgId_Device.login.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
JTNE_0x01 jTNE_0X01 = jTNEPackage.Bodies as JTNE_0x01; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01.PDATime); | |||
Assert.Equal(1, jTNE_0X01.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01.SIM); | |||
Assert.Equal(3, jTNE_0X01.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01.BatteryNos[2]); | |||
JTNE_0x01_Device jTNE_0X01_Device = jTNEPackage.Bodies as JTNE_0x01_Device; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Device.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Device.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Device.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Device.SIM); | |||
Assert.Equal(3, jTNE_0X01_Device.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Device.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Device.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Device.BatteryNos[2]); | |||
} | |||
[Fact] | |||
@@ -67,24 +67,24 @@ namespace JTNE.Protocol.Test.Package | |||
return default; | |||
} | |||
}); | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.login.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId_Device.login.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
jTNEPackage.EncryptMethod = JTNEEncryptMethod.AES128.ToByteValue(); | |||
JTNE_0x01 jTNE_0X01 = new JTNE_0x01(); | |||
jTNE_0X01.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01.LoginNum = 1; | |||
jTNE_0X01.BatteryLength = 0x04; | |||
jTNE_0X01.SIM = "12345678998765432100"; | |||
jTNE_0X01.BatteryNos = new List<string>() | |||
JTNE_0x01_Device jTNE_0X01_Device = new JTNE_0x01_Device(); | |||
jTNE_0X01_Device.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Device.LoginNum = 1; | |||
jTNE_0X01_Device.BatteryLength = 0x04; | |||
jTNE_0X01_Device.SIM = "12345678998765432100"; | |||
jTNE_0X01_Device.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEPackage.Bodies = jTNE_0X01; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
jTNEPackage.Bodies = jTNE_0X01_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232301FE31323334353637383900000000000000000300307C9AAF67FB9408A75FAFC1C87F1E2AECD79DDAB8219016A5DD0911283922805EF450045EA3611C0D5CFBFD8F2581CEED30", hex); | |||
} | |||
@@ -102,21 +102,21 @@ namespace JTNE.Protocol.Test.Package | |||
} | |||
}); | |||
var data = "232301FE31323334353637383900000000000000000300307C9AAF67FB9408A75FAFC1C87F1E2AECD79DDAB8219016A5DD0911283922805EF450045EA3611C0D5CFBFD8F2581CEED30".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
JTNEPackage_Device jTNEPackage = JTNESerializer_Device.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.login.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal(JTNEMsgId_Device.login.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
Assert.Equal(JTNEEncryptMethod.AES128.ToByteValue(), jTNEPackage.EncryptMethod); | |||
JTNE_0x01 jTNE_0X01 = jTNEPackage.Bodies as JTNE_0x01; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01.PDATime); | |||
Assert.Equal(1, jTNE_0X01.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01.SIM); | |||
Assert.Equal(3, jTNE_0X01.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01.BatteryNos[2]); | |||
JTNE_0x01_Device jTNE_0X01_Device = jTNEPackage.Bodies as JTNE_0x01_Device; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Device.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Device.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Device.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Device.SIM); | |||
Assert.Equal(3, jTNE_0X01_Device.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Device.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Device.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Device.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -0,0 +1,122 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
using JTNE.Protocol.Internal; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x01_Package_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.login.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
JTNE_0x01_Platform jTNE_0X01_Platform = new JTNE_0x01_Platform(); | |||
jTNE_0X01_Platform.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Platform.LoginNum = 1; | |||
jTNE_0X01_Platform.BatteryLength = 0x04; | |||
jTNE_0X01_Platform.SIM = "12345678998765432100"; | |||
jTNE_0X01_Platform.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEPackage_Platform.Bodies = jTNE_0X01_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize<JTNEPackage_Platform>(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Platform.login.ToByteValue(), jTNEPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Platform.VIN); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = jTNEPackage_Platform.Bodies as JTNE_0x01_Platform; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Platform.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Platform.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Platform.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Platform.SIM); | |||
Assert.Equal(3, jTNE_0X01_Platform.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Platform.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Platform.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Platform.BatteryNos[2]); | |||
} | |||
[Fact] | |||
public void Test3() | |||
{ | |||
JTNEGlobalConfigs.Instance.SetDataBodiesEncrypt((msgId) => | |||
{ | |||
switch (msgId) | |||
{ | |||
case 0x03: | |||
return new Default_AES128EncryptImpl(); | |||
default: | |||
return default; | |||
} | |||
}); | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.login.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
jTNEPackage_Platform.EncryptMethod = JTNEEncryptMethod.AES128.ToByteValue(); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = new JTNE_0x01_Platform(); | |||
jTNE_0X01_Platform.PDATime = DateTime.Parse("2019-01-22 23:55:56"); | |||
jTNE_0X01_Platform.LoginNum = 1; | |||
jTNE_0X01_Platform.BatteryLength = 0x04; | |||
jTNE_0X01_Platform.SIM = "12345678998765432100"; | |||
jTNE_0X01_Platform.BatteryNos = new List<string>() | |||
{ | |||
"1234", | |||
"4567", | |||
"9870" | |||
}; | |||
jTNEPackage_Platform.Bodies = jTNE_0X01_Platform; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232301FE31323334353637383900000000000000000300307C9AAF67FB9408A75FAFC1C87F1E2AECD79DDAB8219016A5DD0911283922805EF450045EA3611C0D5CFBFD8F2581CEED30", hex); | |||
} | |||
[Fact] | |||
public void Test4() | |||
{ | |||
JTNEGlobalConfigs.Instance.SetDataBodiesEncrypt((msgId) => | |||
{ | |||
switch (msgId) | |||
{ | |||
case 0x03: | |||
return new Default_AES128EncryptImpl(); | |||
default: | |||
return default; | |||
} | |||
}); | |||
var data = "232301FE31323334353637383900000000000000000300307C9AAF67FB9408A75FAFC1C87F1E2AECD79DDAB8219016A5DD0911283922805EF450045EA3611C0D5CFBFD8F2581CEED30".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Device.login.ToByteValue(), jTNEPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Platform.VIN); | |||
Assert.Equal(JTNEEncryptMethod.AES128.ToByteValue(), jTNEPackage_Platform.EncryptMethod); | |||
JTNE_0x01_Platform jTNE_0X01_Platform = jTNEPackage_Platform.Bodies as JTNE_0x01_Platform; | |||
Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X01_Platform.PDATime); | |||
Assert.Equal(1, jTNE_0X01_Platform.LoginNum); | |||
Assert.Equal(0x04, jTNE_0X01_Platform.BatteryLength); | |||
Assert.Equal("12345678998765432100", jTNE_0X01_Platform.SIM); | |||
Assert.Equal(3, jTNE_0X01_Platform.BatteryCount); | |||
Assert.Equal("1234", jTNE_0X01_Platform.BatteryNos[0]); | |||
Assert.Equal("4567", jTNE_0X01_Platform.BatteryNos[1]); | |||
Assert.Equal("9870", jTNE_0X01_Platform.BatteryNos[2]); | |||
} | |||
} | |||
} |
@@ -1,340 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
using JTNE.Protocol.Internal; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x02_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.Success.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.uploadim.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
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_0x02_0x04 jTNE_0X02_0X04 = new JTNE_0x02_0x04(); | |||
jTNE_0X02_0X04.EngineStatus = 0x01; | |||
jTNE_0X02_0X04.FuelRate = 102; | |||
jTNE_0X02_0X04.Revs = 203; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x04, jTNE_0X02_0X04); | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = new JTNE_0x02_0x05(); | |||
jTNE_0X02_0X05.Lat = 1233355; | |||
jTNE_0X02_0X05.Lng = 3255555; | |||
jTNE_0X02_0X05.PositioStatus = 0x01; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x05, jTNE_0X02_0X05); | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = new JTNE_0x02_0x06(); | |||
jTNE_0X02_0X06.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryValue = 0x08; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x06, jTNE_0X02_0X06); | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = new JTNE_0x02_0x07(); | |||
jTNE_0X02_0X07.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x07, jTNE_0X02_0X07); | |||
JTNE_0x02_0x08 jTNE_0X02_0X08 = new JTNE_0x02_0x08(); | |||
jTNE_0X02_0X08.BatteryAssemblies = new List<Metadata.BatteryAssembly>(); | |||
Metadata.BatteryAssembly batteryAssembly1 = new Metadata.BatteryAssembly(); | |||
batteryAssembly1.BatteryAssemblyCurrent = 123; | |||
batteryAssembly1.BatteryAssemblyNo = 0x01; | |||
batteryAssembly1.BatteryAssemblyVoltage = 0x02; | |||
batteryAssembly1.SingleBatteryCount = 55; | |||
batteryAssembly1.ThisSingleBatteryBeginCount = 0x02; | |||
batteryAssembly1.ThisSingleBatteryBeginNo = 111; | |||
batteryAssembly1.SingleBatteryVoltages = new List<ushort> { | |||
111,222,333 | |||
}; | |||
Metadata.BatteryAssembly batteryAssembly2 = new Metadata.BatteryAssembly(); | |||
batteryAssembly2.BatteryAssemblyCurrent = 1234; | |||
batteryAssembly2.BatteryAssemblyNo = 0x03; | |||
batteryAssembly2.BatteryAssemblyVoltage = 0x05; | |||
batteryAssembly2.SingleBatteryCount = 66; | |||
batteryAssembly2.ThisSingleBatteryBeginCount = 0x02; | |||
batteryAssembly2.ThisSingleBatteryBeginNo = 222; | |||
batteryAssembly2.SingleBatteryVoltages = new List<ushort> { | |||
444,555,666 | |||
}; | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly2); | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x08, jTNE_0X02_0X08); | |||
JTNE_0x02_0x09 jTNE_0X02_0X09 = new JTNE_0x02_0x09(); | |||
jTNE_0X02_0X09.BatteryTemperatures = new List<Metadata.BatteryTemperature>(); | |||
Metadata.BatteryTemperature batteryTemperature1 = new Metadata.BatteryTemperature(); | |||
batteryTemperature1.BatteryAssemblyNo = 0x01; | |||
batteryTemperature1.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03,0x04 | |||
}; | |||
Metadata.BatteryTemperature batteryTemperature2 = new Metadata.BatteryTemperature(); | |||
batteryTemperature2.BatteryAssemblyNo = 0x02; | |||
batteryTemperature2.Temperatures = new byte[] | |||
{ | |||
0x05,0x06,0x07,0x08 | |||
}; | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09.BatteryTemperatures.Add(batteryTemperature2); | |||
jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x09, jTNE_0X02_0X09); | |||
jTNEPackage.Bodies = jTNE_0X02; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("2323020131323334353637383900000000000000000100D001040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA20802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A0902010004010203040200040506070867", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "2323020131323334353637383900000000000000000100D001040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA20802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A0902010004010203040200040506070867".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
JTNE_0x02 jTNE_0X02 = jTNEPackage.Bodies as JTNE_0x02; | |||
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); | |||
JTNE_0x02_0x04 jTNE_0X02_0X04 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x04] as JTNE_0x02_0x04; | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x04, jTNE_0X02_0X04.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04.Revs); | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x05] as JTNE_0x02_0x05; | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x05, jTNE_0X02_0X05.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05.PositioStatus); | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x06] as JTNE_0x02_0x06; | |||
Assert.Equal(0x12, jTNE_0X02_0X06.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06.MinVoltageSingleBatteryValue); | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x07] as JTNE_0x02_0x07; | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x07, jTNE_0X02_0X07.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07.AlarmOthers); | |||
JTNE_0x02_0x08 jTNE_0X02_0X08 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x08] as JTNE_0x02_0x08; | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x08, jTNE_0X02_0X08.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X08.BatteryAssemblyCount); | |||
Metadata.BatteryAssembly batteryAssembly1 = jTNE_0X02_0X08.BatteryAssemblies[0]; | |||
Assert.Equal(123, batteryAssembly1.BatteryAssemblyCurrent); | |||
Assert.Equal(0x01, batteryAssembly1.BatteryAssemblyNo); | |||
Assert.Equal(0x02, batteryAssembly1.BatteryAssemblyVoltage); | |||
Assert.Equal(55, batteryAssembly1.SingleBatteryCount); | |||
Assert.Equal(111, batteryAssembly1.ThisSingleBatteryBeginNo); | |||
Assert.Equal(3, batteryAssembly1.ThisSingleBatteryBeginCount); | |||
Assert.Equal(new List<ushort> { | |||
111,222,333 | |||
}, batteryAssembly1.SingleBatteryVoltages); | |||
Metadata.BatteryAssembly batteryAssembly2 = jTNE_0X02_0X08.BatteryAssemblies[1]; | |||
Assert.Equal(1234, batteryAssembly2.BatteryAssemblyCurrent); | |||
Assert.Equal(0x03, batteryAssembly2.BatteryAssemblyNo); | |||
Assert.Equal(0x05, batteryAssembly2.BatteryAssemblyVoltage); | |||
Assert.Equal(66, batteryAssembly2.SingleBatteryCount); | |||
Assert.Equal(222, batteryAssembly2.ThisSingleBatteryBeginNo); | |||
Assert.Equal(3, batteryAssembly2.ThisSingleBatteryBeginCount); | |||
Assert.Equal(new List<ushort> { | |||
444,555,666 | |||
}, batteryAssembly2.SingleBatteryVoltages); | |||
JTNE_0x02_0x09 jTNE_0X02_0X09 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x09] as JTNE_0x02_0x09; | |||
Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x09, jTNE_0X02_0X09.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X09.BatteryTemperatureCount); | |||
Metadata.BatteryTemperature batteryTemperature1 = jTNE_0X02_0X09.BatteryTemperatures[0]; | |||
Assert.Equal(0x01, batteryTemperature1.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature1.TemperatureProbeCount); | |||
Assert.Equal(new byte[] | |||
{ | |||
0x01,0x02,0x03,0x04 | |||
}, batteryTemperature1.Temperatures); | |||
Metadata.BatteryTemperature batteryTemperature2 = jTNE_0X02_0X09.BatteryTemperatures[1]; | |||
Assert.Equal(0x02, batteryTemperature2.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature2.TemperatureProbeCount); | |||
Assert.Equal(new byte[] | |||
{ | |||
0x05,0x06,0x07,0x08 | |||
}, batteryTemperature2.Temperatures); | |||
} | |||
} | |||
} |
@@ -0,0 +1,340 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
using JTNE.Protocol.Internal; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x02_Package_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Device jTNEPackage_Device = new JTNEPackage_Device(); | |||
jTNEPackage_Device.AskId = JTNEAskId.Success.ToByteValue(); | |||
jTNEPackage_Device.MsgId = JTNEMsgId_Device.uploadim.ToByteValue(); | |||
jTNEPackage_Device.VIN = "123456789"; | |||
JTNE_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); | |||
jTNE_0X02_Device.Values = new Dictionary<byte, JTNE_0x02_Body_Device>(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01_Device.Accelerator = 0x02; | |||
jTNE_0X02_0X01_Device.Brakes = 0x03; | |||
jTNE_0X02_0X01_Device.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Device.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Device.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Device.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Device.Resistance = 123; | |||
jTNE_0X02_0X01_Device.SOC = 0x03; | |||
jTNE_0X02_0X01_Device.Speed = 58; | |||
jTNE_0X02_0X01_Device.Stall = 0x02; | |||
jTNE_0X02_0X01_Device.TotalDis = 6666; | |||
jTNE_0X02_0X01_Device.TotalTemp = 99; | |||
jTNE_0X02_0X01_Device.TotalVoltage = 100; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02_Device.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_Device.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Device.Electricals.Add(electrical2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03_Device = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03_Device.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Device.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Device.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Device.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Device.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device); | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04_Device = new JTNE_0x02_0x04_Device(); | |||
jTNE_0X02_0X04_Device.EngineStatus = 0x01; | |||
jTNE_0X02_0X04_Device.FuelRate = 102; | |||
jTNE_0X02_0X04_Device.Revs = 203; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x04_Device, jTNE_0X02_0X04_Device); | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = new JTNE_0x02_0x05_Device(); | |||
jTNE_0X02_0X05_Device.Lat = 1233355; | |||
jTNE_0X02_0X05_Device.Lng = 3255555; | |||
jTNE_0X02_0X05_Device.PositioStatus = 0x01; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x05_Device, jTNE_0X02_0X05_Device); | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = new JTNE_0x02_0x06_Device(); | |||
jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06_Device.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue = 0x08; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x06_Device, jTNE_0X02_0X06_Device); | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07_Device = new JTNE_0x02_0x07_Device(); | |||
jTNE_0X02_0X07_Device.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07_Device.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07_Device.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07_Device.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x07_Device, jTNE_0X02_0X07_Device); | |||
JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = new JTNE_0x02_0x08_Device(); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies = new List<Metadata.BatteryAssembly>(); | |||
Metadata.BatteryAssembly batteryAssembly1 = new Metadata.BatteryAssembly(); | |||
batteryAssembly1.BatteryAssemblyCurrent = 123; | |||
batteryAssembly1.BatteryAssemblyNo = 0x01; | |||
batteryAssembly1.BatteryAssemblyVoltage = 0x02; | |||
batteryAssembly1.SingleBatteryCount = 55; | |||
batteryAssembly1.ThisSingleBatteryBeginCount = 0x02; | |||
batteryAssembly1.ThisSingleBatteryBeginNo = 111; | |||
batteryAssembly1.SingleBatteryVoltages = new List<ushort> { | |||
111,222,333 | |||
}; | |||
Metadata.BatteryAssembly batteryAssembly2 = new Metadata.BatteryAssembly(); | |||
batteryAssembly2.BatteryAssemblyCurrent = 1234; | |||
batteryAssembly2.BatteryAssemblyNo = 0x03; | |||
batteryAssembly2.BatteryAssemblyVoltage = 0x05; | |||
batteryAssembly2.SingleBatteryCount = 66; | |||
batteryAssembly2.ThisSingleBatteryBeginCount = 0x02; | |||
batteryAssembly2.ThisSingleBatteryBeginNo = 222; | |||
batteryAssembly2.SingleBatteryVoltages = new List<ushort> { | |||
444,555,666 | |||
}; | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly1); | |||
jTNE_0X02_0X08_Device.BatteryAssemblies.Add(batteryAssembly2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x08_Device, jTNE_0X02_0X08_Device); | |||
JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = new JTNE_0x02_0x09_Device(); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures = new List<Metadata.BatteryTemperature>(); | |||
Metadata.BatteryTemperature batteryTemperature1 = new Metadata.BatteryTemperature(); | |||
batteryTemperature1.BatteryAssemblyNo = 0x01; | |||
batteryTemperature1.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03,0x04 | |||
}; | |||
Metadata.BatteryTemperature batteryTemperature2 = new Metadata.BatteryTemperature(); | |||
batteryTemperature2.BatteryAssemblyNo = 0x02; | |||
batteryTemperature2.Temperatures = new byte[] | |||
{ | |||
0x05,0x06,0x07,0x08 | |||
}; | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature1); | |||
jTNE_0X02_0X09_Device.BatteryTemperatures.Add(batteryTemperature2); | |||
jTNE_0X02_Device.Values.Add(JTNE_0x02_Body_Device.JTNE_0x02_0x09_Device, jTNE_0X02_0X09_Device); | |||
jTNEPackage_Device.Bodies = jTNE_0X02_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Device).ToHexString(); | |||
Assert.Equal("2323020131323334353637383900000000000000000100D001040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA20802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A0902010004010203040200040506070867", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "2323020131323334353637383900000000000000000100D001040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA20802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A0902010004010203040200040506070867".ToHexBytes(); | |||
JTNEPackage_Device jTNEPackage_Device = JTNESerializer_Device.Deserialize(data); | |||
JTNE_0x02_Device jTNE_0X02_Device = jTNEPackage_Device.Bodies as JTNE_0x02_Device; | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device] as JTNE_0x02_0x01_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x01_Device, jTNE_0X02_0X01_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Accelerator); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.Brakes); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Device.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Device.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Device.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Device.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Device.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Device.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Device.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Device.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Device.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Device.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Device.TotalVoltage); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device] as JTNE_0x02_0x02_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x02_Device, jTNE_0X02_0X02_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Device.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Device.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_Device.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_Device jTNE_0X02_0X03_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device] as JTNE_0x02_0x03_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x03_Device, jTNE_0X02_0X03_Device.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Device.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Device.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Device.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Device.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Device.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Device.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Device.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Device.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Device.Temperatures); | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x04_Device] as JTNE_0x02_0x04_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x04_Device, jTNE_0X02_0X04_Device.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04_Device.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04_Device.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04_Device.Revs); | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x05_Device] as JTNE_0x02_0x05_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x05_Device, jTNE_0X02_0X05_Device.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05_Device.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05_Device.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05_Device.PositioStatus); | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x06_Device] as JTNE_0x02_0x06_Device; | |||
Assert.Equal(0x12, jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Device.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06_Device.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue); | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x07_Device] as JTNE_0x02_0x07_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x07_Device, jTNE_0X02_0X07_Device.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07_Device.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07_Device.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07_Device.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07_Device.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07_Device.AlarmOthers); | |||
JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x08_Device] as JTNE_0x02_0x08_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x08_Device, jTNE_0X02_0X08_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X08_Device.BatteryAssemblyCount); | |||
Metadata.BatteryAssembly batteryAssembly1 = jTNE_0X02_0X08_Device.BatteryAssemblies[0]; | |||
Assert.Equal(123, batteryAssembly1.BatteryAssemblyCurrent); | |||
Assert.Equal(0x01, batteryAssembly1.BatteryAssemblyNo); | |||
Assert.Equal(0x02, batteryAssembly1.BatteryAssemblyVoltage); | |||
Assert.Equal(55, batteryAssembly1.SingleBatteryCount); | |||
Assert.Equal(111, batteryAssembly1.ThisSingleBatteryBeginNo); | |||
Assert.Equal(3, batteryAssembly1.ThisSingleBatteryBeginCount); | |||
Assert.Equal(new List<ushort> { | |||
111,222,333 | |||
}, batteryAssembly1.SingleBatteryVoltages); | |||
Metadata.BatteryAssembly batteryAssembly2 = jTNE_0X02_0X08_Device.BatteryAssemblies[1]; | |||
Assert.Equal(1234, batteryAssembly2.BatteryAssemblyCurrent); | |||
Assert.Equal(0x03, batteryAssembly2.BatteryAssemblyNo); | |||
Assert.Equal(0x05, batteryAssembly2.BatteryAssemblyVoltage); | |||
Assert.Equal(66, batteryAssembly2.SingleBatteryCount); | |||
Assert.Equal(222, batteryAssembly2.ThisSingleBatteryBeginNo); | |||
Assert.Equal(3, batteryAssembly2.ThisSingleBatteryBeginCount); | |||
Assert.Equal(new List<ushort> { | |||
444,555,666 | |||
}, batteryAssembly2.SingleBatteryVoltages); | |||
JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = jTNE_0X02_Device.Values[JTNE_0x02_Body_Device.JTNE_0x02_0x09_Device] as JTNE_0x02_0x09_Device; | |||
Assert.Equal(JTNE_0x02_Body_Device.JTNE_0x02_0x09_Device, jTNE_0X02_0X09_Device.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X09_Device.BatteryTemperatureCount); | |||
Metadata.BatteryTemperature batteryTemperature1 = jTNE_0X02_0X09_Device.BatteryTemperatures[0]; | |||
Assert.Equal(0x01, batteryTemperature1.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature1.TemperatureProbeCount); | |||
Assert.Equal(new byte[] | |||
{ | |||
0x01,0x02,0x03,0x04 | |||
}, batteryTemperature1.Temperatures); | |||
Metadata.BatteryTemperature batteryTemperature2 = jTNE_0X02_0X09_Device.BatteryTemperatures[1]; | |||
Assert.Equal(0x02, batteryTemperature2.BatteryAssemblyNo); | |||
Assert.Equal(4, batteryTemperature2.TemperatureProbeCount); | |||
Assert.Equal(new byte[] | |||
{ | |||
0x05,0x06,0x07,0x08 | |||
}, batteryTemperature2.Temperatures); | |||
} | |||
} | |||
} |
@@ -0,0 +1,243 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
using JTNE.Protocol.Internal; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x02_Package_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.Success.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.uploadim.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); | |||
jTNE_0X02_Platform.Values = new Dictionary<byte, JTNE_0x02_Body_Platform>(); | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.CarStatus = 0x04; | |||
jTNE_0X02_0X01_Platform.ChargeStatus = 0x05; | |||
jTNE_0X02_0X01_Platform.DCStatus = 0x06; | |||
jTNE_0X02_0X01_Platform.OperationMode = 0x07; | |||
jTNE_0X02_0X01_Platform.Resistance = 123; | |||
jTNE_0X02_0X01_Platform.SOC = 0x03; | |||
jTNE_0X02_0X01_Platform.Speed = 58; | |||
jTNE_0X02_0X01_Platform.Stall = 0x02; | |||
jTNE_0X02_0X01_Platform.TotalDis = 6666; | |||
jTNE_0X02_0X01_Platform.TotalTemp = 99; | |||
jTNE_0X02_0X01_Platform.TotalVoltage = 100; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.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_Platform.Electricals.Add(electrical1); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical2); | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform); | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.DCStatus = 0x02; | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = 111; | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = 2222; | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = 3222; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = 6666; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = 0x56; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = 3336; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = 0x65; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = 3355; | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = 0x22; | |||
jTNE_0X02_0X03_Platform.Temperatures = new byte[] | |||
{ | |||
0x01,0x02,0x03 | |||
}; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform); | |||
JTNE_0x02_0x04_Platform jTNE_0X02_0X04_Platform = new JTNE_0x02_0x04_Platform(); | |||
jTNE_0X02_0X04_Platform.EngineStatus = 0x01; | |||
jTNE_0X02_0X04_Platform.FuelRate = 102; | |||
jTNE_0X02_0X04_Platform.Revs = 203; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x04_Platform, jTNE_0X02_0X04_Platform); | |||
JTNE_0x02_0x05_Platform jTNE_0X02_0X05_Platform = new JTNE_0x02_0x05_Platform(); | |||
jTNE_0X02_0X05_Platform.Lat = 1233355; | |||
jTNE_0X02_0X05_Platform.Lng = 3255555; | |||
jTNE_0X02_0X05_Platform.PositioStatus = 0x01; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x05_Platform, jTNE_0X02_0X05_Platform); | |||
JTNE_0x02_0x06_Platform jTNE_0X02_0X06_Platform = new JTNE_0x02_0x06_Platform(); | |||
jTNE_0X02_0X06_Platform.MaxTempBatteryAssemblyNo = 0x12; | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryNo = 0x32; | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryValue = 0x42; | |||
jTNE_0X02_0X06_Platform.MaxVoltageBatteryAssemblyNo = 0x11; | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryNo = 0x15; | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryValue = 123; | |||
jTNE_0X02_0X06_Platform.MinTempBatteryAssemblyNo = 0x32; | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryNo = 0x11; | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryValue = 0x06; | |||
jTNE_0X02_0X06_Platform.MinVoltageBatteryAssemblyNo = 0x07; | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryNo = 0x09; | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryValue = 0x08; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x06_Platform, jTNE_0X02_0X06_Platform); | |||
JTNE_0x02_0x07_Platform jTNE_0X02_0X07_Platform = new JTNE_0x02_0x07_Platform(); | |||
jTNE_0X02_0X07_Platform.AlarmBatteryFlag = 5533; | |||
jTNE_0X02_0X07_Platform.AlarmLevel = 0x11; | |||
jTNE_0X02_0X07_Platform.AlarmBatteryOthers = new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmEls = new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmEngines = new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}; | |||
jTNE_0X02_0X07_Platform.AlarmOthers = new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}; | |||
jTNE_0X02_Platform.Values.Add(JTNE_0x02_Body_Platform.JTNE_0x02_0x07_Platform, jTNE_0X02_0X07_Platform); | |||
jTNEPackage_Platform.Bodies = jTNE_0X02_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("23230201313233343536373839000000000000000001009C01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2BD", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "23230201313233343536373839000000000000000001009C01040507003A00001A0A00640063030602007B0202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502040100CB006605010031AD030012D1CB061115007B0709000832124211320607110000159D03000003E8000003E9000003EA03000007D0000007D1000007D20300000BB800000BB900000BBA0300000FA000000FA100000FA2BD".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize(data); | |||
JTNE_0x02_Platform jTNE_0X02_Platform = jTNEPackage_Platform.Bodies as JTNE_0x02_Platform; | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform] as JTNE_0x02_0x01_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x01_Platform, jTNE_0X02_0X01_Platform.TypeCode); | |||
Assert.Equal(0x04, jTNE_0X02_0X01_Platform.CarStatus); | |||
Assert.Equal(0x05, jTNE_0X02_0X01_Platform.ChargeStatus); | |||
Assert.Equal(0x06, jTNE_0X02_0X01_Platform.DCStatus); | |||
Assert.Equal(0x07, jTNE_0X02_0X01_Platform.OperationMode); | |||
Assert.Equal(123, jTNE_0X02_0X01_Platform.Resistance); | |||
Assert.Equal(0x03, jTNE_0X02_0X01_Platform.SOC); | |||
Assert.Equal(58, jTNE_0X02_0X01_Platform.Speed); | |||
Assert.Equal(0x02, jTNE_0X02_0X01_Platform.Stall); | |||
Assert.Equal((uint)6666, jTNE_0X02_0X01_Platform.TotalDis); | |||
Assert.Equal(99, jTNE_0X02_0X01_Platform.TotalTemp); | |||
Assert.Equal(100, jTNE_0X02_0X01_Platform.TotalVoltage); | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform] as JTNE_0x02_0x02_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x02_Platform, jTNE_0X02_0X02_Platform.TypeCode); | |||
Assert.Equal(2, jTNE_0X02_0X02_Platform.ElectricalCount); | |||
Metadata.Electrical electrical1 = jTNE_0X02_0X02_Platform.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_Platform.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_Platform jTNE_0X02_0X03_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform] as JTNE_0x02_0x03_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x03_Platform, jTNE_0X02_0X03_Platform.TypeCode); | |||
Assert.Equal(0x02, jTNE_0X02_0X03_Platform.DCStatus); | |||
Assert.Equal(111, jTNE_0X02_0X03_Platform.FuelBatteryCurrent); | |||
Assert.Equal(2222, jTNE_0X02_0X03_Platform.FuelBatteryVoltage); | |||
Assert.Equal(3222, jTNE_0X02_0X03_Platform.FuelConsumptionRate); | |||
Assert.Equal(6666, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations); | |||
Assert.Equal(0x56, jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo); | |||
Assert.Equal(3336, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure); | |||
Assert.Equal(0x65, jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo); | |||
Assert.Equal(3355, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp); | |||
Assert.Equal(0x22, jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo); | |||
Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03_Platform.Temperatures); | |||
JTNE_0x02_0x04_Platform jTNE_0X02_0X04_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x04_Platform] as JTNE_0x02_0x04_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x04_Platform, jTNE_0X02_0X04_Platform.TypeCode); | |||
Assert.Equal(0x01, jTNE_0X02_0X04_Platform.EngineStatus); | |||
Assert.Equal(102, jTNE_0X02_0X04_Platform.FuelRate); | |||
Assert.Equal(203, jTNE_0X02_0X04_Platform.Revs); | |||
JTNE_0x02_0x05_Platform jTNE_0X02_0X05_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x05_Platform] as JTNE_0x02_0x05_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x05_Platform, jTNE_0X02_0X05_Platform.TypeCode); | |||
Assert.Equal((uint)1233355, jTNE_0X02_0X05_Platform.Lat); | |||
Assert.Equal((uint)3255555, jTNE_0X02_0X05_Platform.Lng); | |||
Assert.Equal(0x01, jTNE_0X02_0X05_Platform.PositioStatus); | |||
JTNE_0x02_0x06_Platform jTNE_0X02_0X06_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x06_Platform] as JTNE_0x02_0x06_Platform; | |||
Assert.Equal(0x12, jTNE_0X02_0X06_Platform.MaxTempBatteryAssemblyNo); | |||
Assert.Equal(0x32, jTNE_0X02_0X06_Platform.MaxTempProbeBatteryNo); | |||
Assert.Equal(0x42, jTNE_0X02_0X06_Platform.MaxTempProbeBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Platform.MaxVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x15, jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryNo); | |||
Assert.Equal(123, jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryValue); | |||
Assert.Equal(0x11, jTNE_0X02_0X06_Platform.MinTempProbeBatteryNo); | |||
Assert.Equal(0x06, jTNE_0X02_0X06_Platform.MinTempProbeBatteryValue); | |||
Assert.Equal(0x07, jTNE_0X02_0X06_Platform.MinVoltageBatteryAssemblyNo); | |||
Assert.Equal(0x09, jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryNo); | |||
Assert.Equal(0x08, jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryValue); | |||
JTNE_0x02_0x07_Platform jTNE_0X02_0X07_Platform = jTNE_0X02_Platform.Values[JTNE_0x02_Body_Platform.JTNE_0x02_0x07_Platform] as JTNE_0x02_0x07_Platform; | |||
Assert.Equal(JTNE_0x02_Body_Platform.JTNE_0x02_0x07_Platform, jTNE_0X02_0X07_Platform.TypeCode); | |||
Assert.Equal(0x11, jTNE_0X02_0X07_Platform.AlarmLevel); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmBatteryOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
1000,1001,1002 | |||
}, jTNE_0X02_0X07_Platform.AlarmBatteryOthers); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEls.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
2000,2001,2002 | |||
}, jTNE_0X02_0X07_Platform.AlarmEls); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEngines.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
3000,3001,3002 | |||
}, jTNE_0X02_0X07_Platform.AlarmEngines); | |||
Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmOthers.Count); | |||
Assert.Equal(new List<uint> | |||
{ | |||
4000,4001,4002 | |||
}, jTNE_0X02_0X07_Platform.AlarmOthers); | |||
} | |||
} | |||
} |
@@ -1,41 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x04_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.loginout.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
JTNE_0x04 jTNE_0X04 = new JTNE_0x04(); | |||
jTNE_0X04.LogoutTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X04.LogoutNum = 1; | |||
jTNEPackage.Bodies = jTNE_0X04; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232304FE31323334353637383900000000000000000100081301171737380001DE", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232304FE31323334353637383900000000000000000100081301171737380001DE".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.loginout.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
JTNE_0x04 jTNE_0X04 = jTNEPackage.Bodies as JTNE_0x04; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X04.LogoutTime); | |||
Assert.Equal(1, jTNE_0X04.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x04_Package_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Device jTNEPackage_Device = new JTNEPackage_Device(); | |||
jTNEPackage_Device.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Device.MsgId = JTNEMsgId_Device.loginout.ToByteValue(); | |||
jTNEPackage_Device.VIN = "123456789"; | |||
JTNE_0x04_Device jTNE_0X04_Device = new JTNE_0x04_Device(); | |||
jTNE_0X04_Device.LogoutTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X04_Device.LogoutNum = 1; | |||
jTNEPackage_Device.Bodies = jTNE_0X04_Device; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Device).ToHexString(); | |||
Assert.Equal("232304FE31323334353637383900000000000000000100081301171737380001DE", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232304FE31323334353637383900000000000000000100081301171737380001DE".ToHexBytes(); | |||
JTNEPackage_Device jTNEPackage_Device = JTNESerializer_Device.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Device.AskId); | |||
Assert.Equal(JTNEMsgId_Device.loginout.ToByteValue(), jTNEPackage_Device.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Device.VIN); | |||
JTNE_0x04_Device jTNE_0X04_Device = jTNEPackage_Device.Bodies as JTNE_0x04_Device; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X04_Device.LogoutTime); | |||
Assert.Equal(1, jTNE_0X04_Device.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x04_Package_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.loginout.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
JTNE_0x04_Platform jTNE_0X04_Platform = new JTNE_0x04_Platform(); | |||
jTNE_0X04_Platform.LogoutTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X04_Platform.LogoutNum = 1; | |||
jTNEPackage_Platform.Bodies = jTNE_0X04_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232304FE31323334353637383900000000000000000100081301171737380001DE", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232304FE31323334353637383900000000000000000100081301171737380001DE".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize<JTNEPackage_Platform>(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Platform.loginout.ToByteValue(), jTNEPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Platform.VIN); | |||
JTNE_0x04_Platform jTNE_0X04_Platform = jTNEPackage_Platform.Bodies as JTNE_0x04_Platform; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X04_Platform.LogoutTime); | |||
Assert.Equal(1, jTNE_0X04_Platform.LogoutNum); | |||
} | |||
} | |||
} |
@@ -1,46 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x05_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.platformlogin.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
JTNE_0x05 jTNE_0X05 = new JTNE_0x05(); | |||
jTNE_0X05.LoginTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X05.LoginNum = 6666; | |||
jTNE_0X05.PlatformUserName = "SmallChi518"; | |||
jTNE_0X05.PlatformPassword = "1234567890123456789"; | |||
jTNEPackage.Bodies = jTNE_0X05; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232305FE31323334353637383900000000000000000100291301171737381A0A536D616C6C43686935313800313233343536373839303132333435363738390001FF", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232305FE31323334353637383900000000000000000100291301171737381A0A536D616C6C43686935313800313233343536373839303132333435363738390001FF".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.platformlogin.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
JTNE_0x05 jTNE_0X05 = jTNEPackage.Bodies as JTNE_0x05; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X05.LoginTime); | |||
Assert.Equal(6666, jTNE_0X05.LoginNum); | |||
Assert.Equal("SmallChi518", jTNE_0X05.PlatformUserName); | |||
Assert.Equal("1234567890123456789", jTNE_0X05.PlatformPassword); | |||
Assert.Equal(0x01, jTNE_0X05.EncryptMethod); | |||
} | |||
} | |||
} |
@@ -0,0 +1,46 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x05_Package_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.platformlogin.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
JTNE_0x05_Platform jTNE_0X05_Platform = new JTNE_0x05_Platform(); | |||
jTNE_0X05_Platform.LoginTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X05_Platform.LoginNum = 6666; | |||
jTNE_0X05_Platform.PlatformUserName = "SmallChi518"; | |||
jTNE_0X05_Platform.PlatformPassword = "1234567890123456789"; | |||
jTNEPackage_Platform.Bodies = jTNE_0X05_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232305FE31323334353637383900000000000000000100291301171737381A0A536D616C6C43686935313800313233343536373839303132333435363738390001FF", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232305FE31323334353637383900000000000000000100291301171737381A0A536D616C6C43686935313800313233343536373839303132333435363738390001FF".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Platform.platformlogin.ToByteValue(), jTNEPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Platform.VIN); | |||
JTNE_0x05_Platform jTNE_0X05_Platform = jTNEPackage_Platform.Bodies as JTNE_0x05_Platform; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X05_Platform.LoginTime); | |||
Assert.Equal(6666, jTNE_0X05_Platform.LoginNum); | |||
Assert.Equal("SmallChi518", jTNE_0X05_Platform.PlatformUserName); | |||
Assert.Equal("1234567890123456789", jTNE_0X05_Platform.PlatformPassword); | |||
Assert.Equal(0x01, jTNE_0X05_Platform.EncryptMethod); | |||
} | |||
} | |||
} |
@@ -1,41 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x06_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.platformlogout.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
JTNE_0x06 jTNE_0X06 = new JTNE_0x06(); | |||
jTNE_0X06.LogoutTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X06.LogoutNum = 1; | |||
jTNEPackage.Bodies = jTNE_0X06; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232306FE31323334353637383900000000000000000100081301171737380001DC", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232306FE31323334353637383900000000000000000100081301171737380001DC".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.platformlogout.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
JTNE_0x06 jTNE_0X06 = jTNEPackage.Bodies as JTNE_0x06; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X06.LogoutTime); | |||
Assert.Equal(1, jTNE_0X06.LogoutNum); | |||
} | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x06_Package_PlatformTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
jTNEPackage_Platform.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Platform.MsgId = JTNEMsgId_Platform.platformlogout.ToByteValue(); | |||
jTNEPackage_Platform.VIN = "123456789"; | |||
JTNE_0x06_Platform jTNE_0X06_Platform = new JTNE_0x06_Platform(); | |||
jTNE_0X06_Platform.LogoutTime = DateTime.Parse("2019-01-23 23:55:56"); | |||
jTNE_0X06_Platform.LogoutNum = 1; | |||
jTNEPackage_Platform.Bodies = jTNE_0X06_Platform; | |||
var hex = JTNESerializer_Platform.Serialize(jTNEPackage_Platform).ToHexString(); | |||
Assert.Equal("232306FE31323334353637383900000000000000000100081301171737380001DC", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232306FE31323334353637383900000000000000000100081301171737380001DC".ToHexBytes(); | |||
JTNEPackage_Platform jTNEPackage_Platform = JTNESerializer_Platform.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Platform.AskId); | |||
Assert.Equal(JTNEMsgId_Platform.platformlogout.ToByteValue(), jTNEPackage_Platform.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Platform.VIN); | |||
JTNE_0x06_Platform jTNE_0X06_Platform = jTNEPackage_Platform.Bodies as JTNE_0x06_Platform; | |||
Assert.Equal(DateTime.Parse("2019-01-23 23:55:56"), jTNE_0X06_Platform.LogoutTime); | |||
Assert.Equal(1, jTNE_0X06_Platform.LogoutNum); | |||
} | |||
} | |||
} |
@@ -1,35 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x07_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.heartbeat.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232307FE3132333435363738390000000000000000010000C9", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232307FE3132333435363738390000000000000000010000C9".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.heartbeat.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
Assert.Null(jTNEPackage.Bodies); | |||
} | |||
} | |||
} |
@@ -0,0 +1,35 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x07_Package_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Device jTNEPackage_Device = new JTNEPackage_Device(); | |||
jTNEPackage_Device.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Device.MsgId = JTNEMsgId_Device.heartbeat.ToByteValue(); | |||
jTNEPackage_Device.VIN = "123456789"; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Device).ToHexString(); | |||
Assert.Equal("232307FE3132333435363738390000000000000000010000C9", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232307FE3132333435363738390000000000000000010000C9".ToHexBytes(); | |||
JTNEPackage_Device jTNEPackage_Device = JTNESerializer_Device.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Device.AskId); | |||
Assert.Equal(JTNEMsgId_Device.heartbeat.ToByteValue(), jTNEPackage_Device.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Device.VIN); | |||
Assert.Null(jTNEPackage_Device.Bodies); | |||
} | |||
} | |||
} |
@@ -1,35 +0,0 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x08_PackageTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
jTNEPackage.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage.MsgId = JTNEMsgId.checktime.ToByteValue(); | |||
jTNEPackage.VIN = "123456789"; | |||
var hex = JTNESerializer.Serialize(jTNEPackage).ToHexString(); | |||
Assert.Equal("232308FE3132333435363738390000000000000000010000C6", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232308FE3132333435363738390000000000000000010000C6".ToHexBytes(); | |||
JTNEPackage jTNEPackage = JTNESerializer.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage.AskId); | |||
Assert.Equal(JTNEMsgId.checktime.ToByteValue(), jTNEPackage.MsgId); | |||
Assert.Equal("123456789", jTNEPackage.VIN); | |||
Assert.Null(jTNEPackage.Bodies); | |||
} | |||
} | |||
} |
@@ -0,0 +1,35 @@ | |||
using JTNE.Protocol.Extensions; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.MessageBody; | |||
namespace JTNE.Protocol.Test.Package | |||
{ | |||
public class JTNE_0x08_Package_DeviceTest | |||
{ | |||
[Fact] | |||
public void Test1() | |||
{ | |||
JTNEPackage_Device jTNEPackage_Device = new JTNEPackage_Device(); | |||
jTNEPackage_Device.AskId = JTNEAskId.CMD.ToByteValue(); | |||
jTNEPackage_Device.MsgId = JTNEMsgId_Device.checktime.ToByteValue(); | |||
jTNEPackage_Device.VIN = "123456789"; | |||
var hex = JTNESerializer_Device.Serialize(jTNEPackage_Device).ToHexString(); | |||
Assert.Equal("232308FE3132333435363738390000000000000000010000C6", hex); | |||
} | |||
[Fact] | |||
public void Test2() | |||
{ | |||
var data = "232308FE3132333435363738390000000000000000010000C6".ToHexBytes(); | |||
JTNEPackage_Device jTNEPackage_Device = JTNESerializer_Device.Deserialize(data); | |||
Assert.Equal(JTNEAskId.CMD.ToByteValue(), jTNEPackage_Device.AskId); | |||
Assert.Equal(JTNEMsgId_Device.checktime.ToByteValue(), jTNEPackage_Device.MsgId); | |||
Assert.Equal("123456789", jTNEPackage_Device.VIN); | |||
Assert.Null(jTNEPackage_Device.Bodies); | |||
} | |||
} | |||
} |
@@ -9,46 +9,37 @@ namespace JTNE.Protocol.Enums | |||
/// <summary> | |||
/// 命令单元 | |||
/// </summary> | |||
public enum JTNEMsgId:byte | |||
public enum JTNEMsgId_Device:byte | |||
{ | |||
/// <summary> | |||
/// 车辆登入 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x01))] | |||
[JTNEBodiesType(typeof(JTNE_0x01_Device))] | |||
login = 0x01, | |||
/// <summary> | |||
/// 实时信息上传 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x02))] | |||
[JTNEBodiesType(typeof(JTNE_0x02_Device))] | |||
uploadim = 0x02, | |||
/// <summary> | |||
/// 补传信息上传 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x03_Device))] | |||
uploadsup = 0x03, | |||
/// <summary> | |||
/// 车辆登出 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x04))] | |||
[JTNEBodiesType(typeof(JTNE_0x04_Device))] | |||
loginout = 0x04, | |||
/// <summary> | |||
/// 平台登入 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x05))] | |||
platformlogin = 0x05, | |||
/// <summary> | |||
/// 平台登出 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x06))] | |||
platformlogout = 0x06, | |||
/// <summary> | |||
/// 心跳 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x07))] | |||
[JTNEBodiesType(typeof(JTNE_0x07_Device))] | |||
heartbeat = 0x07, | |||
/// <summary> | |||
/// 终端校时 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x08))] | |||
[JTNEBodiesType(typeof(JTNE_0x08_Device))] | |||
checktime = 0x08, | |||
/// <summary> | |||
/// 查询命令 |
@@ -0,0 +1,45 @@ | |||
using JTNE.Protocol.Attributes; | |||
using JTNE.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JTNE.Protocol.Enums | |||
{ | |||
/// <summary> | |||
/// 命令单元 | |||
/// </summary> | |||
public enum JTNEMsgId_Platform:byte | |||
{ | |||
/// <summary> | |||
/// 车辆登入 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x01_Platform))] | |||
login = 0x01, | |||
/// <summary> | |||
/// 实时信息上传 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x02_Platform))] | |||
uploadim = 0x02, | |||
/// <summary> | |||
/// 补传信息上传 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x03_Platform))] | |||
uploadsup = 0x03, | |||
/// <summary> | |||
/// 车辆登出 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x04_Platform))] | |||
loginout = 0x04, | |||
/// <summary> | |||
/// 平台登入 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x05_Platform))] | |||
platformlogin = 0x05, | |||
/// <summary> | |||
/// 平台登出 | |||
/// </summary> | |||
[JTNEBodiesType(typeof(JTNE_0x06_Platform))] | |||
platformlogout = 0x06, | |||
} | |||
} |
@@ -8,7 +8,7 @@ namespace JTNE.Protocol.Extensions | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
public static class JTNEPackageExtensions | |||
public static class JTNEPackage_DeviceExtensions | |||
{ | |||
/// <summary> | |||
/// | |||
@@ -19,10 +19,10 @@ namespace JTNE.Protocol.Extensions | |||
/// <param name="vin"></param> | |||
/// <param name="bodies"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage Create<TJTNEBodies>(this JTNEMsgId msgId,string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
public static JTNEPackage_Device Create<TJTNEBodies>(this JTNEMsgId_Device msgId,string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
where TJTNEBodies : JTNEBodies | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId.ToByteValue(); | |||
jTNEPackage.Bodies = bodies; | |||
@@ -37,9 +37,9 @@ namespace JTNE.Protocol.Extensions | |||
/// <param name="vin"></param> | |||
/// <param name="askId"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage Create(this JTNEMsgId msgId, string vin, JTNEAskId askId) | |||
public static JTNEPackage_Device Create(this JTNEMsgId_Device msgId, string vin, JTNEAskId askId) | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId.ToByteValue(); | |||
jTNEPackage.VIN = vin; | |||
@@ -55,10 +55,10 @@ namespace JTNE.Protocol.Extensions | |||
/// <param name="askId"></param> | |||
/// <param name="bodies"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage CreateCustomMsgId<TJTNEBodies>(this byte msgId, string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
public static JTNEPackage_Device CreateCustomMsgId<TJTNEBodies>(this byte msgId, string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
where TJTNEBodies : JTNEBodies | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId; | |||
jTNEPackage.Bodies = bodies; | |||
@@ -73,9 +73,9 @@ namespace JTNE.Protocol.Extensions | |||
/// <param name="askId"></param> | |||
/// <param name="vin"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage CreateCustomMsgId(this byte msgId, string vin, JTNEAskId askId) | |||
public static JTNEPackage_Device CreateCustomMsgId(this byte msgId, string vin, JTNEAskId askId) | |||
{ | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage = new JTNEPackage_Device(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId; | |||
jTNEPackage.VIN = vin; |
@@ -0,0 +1,85 @@ | |||
using JTNE.Protocol.Enums; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JTNE.Protocol.Extensions | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
public static class JTNEPackage_PlatformExtensions | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <typeparam name="TJTNEBodies"></typeparam> | |||
/// <param name="msgId"></param> | |||
/// <param name="askId"></param> | |||
/// <param name="vin"></param> | |||
/// <param name="bodies"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage_Platform Create<TJTNEBodies>(this JTNEMsgId_Platform msgId,string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
where TJTNEBodies : JTNEBodies | |||
{ | |||
JTNEPackage_Platform jTNEPackage = new JTNEPackage_Platform(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId.ToByteValue(); | |||
jTNEPackage.Bodies = bodies; | |||
jTNEPackage.VIN = vin; | |||
return jTNEPackage; | |||
} | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="msgId"></param> | |||
/// <param name="vin"></param> | |||
/// <param name="askId"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage_Platform Create(this JTNEMsgId_Platform msgId, string vin, JTNEAskId askId) | |||
{ | |||
JTNEPackage_Platform jTNEPackage = new JTNEPackage_Platform(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId.ToByteValue(); | |||
jTNEPackage.VIN = vin; | |||
return jTNEPackage; | |||
} | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <typeparam name="TJTNEBodies"></typeparam> | |||
/// <param name="msgId"></param> | |||
/// <param name="vin"></param> | |||
/// <param name="askId"></param> | |||
/// <param name="bodies"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage_Platform CreateCustomMsgId<TJTNEBodies>(this byte msgId, string vin, JTNEAskId askId, TJTNEBodies bodies) | |||
where TJTNEBodies : JTNEBodies | |||
{ | |||
JTNEPackage_Platform jTNEPackage = new JTNEPackage_Platform(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId; | |||
jTNEPackage.Bodies = bodies; | |||
jTNEPackage.VIN = vin; | |||
return jTNEPackage; | |||
} | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="msgId"></param> | |||
/// <param name="askId"></param> | |||
/// <param name="vin"></param> | |||
/// <returns></returns> | |||
public static JTNEPackage_Platform CreateCustomMsgId(this byte msgId, string vin, JTNEAskId askId) | |||
{ | |||
JTNEPackage_Platform jTNEPackage = new JTNEPackage_Platform(); | |||
jTNEPackage.AskId = askId.ToByteValue(); | |||
jTNEPackage.MsgId = msgId; | |||
jTNEPackage.VIN = vin; | |||
return jTNEPackage; | |||
} | |||
} | |||
} |
@@ -8,13 +8,13 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters | |||
{ | |||
public class JTNEHeaderPackageFormatter : IJTNEFormatter<JTNEHeaderPackage> | |||
public class JTNEHeaderPackage_DeviceFormatter : IJTNEFormatter<JTNEHeaderPackage_Device> | |||
{ | |||
public JTNEHeaderPackage Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNEHeaderPackage_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
// 1.进行固定头校验 | |||
if (bytes[offset] != JTNEPackage.BeginFlag && bytes[offset + 1] == JTNEPackage.BeginFlag) | |||
if (bytes[offset] != JTNEPackage_Device.BeginFlag && bytes[offset + 1] == JTNEPackage_Device.BeginFlag) | |||
throw new JTNEException(JTNEErrorCode.BeginFlagError, $"{bytes[offset]},{bytes[offset + 1]}"); | |||
// 2.进行BCC校验码 | |||
// 校验位 = 报文长度 - 最后一位(校验位) | |||
@@ -25,30 +25,30 @@ namespace JTNE.Protocol.Formatters | |||
if (bCCCode != bCCCode2) | |||
throw new JTNEException(JTNEErrorCode.BCCCodeError, $"request:{bCCCode}!=calculate:{bCCCode2}"); | |||
} | |||
JTNEHeaderPackage jTNEPackage = new JTNEHeaderPackage(); | |||
JTNEHeaderPackage_Device jTNEPackage_Device = new JTNEHeaderPackage_Device(); | |||
offset += 2; | |||
// 3.命令标识 | |||
jTNEPackage.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 4.应答标识 | |||
jTNEPackage.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 5.VIN | |||
jTNEPackage.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
jTNEPackage_Device.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
// 6.数据加密方式 | |||
jTNEPackage.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 7.数据单元长度是数据单元的总字节数 | |||
jTNEPackage.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNEPackage_Device.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
// 8.数据体 | |||
// 8.1.根据数据加密方式进行解码 | |||
// todo: 8.2.解析出对应数据体 | |||
if (jTNEPackage.DataUnitLength > 0) | |||
if (jTNEPackage_Device.DataUnitLength > 0) | |||
{ | |||
Type jTNEBodiesImplType = JTNEMsgIdFactory.GetBodiesImplTypeByMsgId(jTNEPackage.MsgId); | |||
Type jTNEBodiesImplType = JTNEMsgId_DeviceFactory.GetBodiesImplTypeByMsgId(jTNEPackage_Device.MsgId); | |||
if (jTNEBodiesImplType != null) | |||
{ | |||
int bodyReadSize = 0; | |||
try | |||
{ | |||
jTNEPackage.Bodies = bytes.Slice(offset, jTNEPackage.DataUnitLength).ToArray(); | |||
jTNEPackage_Device.Bodies = bytes.Slice(offset, jTNEPackage_Device.DataUnitLength).ToArray(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -58,12 +58,12 @@ namespace JTNE.Protocol.Formatters | |||
} | |||
} | |||
// 9.校验码 | |||
jTNEPackage.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNEPackage; | |||
return jTNEPackage_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNEHeaderPackage value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNEHeaderPackage_Device value) | |||
{ | |||
// 1.起始符1 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag1); |
@@ -0,0 +1,97 @@ | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.Exceptions; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.Internal; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JTNE.Protocol.Formatters | |||
{ | |||
public class JTNEHeaderPackage_PlatformFormatter : IJTNEFormatter<JTNEHeaderPackage_Platform> | |||
{ | |||
public JTNEHeaderPackage_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
// 1.进行固定头校验 | |||
if (bytes[offset] != JTNEPackage_Platform.BeginFlag && bytes[offset + 1] == JTNEPackage_Platform.BeginFlag) | |||
throw new JTNEException(JTNEErrorCode.BeginFlagError, $"{bytes[offset]},{bytes[offset + 1]}"); | |||
// 2.进行BCC校验码 | |||
// 校验位 = 报文长度 - 最后一位(校验位) | |||
if (!JTNEGlobalConfigs.Instance.SkipCRCCode) | |||
{ | |||
byte bCCCode = bytes[bytes.Length - 1]; | |||
byte bCCCode2 = bytes.ToXor(2, bytes.Length - 1); | |||
if (bCCCode != bCCCode2) | |||
throw new JTNEException(JTNEErrorCode.BCCCodeError, $"request:{bCCCode}!=calculate:{bCCCode2}"); | |||
} | |||
JTNEHeaderPackage_Platform jTNEPackage_Platform = new JTNEHeaderPackage_Platform(); | |||
offset += 2; | |||
// 3.命令标识 | |||
jTNEPackage_Platform.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 4.应答标识 | |||
jTNEPackage_Platform.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 5.VIN | |||
jTNEPackage_Platform.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
// 6.数据加密方式 | |||
jTNEPackage_Platform.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 7.数据单元长度是数据单元的总字节数 | |||
jTNEPackage_Platform.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
// 8.数据体 | |||
// 8.1.根据数据加密方式进行解码 | |||
// todo: 8.2.解析出对应数据体 | |||
if (jTNEPackage_Platform.DataUnitLength > 0) | |||
{ | |||
Type jTNEBodiesImplType = JTNEMsgId_DeviceFactory.GetBodiesImplTypeByMsgId(jTNEPackage_Platform.MsgId); | |||
if (jTNEBodiesImplType != null) | |||
{ | |||
int bodyReadSize = 0; | |||
try | |||
{ | |||
jTNEPackage_Platform.Bodies = bytes.Slice(offset, jTNEPackage_Platform.DataUnitLength).ToArray(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
throw new JTNEException(JTNEErrorCode.BodiesParseError, ex); | |||
} | |||
offset += bodyReadSize; | |||
} | |||
} | |||
// 9.校验码 | |||
jTNEPackage_Platform.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNEPackage_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNEHeaderPackage_Platform value) | |||
{ | |||
// 1.起始符1 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag1); | |||
// 2.起始符2 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag2); | |||
// 3.命令标识 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MsgId); | |||
// 4.应答标识 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.AskId); | |||
// 5.VIN | |||
offset += JTNEBinaryExtensions.WriteStringPadRightLittle(bytes, offset, value.VIN, 17); | |||
// 6.数据加密方式 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.EncryptMethod); | |||
if (value.Bodies != null) | |||
{ | |||
// 7.数据体 | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, (ushort)value.Bodies.Length); | |||
// 8.处理数据体 | |||
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.Bodies); | |||
} | |||
else | |||
{ | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, 0); | |||
} | |||
// 9.校验码 | |||
var bccCode = bytes.ToXor(2, offset); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, bccCode); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -8,15 +8,15 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters | |||
{ | |||
public class JTNEPackageFormatter : IJTNEFormatter<JTNEPackage> | |||
public class JTNEPackage_DeviceFormatter : IJTNEFormatter<JTNEPackage_Device> | |||
{ | |||
private const byte FixedDataBodyLength = 2; | |||
public JTNEPackage Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNEPackage_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
// 1.进行固定头校验 | |||
if (bytes[offset] != JTNEPackage.BeginFlag && bytes[offset + 1] == JTNEPackage.BeginFlag) | |||
if (bytes[offset] != JTNEPackage_Device.BeginFlag && bytes[offset + 1] == JTNEPackage_Device.BeginFlag) | |||
throw new JTNEException(JTNEErrorCode.BeginFlagError, $"{bytes[offset]},{bytes[offset + 1]}"); | |||
// 2.进行BCC校验码 | |||
// 校验位 = 报文长度 - 最后一位(校验位) | |||
@@ -27,43 +27,43 @@ namespace JTNE.Protocol.Formatters | |||
if (bCCCode != bCCCode2) | |||
throw new JTNEException(JTNEErrorCode.BCCCodeError, $"request:{bCCCode}!=calculate:{bCCCode2}"); | |||
} | |||
JTNEPackage jTNEPackage = new JTNEPackage(); | |||
JTNEPackage_Device jTNEPackage_Device = new JTNEPackage_Device(); | |||
offset += 2; | |||
// 3.命令标识 | |||
jTNEPackage.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 4.应答标识 | |||
jTNEPackage.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 5.VIN | |||
jTNEPackage.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
jTNEPackage_Device.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
// 6.数据加密方式 | |||
jTNEPackage.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 7.数据单元长度是数据单元的总字节数 | |||
jTNEPackage.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNEPackage_Device.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
// 8.数据体 | |||
// 8.1.根据数据加密方式进行解码 | |||
// 8.2.解析出对应数据体 | |||
if (jTNEPackage.DataUnitLength > 0) | |||
if (jTNEPackage_Device.DataUnitLength > 0) | |||
{ | |||
Type jTNEBodiesImplType = JTNEMsgIdFactory.GetBodiesImplTypeByMsgId(jTNEPackage.MsgId); | |||
Type jTNEBodiesImplType = JTNEMsgId_DeviceFactory.GetBodiesImplTypeByMsgId(jTNEPackage_Device.MsgId); | |||
if (jTNEBodiesImplType != null) | |||
{ | |||
int bodyReadSize = 0; | |||
try | |||
{ | |||
if (jTNEPackage.EncryptMethod == 0x01) | |||
if (jTNEPackage_Device.EncryptMethod == 0x01) | |||
{ | |||
jTNEPackage.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
jTNEPackage_Device.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
JTNEFormatterExtensions.GetFormatter(jTNEBodiesImplType), | |||
bytes.Slice(offset, jTNEPackage.DataUnitLength), | |||
bytes.Slice(offset, jTNEPackage_Device.DataUnitLength), | |||
out bodyReadSize); | |||
} | |||
else | |||
{ | |||
if (JTNEGlobalConfigs.Instance.DataBodiesEncrypt != null) | |||
{ | |||
var data = JTNEGlobalConfigs.Instance.DataBodiesEncrypt(jTNEPackage.EncryptMethod) | |||
.Decrypt(bytes.Slice(offset, jTNEPackage.DataUnitLength).ToArray()); | |||
jTNEPackage.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
var data = JTNEGlobalConfigs.Instance.DataBodiesEncrypt(jTNEPackage_Device.EncryptMethod) | |||
.Decrypt(bytes.Slice(offset, jTNEPackage_Device.DataUnitLength).ToArray()); | |||
jTNEPackage_Device.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
JTNEFormatterExtensions.GetFormatter(jTNEBodiesImplType), | |||
data, | |||
out bodyReadSize); | |||
@@ -78,12 +78,12 @@ namespace JTNE.Protocol.Formatters | |||
} | |||
} | |||
// 9.校验码 | |||
jTNEPackage.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNEPackage_Device.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNEPackage; | |||
return jTNEPackage_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNEPackage value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNEPackage_Device value) | |||
{ | |||
// 1.起始符1 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag1); | |||
@@ -100,7 +100,7 @@ namespace JTNE.Protocol.Formatters | |||
// 7.记录当前偏移量 | |||
int tmpOffset = offset; | |||
// 8.数据体 | |||
Type jTNEBodiesImplType = JTNEMsgIdFactory.GetBodiesImplTypeByMsgId(value.MsgId); | |||
Type jTNEBodiesImplType = JTNEMsgId_DeviceFactory.GetBodiesImplTypeByMsgId(value.MsgId); | |||
int messageBodyOffset = 0; | |||
if (jTNEBodiesImplType != null) | |||
{ |
@@ -0,0 +1,156 @@ | |||
using JTNE.Protocol.Enums; | |||
using JTNE.Protocol.Exceptions; | |||
using JTNE.Protocol.Extensions; | |||
using JTNE.Protocol.Internal; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JTNE.Protocol.Formatters | |||
{ | |||
public class JTNEPackage_PlatformFormatter : IJTNEFormatter<JTNEPackage_Platform> | |||
{ | |||
private const byte FixedDataBodyLength = 2; | |||
public JTNEPackage_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
// 1.进行固定头校验 | |||
if (bytes[offset] != JTNEPackage_Platform.BeginFlag && bytes[offset + 1] == JTNEPackage_Platform.BeginFlag) | |||
throw new JTNEException(JTNEErrorCode.BeginFlagError, $"{bytes[offset]},{bytes[offset + 1]}"); | |||
// 2.进行BCC校验码 | |||
// 校验位 = 报文长度 - 最后一位(校验位) | |||
if (!JTNEGlobalConfigs.Instance.SkipCRCCode) | |||
{ | |||
byte bCCCode = bytes[bytes.Length - 1]; | |||
byte bCCCode2 = bytes.ToXor(2, bytes.Length - 1); | |||
if (bCCCode != bCCCode2) | |||
throw new JTNEException(JTNEErrorCode.BCCCodeError, $"request:{bCCCode}!=calculate:{bCCCode2}"); | |||
} | |||
JTNEPackage_Platform jTNEPackage_Platform = new JTNEPackage_Platform(); | |||
offset += 2; | |||
// 3.命令标识 | |||
jTNEPackage_Platform.MsgId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 4.应答标识 | |||
jTNEPackage_Platform.AskId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 5.VIN | |||
jTNEPackage_Platform.VIN = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 17); | |||
// 6.数据加密方式 | |||
jTNEPackage_Platform.EncryptMethod = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
// 7.数据单元长度是数据单元的总字节数 | |||
jTNEPackage_Platform.DataUnitLength = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
// 8.数据体 | |||
// 8.1.根据数据加密方式进行解码 | |||
// 8.2.解析出对应数据体 | |||
if (jTNEPackage_Platform.DataUnitLength > 0) | |||
{ | |||
Type jTNEBodiesImplType = JTNEMsgId_PlatformFactory.GetBodiesImplTypeByMsgId(jTNEPackage_Platform.MsgId); | |||
if (jTNEBodiesImplType != null) | |||
{ | |||
int bodyReadSize = 0; | |||
try | |||
{ | |||
if (jTNEPackage_Platform.EncryptMethod == 0x01) | |||
{ | |||
jTNEPackage_Platform.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
JTNEFormatterExtensions.GetFormatter(jTNEBodiesImplType), | |||
bytes.Slice(offset, jTNEPackage_Platform.DataUnitLength), | |||
out bodyReadSize); | |||
} | |||
else | |||
{ | |||
if (JTNEGlobalConfigs.Instance.DataBodiesEncrypt != null) | |||
{ | |||
var data = JTNEGlobalConfigs.Instance.DataBodiesEncrypt(jTNEPackage_Platform.EncryptMethod) | |||
.Decrypt(bytes.Slice(offset, jTNEPackage_Platform.DataUnitLength).ToArray()); | |||
jTNEPackage_Platform.Bodies = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize( | |||
JTNEFormatterExtensions.GetFormatter(jTNEBodiesImplType), | |||
data, | |||
out bodyReadSize); | |||
} | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
throw new JTNEException(JTNEErrorCode.BodiesParseError, ex); | |||
} | |||
offset += bodyReadSize; | |||
} | |||
} | |||
// 9.校验码 | |||
jTNEPackage_Platform.BCCCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNEPackage_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNEPackage_Platform value) | |||
{ | |||
// 1.起始符1 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag1); | |||
// 2.起始符2 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BeginFlag2); | |||
// 3.命令标识 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MsgId); | |||
// 4.应答标识 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.AskId); | |||
// 5.VIN | |||
offset += JTNEBinaryExtensions.WriteStringPadRightLittle(bytes, offset, value.VIN, 17); | |||
// 6.数据加密方式 | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.EncryptMethod); | |||
// 7.记录当前偏移量 | |||
int tmpOffset = offset; | |||
// 8.数据体 | |||
Type jTNEBodiesImplType = JTNEMsgId_PlatformFactory.GetBodiesImplTypeByMsgId(value.MsgId); | |||
int messageBodyOffset = 0; | |||
if (jTNEBodiesImplType != null) | |||
{ | |||
if (value.Bodies != null) | |||
{ | |||
// 8.1.处理数据体 | |||
// 8.2.判断是否有加密 | |||
messageBodyOffset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize( | |||
JTNEFormatterExtensions.GetFormatter(jTNEBodiesImplType), | |||
ref bytes, | |||
offset + FixedDataBodyLength, | |||
value.Bodies); | |||
if (value.EncryptMethod == 0x01) | |||
{ | |||
// 9.通过tmpOffset反写数据单元长度 | |||
JTNEBinaryExtensions.WriteUInt16Little(bytes, tmpOffset, (ushort)(messageBodyOffset - offset- FixedDataBodyLength)); | |||
offset = messageBodyOffset; | |||
} | |||
else | |||
{ | |||
if (JTNEGlobalConfigs.Instance.DataBodiesEncrypt != null) | |||
{ | |||
// 8.1.先进行分割数据体 | |||
var bodiesData = bytes.AsSpan(tmpOffset+ FixedDataBodyLength, messageBodyOffset - offset - FixedDataBodyLength).ToArray(); | |||
// 8.2.将数据体进行加密 | |||
var data = JTNEGlobalConfigs.Instance.DataBodiesEncrypt(value.EncryptMethod) | |||
.Encrypt(bodiesData); | |||
// 9.通过tmpOffset反写加密后数据单元长度 | |||
JTNEBinaryExtensions.WriteUInt16Little(bytes, tmpOffset, (ushort)data.Length); | |||
// 8.3.写入加密后的数据体 | |||
offset += FixedDataBodyLength; | |||
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, data); | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
// 9.数据单元长度 | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, 0); | |||
} | |||
} | |||
else | |||
{ | |||
// 9.数据单元长度 | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, 0); | |||
} | |||
// 10.校验码 | |||
var bccCode = bytes.ToXor(2, offset); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, bccCode); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,46 @@ | |||
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_0x01_Device_Formatter : IJTNEFormatter<JTNE_0x01_Device> | |||
{ | |||
public JTNE_0x01_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x01_Device jTNE_0X01_Device = new JTNE_0x01_Device(); | |||
jTNE_0X01_Device.PDATime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); | |||
jTNE_0X01_Device.LoginNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X01_Device.SIM = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
jTNE_0X01_Device.BatteryCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01_Device.BatteryLength = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01_Device.BatteryNos = new List<string>(); | |||
if ((jTNE_0X01_Device.BatteryCount * jTNE_0X01_Device.BatteryLength) > 0) | |||
{ | |||
for (int i = 0; i < jTNE_0X01_Device.BatteryCount; i++) | |||
{ | |||
jTNE_0X01_Device.BatteryNos.Add(JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0X01_Device.BatteryLength)); | |||
} | |||
} | |||
readSize = offset; | |||
return jTNE_0X01_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x01_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.PDATime); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LoginNum); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.SIM, 20); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.BatteryNos.Count); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BatteryLength); | |||
foreach(var item in value.BatteryNos) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, item, value.BatteryLength); | |||
} | |||
return offset; | |||
} | |||
} | |||
} |
@@ -1,46 +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_0x01_Formatter : IJTNEFormatter<JTNE_0x01> | |||
{ | |||
public JTNE_0x01 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x01 jTNE_0X01 = new JTNE_0x01(); | |||
jTNE_0X01.PDATime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); | |||
jTNE_0X01.LoginNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X01.SIM = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
jTNE_0X01.BatteryCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01.BatteryLength = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01.BatteryNos = new List<string>(); | |||
if ((jTNE_0X01.BatteryCount * jTNE_0X01.BatteryLength) > 0) | |||
{ | |||
for (int i = 0; i < jTNE_0X01.BatteryCount; i++) | |||
{ | |||
jTNE_0X01.BatteryNos.Add(JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0X01.BatteryLength)); | |||
} | |||
} | |||
readSize = offset; | |||
return jTNE_0X01; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x01 value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.PDATime); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LoginNum); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.SIM, 20); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.BatteryNos.Count); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BatteryLength); | |||
foreach(var item in value.BatteryNos) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, item, value.BatteryLength); | |||
} | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,46 @@ | |||
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_0x01_Platform_Formatter : IJTNEFormatter<JTNE_0x01_Platform> | |||
{ | |||
public JTNE_0x01_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x01_Platform jTNE_0X01_Platform = new JTNE_0x01_Platform(); | |||
jTNE_0X01_Platform.PDATime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); | |||
jTNE_0X01_Platform.LoginNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X01_Platform.SIM = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, 20); | |||
jTNE_0X01_Platform.BatteryCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01_Platform.BatteryLength = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X01_Platform.BatteryNos = new List<string>(); | |||
if ((jTNE_0X01_Platform.BatteryCount * jTNE_0X01_Platform.BatteryLength) > 0) | |||
{ | |||
for (int i = 0; i < jTNE_0X01_Platform.BatteryCount; i++) | |||
{ | |||
jTNE_0X01_Platform.BatteryNos.Add(JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0X01_Platform.BatteryLength)); | |||
} | |||
} | |||
readSize = offset; | |||
return jTNE_0X01_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x01_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.PDATime); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LoginNum); | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.SIM, 20); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.BatteryNos.Count); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.BatteryLength); | |||
foreach(var item in value.BatteryNos) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, item, value.BatteryLength); | |||
} | |||
return offset; | |||
} | |||
} | |||
} |
@@ -6,12 +6,12 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
{ | |||
public class JTNE_0x02_0x01_Formatter : IJTNEFormatter<JTNE_0x02_0x01> | |||
public class JTNE_0x02_0x01_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x01_Device> | |||
{ | |||
public JTNE_0x02_0x01 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x02_0x01_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x01 jTNE_0X02_0X01 = new JTNE_0x02_0x01(); | |||
JTNE_0x02_0x01_Device jTNE_0X02_0X01 = new JTNE_0x02_0x01_Device(); | |||
jTNE_0X02_0X01.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01.CarStatus= JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01.ChargeStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
@@ -30,7 +30,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
return jTNE_0X02_0X01; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x01 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x01_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.CarStatus); |
@@ -0,0 +1,48 @@ | |||
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_0x02_0x01_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x01_Platform> | |||
{ | |||
public JTNE_0x02_0x01_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x01_Platform jTNE_0X02_0X01_Platform = new JTNE_0x02_0x01_Platform(); | |||
jTNE_0X02_0X01_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.CarStatus= JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.ChargeStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.OperationMode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.Speed = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.TotalDis = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.TotalVoltage= JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.TotalTemp = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.SOC = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.DCStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.Stall = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X01_Platform.Resistance = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X01_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x01_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.CarStatus); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ChargeStatus); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.OperationMode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Speed); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.TotalDis); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.TotalVoltage); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.TotalTemp); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.SOC); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.DCStatus); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.Stall); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Resistance); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -6,12 +6,12 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
{ | |||
public class JTNE_0x02_0x02_Formatter : IJTNEFormatter<JTNE_0x02_0x02> | |||
public class JTNE_0x02_0x02_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x02_Device> | |||
{ | |||
public JTNE_0x02_0x02 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x02_0x02_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x02 jTNE_0X02_0X02 = new JTNE_0x02_0x02(); | |||
JTNE_0x02_0x02_Device jTNE_0X02_0X02 = new JTNE_0x02_0x02_Device(); | |||
jTNE_0X02_0X02.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X02.ElectricalCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X02.Electricals = new List<Metadata.Electrical>(); | |||
@@ -32,7 +32,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
return jTNE_0X02_0X02; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x02 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x02_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
if(value.Electricals!=null && value.Electricals.Count > 0) |
@@ -0,0 +1,56 @@ | |||
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_0x02_0x02_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x02_Platform> | |||
{ | |||
public JTNE_0x02_0x02_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x02_Platform jTNE_0X02_0X02_Platform = new JTNE_0x02_0x02_Platform(); | |||
jTNE_0X02_0X02_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X02_Platform.ElectricalCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X02_Platform.Electricals = new List<Metadata.Electrical>(); | |||
for (var i=0;i < jTNE_0X02_0X02_Platform.ElectricalCount; i++) | |||
{ | |||
Metadata.Electrical electrical = new Metadata.Electrical(); | |||
electrical.ElNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
electrical.ElStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
electrical.ElControlTemp = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
electrical.ElSpeed = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
electrical.ElTorque = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
electrical.ElTemp = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
electrical.ElVoltage = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
electrical.ElCurrent = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X02_Platform.Electricals.Add(electrical); | |||
} | |||
readSize = offset; | |||
return jTNE_0X02_0X02_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x02_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
if(value.Electricals!=null && value.Electricals.Count > 0) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.Electricals.Count); | |||
foreach(var item in value.Electricals) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, item.ElNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, item.ElStatus); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, item.ElControlTemp); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, item.ElSpeed); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, item.ElTorque); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, item.ElTemp); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, item.ElVoltage); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, item.ElCurrent); | |||
} | |||
} | |||
return offset; | |||
} | |||
} | |||
} |
@@ -6,12 +6,12 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
{ | |||
public class JTNE_0x02_0x03_Formatter : IJTNEFormatter<JTNE_0x02_0x03> | |||
public class JTNE_0x02_0x03_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x03_Device> | |||
{ | |||
public JTNE_0x02_0x03 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x02_0x03_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x03 jTNE_0X02_0X03 = new JTNE_0x02_0x03(); | |||
JTNE_0x02_0x03_Device jTNE_0X02_0X03 = new JTNE_0x02_0x03_Device(); | |||
jTNE_0X02_0X03.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X03.FuelBatteryVoltage = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03.FuelBatteryCurrent = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
@@ -29,7 +29,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
return jTNE_0X02_0X03; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x03 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x03_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.FuelBatteryVoltage); |
@@ -0,0 +1,50 @@ | |||
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_0x02_0x03_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x03_Platform> | |||
{ | |||
public JTNE_0x02_0x03_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x03_Platform jTNE_0X02_0X03_Platform = new JTNE_0x02_0x03_Platform(); | |||
jTNE_0X02_0X03_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.FuelBatteryVoltage = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.FuelBatteryCurrent = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.FuelConsumptionRate = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.TemperatureProbeCount = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.Temperatures = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset, jTNE_0X02_0X03_Platform.TemperatureProbeCount); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTemp = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxTempNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrations = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxConcentrationsNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressure = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.HydrogenSystemMaxPressureNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X03_Platform.DCStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X03_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x03_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.FuelBatteryVoltage); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.FuelBatteryCurrent); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.FuelConsumptionRate); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, (ushort)value.Temperatures.Length); | |||
offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.Temperatures); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.HydrogenSystemMaxTemp); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.HydrogenSystemMaxTempNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.HydrogenSystemMaxConcentrations); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.HydrogenSystemMaxConcentrationsNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.HydrogenSystemMaxPressure); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.HydrogenSystemMaxPressureNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.DCStatus); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -6,12 +6,12 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
{ | |||
public class JTNE_0x02_0x04_Formatter : IJTNEFormatter<JTNE_0x02_0x04> | |||
public class JTNE_0x02_0x04_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x04_Device> | |||
{ | |||
public JTNE_0x02_0x04 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x02_0x04_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x04 jTNE_0X02_0X04 = new JTNE_0x02_0x04(); | |||
JTNE_0x02_0x04_Device jTNE_0X02_0X04 = new JTNE_0x02_0x04_Device(); | |||
jTNE_0X02_0X04.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X04.EngineStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X04.Revs = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
@@ -20,7 +20,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
return jTNE_0X02_0X04; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x04 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x04_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.EngineStatus); |
@@ -0,0 +1,32 @@ | |||
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_0x02_0x04_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x04_Platform> | |||
{ | |||
public JTNE_0x02_0x04_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x04_Platform jTNE_0X02_0X04_Platform = new JTNE_0x02_0x04_Platform(); | |||
jTNE_0X02_0X04_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X04_Platform.EngineStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X04_Platform.Revs = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X04_Platform.FuelRate = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X04_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x04_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.EngineStatus); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.Revs); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.FuelRate); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
| |||
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_0x02_0x05_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x05_Device> | |||
{ | |||
public JTNE_0x02_0x05_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x05_Device jTNE_0X02_0X05_Device = new JTNE_0x02_0x05_Device(); | |||
jTNE_0X02_0X05_Device.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05_Device.PositioStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05_Device.Lng = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
jTNE_0X02_0X05_Device.Lat = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X05_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x05_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.PositioStatus); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lng); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lat); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -1,32 +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_0x02_0x05_Formatter : IJTNEFormatter<JTNE_0x02_0x05> | |||
{ | |||
public JTNE_0x02_0x05 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x05 jTNE_0X02_0X05 = new JTNE_0x02_0x05(); | |||
jTNE_0X02_0X05.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05.PositioStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05.Lng = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
jTNE_0X02_0X05.Lat = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X05; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x05 value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.PositioStatus); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lng); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lat); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
| |||
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_0x02_0x05_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x05_Platform> | |||
{ | |||
public JTNE_0x02_0x05_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x05_Platform jTNE_0X02_0X05_Platform = new JTNE_0x02_0x05_Platform(); | |||
jTNE_0X02_0X05_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05_Platform.PositioStatus = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X05_Platform.Lng = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
jTNE_0X02_0X05_Platform.Lat = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X05_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x05_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.PositioStatus); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lng); | |||
offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.Lat); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,51 @@ | |||
| |||
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_0x02_0x06_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x06_Device> | |||
{ | |||
public JTNE_0x02_0x06_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x06_Device jTNE_0X02_0X06_Device = new JTNE_0x02_0x06_Device(); | |||
jTNE_0X02_0X06_Device.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MaxTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Device.MinTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X06_Device; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x06_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MaxVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MinVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryValue); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -1,50 +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_0x02_0x06_Formatter : IJTNEFormatter<JTNE_0x02_0x06> | |||
{ | |||
public JTNE_0x02_0x06 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x06 jTNE_0X02_0X06 = new JTNE_0x02_0x06(); | |||
jTNE_0X02_0X06.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06.MinVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MinVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MaxTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MinTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MinTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06.MinTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X06; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x06 value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MaxVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MinVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryValue); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -0,0 +1,51 @@ | |||
| |||
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_0x02_0x06_Platform_Formatter : IJTNEFormatter<JTNE_0x02_0x06_Platform> | |||
{ | |||
public JTNE_0x02_0x06_Platform Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x06_Platform jTNE_0X02_0X06_Platform = new JTNE_0x02_0x06_Platform(); | |||
jTNE_0X02_0X06_Platform.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinVoltageBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinVoltageSingleBatteryValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MaxTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinTempBatteryAssemblyNo = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X06_Platform.MinTempProbeBatteryValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
readSize = offset; | |||
return jTNE_0X02_0X06_Platform; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x06_Platform value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MaxVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinVoltageSingleBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.MinVoltageSingleBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MaxTempProbeBatteryValue); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempBatteryAssemblyNo); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.MinTempProbeBatteryValue); | |||
return offset; | |||
} | |||
} | |||
} |
@@ -6,12 +6,12 @@ using System.Text; | |||
namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
{ | |||
public class JTNE_0x02_0x07_Formatter : IJTNEFormatter<JTNE_0x02_0x07> | |||
public class JTNE_0x02_0x07_Device_Formatter : IJTNEFormatter<JTNE_0x02_0x07_Device> | |||
{ | |||
public JTNE_0x02_0x07 Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
public JTNE_0x02_0x07_Device Deserialize(ReadOnlySpan<byte> bytes, out int readSize) | |||
{ | |||
int offset = 0; | |||
JTNE_0x02_0x07 jTNE_0X02_0X07 = new JTNE_0x02_0x07(); | |||
JTNE_0x02_0x07_Device jTNE_0X02_0X07 = new JTNE_0x02_0x07_Device(); | |||
jTNE_0X02_0X07.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X07.AlarmLevel = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); | |||
jTNE_0X02_0X07.AlarmBatteryFlag = JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset); | |||
@@ -48,7 +48,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters | |||
return jTNE_0X02_0X07; | |||
} | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x07 value) | |||
public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x07_Device value) | |||
{ | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); | |||
offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.AlarmLevel); |