From 16c058c89d42f124f4653328c24fc74f6d9372e5 Mon Sep 17 00:00:00 2001 From: TK Date: Tue, 26 Feb 2019 09:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=8D=8F=E8=AE=AE=E5=88=86=E6=88=90?= =?UTF-8?q?=E4=B8=A4=E9=83=A8=E5=88=86=EF=BC=8C1=EF=BC=8C=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=88=B0=E4=BC=81=E4=B8=9A=E5=B9=B3=E5=8F=B0=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=EF=BC=8C2=EF=BC=8C=E4=BC=81=E4=B8=9A=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=88=B0=E5=85=AC=E5=85=B1=E5=B9=B3=E5=8F=B0=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JTNESerializerContext.cs | 180 +++++----- ...cs => JTNEPackageExtensions_DeviceTest.cs} | 6 +- .../JTNEPackageExtensions_PlatformTest.cs | 33 ++ .../JTNEHeaderPackageTest.cs | 55 --- .../JTNEHeaderPackage_DeviceTest.cs | 55 +++ .../JTNEHeaderPackage_PlatformTest.cs | 54 +++ .../MessageBody/JTNE_0x01Test.cs | 45 --- .../MessageBody/JTNE_0x01_DeviceTest.cs | 45 +++ .../MessageBody/JTNE_0x01_PlatformTest.cs | 45 +++ .../MessageBody/JTNE_0x02Test.cs | 143 -------- .../MessageBody/JTNE_0x02_0x01Test.cs | 54 --- .../MessageBody/JTNE_0x02_0x01_DeviceTest.cs | 54 +++ .../JTNE_0x02_0x01_PlatformTest.cs | 50 +++ ...02Test.cs => JTNE_0x02_0x02_DeviceTest.cs} | 22 +- .../JTNE_0x02_0x02_PlatformTest.cs | 68 ++++ .../MessageBody/JTNE_0x02_0x03Test.cs | 53 --- .../MessageBody/JTNE_0x02_0x03_DeviceTest.cs | 53 +++ .../JTNE_0x02_0x03_PlatformTest.cs | 53 +++ .../MessageBody/JTNE_0x02_0x04Test.cs | 34 -- .../MessageBody/JTNE_0x02_0x04_DeviceTest.cs | 34 ++ .../JTNE_0x02_0x04_PlatformTest.cs | 34 ++ .../MessageBody/JTNE_0x02_0x05Test.cs | 34 -- .../MessageBody/JTNE_0x02_0x05_DeviceTest.cs | 34 ++ .../JTNE_0x02_0x05_PlatformTest.cs | 34 ++ .../MessageBody/JTNE_0x02_0x06Test.cs | 50 --- .../MessageBody/JTNE_0x02_0x06_DeviceTest.cs | 50 +++ .../JTNE_0x02_0x06_PlatformTest.cs | 50 +++ .../MessageBody/JTNE_0x02_0x07Test.cs | 67 ---- .../MessageBody/JTNE_0x02_0x07_DeviceTest.cs | 67 ++++ .../JTNE_0x02_0x07_PlatformTest.cs | 67 ++++ ...08Test.cs => JTNE_0x02_0x08_DeviceTest.cs} | 22 +- ...09Test.cs => JTNE_0x02_0x09_DeviceTest.cs} | 22 +- .../MessageBody/JTNE_0x02_CompositeTest.cs | 170 --------- .../JTNE_0x02_Composite_DeviceTest.cs | 170 +++++++++ .../JTNE_0x02_Composite_PlatformTest.cs | 166 +++++++++ .../MessageBody/JTNE_0x02_CustomBodyTest.cs | 139 ------- .../JTNE_0x02_CustomBody_DeviceTest.cs | 139 +++++++ .../JTNE_0x02_CustomBody_PlatformTest.cs | 139 +++++++ .../MessageBody/JTNE_0x02_DeviceTest.cs | 143 ++++++++ .../MessageBody/JTNE_0x02_PlatformTest.cs | 139 +++++++ .../MessageBody/JTNE_0x03Test.cs | 144 -------- .../MessageBody/JTNE_0x03_DeviceTest.cs | 144 ++++++++ .../MessageBody/JTNE_0x03_PlatformTest.cs | 140 ++++++++ .../MessageBody/JTNE_0x04Test.cs | 31 -- .../MessageBody/JTNE_0x04_DeviceTest.cs | 31 ++ .../MessageBody/JTNE_0x04_PlatformTest.cs | 31 ++ .../MessageBody/JTNE_0x05Test.cs | 37 -- .../MessageBody/JTNE_0x05_PlatformTest.cs | 37 ++ .../MessageBody/JTNE_0x06Test.cs | 31 -- .../MessageBody/JTNE_0x06_PlatformTest.cs | 31 ++ ...> JTNE_0x80Reply_CustomBody_DeviceTest.cs} | 72 ++-- ...lyTest.cs => JTNE_0x80Reply_DeviceTest.cs} | 200 +++++------ .../MessageBody/JTNE_0x80Test.cs | 33 -- .../MessageBody/JTNE_0x80_DeviceTest.cs | 34 ++ ....cs => JTNE_0x81_CustomBody_DeviceTest.cs} | 68 ++-- ...NE_0x81Test.cs => JTNE_0x81_DeviceTest.cs} | 200 +++++------ ....cs => JTNE_0x82_CustomBody_DeviceTest.cs} | 40 +-- ...NE_0x82Test.cs => JTNE_0x82_DeviceTest.cs} | 56 +-- ...est.cs => JTNE_0x01_Package_DeviceTest.cs} | 86 ++--- .../Package/JTNE_0x01_Package_PlatformTest.cs | 122 +++++++ .../Package/JTNE_0x02_PackageTest.cs | 340 ------------------ .../Package/JTNE_0x02_Package_DeviceTest.cs | 340 ++++++++++++++++++ .../Package/JTNE_0x02_Package_PlatformTest.cs | 243 +++++++++++++ .../Package/JTNE_0x04_PackageTest.cs | 41 --- .../Package/JTNE_0x04_Package_DeviceTest.cs | 41 +++ .../Package/JTNE_0x04_Package_PlatformTest.cs | 41 +++ .../Package/JTNE_0x05_PackageTest.cs | 46 --- .../Package/JTNE_0x05_Package_PlatformTest.cs | 46 +++ .../Package/JTNE_0x06_PackageTest.cs | 41 --- .../Package/JTNE_0x06_Package_PlatformTest.cs | 41 +++ .../Package/JTNE_0x07_PackageTest.cs | 35 -- .../Package/JTNE_0x07_Package_DeviceTest.cs | 35 ++ .../Package/JTNE_0x08_PackageTest.cs | 35 -- .../Package/JTNE_0x08_Package_DeviceTest.cs | 35 ++ .../{JTNEMsgId.cs => JTNEMsgId_Device.cs} | 23 +- src/JTNE.Protocol/Enums/JTNEMsgId_Platform.cs | 45 +++ ...ons.cs => JTNEPackage_DeviceExtensions.cs} | 18 +- .../JTNEPackage_PlatformExtensions.cs | 85 +++++ ...s => JTNEHeaderPackage_DeviceFormatter.cs} | 30 +- .../JTNEHeaderPackage_PlatformFormatter.cs | 97 +++++ ...tter.cs => JTNEPackage_DeviceFormatter.cs} | 42 +-- .../JTNEPackage_PlatformFormatter.cs | 156 ++++++++ .../JTNE_0x01_Device_Formatter.cs | 46 +++ .../JTNE_0x01_Formatter.cs | 46 --- .../JTNE_0x01_Platform_Formatter.cs | 46 +++ ....cs => JTNE_0x02_0x01_Device_Formatter.cs} | 8 +- .../JTNE_0x02_0x01_Platform_Formatter.cs | 48 +++ ....cs => JTNE_0x02_0x02_Device_Formatter.cs} | 8 +- .../JTNE_0x02_0x02_Platform_Formatter.cs | 56 +++ ....cs => JTNE_0x02_0x03_Device_Formatter.cs} | 8 +- .../JTNE_0x02_0x03_Platform_Formatter.cs | 50 +++ ....cs => JTNE_0x02_0x04_Device_Formatter.cs} | 8 +- .../JTNE_0x02_0x04_Platform_Formatter.cs | 32 ++ .../JTNE_0x02_0x05_Device_Formatter.cs | 33 ++ .../JTNE_0x02_0x05_Formatter.cs | 32 -- .../JTNE_0x02_0x05_Platform_Formatter.cs | 33 ++ .../JTNE_0x02_0x06_Device_Formatter.cs | 51 +++ .../JTNE_0x02_0x06_Formatter.cs | 50 --- .../JTNE_0x02_0x06_Platform_Formatter.cs | 51 +++ ....cs => JTNE_0x02_0x07_Device_Formatter.cs} | 8 +- .../JTNE_0x02_0x07_Platform_Formatter.cs | 95 +++++ ....cs => JTNE_0x02_0x08_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x02_0x09_Device_Formatter.cs} | 8 +- ...atter.cs => JTNE_0x02_Device_Formatter.cs} | 18 +- .../JTNE_0x02_Platform_Formatter.cs | 75 ++++ ...atter.cs => JTNE_0x03_Device_Formatter.cs} | 12 +- .../JTNE_0x03_Platform_Formatter.cs | 24 ++ ...atter.cs => JTNE_0x04_Device_Formatter.cs} | 14 +- ...ter.cs => JTNE_0x04_Platform_Formatter.cs} | 14 +- ...ter.cs => JTNE_0x05_Platform_Formatter.cs} | 8 +- .../JTNE_0x06_Platform_Formatter.cs | 28 ++ .../JTNE_0x80Reply_Device_Formatter.cs | 25 ++ .../JTNE_0x80Reply_Formatter.cs | 25 -- ...atter.cs => JTNE_0x80_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x01_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x02_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x03_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x04_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x05_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x06_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x07_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x08_Device_Formatter.cs} | 8 +- ....cs => JTNE_0x81_0x09_Device_Formatter.cs} | 12 +- ....cs => JTNE_0x81_0x0A_Device_Formatter.cs} | 12 +- .../JTNE_0x81_0x0BFormatter.cs | 26 -- .../JTNE_0x81_0x0B_Device_Formatter.cs | 26 ++ ....cs => JTNE_0x81_0x0C_Device_Formatter.cs} | 12 +- ....cs => JTNE_0x81_0x0D_Device_Formatter.cs} | 12 +- .../JTNE_0x81_0x0EFormatter.cs | 27 -- .../JTNE_0x81_0x0E_Device_Formatter.cs | 27 ++ .../JTNE_0x81_0x0FFormatter.cs | 26 -- .../JTNE_0x81_0x0F_Device_Formatter.cs | 26 ++ ....cs => JTNE_0x81_0x10_Device_Formatter.cs} | 12 +- ...atter.cs => JTNE_0x81_Device_Formatter.cs} | 28 +- .../JTNE_0x82_0x01Formatter.cs | 44 --- .../JTNE_0x82_0x01_Device_Formatter.cs | 44 +++ ....cs => JTNE_0x82_0x06_Device_Formatter.cs} | 14 +- .../JTNE_0x82_Device_Formatter.cs | 39 ++ .../JTNE_0x82_Formatter.cs | 39 -- ...dFactory.cs => JTNEMsgId_DeviceFactory.cs} | 12 +- .../Internal/JTNEMsgId_PlatformFactory.cs | 48 +++ src/JTNE.Protocol/JTNEGlobalConfigs.cs | 38 +- ...Package.cs => JTNEHeaderPackage_Device.cs} | 8 +- .../JTNEHeaderPackage_Platform.cs | 58 +++ .../{JTNEPackage.cs => JTNEPackage_Device.cs} | 6 +- src/JTNE.Protocol/JTNEPackage_Platform.cs | 58 +++ ...Serializer.cs => JTNESerializer_Device.cs} | 10 +- src/JTNE.Protocol/JTNESerializer_Platform.cs | 52 +++ .../{JTNE_0x01.cs => JTNE_0x01_Device.cs} | 4 +- .../MessageBody/JTNE_0x01_Platform.cs | 45 +++ ..._0x02_0x01.cs => JTNE_0x02_0x01_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x01_Platform.cs | 62 ++++ ..._0x02_0x02.cs => JTNE_0x02_0x02_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x02_Platform.cs | 28 ++ ..._0x02_0x03.cs => JTNE_0x02_0x03_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x03_Platform.cs | 107 ++++++ ..._0x02_0x04.cs => JTNE_0x02_0x04_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x04_Platform.cs | 43 +++ ..._0x02_0x05.cs => JTNE_0x02_0x05_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x05_Platform.cs | 37 ++ ..._0x02_0x06.cs => JTNE_0x02_0x06_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x06_Platform.cs | 97 +++++ ..._0x02_0x07.cs => JTNE_0x02_0x07_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_0x07_Platform.cs | 58 +++ ..._0x02_0x08.cs => JTNE_0x02_0x08_Device.cs} | 6 +- ..._0x02_0x09.cs => JTNE_0x02_0x09_Device.cs} | 6 +- .../MessageBody/JTNE_0x02_Body.cs | 69 ---- .../MessageBody/JTNE_0x02_Body_Device.cs | 69 ++++ .../MessageBody/JTNE_0x02_Body_Platform.cs | 59 +++ ...Body.cs => JTNE_0x02_CustomBody_Device.cs} | 4 +- .../JTNE_0x02_CustomBody_Platform.cs | 26 ++ .../{JTNE_0x02.cs => JTNE_0x02_Device.cs} | 8 +- .../MessageBody/JTNE_0x02_Platform.cs | 28 ++ .../{JTNE_0x03.cs => JTNE_0x03_Device.cs} | 6 +- .../MessageBody/JTNE_0x03_Platform.cs | 17 + .../{JTNE_0x04.cs => JTNE_0x04_Device.cs} | 4 +- .../MessageBody/JTNE_0x04_Platform.cs | 24 ++ .../{JTNE_0x05.cs => JTNE_0x05_Platform.cs} | 4 +- .../{JTNE_0x06.cs => JTNE_0x06_Platform.cs} | 4 +- .../{JTNE_0x07.cs => JTNE_0x07_Device.cs} | 2 +- .../{JTNE_0x08.cs => JTNE_0x08_Device.cs} | 2 +- ..._0x80Reply.cs => JTNE_0x80Reply_Device.cs} | 6 +- .../{JTNE_0x80.cs => JTNE_0x80_Device.cs} | 4 +- ..._0x81_0x01.cs => JTNE_0x81_0x01_Device.cs} | 4 +- ..._0x81_0x02.cs => JTNE_0x81_0x02_Device.cs} | 4 +- ..._0x81_0x03.cs => JTNE_0x81_0x03_Device.cs} | 4 +- ..._0x81_0x04.cs => JTNE_0x81_0x04_Device.cs} | 4 +- ..._0x81_0x05.cs => JTNE_0x81_0x05_Device.cs} | 4 +- ..._0x81_0x06.cs => JTNE_0x81_0x06_Device.cs} | 4 +- ..._0x81_0x07.cs => JTNE_0x81_0x07_Device.cs} | 4 +- ..._0x81_0x08.cs => JTNE_0x81_0x08_Device.cs} | 4 +- ..._0x81_0x09.cs => JTNE_0x81_0x09_Device.cs} | 4 +- ..._0x81_0x0A.cs => JTNE_0x81_0x0A_Device.cs} | 4 +- ..._0x81_0x0B.cs => JTNE_0x81_0x0B_Device.cs} | 4 +- ..._0x81_0x0C.cs => JTNE_0x81_0x0C_Device.cs} | 4 +- ..._0x81_0x0D.cs => JTNE_0x81_0x0D_Device.cs} | 4 +- ..._0x81_0x0E.cs => JTNE_0x81_0x0E_Device.cs} | 4 +- ..._0x81_0x0F.cs => JTNE_0x81_0x0F_Device.cs} | 4 +- ..._0x81_0x10.cs => JTNE_0x81_0x10_Device.cs} | 4 +- ..._0x81_Body.cs => JTNE_0x81_Body_Device.cs} | 36 +- .../{JTNE_0x81.cs => JTNE_0x81_Device.cs} | 6 +- ..._0x82_0x01.cs => JTNE_0x82_0x01_Device.cs} | 4 +- ..._0x82_0x06.cs => JTNE_0x82_0x06_Device.cs} | 4 +- ..._0x82_Body.cs => JTNE_0x82_Body_Device.cs} | 8 +- .../{JTNE_0x82.cs => JTNE_0x82_Device.cs} | 6 +- 205 files changed, 6168 insertions(+), 2883 deletions(-) rename src/JTNE.Protocol.Test/Extensions/{JTNEPackageExtensionsTest.cs => JTNEPackageExtensions_DeviceTest.cs} (75%) create mode 100644 src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/JTNEHeaderPackageTest.cs create mode 100644 src/JTNE.Protocol.Test/JTNEHeaderPackage_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/JTNEHeaderPackage_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x01Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02Test.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_PlatformTest.cs rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x02_0x02Test.cs => JTNE_0x02_0x02_DeviceTest.cs} (70%) create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_PlatformTest.cs rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x02_0x08Test.cs => JTNE_0x02_0x08_DeviceTest.cs} (77%) rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x02_0x09Test.cs => JTNE_0x02_0x09_DeviceTest.cs} (66%) delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CompositeTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBodyTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_PlatformTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x04Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x05Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x05_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x06Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x06_PlatformTest.cs rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x80Reply_CustomBodyTest.cs => JTNE_0x80Reply_CustomBody_DeviceTest.cs} (50%) rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x80ReplyTest.cs => JTNE_0x80Reply_DeviceTest.cs} (51%) delete mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Test.cs create mode 100644 src/JTNE.Protocol.Test/MessageBody/JTNE_0x80_DeviceTest.cs rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x81_CustomBodyTest.cs => JTNE_0x81_CustomBody_DeviceTest.cs} (55%) rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x81Test.cs => JTNE_0x81_DeviceTest.cs} (51%) rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x82_CustomBodyTest.cs => JTNE_0x82_CustomBody_DeviceTest.cs} (53%) rename src/JTNE.Protocol.Test/MessageBody/{JTNE_0x82Test.cs => JTNE_0x82_DeviceTest.cs} (65%) rename src/JTNE.Protocol.Test/Package/{JTNE_0x01_PackageTest.cs => JTNE_0x01_Package_DeviceTest.cs} (50%) create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x02_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x04_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_DeviceTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x05_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x05_Package_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x06_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x06_Package_PlatformTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x07_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x07_Package_DeviceTest.cs delete mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x08_PackageTest.cs create mode 100644 src/JTNE.Protocol.Test/Package/JTNE_0x08_Package_DeviceTest.cs rename src/JTNE.Protocol/Enums/{JTNEMsgId.cs => JTNEMsgId_Device.cs} (66%) create mode 100644 src/JTNE.Protocol/Enums/JTNEMsgId_Platform.cs rename src/JTNE.Protocol/Extensions/{JTNEPackageExtensions.cs => JTNEPackage_DeviceExtensions.cs} (72%) create mode 100644 src/JTNE.Protocol/Extensions/JTNEPackage_PlatformExtensions.cs rename src/JTNE.Protocol/Formatters/{JTNEHeaderPackageFormatter.cs => JTNEHeaderPackage_DeviceFormatter.cs} (70%) create mode 100644 src/JTNE.Protocol/Formatters/JTNEHeaderPackage_PlatformFormatter.cs rename src/JTNE.Protocol/Formatters/{JTNEPackageFormatter.cs => JTNEPackage_DeviceFormatter.cs} (77%) create mode 100644 src/JTNE.Protocol/Formatters/JTNEPackage_PlatformFormatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x01_Formatter.cs => JTNE_0x02_0x01_Device_Formatter.cs} (91%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x02_Formatter.cs => JTNE_0x02_0x02_Device_Formatter.cs} (90%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x03_Formatter.cs => JTNE_0x02_0x03_Device_Formatter.cs} (91%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x04_Formatter.cs => JTNE_0x02_0x04_Device_Formatter.cs} (80%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Platform_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Platform_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x07_Formatter.cs => JTNE_0x02_0x07_Device_Formatter.cs} (93%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x08_Formatter.cs => JTNE_0x02_0x08_Device_Formatter.cs} (92%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_0x09_Formatter.cs => JTNE_0x02_0x09_Device_Formatter.cs} (88%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x02_Formatter.cs => JTNE_0x02_Device_Formatter.cs} (79%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x03_Formatter.cs => JTNE_0x03_Device_Formatter.cs} (57%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Platform_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x04_Formatter.cs => JTNE_0x04_Device_Formatter.cs} (54%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x06_Formatter.cs => JTNE_0x04_Platform_Formatter.cs} (53%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x05_Formatter.cs => JTNE_0x05_Platform_Formatter.cs} (84%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Platform_Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x80_Formatter.cs => JTNE_0x80_Device_Formatter.cs} (80%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x01Formatter.cs => JTNE_0x81_0x01_Device_Formatter.cs} (68%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x02Formatter.cs => JTNE_0x81_0x02_Device_Formatter.cs} (68%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x03Formatter.cs => JTNE_0x81_0x03_Device_Formatter.cs} (68%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x04Formatter.cs => JTNE_0x81_0x04_Device_Formatter.cs} (68%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x05Formatter.cs => JTNE_0x81_0x05_Device_Formatter.cs} (70%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x06Formatter.cs => JTNE_0x81_0x06_Device_Formatter.cs} (68%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x07Formatter.cs => JTNE_0x81_0x07_Device_Formatter.cs} (70%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x08Formatter.cs => JTNE_0x81_0x08_Device_Formatter.cs} (70%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x09Formatter.cs => JTNE_0x81_0x09_Device_Formatter.cs} (52%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x0AFormatter.cs => JTNE_0x81_0x0A_Device_Formatter.cs} (52%) delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0BFormatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0B_Device_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x0CFormatter.cs => JTNE_0x81_0x0C_Device_Formatter.cs} (52%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x0DFormatter.cs => JTNE_0x81_0x0D_Device_Formatter.cs} (52%) delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0EFormatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0E_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0FFormatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0F_Device_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_0x10Formatter.cs => JTNE_0x81_0x10_Device_Formatter.cs} (52%) rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x81_Formatter.cs => JTNE_0x81_Device_Formatter.cs} (56%) delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01Formatter.cs create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01_Device_Formatter.cs rename src/JTNE.Protocol/Formatters/MessageBodyFormatters/{JTNE_0x82_0x06Formatter.cs => JTNE_0x82_0x06_Device_Formatter.cs} (57%) create mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Device_Formatter.cs delete mode 100644 src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Formatter.cs rename src/JTNE.Protocol/Internal/{JTNEMsgIdFactory.cs => JTNEMsgId_DeviceFactory.cs} (74%) create mode 100644 src/JTNE.Protocol/Internal/JTNEMsgId_PlatformFactory.cs rename src/JTNE.Protocol/{JTNEHeaderPackage.cs => JTNEHeaderPackage_Device.cs} (88%) create mode 100644 src/JTNE.Protocol/JTNEHeaderPackage_Platform.cs rename src/JTNE.Protocol/{JTNEPackage.cs => JTNEPackage_Device.cs} (92%) create mode 100644 src/JTNE.Protocol/JTNEPackage_Platform.cs rename src/JTNE.Protocol/{JTNESerializer.cs => JTNESerializer_Device.cs} (77%) create mode 100644 src/JTNE.Protocol/JTNESerializer_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x01.cs => JTNE_0x01_Device.cs} (92%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x01_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x01.cs => JTNE_0x02_0x01_Device.cs} (92%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x02.cs => JTNE_0x02_0x02_Device.cs} (81%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x03.cs => JTNE_0x02_0x03_Device.cs} (96%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x04.cs => JTNE_0x02_0x04_Device.cs} (89%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x05.cs => JTNE_0x02_0x05_Device.cs} (89%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x06.cs => JTNE_0x02_0x06_Device.cs} (95%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x07.cs => JTNE_0x02_0x07_Device.cs} (92%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x08.cs => JTNE_0x02_0x08_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_0x09.cs => JTNE_0x02_0x09_Device.cs} (84%) delete mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_Body.cs create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Device.cs create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02_CustomBody.cs => JTNE_0x02_CustomBody_Device.cs} (81%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x02.cs => JTNE_0x02_Device.cs} (66%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x02_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x03.cs => JTNE_0x03_Device.cs} (63%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x03_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x04.cs => JTNE_0x04_Device.cs} (83%) create mode 100644 src/JTNE.Protocol/MessageBody/JTNE_0x04_Platform.cs rename src/JTNE.Protocol/MessageBody/{JTNE_0x05.cs => JTNE_0x05_Platform.cs} (92%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x06.cs => JTNE_0x06_Platform.cs} (83%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x07.cs => JTNE_0x07_Device.cs} (85%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x08.cs => JTNE_0x08_Device.cs} (85%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x80Reply.cs => JTNE_0x80Reply_Device.cs} (64%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x80.cs => JTNE_0x80_Device.cs} (85%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x01.cs => JTNE_0x81_0x01_Device.cs} (86%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x02.cs => JTNE_0x81_0x02_Device.cs} (86%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x03.cs => JTNE_0x81_0x03_Device.cs} (85%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x04.cs => JTNE_0x81_0x04_Device.cs} (83%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x05.cs => JTNE_0x81_0x05_Device.cs} (83%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x06.cs => JTNE_0x81_0x06_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x07.cs => JTNE_0x81_0x07_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x08.cs => JTNE_0x81_0x08_Device.cs} (83%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x09.cs => JTNE_0x81_0x09_Device.cs} (85%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0A.cs => JTNE_0x81_0x0A_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0B.cs => JTNE_0x81_0x0B_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0C.cs => JTNE_0x81_0x0C_Device.cs} (86%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0D.cs => JTNE_0x81_0x0D_Device.cs} (82%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0E.cs => JTNE_0x81_0x0E_Device.cs} (82%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x0F.cs => JTNE_0x81_0x0F_Device.cs} (83%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_0x10.cs => JTNE_0x81_0x10_Device.cs} (84%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81_Body.cs => JTNE_0x81_Body_Device.cs} (93%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x81.cs => JTNE_0x81_Device.cs} (79%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x82_0x01.cs => JTNE_0x82_0x01_Device.cs} (87%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x82_0x06.cs => JTNE_0x82_0x06_Device.cs} (79%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x82_Body.cs => JTNE_0x82_Body_Device.cs} (95%) rename src/JTNE.Protocol/MessageBody/{JTNE_0x82.cs => JTNE_0x82_Device.cs} (77%) diff --git a/src/JTNE.Protocol.Benchmark/JTNESerializerContext.cs b/src/JTNE.Protocol.Benchmark/JTNESerializerContext.cs index 66b74ee..d77458d 100644 --- a/src/JTNE.Protocol.Benchmark/JTNESerializerContext.cs +++ b/src/JTNE.Protocol.Benchmark/JTNESerializerContext.cs @@ -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(); - - 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_0x02_Device jTNE_0X02_Device = new JTNE_0x02_Device(); + jTNE_0X02_Device.Values = new Dictionary(); + + 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 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 + 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 { 1000,1001,1002 }; - jTNE_0X02_0X07.AlarmEls = new List + jTNE_0X02_0X07_Device.AlarmEls = new List { 2000,2001,2002 }; - jTNE_0X02_0X07.AlarmEngines = new List + jTNE_0X02_0X07_Device.AlarmEngines = new List { 3000,3001,3002 }; - jTNE_0X02_0X07.AlarmOthers = new List + jTNE_0X02_0X07_Device.AlarmOthers = new List { 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_0x02_0x08_Device jTNE_0X02_0X08_Device = new JTNE_0x02_0x08_Device(); + jTNE_0X02_0X08_Device.BatteryAssemblies = new List(); 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 { 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_0x02_0x09_Device jTNE_0X02_0X09_Device = new JTNE_0x02_0x09_Device(); + jTNE_0X02_0X09_Device.BatteryTemperatures = new List(); 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); } } } diff --git a/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensionsTest.cs b/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_DeviceTest.cs similarity index 75% rename from src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensionsTest.cs rename to src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_DeviceTest.cs index 378fae3..da9ebfc 100644 --- a/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensionsTest.cs +++ b/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_DeviceTest.cs @@ -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); } } diff --git a/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_PlatformTest.cs b/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_PlatformTest.cs new file mode 100644 index 0000000..1c0da8a --- /dev/null +++ b/src/JTNE.Protocol.Test/Extensions/JTNEPackageExtensions_PlatformTest.cs @@ -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() + { + "1234", + "4567", + "9870" + } + }); + var hex = JTNESerializer_Device.Serialize(jTNEPackage_Platform).ToHexString(); + Assert.Equal("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex); + } + } +} diff --git a/src/JTNE.Protocol.Test/JTNEHeaderPackageTest.cs b/src/JTNE.Protocol.Test/JTNEHeaderPackageTest.cs deleted file mode 100644 index 6c8a0e4..0000000 --- a/src/JTNE.Protocol.Test/JTNEHeaderPackageTest.cs +++ /dev/null @@ -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() - { - "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(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(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]); - } - } -} diff --git a/src/JTNE.Protocol.Test/JTNEHeaderPackage_DeviceTest.cs b/src/JTNE.Protocol.Test/JTNEHeaderPackage_DeviceTest.cs new file mode 100644 index 0000000..47dfead --- /dev/null +++ b/src/JTNE.Protocol.Test/JTNEHeaderPackage_DeviceTest.cs @@ -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() + { + "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(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(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]); + } + } +} diff --git a/src/JTNE.Protocol.Test/JTNEHeaderPackage_PlatformTest.cs b/src/JTNE.Protocol.Test/JTNEHeaderPackage_PlatformTest.cs new file mode 100644 index 0000000..bbdb636 --- /dev/null +++ b/src/JTNE.Protocol.Test/JTNEHeaderPackage_PlatformTest.cs @@ -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() + { + "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(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(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]); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01Test.cs deleted file mode 100644 index 7390f91..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01Test.cs +++ /dev/null @@ -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() - { - "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(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]); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_DeviceTest.cs new file mode 100644 index 0000000..4ca30ed --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_DeviceTest.cs @@ -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() + { + "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(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]); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_PlatformTest.cs new file mode 100644 index 0000000..e00d61f --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x01_PlatformTest.cs @@ -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() + { + "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(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]); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02Test.cs deleted file mode 100644 index d95ed8c..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02Test.cs +++ /dev/null @@ -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(); - - 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 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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01Test.cs deleted file mode 100644 index 59b3a15..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_DeviceTest.cs new file mode 100644 index 0000000..f875c76 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_PlatformTest.cs new file mode 100644 index 0000000..b06aade --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x01_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_DeviceTest.cs similarity index 70% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02Test.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_DeviceTest.cs index c0169d0..26655dc 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02Test.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_DeviceTest.cs @@ -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(); + JTNE_0x02_0x02_Device jTNE_0X02_0X02_Device = new JTNE_0x02_0x02_Device(); + jTNE_0X02_0X02_Device.Electricals = new List(); 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(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(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); diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_PlatformTest.cs new file mode 100644 index 0000000..0e472a0 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x02_PlatformTest.cs @@ -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 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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03Test.cs deleted file mode 100644 index 9564f0e..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_DeviceTest.cs new file mode 100644 index 0000000..46cb0a2 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_PlatformTest.cs new file mode 100644 index 0000000..0c35729 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x03_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04Test.cs deleted file mode 100644 index 80e0618..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_DeviceTest.cs new file mode 100644 index 0000000..ab9410e --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_PlatformTest.cs new file mode 100644 index 0000000..e314487 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x04_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05Test.cs deleted file mode 100644 index 61b0ee3..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_DeviceTest.cs new file mode 100644 index 0000000..c3f61e1 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_PlatformTest.cs new file mode 100644 index 0000000..d3d51af --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x05_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06Test.cs deleted file mode 100644 index 4ae4fed..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_DeviceTest.cs new file mode 100644 index 0000000..09c0fcb --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_PlatformTest.cs new file mode 100644 index 0000000..eae2ef0 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x06_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07Test.cs deleted file mode 100644 index 8821adb..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07Test.cs +++ /dev/null @@ -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 - { - 1000,1001,1002 - }; - jTNE_0X02_0X07.AlarmEls = new List - { - 2000,2001,2002 - }; - jTNE_0X02_0X07.AlarmEngines = new List - { - 3000,3001,3002 - }; - jTNE_0X02_0X07.AlarmOthers = new List - { - 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(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 - { - 1000,1001,1002 - }, jTNE_0X02_0X07.AlarmBatteryOthers); - Assert.Equal(3, jTNE_0X02_0X07.AlarmEls.Count); - Assert.Equal(new List - { - 2000,2001,2002 - }, jTNE_0X02_0X07.AlarmEls); - Assert.Equal(3, jTNE_0X02_0X07.AlarmEngines.Count); - Assert.Equal(new List - { - 3000,3001,3002 - }, jTNE_0X02_0X07.AlarmEngines); - Assert.Equal(3, jTNE_0X02_0X07.AlarmOthers.Count); - Assert.Equal(new List - { - 4000,4001,4002 - }, jTNE_0X02_0X07.AlarmOthers); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_DeviceTest.cs new file mode 100644 index 0000000..d660b87 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_DeviceTest.cs @@ -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 + { + 1000,1001,1002 + }; + jTNE_0X02_0X07_Device.AlarmEls = new List + { + 2000,2001,2002 + }; + jTNE_0X02_0X07_Device.AlarmEngines = new List + { + 3000,3001,3002 + }; + jTNE_0X02_0X07_Device.AlarmOthers = new List + { + 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(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 + { + 1000,1001,1002 + }, jTNE_0X02_0X07_Device.AlarmBatteryOthers); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEls.Count); + Assert.Equal(new List + { + 2000,2001,2002 + }, jTNE_0X02_0X07_Device.AlarmEls); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEngines.Count); + Assert.Equal(new List + { + 3000,3001,3002 + }, jTNE_0X02_0X07_Device.AlarmEngines); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmOthers.Count); + Assert.Equal(new List + { + 4000,4001,4002 + }, jTNE_0X02_0X07_Device.AlarmOthers); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_PlatformTest.cs new file mode 100644 index 0000000..c36c2f8 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x07_PlatformTest.cs @@ -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 + { + 1000,1001,1002 + }; + jTNE_0X02_0X07_Platform.AlarmEls = new List + { + 2000,2001,2002 + }; + jTNE_0X02_0X07_Platform.AlarmEngines = new List + { + 3000,3001,3002 + }; + jTNE_0X02_0X07_Platform.AlarmOthers = new List + { + 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(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 + { + 1000,1001,1002 + }, jTNE_0X02_0X07_Platform.AlarmBatteryOthers); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEls.Count); + Assert.Equal(new List + { + 2000,2001,2002 + }, jTNE_0X02_0X07_Platform.AlarmEls); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEngines.Count); + Assert.Equal(new List + { + 3000,3001,3002 + }, jTNE_0X02_0X07_Platform.AlarmEngines); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmOthers.Count); + Assert.Equal(new List + { + 4000,4001,4002 + }, jTNE_0X02_0X07_Platform.AlarmOthers); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08_DeviceTest.cs similarity index 77% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08Test.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08_DeviceTest.cs index d203d33..4e20174 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08Test.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x08_DeviceTest.cs @@ -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(); + JTNE_0x02_0x08_Device jTNE_0X02_0X08_Device = new JTNE_0x02_0x08_Device(); + jTNE_0X02_0X08_Device.BatteryAssemblies = new List(); 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 { 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(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(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); diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09_DeviceTest.cs similarity index 66% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09Test.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09_DeviceTest.cs index af3b032..333ea3a 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09Test.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_0x09_DeviceTest.cs @@ -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(); + JTNE_0x02_0x09_Device jTNE_0X02_0X09_Device = new JTNE_0x02_0x09_Device(); + jTNE_0X02_0X09_Device.BatteryTemperatures = new List(); 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(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(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[] diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CompositeTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CompositeTest.cs deleted file mode 100644 index c871ed0..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CompositeTest.cs +++ /dev/null @@ -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(); - jTNE_0X02.CusotmSerializeObjectValues = new Dictionary(); - - 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 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(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.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.CusotmValues[0xA2]); - Assert.Equal(0xA2, jTNE_0X02_0XA2.TypeCode); - Assert.Equal(20, jTNE_0X02_0XA2.Length); - Assert.Equal("小池有限公司", jTNE_0X02_0XA2.CompanyName); - } - - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_DeviceTest.cs new file mode 100644 index 0000000..da1a638 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_DeviceTest.cs @@ -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(); + jTNE_0X02_Device.CusotmSerializeObjectValues = new Dictionary(); + + 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 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(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_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_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); + } + + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_PlatformTest.cs new file mode 100644 index 0000000..0602c58 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_Composite_PlatformTest.cs @@ -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(); + jTNE_0X02_Platform.CusotmSerializeObjectValues = new Dictionary(); + + 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 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(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_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_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); + } + + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBodyTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBodyTest.cs deleted file mode 100644 index 81fb27d..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBodyTest.cs +++ /dev/null @@ -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(); - - 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(data); - Assert.Empty(jTNE_0X02.Values); - - JTNE_0x02_0xA1 jTNE_0X02_0XA1 = JTNESerializer.Deserialize(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.CusotmValues[0xA2]); - Assert.Equal(0xA2, jTNE_0X02_0XA2.TypeCode); - Assert.Equal(20, jTNE_0X02_0XA2.Length); - Assert.Equal("小池有限公司", jTNE_0X02_0XA2.CompanyName); - } - } - - /// - ///自定义0xA1消息 - /// - [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; } - } - - /// - ///自定义0xA2消息 - /// - [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; } - } - - /// - /// 自定义0xA1消息序列化器 - /// - public class JTNE_0x02_0xA1_Formatter : IJTNEFormatter - { - public JTNE_0x02_0xA1 Deserialize(ReadOnlySpan 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; - } - } - /// - /// 自定义0xA2消息序列化器 - /// - public class JTNE_0x02_0xA2_Formatter : IJTNEFormatter - { - public JTNE_0x02_0xA2 Deserialize(ReadOnlySpan 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; - } - } - -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_DeviceTest.cs new file mode 100644 index 0000000..cc7848f --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_DeviceTest.cs @@ -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(); + + 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(data); + Assert.Empty(jTNE_0X02_Device.Values); + + JTNE_0x02_0xA1_Device jTNE_0X02_0XA1_Device = JTNESerializer_Device.Deserialize(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_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); + } + } + + /// + ///自定义0xA1消息 + /// + [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; } + } + + /// + ///自定义0xA2消息 + /// + [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; } + } + + /// + /// 自定义0xA1消息序列化器 + /// + public class JTNE_0x02_0xA1_Device_Formatter : IJTNEFormatter + { + public JTNE_0x02_0xA1_Device Deserialize(ReadOnlySpan 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; + } + } + /// + /// 自定义0xA2消息序列化器 + /// + public class JTNE_0x02_0xA2_Device_Formatter : IJTNEFormatter + { + public JTNE_0x02_0xA2_Device Deserialize(ReadOnlySpan 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; + } + } + +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_PlatformTest.cs new file mode 100644 index 0000000..889d92e --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_CustomBody_PlatformTest.cs @@ -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(); + + 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(data); + Assert.Empty(jTNE_0X02_Platform.Values); + + JTNE_0x02_0xA1_Platform jTNE_0X02_0XA1_Platform = JTNESerializer_Device.Deserialize(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_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); + } + } + + /// + ///自定义0xA1消息 + /// + [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; } + } + + /// + ///自定义0xA2消息 + /// + [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; } + } + + /// + /// 自定义0xA1消息序列化器 + /// + public class JTNE_0x02_0xA1_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x02_0xA1_Platform Deserialize(ReadOnlySpan 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; + } + } + /// + /// 自定义0xA2消息序列化器 + /// + public class JTNE_0x02_0xA2_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x02_0xA2_Platform Deserialize(ReadOnlySpan 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; + } + } + +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_DeviceTest.cs new file mode 100644 index 0000000..2d46ebe --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_DeviceTest.cs @@ -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(); + + 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 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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_PlatformTest.cs new file mode 100644 index 0000000..c21099f --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x02_PlatformTest.cs @@ -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(); + + 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 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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs deleted file mode 100644 index 67adebf..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03Test.cs +++ /dev/null @@ -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(); - - 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 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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_DeviceTest.cs new file mode 100644 index 0000000..9be62ed --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_DeviceTest.cs @@ -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(); + + 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 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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_PlatformTest.cs new file mode 100644 index 0000000..70cb168 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x03_PlatformTest.cs @@ -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(); + + 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 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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04Test.cs deleted file mode 100644 index a9779a9..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04Test.cs +++ /dev/null @@ -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(data); - Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04.LogoutTime); - Assert.Equal(4444, jTNE_0X04.LogoutNum); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_DeviceTest.cs new file mode 100644 index 0000000..6477656 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_DeviceTest.cs @@ -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(data); + Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04_Device.LogoutTime); + Assert.Equal(4444, jTNE_0X04_Device.LogoutNum); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_PlatformTest.cs new file mode 100644 index 0000000..2820e9a --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x04_PlatformTest.cs @@ -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(data); + Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X04_Platform.LogoutTime); + Assert.Equal(4444, jTNE_0X04_Platform.LogoutNum); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05Test.cs deleted file mode 100644 index 4bfeb12..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05_PlatformTest.cs new file mode 100644 index 0000000..24d5438 --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x05_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06Test.cs deleted file mode 100644 index eea35bd..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06Test.cs +++ /dev/null @@ -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(data); - Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X06.LogoutTime); - Assert.Equal(6666, jTNE_0X06.LogoutNum); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06_PlatformTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06_PlatformTest.cs new file mode 100644 index 0000000..6bfc8bd --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x06_PlatformTest.cs @@ -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(data); + Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X06_Platform.LogoutTime); + Assert.Equal(6666, jTNE_0X06_Platform.LogoutNum); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBodyTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBody_DeviceTest.cs similarity index 50% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBodyTest.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBody_DeviceTest.cs index b912998..92401f0 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBodyTest.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_CustomBody_DeviceTest.cs @@ -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 { - new JTNE_0x80Reply_0x80{ + ParamList = new List { + 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(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 { - new JTNE_0x80Reply_0x80{ + JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize(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 { + 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 + public class JTNE_0x80Reply_0x80_Device_Formatter : IJTNEFormatter { - public JTNE_0x80Reply_0x80 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x80Reply_0x80_Device Deserialize(ReadOnlySpan 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 + public class JTNE_0x80Reply_0x81_Device_Formatter : IJTNEFormatter { - public JTNE_0x80Reply_0x81 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x80Reply_0x81_Device Deserialize(ReadOnlySpan 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; diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80ReplyTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_DeviceTest.cs similarity index 51% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x80ReplyTest.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_DeviceTest.cs index 41685ca..69dfbc2 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80ReplyTest.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Reply_DeviceTest.cs @@ -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 { - new JTNE_0x81_0x01{ + ParamList = new List { + 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(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(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 { - new JTNE_0x81_0x02{ + ParamList = new List { + 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(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(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 { - new JTNE_0x81_0x04{ + ParamList = new List { + 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(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 { - new JTNE_0x81_0x04{ + JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize(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 { + 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 { - new JTNE_0x81_0x0D{ + ParamList = new List { + 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(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 { - new JTNE_0x81_0x0D{ + JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize(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 { + 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 { - new JTNE_0x81_0x03{ + ParamList = new List { + 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(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(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 { - new JTNE_0x81_0x01{ + ParamList = new List { + 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(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 { - new JTNE_0x81_0x01{ + JTNE_0x80Reply_Device jTNE_0x80Reply_Device = JTNESerializer_Device.Deserialize(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 { + 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)); } } } diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Test.cs deleted file mode 100644 index 46b9831..0000000 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80Test.cs +++ /dev/null @@ -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(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); - } - } -} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80_DeviceTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80_DeviceTest.cs new file mode 100644 index 0000000..533b23b --- /dev/null +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x80_DeviceTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBodyTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBody_DeviceTest.cs similarity index 55% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBodyTest.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBody_DeviceTest.cs index ed95bff..523cbd3 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBodyTest.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_CustomBody_DeviceTest.cs @@ -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 { - new JTNE_0x81_0x80{ + jTNE_0X81.ParamList = new List { + 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(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 { - new JTNE_0x81_0x80{ + JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize(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 { + 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 + public class JTNE_0x81_0x80_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x80 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x80_Device Deserialize(ReadOnlySpan 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 + public class JTNE_0x81_0x81_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x81 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x81_Device Deserialize(ReadOnlySpan 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; diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_DeviceTest.cs similarity index 51% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x81Test.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_DeviceTest.cs index 14bcc7c..2f3cb8b 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81Test.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x81_DeviceTest.cs @@ -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 { - 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 { + 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(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(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 { - 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 { + 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(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(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 { - 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 { + 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(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 { - new JTNE_0x81_0x04{ + JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize(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 { + 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 { - 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 { + 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(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 { - new JTNE_0x81_0x0D{ + JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize(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 { + 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 { - 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 { + 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(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(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 { - 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 { + 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(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 { - new JTNE_0x81_0x01{ + JTNE_0x81_Device jTNE_0X81_Device = JTNESerializer_Device.Deserialize(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 { + 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)); } } } diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBodyTest.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBody_DeviceTest.cs similarity index 53% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBodyTest.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBody_DeviceTest.cs index 1390b81..822de90 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBodyTest.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_CustomBody_DeviceTest.cs @@ -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(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(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 + public class JTNE_0x82_0x80_Device_Formatter : IJTNEFormatter { - public JTNE_0x82_0x80 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x82_0x80_Device Deserialize(ReadOnlySpan 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; diff --git a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82Test.cs b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_DeviceTest.cs similarity index 65% rename from src/JTNE.Protocol.Test/MessageBody/JTNE_0x82Test.cs rename to src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_DeviceTest.cs index 3810ad5..27b4779 100644 --- a/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82Test.cs +++ b/src/JTNE.Protocol.Test/MessageBody/JTNE_0x82_DeviceTest.cs @@ -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(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(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(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(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(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(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)); } } } diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x01_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_DeviceTest.cs similarity index 50% rename from src/JTNE.Protocol.Test/Package/JTNE_0x01_PackageTest.cs rename to src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_DeviceTest.cs index 7741a0c..32a6248 100644 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x01_PackageTest.cs +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_DeviceTest.cs @@ -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() + 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() { "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() + 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() { "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]); } } } diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_PlatformTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_PlatformTest.cs new file mode 100644 index 0000000..64de628 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x01_Package_PlatformTest.cs @@ -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() + { + "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(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() + { + "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]); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x02_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x02_PackageTest.cs deleted file mode 100644 index 8ba535b..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x02_PackageTest.cs +++ /dev/null @@ -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(); - - 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 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 - { - 1000,1001,1002 - }; - jTNE_0X02_0X07.AlarmEls = new List - { - 2000,2001,2002 - }; - jTNE_0X02_0X07.AlarmEngines = new List - { - 3000,3001,3002 - }; - jTNE_0X02_0X07.AlarmOthers = new List - { - 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 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 { - 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 { - 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 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 - { - 1000,1001,1002 - }, jTNE_0X02_0X07.AlarmBatteryOthers); - Assert.Equal(3, jTNE_0X02_0X07.AlarmEls.Count); - Assert.Equal(new List - { - 2000,2001,2002 - }, jTNE_0X02_0X07.AlarmEls); - Assert.Equal(3, jTNE_0X02_0X07.AlarmEngines.Count); - Assert.Equal(new List - { - 3000,3001,3002 - }, jTNE_0X02_0X07.AlarmEngines); - Assert.Equal(3, jTNE_0X02_0X07.AlarmOthers.Count); - Assert.Equal(new List - { - 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 { - 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 { - 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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_DeviceTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_DeviceTest.cs new file mode 100644 index 0000000..b067786 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_DeviceTest.cs @@ -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(); + + 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 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 + { + 1000,1001,1002 + }; + jTNE_0X02_0X07_Device.AlarmEls = new List + { + 2000,2001,2002 + }; + jTNE_0X02_0X07_Device.AlarmEngines = new List + { + 3000,3001,3002 + }; + jTNE_0X02_0X07_Device.AlarmOthers = new List + { + 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 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 { + 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 { + 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 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 + { + 1000,1001,1002 + }, jTNE_0X02_0X07_Device.AlarmBatteryOthers); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEls.Count); + Assert.Equal(new List + { + 2000,2001,2002 + }, jTNE_0X02_0X07_Device.AlarmEls); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmEngines.Count); + Assert.Equal(new List + { + 3000,3001,3002 + }, jTNE_0X02_0X07_Device.AlarmEngines); + Assert.Equal(3, jTNE_0X02_0X07_Device.AlarmOthers.Count); + Assert.Equal(new List + { + 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 { + 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 { + 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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_PlatformTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_PlatformTest.cs new file mode 100644 index 0000000..05df5f3 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x02_Package_PlatformTest.cs @@ -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(); + + 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 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 + { + 1000,1001,1002 + }; + jTNE_0X02_0X07_Platform.AlarmEls = new List + { + 2000,2001,2002 + }; + jTNE_0X02_0X07_Platform.AlarmEngines = new List + { + 3000,3001,3002 + }; + jTNE_0X02_0X07_Platform.AlarmOthers = new List + { + 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 + { + 1000,1001,1002 + }, jTNE_0X02_0X07_Platform.AlarmBatteryOthers); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEls.Count); + Assert.Equal(new List + { + 2000,2001,2002 + }, jTNE_0X02_0X07_Platform.AlarmEls); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmEngines.Count); + Assert.Equal(new List + { + 3000,3001,3002 + }, jTNE_0X02_0X07_Platform.AlarmEngines); + Assert.Equal(3, jTNE_0X02_0X07_Platform.AlarmOthers.Count); + Assert.Equal(new List + { + 4000,4001,4002 + }, jTNE_0X02_0X07_Platform.AlarmOthers); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x04_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x04_PackageTest.cs deleted file mode 100644 index 104e8b6..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x04_PackageTest.cs +++ /dev/null @@ -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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_DeviceTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_DeviceTest.cs new file mode 100644 index 0000000..1db8a78 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_DeviceTest.cs @@ -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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_PlatformTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_PlatformTest.cs new file mode 100644 index 0000000..6168f2e --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x04_Package_PlatformTest.cs @@ -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(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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x05_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x05_PackageTest.cs deleted file mode 100644 index e2dfdbd..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x05_PackageTest.cs +++ /dev/null @@ -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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x05_Package_PlatformTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x05_Package_PlatformTest.cs new file mode 100644 index 0000000..2e51ce0 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x05_Package_PlatformTest.cs @@ -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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x06_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x06_PackageTest.cs deleted file mode 100644 index 28a0c79..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x06_PackageTest.cs +++ /dev/null @@ -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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x06_Package_PlatformTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x06_Package_PlatformTest.cs new file mode 100644 index 0000000..f79a031 --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x06_Package_PlatformTest.cs @@ -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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x07_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x07_PackageTest.cs deleted file mode 100644 index 61211a4..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x07_PackageTest.cs +++ /dev/null @@ -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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x07_Package_DeviceTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x07_Package_DeviceTest.cs new file mode 100644 index 0000000..cbe4fce --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x07_Package_DeviceTest.cs @@ -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); + } + } +} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x08_PackageTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x08_PackageTest.cs deleted file mode 100644 index c460e15..0000000 --- a/src/JTNE.Protocol.Test/Package/JTNE_0x08_PackageTest.cs +++ /dev/null @@ -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); - } - } -} diff --git a/src/JTNE.Protocol.Test/Package/JTNE_0x08_Package_DeviceTest.cs b/src/JTNE.Protocol.Test/Package/JTNE_0x08_Package_DeviceTest.cs new file mode 100644 index 0000000..887c71c --- /dev/null +++ b/src/JTNE.Protocol.Test/Package/JTNE_0x08_Package_DeviceTest.cs @@ -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); + } + } +} diff --git a/src/JTNE.Protocol/Enums/JTNEMsgId.cs b/src/JTNE.Protocol/Enums/JTNEMsgId_Device.cs similarity index 66% rename from src/JTNE.Protocol/Enums/JTNEMsgId.cs rename to src/JTNE.Protocol/Enums/JTNEMsgId_Device.cs index a242f88..d1a3db7 100644 --- a/src/JTNE.Protocol/Enums/JTNEMsgId.cs +++ b/src/JTNE.Protocol/Enums/JTNEMsgId_Device.cs @@ -9,46 +9,37 @@ namespace JTNE.Protocol.Enums /// /// 命令单元 /// - public enum JTNEMsgId:byte + public enum JTNEMsgId_Device:byte { /// /// 车辆登入 /// - [JTNEBodiesType(typeof(JTNE_0x01))] + [JTNEBodiesType(typeof(JTNE_0x01_Device))] login = 0x01, /// /// 实时信息上传 /// - [JTNEBodiesType(typeof(JTNE_0x02))] + [JTNEBodiesType(typeof(JTNE_0x02_Device))] uploadim = 0x02, /// /// 补传信息上传 /// + [JTNEBodiesType(typeof(JTNE_0x03_Device))] uploadsup = 0x03, /// /// 车辆登出 /// - [JTNEBodiesType(typeof(JTNE_0x04))] + [JTNEBodiesType(typeof(JTNE_0x04_Device))] loginout = 0x04, /// - /// 平台登入 - /// - [JTNEBodiesType(typeof(JTNE_0x05))] - platformlogin = 0x05, - /// - /// 平台登出 - /// - [JTNEBodiesType(typeof(JTNE_0x06))] - platformlogout = 0x06, - /// /// 心跳 /// - [JTNEBodiesType(typeof(JTNE_0x07))] + [JTNEBodiesType(typeof(JTNE_0x07_Device))] heartbeat = 0x07, /// /// 终端校时 /// - [JTNEBodiesType(typeof(JTNE_0x08))] + [JTNEBodiesType(typeof(JTNE_0x08_Device))] checktime = 0x08, /// /// 查询命令 diff --git a/src/JTNE.Protocol/Enums/JTNEMsgId_Platform.cs b/src/JTNE.Protocol/Enums/JTNEMsgId_Platform.cs new file mode 100644 index 0000000..8c76297 --- /dev/null +++ b/src/JTNE.Protocol/Enums/JTNEMsgId_Platform.cs @@ -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 +{ + /// + /// 命令单元 + /// + public enum JTNEMsgId_Platform:byte + { + /// + /// 车辆登入 + /// + [JTNEBodiesType(typeof(JTNE_0x01_Platform))] + login = 0x01, + /// + /// 实时信息上传 + /// + [JTNEBodiesType(typeof(JTNE_0x02_Platform))] + uploadim = 0x02, + /// + /// 补传信息上传 + /// + [JTNEBodiesType(typeof(JTNE_0x03_Platform))] + uploadsup = 0x03, + /// + /// 车辆登出 + /// + [JTNEBodiesType(typeof(JTNE_0x04_Platform))] + loginout = 0x04, + /// + /// 平台登入 + /// + [JTNEBodiesType(typeof(JTNE_0x05_Platform))] + platformlogin = 0x05, + /// + /// 平台登出 + /// + [JTNEBodiesType(typeof(JTNE_0x06_Platform))] + platformlogout = 0x06, + } +} diff --git a/src/JTNE.Protocol/Extensions/JTNEPackageExtensions.cs b/src/JTNE.Protocol/Extensions/JTNEPackage_DeviceExtensions.cs similarity index 72% rename from src/JTNE.Protocol/Extensions/JTNEPackageExtensions.cs rename to src/JTNE.Protocol/Extensions/JTNEPackage_DeviceExtensions.cs index 080f3d4..c7d85b3 100644 --- a/src/JTNE.Protocol/Extensions/JTNEPackageExtensions.cs +++ b/src/JTNE.Protocol/Extensions/JTNEPackage_DeviceExtensions.cs @@ -8,7 +8,7 @@ namespace JTNE.Protocol.Extensions /// /// /// - public static class JTNEPackageExtensions + public static class JTNEPackage_DeviceExtensions { /// /// @@ -19,10 +19,10 @@ namespace JTNE.Protocol.Extensions /// /// /// - public static JTNEPackage Create(this JTNEMsgId msgId,string vin, JTNEAskId askId, TJTNEBodies bodies) + public static JTNEPackage_Device Create(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 /// /// /// - 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 /// /// /// - public static JTNEPackage CreateCustomMsgId(this byte msgId, string vin, JTNEAskId askId, TJTNEBodies bodies) + public static JTNEPackage_Device CreateCustomMsgId(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 /// /// /// - 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; diff --git a/src/JTNE.Protocol/Extensions/JTNEPackage_PlatformExtensions.cs b/src/JTNE.Protocol/Extensions/JTNEPackage_PlatformExtensions.cs new file mode 100644 index 0000000..7ede393 --- /dev/null +++ b/src/JTNE.Protocol/Extensions/JTNEPackage_PlatformExtensions.cs @@ -0,0 +1,85 @@ +using JTNE.Protocol.Enums; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.Extensions +{ + /// + /// + /// + public static class JTNEPackage_PlatformExtensions + { + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static JTNEPackage_Platform Create(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; + } + + /// + /// + /// + /// + /// + /// + /// + 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; + } + + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static JTNEPackage_Platform CreateCustomMsgId(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; + } + + /// + /// + /// + /// + /// + /// + /// + 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/JTNEHeaderPackageFormatter.cs b/src/JTNE.Protocol/Formatters/JTNEHeaderPackage_DeviceFormatter.cs similarity index 70% rename from src/JTNE.Protocol/Formatters/JTNEHeaderPackageFormatter.cs rename to src/JTNE.Protocol/Formatters/JTNEHeaderPackage_DeviceFormatter.cs index 4632b21..dd76537 100644 --- a/src/JTNE.Protocol/Formatters/JTNEHeaderPackageFormatter.cs +++ b/src/JTNE.Protocol/Formatters/JTNEHeaderPackage_DeviceFormatter.cs @@ -8,13 +8,13 @@ using System.Text; namespace JTNE.Protocol.Formatters { - public class JTNEHeaderPackageFormatter : IJTNEFormatter + public class JTNEHeaderPackage_DeviceFormatter : IJTNEFormatter { - public JTNEHeaderPackage Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNEHeaderPackage_Device Deserialize(ReadOnlySpan 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); diff --git a/src/JTNE.Protocol/Formatters/JTNEHeaderPackage_PlatformFormatter.cs b/src/JTNE.Protocol/Formatters/JTNEHeaderPackage_PlatformFormatter.cs new file mode 100644 index 0000000..1b3fdaf --- /dev/null +++ b/src/JTNE.Protocol/Formatters/JTNEHeaderPackage_PlatformFormatter.cs @@ -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 + { + public JTNEHeaderPackage_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/JTNEPackageFormatter.cs b/src/JTNE.Protocol/Formatters/JTNEPackage_DeviceFormatter.cs similarity index 77% rename from src/JTNE.Protocol/Formatters/JTNEPackageFormatter.cs rename to src/JTNE.Protocol/Formatters/JTNEPackage_DeviceFormatter.cs index 5eee4cf..3246c73 100644 --- a/src/JTNE.Protocol/Formatters/JTNEPackageFormatter.cs +++ b/src/JTNE.Protocol/Formatters/JTNEPackage_DeviceFormatter.cs @@ -8,15 +8,15 @@ using System.Text; namespace JTNE.Protocol.Formatters { - public class JTNEPackageFormatter : IJTNEFormatter + public class JTNEPackage_DeviceFormatter : IJTNEFormatter { private const byte FixedDataBodyLength = 2; - public JTNEPackage Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNEPackage_Device Deserialize(ReadOnlySpan 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) { diff --git a/src/JTNE.Protocol/Formatters/JTNEPackage_PlatformFormatter.cs b/src/JTNE.Protocol/Formatters/JTNEPackage_PlatformFormatter.cs new file mode 100644 index 0000000..dbc0391 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/JTNEPackage_PlatformFormatter.cs @@ -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 + { + private const byte FixedDataBodyLength = 2; + + public JTNEPackage_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Device_Formatter.cs new file mode 100644 index 0000000..e79eb6b --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Device_Formatter.cs @@ -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 + { + public JTNE_0x01_Device Deserialize(ReadOnlySpan 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(); + 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Formatter.cs deleted file mode 100644 index 2e245ff..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Formatter.cs +++ /dev/null @@ -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 - { - public JTNE_0x01 Deserialize(ReadOnlySpan 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(); - 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; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Platform_Formatter.cs new file mode 100644 index 0000000..e1d350c --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x01_Platform_Formatter.cs @@ -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 + { + public JTNE_0x01_Platform Deserialize(ReadOnlySpan 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(); + 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Device_Formatter.cs similarity index 91% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Device_Formatter.cs index 1ec01ce..3631151 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x01_Formatter : IJTNEFormatter + public class JTNE_0x02_0x01_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x01 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x01_Device Deserialize(ReadOnlySpan 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); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Platform_Formatter.cs new file mode 100644 index 0000000..9aa284e --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x01_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x01_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Device_Formatter.cs similarity index 90% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Device_Formatter.cs index 238ad2d..6288f1f 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x02_Formatter : IJTNEFormatter + public class JTNE_0x02_0x02_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x02 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x02_Device Deserialize(ReadOnlySpan 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(); @@ -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) diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Platform_Formatter.cs new file mode 100644 index 0000000..7c77d0d --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x02_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x02_Platform Deserialize(ReadOnlySpan 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(); + 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Device_Formatter.cs similarity index 91% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Device_Formatter.cs index 45ea0a7..821515d 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x03_Formatter : IJTNEFormatter + public class JTNE_0x02_0x03_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x03 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x03_Device Deserialize(ReadOnlySpan 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); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Platform_Formatter.cs new file mode 100644 index 0000000..6ea392c --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x03_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x03_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Device_Formatter.cs similarity index 80% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Device_Formatter.cs index fa93b69..7cf462a 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x04_Formatter : IJTNEFormatter + public class JTNE_0x02_0x04_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x04 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x04_Device Deserialize(ReadOnlySpan 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); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Platform_Formatter.cs new file mode 100644 index 0000000..8d5cb22 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x04_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x04_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Device_Formatter.cs new file mode 100644 index 0000000..c4fa5fc --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Device_Formatter.cs @@ -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 + { + public JTNE_0x02_0x05_Device Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Formatter.cs deleted file mode 100644 index 0ac004e..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Formatter.cs +++ /dev/null @@ -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 - { - public JTNE_0x02_0x05 Deserialize(ReadOnlySpan 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; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Platform_Formatter.cs new file mode 100644 index 0000000..fa651bf --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x05_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x05_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Device_Formatter.cs new file mode 100644 index 0000000..c72965c --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Device_Formatter.cs @@ -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 + { + public JTNE_0x02_0x06_Device Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Formatter.cs deleted file mode 100644 index ffef094..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Formatter.cs +++ /dev/null @@ -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 - { - public JTNE_0x02_0x06 Deserialize(ReadOnlySpan 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; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Platform_Formatter.cs new file mode 100644 index 0000000..aae02c3 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x06_Platform_Formatter.cs @@ -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 + { + public JTNE_0x02_0x06_Platform Deserialize(ReadOnlySpan 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; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Device_Formatter.cs similarity index 93% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Device_Formatter.cs index 2397ff3..efad8fc 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x07_Formatter : IJTNEFormatter + public class JTNE_0x02_0x07_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x07 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x07_Device Deserialize(ReadOnlySpan 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); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Platform_Formatter.cs new file mode 100644 index 0000000..4bd72e6 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x07_Platform_Formatter.cs @@ -0,0 +1,95 @@ +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_0x07_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x02_0x07_Platform Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x02_0x07_Platform jTNE_0X02_0X07 = new JTNE_0x02_0x07_Platform(); + 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); + + jTNE_0X02_0X07.AlarmBatteryOtherCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + jTNE_0X02_0X07.AlarmBatteryOthers = new List(); + for(int i=0;i< jTNE_0X02_0X07.AlarmBatteryOtherCount; i++) + { + jTNE_0X02_0X07.AlarmBatteryOthers.Add(JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset)); + } + + jTNE_0X02_0X07.AlarmElCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + jTNE_0X02_0X07.AlarmEls = new List(); + for (int i = 0; i < jTNE_0X02_0X07.AlarmElCount; i++) + { + jTNE_0X02_0X07.AlarmEls.Add(JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset)); + } + + jTNE_0X02_0X07.AlarmEngineCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + jTNE_0X02_0X07.AlarmEngines = new List(); + for (int i = 0; i < jTNE_0X02_0X07.AlarmEngineCount; i++) + { + jTNE_0X02_0X07.AlarmEngines.Add(JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset)); + } + + jTNE_0X02_0X07.AlarmOtherCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + jTNE_0X02_0X07.AlarmOthers = new List(); + for (int i = 0; i < jTNE_0X02_0X07.AlarmOtherCount; i++) + { + jTNE_0X02_0X07.AlarmOthers.Add(JTNEBinaryExtensions.ReadUInt32Little(bytes, ref offset)); + } + + readSize = offset; + return jTNE_0X02_0X07; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x07_Platform value) + { + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.AlarmLevel); + offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, value.AlarmBatteryFlag); + + if(value.AlarmBatteryOthers!=null && value.AlarmBatteryOthers.Count > 0) + { + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.AlarmBatteryOthers.Count); + foreach (var item in value.AlarmBatteryOthers) + { + offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, item); + } + } + + if (value.AlarmEls != null && value.AlarmEls.Count > 0) + { + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.AlarmEls.Count); + foreach (var item in value.AlarmEls) + { + offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, item); + } + } + + if (value.AlarmEngines != null && value.AlarmEngines.Count > 0) + { + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.AlarmEngines.Count); + foreach (var item in value.AlarmEngines) + { + offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, item); + } + } + + if (value.AlarmEngines != null && value.AlarmEngines.Count > 0) + { + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, (byte)value.AlarmOthers.Count); + foreach (var item in value.AlarmOthers) + { + offset += JTNEBinaryExtensions.WriteUInt32Little(bytes, offset, item); + } + } + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Device_Formatter.cs similarity index 92% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Device_Formatter.cs index b4e3035..9cfe19b 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x08_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x08_Formatter : IJTNEFormatter + public class JTNE_0x02_0x08_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x08 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x08_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x02_0x08 jTNE_0X02_0X08 = new JTNE_0x02_0x08(); + JTNE_0x02_0x08_Device jTNE_0X02_0X08 = new JTNE_0x02_0x08_Device(); jTNE_0X02_0X08.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X02_0X08.BatteryAssemblyCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X02_0X08.BatteryAssemblies = new List(); @@ -35,7 +35,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters return jTNE_0X02_0X08; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x08 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x08_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); if (value.BatteryAssemblies!=null && value.BatteryAssemblies.Count > 0) diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Device_Formatter.cs similarity index 88% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Device_Formatter.cs index 43d8578..cadbe92 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_0x09_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_0x09_Formatter : IJTNEFormatter + public class JTNE_0x02_0x09_Device_Formatter : IJTNEFormatter { - public JTNE_0x02_0x09 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_0x09_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x02_0x09 jTNE_0X02_0X09 = new JTNE_0x02_0x09(); + JTNE_0x02_0x09_Device jTNE_0X02_0X09 = new JTNE_0x02_0x09_Device(); jTNE_0X02_0X09.TypeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X02_0X09.BatteryTemperatureCount = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X02_0X09.BatteryTemperatures = new List(); @@ -27,7 +27,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters return jTNE_0X02_0X09; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x09 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_0x09_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.TypeCode); if(value.BatteryTemperatures!=null && value.BatteryTemperatures.Count > 0) diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Device_Formatter.cs similarity index 79% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Device_Formatter.cs index 820217a..f75bfed 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x02_Formatter : IJTNEFormatter + public class JTNE_0x02_Device_Formatter : IJTNEFormatter { - public JTNE_0x02 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x02_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0, bodyReadSize = 0; - JTNE_0x02 jTNE_0X02 = new JTNE_0x02(); - jTNE_0X02.Values = new Dictionary(); + JTNE_0x02_Device jTNE_0X02 = new JTNE_0x02_Device(); + jTNE_0X02.Values = new Dictionary(); jTNE_0X02.CusotmValues = new Dictionary(); while (offset < bytes.Length) { byte typeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); - if (JTNE_0x02_Body.TypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_BodyImpl)) + if (JTNE_0x02_Body_Device.TypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_BodyImpl)) { var bodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_BodyImpl); //从类型编码开始取 offset - 1 @@ -25,7 +25,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters jTNE_0X02.Values.Add(typeCode, bodyData); offset += bodyReadSize - 1; } - else if (JTNE_0x02_CustomBody.CustomTypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_CustomBodyImpl)) + else if (JTNE_0x02_CustomBody_Device.CustomTypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_CustomBodyImpl)) { int length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); //从类型编码开始取 offset - 1 - 2 @@ -45,13 +45,13 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters return jTNE_0X02; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x02 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_Device value) { if (value.Values != null && value.Values.Count > 0) { foreach (var item in value.Values) { - if (JTNE_0x02_Body.TypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_BodyImpl)) + if (JTNE_0x02_Body_Device.TypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_BodyImpl)) { var bodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_BodyImpl); offset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize(bodyImplFormatter, ref bytes, offset, item.Value); @@ -62,7 +62,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters { foreach (var item in value.CusotmSerializeObjectValues) { - if (JTNE_0x02_CustomBody.CustomTypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_CustomBodyImpl)) + if (JTNE_0x02_CustomBody_Device.CustomTypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_CustomBodyImpl)) { var customBodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_CustomBodyImpl); offset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize(customBodyImplFormatter, ref bytes, offset, item.Value); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Platform_Formatter.cs new file mode 100644 index 0000000..24be117 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x02_Platform_Formatter.cs @@ -0,0 +1,75 @@ +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_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x02_Platform Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0, bodyReadSize = 0; + JTNE_0x02_Platform jTNE_0X02_Platform = new JTNE_0x02_Platform(); + jTNE_0X02_Platform.Values = new Dictionary(); + jTNE_0X02_Platform.CusotmValues = new Dictionary(); + while (offset < bytes.Length) + { + byte typeCode = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + if (JTNE_0x02_Body_Platform.TypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_BodyImpl)) + { + var bodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_BodyImpl); + //从类型编码开始取 offset - 1 + var bodyData = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(bodyImplFormatter, bytes.Slice(offset - 1), out bodyReadSize); + jTNE_0X02_Platform.Values.Add(typeCode, bodyData); + offset += bodyReadSize - 1; + } + else if (JTNE_0x02_CustomBody_Platform.CustomTypeCodes.TryGetValue(typeCode, out Type jTNE_0x02_CustomBodyImpl)) + { + int length = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + //从类型编码开始取 offset - 1 - 2 + //1:类型编码 + //2:自定义数据长度 + byte[] customBodyData = bytes.Slice(offset - 1 - 2, length + 1 + 2).ToArray(); + jTNE_0X02_Platform.CusotmValues.Add(typeCode, customBodyData); + offset += customBodyData.Length - 1 - 2; + } + else + { + offset += bodyReadSize; + break; + } + } + readSize = offset; + return jTNE_0X02_Platform; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x02_Platform value) + { + if (value.Values != null && value.Values.Count > 0) + { + foreach (var item in value.Values) + { + if (JTNE_0x02_Body_Platform.TypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_BodyImpl_Platform)) + { + var bodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_BodyImpl_Platform); + offset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize(bodyImplFormatter, ref bytes, offset, item.Value); + } + } + } + if (value.CusotmSerializeObjectValues != null && value.CusotmSerializeObjectValues.Count > 0) + { + foreach (var item in value.CusotmSerializeObjectValues) + { + if (JTNE_0x02_CustomBody_Platform.CustomTypeCodes.TryGetValue(item.Key, out Type jTNE_0x02_CustomBodyImpl_Platform)) + { + var customBodyImplFormatter = JTNEFormatterExtensions.GetFormatter(jTNE_0x02_CustomBodyImpl_Platform); + offset = JTNEFormatterResolverExtensions.JTNEDynamicSerialize(customBodyImplFormatter, ref bytes, offset, item.Value); + } + } + } + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Device_Formatter.cs similarity index 57% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Device_Formatter.cs index e0cdc5a..b814621 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x03_Formatter : IJTNEFormatter + public class JTNE_0x03_Device_Formatter : IJTNEFormatter { - public JTNE_0x03 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x03_Device Deserialize(ReadOnlySpan bytes, out int readSize) { - JTNE_0x03 jTNE_0X03 = new JTNE_0x03(); - jTNE_0X03.Supplement= JTNEFormatterExtensions.GetFormatter().Deserialize(bytes, out readSize); + JTNE_0x03_Device jTNE_0X03 = new JTNE_0x03_Device(); + jTNE_0X03.Supplement= JTNEFormatterExtensions.GetFormatter().Deserialize(bytes, out readSize); return jTNE_0X03; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x03 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x03_Device value) { - offset = JTNEFormatterExtensions.GetFormatter().Serialize(ref bytes, offset,value.Supplement); + offset = JTNEFormatterExtensions.GetFormatter().Serialize(ref bytes, offset,value.Supplement); return offset; } } diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Platform_Formatter.cs new file mode 100644 index 0000000..e6e7a1e --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x03_Platform_Formatter.cs @@ -0,0 +1,24 @@ +using JTNE.Protocol.Extensions; +using JTNE.Protocol.MessageBody; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.Formatters.MessageBodyFormatters +{ + public class JTNE_0x03_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x03_Platform Deserialize(ReadOnlySpan bytes, out int readSize) + { + JTNE_0x03_Platform jTNE_0X03_Platform = new JTNE_0x03_Platform(); + jTNE_0X03_Platform.Supplement= JTNEFormatterExtensions.GetFormatter().Deserialize(bytes, out readSize); + return jTNE_0X03_Platform; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x03_Platform value) + { + offset = JTNEFormatterExtensions.GetFormatter().Serialize(ref bytes, offset,value.Supplement); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Device_Formatter.cs similarity index 54% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Device_Formatter.cs index adc689f..c781a33 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Device_Formatter.cs @@ -6,19 +6,19 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x04_Formatter : IJTNEFormatter + public class JTNE_0x04_Device_Formatter : IJTNEFormatter { - public JTNE_0x04 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x04_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x04 jTNE_0X01 = new JTNE_0x04(); - jTNE_0X01.LogoutTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); - jTNE_0X01.LogoutNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + JTNE_0x04_Device jTNE_0X01_Device = new JTNE_0x04_Device(); + jTNE_0X01_Device.LogoutTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); + jTNE_0X01_Device.LogoutNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; - return jTNE_0X01; + return jTNE_0X01_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x04 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x04_Device value) { offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.LogoutTime); offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LogoutNum); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Platform_Formatter.cs similarity index 53% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Platform_Formatter.cs index a750a71..30a71c2 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x04_Platform_Formatter.cs @@ -6,19 +6,19 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x06_Formatter : IJTNEFormatter + public class JTNE_0x04_Platform_Formatter : IJTNEFormatter { - public JTNE_0x06 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x04_Platform Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x06 jTNE_0X06 = new JTNE_0x06(); - jTNE_0X06.LogoutTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); - jTNE_0X06.LogoutNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + JTNE_0x04_Platform jTNE_0X01_Platform = new JTNE_0x04_Platform(); + jTNE_0X01_Platform.LogoutTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); + jTNE_0X01_Platform.LogoutNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; - return jTNE_0X06; + return jTNE_0X01_Platform; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x06 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x04_Platform value) { offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.LogoutTime); offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LogoutNum); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Platform_Formatter.cs similarity index 84% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Platform_Formatter.cs index 1e14bde..a046415 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x05_Platform_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x05_Formatter : IJTNEFormatter + public class JTNE_0x05_Platform_Formatter : IJTNEFormatter { - public JTNE_0x05 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x05_Platform Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x05 jTNE_0X05 = new JTNE_0x05(); + JTNE_0x05_Platform jTNE_0X05 = new JTNE_0x05_Platform(); jTNE_0X05.LoginTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); jTNE_0X05.LoginNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); jTNE_0X05.PlatformUserName = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset,12); @@ -21,7 +21,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters return jTNE_0X05; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x05 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x05_Platform value) { offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.LoginTime); offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LoginNum); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Platform_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Platform_Formatter.cs new file mode 100644 index 0000000..c216ab4 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x06_Platform_Formatter.cs @@ -0,0 +1,28 @@ +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_0x06_Platform_Formatter : IJTNEFormatter + { + public JTNE_0x06_Platform Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x06_Platform jTNE_0X06_Platform = new JTNE_0x06_Platform(); + jTNE_0X06_Platform.LogoutTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); + jTNE_0X06_Platform.LogoutNum = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + readSize = offset; + return jTNE_0X06_Platform; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x06_Platform value) + { + offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.LogoutTime); + offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.LogoutNum); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Device_Formatter.cs new file mode 100644 index 0000000..1965ecd --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Device_Formatter.cs @@ -0,0 +1,25 @@ +using JTNE.Protocol.Extensions; +using JTNE.Protocol.MessageBody; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace JTNE.Protocol.Formatters.MessageBodyFormatters +{ + public class JTNE_0x80Reply_Device_Formatter : IJTNEFormatter + { + public JTNE_0x80Reply_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + JTNE_0x80Reply_Device jTNE_0x80Reply = new JTNE_0x80Reply_Device(); + jTNE_0x80Reply.JTNE_Reply0x80_Device = JTNEFormatterExtensions.GetFormatter().Deserialize(bytes, out readSize); + return jTNE_0x80Reply; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply_Device value) + { + offset=JTNEFormatterExtensions.GetFormatter().Serialize(ref bytes, offset,value.JTNE_Reply0x80_Device); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs deleted file mode 100644 index 554ba4b..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80Reply_Formatter.cs +++ /dev/null @@ -1,25 +0,0 @@ -using JTNE.Protocol.Extensions; -using JTNE.Protocol.MessageBody; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace JTNE.Protocol.Formatters.MessageBodyFormatters -{ - public class JTNE_0x80Reply_Formatter : IJTNEFormatter - { - public JTNE_0x80Reply Deserialize(ReadOnlySpan bytes, out int readSize) - { - JTNE_0x80Reply jTNE_0x80Reply = new JTNE_0x80Reply(); - jTNE_0x80Reply.JTNE_Reply0x80 = JTNEFormatterExtensions.GetFormatter().Deserialize(bytes, out readSize); - return jTNE_0x80Reply; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x80Reply value) - { - offset=JTNEFormatterExtensions.GetFormatter().Serialize(ref bytes, offset,value.JTNE_Reply0x80); - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Device_Formatter.cs similarity index 80% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Device_Formatter.cs index 43426ca..6cae19f 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x80_Device_Formatter.cs @@ -6,12 +6,12 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x80_Formatter : IJTNEFormatter + public class JTNE_0x80_Device_Formatter : IJTNEFormatter { - public JTNE_0x80 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x80_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x80 jTNE_0X80 = new JTNE_0x80(); + JTNE_0x80_Device jTNE_0X80 = new JTNE_0x80_Device(); jTNE_0X80.QueryTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); jTNE_0X80.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); jTNE_0X80.ParamList = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset, jTNE_0X80.ParamNum); @@ -19,7 +19,7 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters return jTNE_0X80; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x80 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x80_Device value) { offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.QueryTime); offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamNum); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01_Device_Formatter.cs similarity index 68% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01_Device_Formatter.cs index 2fbc738..d27798f 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x01_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x01Formatter : IJTNEFormatter + public class JTNE_0x81_0x01_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x01 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x01_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x01 jTNE_0x81_0x01 = new JTNE_0x81_0x01(); + JTNE_0x81_0x01_Device jTNE_0x81_0x01 = new JTNE_0x81_0x01_Device(); jTNE_0x81_0x01.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; return jTNE_0x81_0x01; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x01 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x01_Device value) { offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02_Device_Formatter.cs similarity index 68% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02_Device_Formatter.cs index 85cf524..7f946ba 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x02_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x02Formatter : IJTNEFormatter + public class JTNE_0x81_0x02_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x02 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x02_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x02 jTNE_0x81_0x02= new JTNE_0x81_0x02(); + JTNE_0x81_0x02_Device jTNE_0x81_0x02= new JTNE_0x81_0x02_Device(); jTNE_0x81_0x02.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; return jTNE_0x81_0x02; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x02 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x02_Device value) { offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03_Device_Formatter.cs similarity index 68% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03_Device_Formatter.cs index d276c3b..2353340 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x03_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x03Formatter : IJTNEFormatter + public class JTNE_0x81_0x03_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x03 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x03_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x03 jTNE_0x81_0x03= new JTNE_0x81_0x03(); + JTNE_0x81_0x03_Device jTNE_0x81_0x03= new JTNE_0x81_0x03_Device(); jTNE_0x81_0x03.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; return jTNE_0x81_0x03; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x03 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x03_Device value) { offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04_Device_Formatter.cs similarity index 68% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04_Device_Formatter.cs index d2c6158..4ef2b6d 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x04_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x04Formatter : IJTNEFormatter + public class JTNE_0x81_0x04_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x04 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x04_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x04 jTNE_0x81_0x04 = new JTNE_0x81_0x04(); + JTNE_0x81_0x04_Device jTNE_0x81_0x04 = new JTNE_0x81_0x04_Device(); jTNE_0x81_0x04.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; return jTNE_0x81_0x04; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x04 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x04_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05_Device_Formatter.cs similarity index 70% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05_Device_Formatter.cs index 4b9aad0..7d6903d 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x05_Device_Formatter.cs @@ -6,19 +6,19 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x05Formatter : IJTNEFormatter + public class JTNE_0x81_0x05_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x05 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x05_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x05 jTNE_0x81_0x05 = new JTNE_0x81_0x05(); + JTNE_0x81_0x05_Device jTNE_0x81_0x05 = new JTNE_0x81_0x05_Device(); jTNE_0x81_0x05.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); jTNE_0x81_0x05.ParamLength = (byte)bytes.Length; readSize = offset; return jTNE_0x81_0x05; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x05 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x05_Device value) { offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06_Device_Formatter.cs similarity index 68% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06_Device_Formatter.cs index 7651866..88c0c53 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x06_Device_Formatter.cs @@ -7,18 +7,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x06Formatter : IJTNEFormatter + public class JTNE_0x81_0x06_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x06 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x06_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x06 jTNE_0x81_0x06 = new JTNE_0x81_0x06(); + JTNE_0x81_0x06_Device jTNE_0x81_0x06 = new JTNE_0x81_0x06_Device(); jTNE_0x81_0x06.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; return jTNE_0x81_0x06; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x06 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x06_Device value) { offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07_Device_Formatter.cs similarity index 70% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07_Device_Formatter.cs index 5981159..5ac9711 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x07_Device_Formatter.cs @@ -8,18 +8,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x07Formatter : IJTNEFormatter + public class JTNE_0x81_0x07_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x07 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x07_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x07 jTNE_0x81_0x07 = new JTNE_0x81_0x07(); + JTNE_0x81_0x07_Device jTNE_0x81_0x07 = new JTNE_0x81_0x07_Device(); jTNE_0x81_0x07.ParamValue = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0x81_0x07.ParamLength); readSize = offset; return jTNE_0x81_0x07; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x07 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x07_Device value) { offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.ParamValue,value.ParamLength); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08_Device_Formatter.cs similarity index 70% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08_Device_Formatter.cs index 612c252..205d71b 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x08_Device_Formatter.cs @@ -9,18 +9,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x08Formatter : IJTNEFormatter + public class JTNE_0x81_0x08_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x08 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x08_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x08 jTNE_0x81_0x08 = new JTNE_0x81_0x08(); + JTNE_0x81_0x08_Device jTNE_0x81_0x08 = new JTNE_0x81_0x08_Device(); jTNE_0x81_0x08.ParamValue = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset, jTNE_0x81_0x08.ParamLength); readSize = offset; return jTNE_0x81_0x08; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x08 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x08_Device value) { offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.ParamValue,value.ParamLength); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09_Device_Formatter.cs similarity index 52% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09_Device_Formatter.cs index 8fab31e..dfbc7c4 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x09_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x09Formatter : IJTNEFormatter + public class JTNE_0x81_0x09_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x09 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x09_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x09 jTNE_0x81_0x09 = new JTNE_0x81_0x09(); - jTNE_0x81_0x09.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + JTNE_0x81_0x09_Device jTNE_0x81_0x09_Device = new JTNE_0x81_0x09_Device(); + jTNE_0x81_0x09_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; - return jTNE_0x81_0x09; + return jTNE_0x81_0x09_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x09 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x09_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0AFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0A_Device_Formatter.cs similarity index 52% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0AFormatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0A_Device_Formatter.cs index 92c9b8c..8e44b30 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0AFormatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0A_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x0AFormatter : IJTNEFormatter + public class JTNE_0x81_0x0A_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x0A Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x0A_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x0A jTNE_0x81_0x0A = new JTNE_0x81_0x0A(); - jTNE_0x81_0x0A.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + JTNE_0x81_0x0A_Device jTNE_0x81_0x0A_Device = new JTNE_0x81_0x0A_Device(); + jTNE_0x81_0x0A_Device.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; - return jTNE_0x81_0x0A; + return jTNE_0x81_0x0A_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0A value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0A_Device value) { offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0BFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0BFormatter.cs deleted file mode 100644 index be65908..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0BFormatter.cs +++ /dev/null @@ -1,26 +0,0 @@ -using JTNE.Protocol.Extensions; -using JTNE.Protocol.MessageBody; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JTNE.Protocol.Formatters.MessageBodyFormatters -{ - public class JTNE_0x81_0x0BFormatter : IJTNEFormatter - { - public JTNE_0x81_0x0B Deserialize(ReadOnlySpan bytes, out int readSize) - { - int offset = 0; - JTNE_0x81_0x0B jTNE_0x81_0x0B = new JTNE_0x81_0x0B(); - jTNE_0x81_0x0B.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); - readSize = offset; - return jTNE_0x81_0x0B; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0B value) - { - offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0B_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0B_Device_Formatter.cs new file mode 100644 index 0000000..046c2af --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0B_Device_Formatter.cs @@ -0,0 +1,26 @@ +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_0x81_0x0B_Device_Formatter : IJTNEFormatter + { + public JTNE_0x81_0x0B_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x81_0x0B_Device jTNE_0x81_0x0B_Device = new JTNE_0x81_0x0B_Device(); + jTNE_0x81_0x0B_Device.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + readSize = offset; + return jTNE_0x81_0x0B_Device; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0B_Device value) + { + offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0CFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0C_Device_Formatter.cs similarity index 52% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0CFormatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0C_Device_Formatter.cs index 5f6c25c..367cacd 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0CFormatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0C_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x0CFormatter : IJTNEFormatter + public class JTNE_0x81_0x0C_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x0C Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x0C_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x0C jTNE_0x81_0x0C = new JTNE_0x81_0x0C(); - jTNE_0x81_0x0C.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + JTNE_0x81_0x0C_Device jTNE_0x81_0x0C_Device = new JTNE_0x81_0x0C_Device(); + jTNE_0x81_0x0C_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; - return jTNE_0x81_0x0C; + return jTNE_0x81_0x0C_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0C value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0C_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0DFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0D_Device_Formatter.cs similarity index 52% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0DFormatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0D_Device_Formatter.cs index 6b658dd..e2a1d08 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0DFormatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0D_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x0DFormatter : IJTNEFormatter + public class JTNE_0x81_0x0D_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x0D Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x0D_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x0D jTNE_0x81_0x0D = new JTNE_0x81_0x0D(); - jTNE_0x81_0x0D.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + JTNE_0x81_0x0D_Device jTNE_0x81_0x0D_Device = new JTNE_0x81_0x0D_Device(); + jTNE_0x81_0x0D_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; - return jTNE_0x81_0x0D; + return jTNE_0x81_0x0D_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0D value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0D_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0EFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0EFormatter.cs deleted file mode 100644 index e6ecde8..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0EFormatter.cs +++ /dev/null @@ -1,27 +0,0 @@ -using JTNE.Protocol.Extensions; -using JTNE.Protocol.MessageBody; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JTNE.Protocol.Formatters.MessageBodyFormatters -{ - public class JTNE_0x81_0x0EFormatter : IJTNEFormatter - { - public JTNE_0x81_0x0E Deserialize(ReadOnlySpan bytes, out int readSize) - { - int offset = 0; - JTNE_0x81_0x0E jTNE_0x81_0x0E= new JTNE_0x81_0x0E(); - jTNE_0x81_0x0E.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); - jTNE_0x81_0x0E.ParamLength = (byte)bytes.Length; - readSize = offset; - return jTNE_0x81_0x0E; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0E value) - { - offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue); - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0E_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0E_Device_Formatter.cs new file mode 100644 index 0000000..c85e8a9 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0E_Device_Formatter.cs @@ -0,0 +1,27 @@ +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_0x81_0x0E_Device_Formatter : IJTNEFormatter + { + public JTNE_0x81_0x0E_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x81_0x0E_Device jTNE_0x81_0x0E_Device = new JTNE_0x81_0x0E_Device(); + jTNE_0x81_0x0E_Device.ParamValue = JTNEBinaryExtensions.ReadBytesLittle(bytes, ref offset); + jTNE_0x81_0x0E_Device.ParamLength = (byte)bytes.Length; + readSize = offset; + return jTNE_0x81_0x0E_Device; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0E_Device value) + { + offset += JTNEBinaryExtensions.WriteBytesLittle(bytes, offset, value.ParamValue); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0FFormatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0FFormatter.cs deleted file mode 100644 index 0c616aa..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0FFormatter.cs +++ /dev/null @@ -1,26 +0,0 @@ -using JTNE.Protocol.Extensions; -using JTNE.Protocol.MessageBody; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JTNE.Protocol.Formatters.MessageBodyFormatters -{ - public class JTNE_0x81_0x0FFormatter : IJTNEFormatter - { - public JTNE_0x81_0x0F Deserialize(ReadOnlySpan bytes, out int readSize) - { - int offset = 0; - JTNE_0x81_0x0F jTNE_0x81_0x0F = new JTNE_0x81_0x0F(); - jTNE_0x81_0x0F.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); - readSize = offset; - return jTNE_0x81_0x0F; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0F value) - { - offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0F_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0F_Device_Formatter.cs new file mode 100644 index 0000000..fa84afc --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x0F_Device_Formatter.cs @@ -0,0 +1,26 @@ +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_0x81_0x0F_Device_Formatter : IJTNEFormatter + { + public JTNE_0x81_0x0F_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x81_0x0F_Device jTNE_0x81_0x0F_Device = new JTNE_0x81_0x0F_Device(); + jTNE_0x81_0x0F_Device.ParamValue = JTNEBinaryExtensions.ReadUInt16Little(bytes, ref offset); + readSize = offset; + return jTNE_0x81_0x0F_Device; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x0F_Device value) + { + offset += JTNEBinaryExtensions.WriteUInt16Little(bytes, offset, value.ParamValue); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10_Device_Formatter.cs similarity index 52% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10_Device_Formatter.cs index 12eab94..32d6cb7 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_0x10_Device_Formatter.cs @@ -6,18 +6,18 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_0x10Formatter : IJTNEFormatter + public class JTNE_0x81_0x10_Device_Formatter : IJTNEFormatter { - public JTNE_0x81_0x10 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_0x10_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81_0x10 jTNE_0x81_0x10 = new JTNE_0x81_0x10(); - jTNE_0x81_0x10.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + JTNE_0x81_0x10_Device jTNE_0x81_0x10_Device = new JTNE_0x81_0x10_Device(); + jTNE_0x81_0x10_Device.ParamValue = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; - return jTNE_0x81_0x10; + return jTNE_0x81_0x10_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x10 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_0x10_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset,value.ParamValue); return offset; diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Device_Formatter.cs similarity index 56% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Device_Formatter.cs index 832c92f..bd565bd 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x81_Device_Formatter.cs @@ -7,23 +7,23 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x81_Formatter : IJTNEFormatter + public class JTNE_0x81_Device_Formatter : IJTNEFormatter { - public JTNE_0x81 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x81_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x81 jTNE_0X81 = new JTNE_0x81(); - jTNE_0X81.OperateTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); - jTNE_0X81.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); - for (int i = 0; i < jTNE_0X81.ParamNum; i++) + JTNE_0x81_Device jTNE_0X81_Device = new JTNE_0x81_Device(); + jTNE_0X81_Device.OperateTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); + jTNE_0X81_Device.ParamNum = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + for (int i = 0; i < jTNE_0X81_Device.ParamNum; i++) { var paramId = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);//参数ID int readSubBodySize = 0; - if (JTNE_0x81_Body.JTNE_0x81Method.TryGetValue(paramId, out Type type)) + if (JTNE_0x81_Body_Device.JTNE_0x81Method.TryGetValue(paramId, out Type type)) { ReadOnlySpan readOnlySpan = new ReadOnlySpan(); - if (JTNE_0x81_Body.JTNE_0x81LengthOfADependOnValueOfB.TryGetValue(paramId, out byte dependOnParamId)) { - var length = jTNE_0X81.ParamList.FirstOrDefault(m => m.ParamId == dependOnParamId).ParamLength; + if (JTNE_0x81_Body_Device.JTNE_0x81LengthOfADependOnValueOfB.TryGetValue(paramId, out byte dependOnParamId)) { + var length = jTNE_0X81_Device.ParamList.FirstOrDefault(m => m.ParamId == dependOnParamId).ParamLength; int tempOffset = 0; int lengthVal = JTNEBinaryExtensions.ReadByteLittle(bytes.Slice(offset - length - 1, length), ref tempOffset); readOnlySpan = bytes.Slice(offset, lengthVal); @@ -31,22 +31,22 @@ namespace JTNE.Protocol.Formatters.MessageBodyFormatters else { readOnlySpan = bytes.Slice(offset); } - if (jTNE_0X81.ParamList != null) + if (jTNE_0X81_Device.ParamList != null) { - jTNE_0X81.ParamList.Add(JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize)); + jTNE_0X81_Device.ParamList.Add(JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize)); } else { - jTNE_0X81.ParamList = new List { JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize) }; + jTNE_0X81_Device.ParamList = new List { JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), readOnlySpan, out readSubBodySize) }; } } offset = offset + readSubBodySize; } readSize = offset; - return jTNE_0X81; + return jTNE_0X81_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x81 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x81_Device value) { offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.OperateTime); offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamNum); diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01Formatter.cs deleted file mode 100644 index c05a62d..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01Formatter.cs +++ /dev/null @@ -1,44 +0,0 @@ -using JTNE.Protocol.Extensions; -using JTNE.Protocol.MessageBody; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace JTNE.Protocol.Formatters.MessageBodyFormatters -{ - public class JTNE_0x82_0x01Formatter : IJTNEFormatter - { - public JTNE_0x82_0x01 Deserialize(ReadOnlySpan bytes, out int readSize) - { - int offset = 0; - JTNE_0x82_0x01 jTNE_0x82_0x01 = new JTNE_0x82_0x01(); - string res = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset); - string[] upgradeCommands = res.Split(';'); - jTNE_0x82_0x01.UpgradeCommand = new Metadata.UpgradeCommand(); - jTNE_0x82_0x01.UpgradeCommand.ServerAddress = upgradeCommands[0]; - jTNE_0x82_0x01.UpgradeCommand.DialName = upgradeCommands[1]; - jTNE_0x82_0x01.UpgradeCommand.DialUserName = upgradeCommands[2]; - jTNE_0x82_0x01.UpgradeCommand.DialUserPwd = upgradeCommands[3]; - jTNE_0x82_0x01.UpgradeCommand.ServerUrl = JTNEGlobalConfigs.Instance.Encoding.GetBytes(upgradeCommands[4]); - if (ushort.TryParse(upgradeCommands[5], out ushort serverPort)) - { - jTNE_0x82_0x01.UpgradeCommand.ServerPort = serverPort; - } - jTNE_0x82_0x01.UpgradeCommand.ManufacturerID = upgradeCommands[6]; - jTNE_0x82_0x01.UpgradeCommand.HardwareVersion = upgradeCommands[7]; - jTNE_0x82_0x01.UpgradeCommand.FirmwareVersion = upgradeCommands[8]; - if (ushort.TryParse(upgradeCommands[9], out ushort connectTimeLimit)){ - jTNE_0x82_0x01.UpgradeCommand.ConnectTimeLimit = connectTimeLimit; - } - readSize = offset; - return jTNE_0x82_0x01; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x01 value) - { - offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.UpgradeCommand.ToString()); - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01_Device_Formatter.cs new file mode 100644 index 0000000..78a97b2 --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x01_Device_Formatter.cs @@ -0,0 +1,44 @@ +using JTNE.Protocol.Extensions; +using JTNE.Protocol.MessageBody; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace JTNE.Protocol.Formatters.MessageBodyFormatters +{ + public class JTNE_0x82_0x01_Device_Formatter : IJTNEFormatter + { + public JTNE_0x82_0x01_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x82_0x01_Device jTNE_0x82_0x01_Device = new JTNE_0x82_0x01_Device(); + string res = JTNEBinaryExtensions.ReadStringLittle(bytes, ref offset); + string[] upgradeCommands = res.Split(';'); + jTNE_0x82_0x01_Device.UpgradeCommand = new Metadata.UpgradeCommand(); + jTNE_0x82_0x01_Device.UpgradeCommand.ServerAddress = upgradeCommands[0]; + jTNE_0x82_0x01_Device.UpgradeCommand.DialName = upgradeCommands[1]; + jTNE_0x82_0x01_Device.UpgradeCommand.DialUserName = upgradeCommands[2]; + jTNE_0x82_0x01_Device.UpgradeCommand.DialUserPwd = upgradeCommands[3]; + jTNE_0x82_0x01_Device.UpgradeCommand.ServerUrl = JTNEGlobalConfigs.Instance.Encoding.GetBytes(upgradeCommands[4]); + if (ushort.TryParse(upgradeCommands[5], out ushort serverPort)) + { + jTNE_0x82_0x01_Device.UpgradeCommand.ServerPort = serverPort; + } + jTNE_0x82_0x01_Device.UpgradeCommand.ManufacturerID = upgradeCommands[6]; + jTNE_0x82_0x01_Device.UpgradeCommand.HardwareVersion = upgradeCommands[7]; + jTNE_0x82_0x01_Device.UpgradeCommand.FirmwareVersion = upgradeCommands[8]; + if (ushort.TryParse(upgradeCommands[9], out ushort connectTimeLimit)){ + jTNE_0x82_0x01_Device.UpgradeCommand.ConnectTimeLimit = connectTimeLimit; + } + readSize = offset; + return jTNE_0x82_0x01_Device; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x01_Device value) + { + offset += JTNEBinaryExtensions.WriteStringLittle(bytes, offset, value.UpgradeCommand.ToString()); + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06_Device_Formatter.cs similarity index 57% rename from src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06Formatter.cs rename to src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06_Device_Formatter.cs index 8ea1459..a57411f 100644 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06Formatter.cs +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_0x06_Device_Formatter.cs @@ -7,20 +7,20 @@ using System.Text; namespace JTNE.Protocol.Formatters.MessageBodyFormatters { - public class JTNE_0x82_0x06Formatter : IJTNEFormatter + public class JTNE_0x82_0x06_Device_Formatter : IJTNEFormatter { - public JTNE_0x82_0x06 Deserialize(ReadOnlySpan bytes, out int readSize) + public JTNE_0x82_0x06_Device Deserialize(ReadOnlySpan bytes, out int readSize) { int offset = 0; - JTNE_0x82_0x06 jTNE_0x82_0x06 = new JTNE_0x82_0x06(); - jTNE_0x82_0x06.AlarmCommand = new Metadata.AlarmCommand(); - jTNE_0x82_0x06.AlarmCommand.AlarmLevel= (JTNEAlarmLevel)JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); + JTNE_0x82_0x06_Device jTNE_0x82_0x06_Device = new JTNE_0x82_0x06_Device(); + jTNE_0x82_0x06_Device.AlarmCommand = new Metadata.AlarmCommand(); + jTNE_0x82_0x06_Device.AlarmCommand.AlarmLevel= (JTNEAlarmLevel)JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; - return jTNE_0x82_0x06; + return jTNE_0x82_0x06_Device; } - public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x06 value) + public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_0x06_Device value) { offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.AlarmCommand.AlarmLevel.ToByteValue()); //if (!string.IsNullOrEmpty(value.AlarmCommand.Alarm)) { diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Device_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Device_Formatter.cs new file mode 100644 index 0000000..54a75dc --- /dev/null +++ b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Device_Formatter.cs @@ -0,0 +1,39 @@ +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_0x82_Device_Formatter : IJTNEFormatter + { + public JTNE_0x82_Device Deserialize(ReadOnlySpan bytes, out int readSize) + { + int offset = 0; + JTNE_0x82_Device jTNE_0x82_Device = new JTNE_0x82_Device(); + jTNE_0x82_Device.ControlTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); + jTNE_0x82_Device.ParamID = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);//参数ID + + if (JTNE_0x82_Body_Device.JTNE_0x82Method.TryGetValue(jTNE_0x82_Device.ParamID, out Type type)) + { + int readSubBodySize = 0; + jTNE_0x82_Device.Parameter = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), bytes.Slice(offset), out readSubBodySize); + offset = offset + readSubBodySize; + } + readSize = offset; + return jTNE_0x82_Device; + } + + public int Serialize(ref byte[] bytes, int offset, JTNE_0x82_Device value) + { + offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.ControlTime); + offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamID); + if (JTNE_0x82_Body_Device.JTNE_0x82Method.TryGetValue(value.ParamID, out Type type)) + { + offset =JTNEFormatterResolverExtensions.JTNEDynamicSerialize(JTNEFormatterExtensions.GetFormatter(type),ref bytes, offset, value.Parameter); + } + return offset; + } + } +} diff --git a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Formatter.cs b/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Formatter.cs deleted file mode 100644 index 838a5fb..0000000 --- a/src/JTNE.Protocol/Formatters/MessageBodyFormatters/JTNE_0x82_Formatter.cs +++ /dev/null @@ -1,39 +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_0x82_Formatter : IJTNEFormatter - { - public JTNE_0x82 Deserialize(ReadOnlySpan bytes, out int readSize) - { - int offset = 0; - JTNE_0x82 jTNE_0x82 = new JTNE_0x82(); - jTNE_0x82.ControlTime = JTNEBinaryExtensions.ReadDateTime6Little(bytes, ref offset); - jTNE_0x82.ParamID = JTNEBinaryExtensions.ReadByteLittle(bytes, ref offset);//参数ID - - if (JTNE_0x82_Body.JTNE_0x82Method.TryGetValue(jTNE_0x82.ParamID, out Type type)) - { - int readSubBodySize = 0; - jTNE_0x82.Parameter = JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(JTNEFormatterExtensions.GetFormatter(type), bytes.Slice(offset), out readSubBodySize); - offset = offset + readSubBodySize; - } - readSize = offset; - return jTNE_0x82; - } - - public int Serialize(ref byte[] bytes, int offset, JTNE_0x82 value) - { - offset += JTNEBinaryExtensions.WriteDateTime6Little(bytes, offset, value.ControlTime); - offset += JTNEBinaryExtensions.WriteByteLittle(bytes, offset, value.ParamID); - if (JTNE_0x82_Body.JTNE_0x82Method.TryGetValue(value.ParamID, out Type type)) - { - offset =JTNEFormatterResolverExtensions.JTNEDynamicSerialize(JTNEFormatterExtensions.GetFormatter(type),ref bytes, offset, value.Parameter); - } - return offset; - } - } -} diff --git a/src/JTNE.Protocol/Internal/JTNEMsgIdFactory.cs b/src/JTNE.Protocol/Internal/JTNEMsgId_DeviceFactory.cs similarity index 74% rename from src/JTNE.Protocol/Internal/JTNEMsgIdFactory.cs rename to src/JTNE.Protocol/Internal/JTNEMsgId_DeviceFactory.cs index 24892a2..94b1534 100644 --- a/src/JTNE.Protocol/Internal/JTNEMsgIdFactory.cs +++ b/src/JTNE.Protocol/Internal/JTNEMsgId_DeviceFactory.cs @@ -7,11 +7,11 @@ using System.Text; namespace JTNE.Protocol.Internal { - internal static class JTNEMsgIdFactory + internal static class JTNEMsgId_DeviceFactory { private static readonly Dictionary map; - static JTNEMsgIdFactory() + static JTNEMsgId_DeviceFactory() { map = new Dictionary(); InitMap(); @@ -21,11 +21,11 @@ namespace JTNE.Protocol.Internal private static void InitMap() { - foreach(var item in Enum.GetNames(typeof(JTNEMsgId))) + foreach(var item in Enum.GetNames(typeof(JTNEMsgId_Device))) { - JTNEMsgId msgId = item.ToEnum(); - JTNEBodiesTypeAttribute jT808BodiesTypeAttribute = msgId.GetAttribute(); - map.Add((byte)msgId, jT808BodiesTypeAttribute?.JT808BodiesType); + JTNEMsgId_Device msgId_Device = item.ToEnum(); + JTNEBodiesTypeAttribute jT808BodiesTypeAttribute = msgId_Device.GetAttribute(); + map.Add((byte)msgId_Device, jT808BodiesTypeAttribute?.JT808BodiesType); } } diff --git a/src/JTNE.Protocol/Internal/JTNEMsgId_PlatformFactory.cs b/src/JTNE.Protocol/Internal/JTNEMsgId_PlatformFactory.cs new file mode 100644 index 0000000..9e540c1 --- /dev/null +++ b/src/JTNE.Protocol/Internal/JTNEMsgId_PlatformFactory.cs @@ -0,0 +1,48 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Enums; +using JTNE.Protocol.Extensions; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.Internal +{ + internal static class JTNEMsgId_PlatformFactory + { + private static readonly Dictionary map; + + static JTNEMsgId_PlatformFactory() + { + map = new Dictionary(); + InitMap(); + } + + internal static Type GetBodiesImplTypeByMsgId(byte msgId) =>map.TryGetValue(msgId, out Type type) ? type : null; + + private static void InitMap() + { + foreach(var item in Enum.GetNames(typeof(JTNEMsgId_Platform))) + { + JTNEMsgId_Platform msgId_Platform = item.ToEnum(); + JTNEBodiesTypeAttribute jT808BodiesTypeAttribute = msgId_Platform.GetAttribute(); + map.Add((byte)msgId_Platform, jT808BodiesTypeAttribute?.JT808BodiesType); + } + } + + internal static void SetMap(byte msgId) + where TJTNEBodies : JTNEBodies + { + if(!map.ContainsKey(msgId)) + map.Add(msgId, typeof(TJTNEBodies)); + } + + internal static void ReplaceMap(byte msgId) + where TJTNEBodies : JTNEBodies + { + if (!map.ContainsKey(msgId)) + map.Add(msgId, typeof(TJTNEBodies)); + else + map[msgId] = typeof(TJTNEBodies); + } + } +} diff --git a/src/JTNE.Protocol/JTNEGlobalConfigs.cs b/src/JTNE.Protocol/JTNEGlobalConfigs.cs index 48a5e3e..effc838 100644 --- a/src/JTNE.Protocol/JTNEGlobalConfigs.cs +++ b/src/JTNE.Protocol/JTNEGlobalConfigs.cs @@ -71,7 +71,7 @@ namespace JTNE.Protocol public JTNEGlobalConfigs Register_CustomMsgId(byte customMsgId) where TJTNEBodies : JTNEBodies { - JTNEMsgIdFactory.SetMap(customMsgId); + JTNEMsgId_DeviceFactory.SetMap(customMsgId); return instance.Value; } /// @@ -83,20 +83,34 @@ namespace JTNE.Protocol public JTNEGlobalConfigs Overwrite_MsgId(byte overwriteMsgId) where TJTNEBodies : JTNEBodies { - JTNEMsgIdFactory.ReplaceMap(overwriteMsgId); + JTNEMsgId_DeviceFactory.ReplaceMap(overwriteMsgId); return instance.Value; } /// /// /// /// 自定义类型编码 - /// 继承JTNE.Protocol.MessageBody.JTNE_0x02_CustomBody + /// 继承JTNE.Protocol.MessageBody.JTNE_0x02_CustomBody_Device /// - public JTNEGlobalConfigs Register_JTNE0x02CustomBody(byte typeCode, Type type) + public JTNEGlobalConfigs Register_JTNE0x02CustomBody_Device(byte typeCode, Type type) { - if (!JTNE_0x02_CustomBody.CustomTypeCodes.ContainsKey(typeCode)) + if (!JTNE_0x02_CustomBody_Device.CustomTypeCodes.ContainsKey(typeCode)) { - JTNE_0x02_CustomBody.CustomTypeCodes.Add(typeCode, type); + JTNE_0x02_CustomBody_Device.CustomTypeCodes.Add(typeCode, type); + } + return instance.Value; + } + /// + /// + /// + /// 自定义类型编码 + /// 继承JTNE.Protocol.MessageBody.JTNE_0x02_CustomBody_Platform + /// + public JTNEGlobalConfigs Register_JTNE0x02CustomBody_Platform(byte typeCode, Type type) + { + if (!JTNE_0x02_CustomBody_Platform.CustomTypeCodes.ContainsKey(typeCode)) + { + JTNE_0x02_CustomBody_Platform.CustomTypeCodes.Add(typeCode, type); } return instance.Value; } @@ -108,9 +122,9 @@ namespace JTNE.Protocol /// public JTNEGlobalConfigs Register_JTNE0x81CustomBody(byte typeCode, Type type) { - if (!JTNE_0x81_Body.JTNE_0x81Method.ContainsKey(typeCode)) + if (!JTNE_0x81_Body_Device.JTNE_0x81Method.ContainsKey(typeCode)) { - JTNE_0x81_Body.JTNE_0x81Method.Add(typeCode, type); + JTNE_0x81_Body_Device.JTNE_0x81Method.Add(typeCode, type); } return instance.Value; } @@ -122,9 +136,9 @@ namespace JTNE.Protocol /// public JTNEGlobalConfigs Register_JTNE0x81CustomDepenedBody(byte DependerParamId, byte DependedParamId) { - if (!JTNE_0x81_Body.JTNE_0x81LengthOfADependOnValueOfB.ContainsKey(DependerParamId)) + if (!JTNE_0x81_Body_Device.JTNE_0x81LengthOfADependOnValueOfB.ContainsKey(DependerParamId)) { - JTNE_0x81_Body.JTNE_0x81LengthOfADependOnValueOfB.Add(DependerParamId, DependedParamId); + JTNE_0x81_Body_Device.JTNE_0x81LengthOfADependOnValueOfB.Add(DependerParamId, DependedParamId); } return instance.Value; } @@ -136,9 +150,9 @@ namespace JTNE.Protocol /// public JTNEGlobalConfigs Register_JTNE0x82CustomBody(byte typeCode, Type type) { - if (!JTNE_0x82_Body.JTNE_0x82Method.ContainsKey(typeCode)) + if (!JTNE_0x82_Body_Device.JTNE_0x82Method.ContainsKey(typeCode)) { - JTNE_0x82_Body.JTNE_0x82Method.Add(typeCode, type); + JTNE_0x82_Body_Device.JTNE_0x82Method.Add(typeCode, type); } return instance.Value; } diff --git a/src/JTNE.Protocol/JTNEHeaderPackage.cs b/src/JTNE.Protocol/JTNEHeaderPackage_Device.cs similarity index 88% rename from src/JTNE.Protocol/JTNEHeaderPackage.cs rename to src/JTNE.Protocol/JTNEHeaderPackage_Device.cs index 01f7691..1fd5e45 100644 --- a/src/JTNE.Protocol/JTNEHeaderPackage.cs +++ b/src/JTNE.Protocol/JTNEHeaderPackage_Device.cs @@ -10,17 +10,17 @@ namespace JTNE.Protocol /// 只做简单的头部解析不做复杂的业务逻辑 /// 例如:不同的厂商可能加密方式不同,所以消息数据体不做加解密的判断。 /// - [JTNEFormatter(typeof(JTNEHeaderPackageFormatter))] - public class JTNEHeaderPackage + [JTNEFormatter(typeof(JTNEHeaderPackage_DeviceFormatter))] + public class JTNEHeaderPackage_Device { /// /// 起始符1 /// - public byte BeginFlag1 { get; set; } = JTNEPackage.BeginFlag; + public byte BeginFlag1 { get; set; } = JTNEPackage_Device.BeginFlag; /// /// 起始符2 /// - public byte BeginFlag2 { get; set; } = JTNEPackage.BeginFlag; + public byte BeginFlag2 { get; set; } = JTNEPackage_Device.BeginFlag; /// /// 命令标识 /// diff --git a/src/JTNE.Protocol/JTNEHeaderPackage_Platform.cs b/src/JTNE.Protocol/JTNEHeaderPackage_Platform.cs new file mode 100644 index 0000000..49b27ec --- /dev/null +++ b/src/JTNE.Protocol/JTNEHeaderPackage_Platform.cs @@ -0,0 +1,58 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters; +using System; +using System.IO; + +namespace JTNE.Protocol +{ + /// + /// 新能源包 + /// 只做简单的头部解析不做复杂的业务逻辑 + /// 例如:不同的厂商可能加密方式不同,所以消息数据体不做加解密的判断。 + /// + [JTNEFormatter(typeof(JTNEHeaderPackage_PlatformFormatter))] + public class JTNEHeaderPackage_Platform + { + /// + /// 起始符1 + /// + public byte BeginFlag1 { get; set; } = JTNEPackage_Device.BeginFlag; + /// + /// 起始符2 + /// + public byte BeginFlag2 { get; set; } = JTNEPackage_Device.BeginFlag; + /// + /// 命令标识 + /// + /// + public byte MsgId { get; set; } + /// + /// 应答标志 + /// + /// + public byte AskId { get; set; } + /// + /// 车辆识别码 + /// + public string VIN { get; set; } + /// + /// 数据加密方式 (默认不加密) + /// 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效 + /// + /// + public byte EncryptMethod { get; set; } = 0x01; + /// + /// 数据单元长度是数据单元的总字节数,有效值范围:0-65531 + /// + public ushort DataUnitLength { get; set; } + /// + /// 数据体 + /// + public byte[] Bodies { get; set; } + /// + /// 采用BCC(异或检验)法,校验范围从命令单元的第一个字节开始,同后一个字节异或,直到校验码前一个字节为止, + /// 校验码占用一个字节,当数据单元存在加密时,应先加密后检验,先校验后解密 + /// + public byte BCCCode { get; set; } + } +} diff --git a/src/JTNE.Protocol/JTNEPackage.cs b/src/JTNE.Protocol/JTNEPackage_Device.cs similarity index 92% rename from src/JTNE.Protocol/JTNEPackage.cs rename to src/JTNE.Protocol/JTNEPackage_Device.cs index d65607f..4459573 100644 --- a/src/JTNE.Protocol/JTNEPackage.cs +++ b/src/JTNE.Protocol/JTNEPackage_Device.cs @@ -8,8 +8,8 @@ namespace JTNE.Protocol /// /// 新能源包 /// - [JTNEFormatter(typeof(JTNEPackageFormatter))] - public class JTNEPackage + [JTNEFormatter(typeof(JTNEPackage_DeviceFormatter))] + public class JTNEPackage_Device { public const int FixedHeaderLength = 24; public const byte BeginFlag = 0x23; @@ -23,7 +23,7 @@ namespace JTNE.Protocol public byte BeginFlag2 { get; set; } = BeginFlag; /// /// 命令标识 - /// + /// /// public byte MsgId { get; set; } /// diff --git a/src/JTNE.Protocol/JTNEPackage_Platform.cs b/src/JTNE.Protocol/JTNEPackage_Platform.cs new file mode 100644 index 0000000..6f75790 --- /dev/null +++ b/src/JTNE.Protocol/JTNEPackage_Platform.cs @@ -0,0 +1,58 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters; +using System; +using System.IO; + +namespace JTNE.Protocol +{ + /// + /// 新能源包 + /// + [JTNEFormatter(typeof(JTNEPackage_PlatformFormatter))] + public class JTNEPackage_Platform + { + public const int FixedHeaderLength = 24; + public const byte BeginFlag = 0x23; + /// + /// 起始符1 + /// + public byte BeginFlag1 { get; set; } = BeginFlag; + /// + /// 起始符2 + /// + public byte BeginFlag2 { get; set; } = BeginFlag; + /// + /// 命令标识 + /// + /// + public byte MsgId { get; set; } + /// + /// 应答标志 + /// + /// + public byte AskId { get; set; } + /// + /// 车辆识别码 + /// + public string VIN { get; set; } + /// + /// 数据加密方式 (默认不加密) + /// 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效 + /// + /// + public byte EncryptMethod { get; set; } = 0x01; + /// + /// 数据单元长度是数据单元的总字节数,有效值范围:0-65531 + /// + public ushort DataUnitLength { get; set; } + /// + /// 数据体 + /// + public JTNEBodies Bodies { get; set; } + /// + /// 采用BCC(异或检验)法,校验范围从命令单元的第一个字节开始,同后一个字节异或,直到校验码前一个字节为止, + /// 校验码占用一个字节,当数据单元存在加密时,应先加密后检验,先校验后解密 + /// + public byte BCCCode { get; set; } + } +} diff --git a/src/JTNE.Protocol/JTNESerializer.cs b/src/JTNE.Protocol/JTNESerializer_Device.cs similarity index 77% rename from src/JTNE.Protocol/JTNESerializer.cs rename to src/JTNE.Protocol/JTNESerializer_Device.cs index 38c65c5..bbce308 100644 --- a/src/JTNE.Protocol/JTNESerializer.cs +++ b/src/JTNE.Protocol/JTNESerializer_Device.cs @@ -9,16 +9,16 @@ namespace JTNE.Protocol /// /// /// - public static class JTNESerializer + public static class JTNESerializer_Device { - public static byte[] Serialize(JTNEPackage jTNEPackage, int minBufferSize = 256) + public static byte[] Serialize(JTNEPackage_Device jTNEPackage_Device, int minBufferSize = 256) { - return Serialize(jTNEPackage, minBufferSize); + return Serialize(jTNEPackage_Device, minBufferSize); } - public static JTNEPackage Deserialize(ReadOnlySpan bytes) + public static JTNEPackage_Device Deserialize(ReadOnlySpan bytes) { - return Deserialize(bytes); + return Deserialize(bytes); } public static byte[] Serialize(T obj, int minBufferSize = 256) diff --git a/src/JTNE.Protocol/JTNESerializer_Platform.cs b/src/JTNE.Protocol/JTNESerializer_Platform.cs new file mode 100644 index 0000000..72a6417 --- /dev/null +++ b/src/JTNE.Protocol/JTNESerializer_Platform.cs @@ -0,0 +1,52 @@ +using JTNE.Protocol.Extensions; +using System; +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("JTNE.Protocol.Test")] + +namespace JTNE.Protocol +{ + /// + /// + /// + public static class JTNESerializer_Platform + { + public static byte[] Serialize(JTNEPackage_Platform jTNEPackage_Platform, int minBufferSize = 256) + { + return Serialize(jTNEPackage_Platform, minBufferSize); + } + + public static JTNEPackage_Platform Deserialize(ReadOnlySpan bytes) + { + return Deserialize(bytes); + } + + public static byte[] Serialize(T obj, int minBufferSize = 256) + { + var formatter = JTNEFormatterExtensions.GetFormatter(); + byte[] buffer = JTNEArrayPool.Rent(minBufferSize); + try + { + var len = formatter.Serialize(ref buffer, 0, obj); + return buffer.AsSpan(0, len).ToArray(); + } + finally + { + JTNEArrayPool.Return(buffer); + } + } + + public static T Deserialize(ReadOnlySpan bytes) + { + var formatter = JTNEFormatterExtensions.GetFormatter(); + int readSize; + return formatter.Deserialize(bytes,out readSize); + } + + public static dynamic Deserialize(ReadOnlySpan bytes,Type type) + { + var formatter = JTNEFormatterExtensions.GetFormatter(type); + return JTNEFormatterResolverExtensions.JTNEDynamicDeserialize(formatter,bytes,out int readSize); + } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x01.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x01_Device.cs similarity index 92% rename from src/JTNE.Protocol/MessageBody/JTNE_0x01.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x01_Device.cs index 8fbe501..98c781a 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x01.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x01_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 车辆登入 /// - [JTNEFormatter(typeof(JTNE_0x01_Formatter))] - public class JTNE_0x01: JTNEBodies + [JTNEFormatter(typeof(JTNE_0x01_Device_Formatter))] + public class JTNE_0x01_Device: JTNEBodies { /// /// 数据采集时间 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x01_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x01_Platform.cs new file mode 100644 index 0000000..ab2f46a --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x01_Platform.cs @@ -0,0 +1,45 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 车辆登入 + /// + [JTNEFormatter(typeof(JTNE_0x01_Platform_Formatter))] + public class JTNE_0x01_Platform : JTNEBodies + { + /// + /// 数据采集时间 + /// 采用北京时间 + /// + public DateTime PDATime { get; set; } + /// + /// 登入流水号 + /// 作用:看数据是否是连续请求 + /// + public ushort LoginNum { get; set; } + /// + /// SIM卡ICCID号(ICCID应为终端从SIM卡获取的值,不应认为填写或修改) + /// + public string SIM { get; set; } + /// + /// 电池总成数 + /// 可充电储能子系统数 + /// + public byte BatteryCount { get; set; } + /// + /// 电池编码长度 + /// 可充电储能系统编码长度 + /// + public byte BatteryLength { get; set; } + /// + /// 电池编码 + /// 可充电储能系统编码 + /// + public List BatteryNos { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Device.cs similarity index 92% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Device.cs index fefe495..34bcaa9 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Device.cs @@ -9,10 +9,10 @@ namespace JTNE.Protocol.MessageBody /// /// 整车数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x01_Formatter))] - public class JTNE_0x02_0x01 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x01_Device_Formatter))] + public class JTNE_0x02_0x01_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x01; + public override byte TypeCode { get; set; } = JTNE_0x02_0x01_Device; /// /// 车辆状态 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Platform.cs new file mode 100644 index 0000000..8e39786 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x01_Platform.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 整车数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x01_Platform_Formatter))] + public class JTNE_0x02_0x01_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x01_Platform; + + /// + /// 车辆状态 + /// + public byte CarStatus { get; set; } + /// + /// 充放电状态 + /// + public byte ChargeStatus { get; set; } + /// + /// 运行模式 + /// + public byte OperationMode { get; set; } + /// + /// 车速 + /// + public ushort Speed { get; set; } + /// + /// 累计里程 + /// + public uint TotalDis { get; set; } + /// + /// 总电压 + /// + public ushort TotalVoltage { get; set; } + /// + /// 总电流 + /// + public ushort TotalTemp { get; set; } + /// + /// SOC + /// + public byte SOC { get; set; } + /// + /// DC-DC 状态 + /// + public byte DCStatus { get; set; } + /// + /// 档位 + /// + public byte Stall { get; set; } + /// + /// 绝缘电阻 + /// + public ushort Resistance { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Device.cs similarity index 81% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Device.cs index 7ce1d93..12238b5 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 驱动电机数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x02_Formatter))] - public class JTNE_0x02_0x02 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x02_Device_Formatter))] + public class JTNE_0x02_0x02_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x02; + public override byte TypeCode { get; set; } = JTNE_0x02_0x02_Device; /// /// 电机个数 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Platform.cs new file mode 100644 index 0000000..4ac1a61 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x02_Platform.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using JTNE.Protocol.Metadata; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 驱动电机数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x02_Platform_Formatter))] + public class JTNE_0x02_0x02_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x02_Platform; + + /// + /// 电机个数 + /// + public byte ElectricalCount { get; set; } + + /// + /// 电机信息集合 + /// + public List Electricals { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Device.cs similarity index 96% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Device.cs index eee493e..58b5f54 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 燃料电池数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x03_Formatter))] - public class JTNE_0x02_0x03 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x03_Device_Formatter))] + public class JTNE_0x02_0x03_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x03; + public override byte TypeCode { get; set; } = JTNE_0x02_0x03_Device; /// /// 燃料电池电压 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Platform.cs new file mode 100644 index 0000000..dcd903f --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x03_Platform.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using JTNE.Protocol.Metadata; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 燃料电池数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x03_Platform_Formatter))] + public class JTNE_0x02_0x03_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x03_Platform; + + /// + /// 燃料电池电压 + /// 有效值范围:0 - 20000(表示 0V-2000V) + /// 最小计量单元:0.1V + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort FuelBatteryVoltage { get; set; } + /// + /// 燃料电池电流 + /// 有效值范围:0 - 20000(表示 0A- +2000A) + /// 最小计量单元:0.1 A + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort FuelBatteryCurrent { get; set; } + /// + /// 燃料消耗率 + /// 有效值范围:0-60000(表示 0kg/100km - 600kg/100km) + /// 最小计量单元:0.01kg/100km + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort FuelConsumptionRate { get; set; } + /// + /// 燃料电池温度探针总数 + /// N个燃料电池温度探针 + /// 有效值范围:0-65531 + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort TemperatureProbeCount { get; set; } + /// + /// 探针温度值 + /// 有效值范围:0-240(数值偏移量40 ℃,表示-40 ℃ - +200 ℃) + /// 最小计量单元:1 ℃ + /// + public byte[] Temperatures { get; set; } + /// + /// 氢系统中最高温度 + /// 有效值范围:0-2400(偏移量40 ℃,表示-40 ℃ - 200 ℃) + /// 最小计量单元:0.1 ℃ + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort HydrogenSystemMaxTemp { get; set; } + /// + /// 氢系统中最高温度探针代号 + /// 有效值范围:1-252 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte HydrogenSystemMaxTempNo { get; set; } + /// + /// 氢气最高浓度 + /// 有效值范围:0-60000(表示0 mg/kg - 50000 mg/kg) + /// 最小计量单元:1 mg/kg + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort HydrogenSystemMaxConcentrations { get; set; } + /// + /// 氢气最高浓度传感器代号 + /// 有效值范围:1-252 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte HydrogenSystemMaxConcentrationsNo { get; set; } + /// + /// 氢气最高压力 + /// 有效值范围:0-1000(表示0MPa - 100MPa),最小计量单位:0.1MPa + /// + public ushort HydrogenSystemMaxPressure { get; set; } + /// + /// 氢气最高压力传感器代号 + /// 有效值访问:1-252 + /// 异常:0xFE + /// 无效:0xFF + /// + public byte HydrogenSystemMaxPressureNo { get; set; } + /// + /// 高压DC/DC状态 + /// 0x01:工作 + /// 0x02:断开 + /// 0xFE:表示异常 + /// 0xFF:表示无效 + /// + public byte DCStatus { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Device.cs similarity index 89% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Device.cs index d889bd5..8263306 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 发动机数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x04_Formatter))] - public class JTNE_0x02_0x04 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x04_Device_Formatter))] + public class JTNE_0x02_0x04_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x04; + public override byte TypeCode { get; set; } = JTNE_0x02_0x04_Device; /// /// 发动机状态 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Platform.cs new file mode 100644 index 0000000..549dec2 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x04_Platform.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using JTNE.Protocol.Metadata; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 发动机数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x04_Platform_Formatter))] + public class JTNE_0x02_0x04_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x04_Platform; + + /// + /// 发动机状态 + /// 0x01:启动状态 + /// 0x02:关闭状态 + /// 0xFE:异常 + /// 0xFF:无效 + /// + public byte EngineStatus { get; set; } + /// + /// 曲轴转速 + /// 有效范围:0-60000(表示0 r/min-60000 r/min) + /// 最小计量单元:1 r/min + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort Revs { get; set; } + /// + /// 燃料消耗率 + /// 有效值范围:0-60000(表示0L/100km - 600L/100km) + /// 最小计量单元:0.01L/km + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort FuelRate { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Device.cs similarity index 89% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Device.cs index 031b7f3..19e2e83 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 车辆位置数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x05_Formatter))] - public class JTNE_0x02_0x05 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x05_Device_Formatter))] + public class JTNE_0x02_0x05_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x05; + public override byte TypeCode { get; set; } = JTNE_0x02_0x05_Device; /// /// 定位状态 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Platform.cs new file mode 100644 index 0000000..be4eaf0 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x05_Platform.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using JTNE.Protocol.Metadata; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 车辆位置数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x05_Platform_Formatter))] + public class JTNE_0x02_0x05_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x05_Platform; + + /// + /// 定位状态 + /// 0位:0:有效定位;1:无效定位(当数据通信正常,而不能获取定位信息时,发送最后一次有效定位信息,并将定位状态置为无效。) + /// 1位:0:北纬;1:南纬 + /// 2位:0:东经;1:西经 + /// 3-7位:保留 + /// + public byte PositioStatus { get; set; } + /// + /// 经度 + /// 以度位单位的经度值乘以10^6,精确到百万分之一度 + /// + public uint Lng { get; set; } + /// + /// 纬度 + /// 以度位单位的纬度值乘以10^6,精确到百万分之一度 + /// + public uint Lat { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Device.cs similarity index 95% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Device.cs index d09fa58..f17a440 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 极值数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x06_Formatter))] - public class JTNE_0x02_0x06 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x06_Device_Formatter))] + public class JTNE_0x02_0x06_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x06; + public override byte TypeCode { get; set; } = JTNE_0x02_0x06_Device; /// /// 最高电压电池总成号 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Platform.cs new file mode 100644 index 0000000..85f4da3 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x06_Platform.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using JTNE.Protocol.Metadata; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 极值数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x06_Platform_Formatter))] + public class JTNE_0x02_0x06_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x06_Platform; + + /// + /// 最高电压电池总成号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MaxVoltageBatteryAssemblyNo { get; set; } + /// + /// 最高电压电池单体代号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MaxVoltageSingleBatteryNo { get; set; } + /// + /// 电池单体电压最高值 + /// 有效值范围:0-15000(表示0V - 15V) + /// 最小计量单元:0.001V + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort MaxVoltageSingleBatteryValue { get; set; } + /// + /// 最低电压电池子系统号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MinVoltageBatteryAssemblyNo { get; set; } + /// + /// 最低电压电池单体代号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MinVoltageSingleBatteryNo { get; set; } + /// + /// 最低单体电压最低值 + /// 有效值范围:0-15000(表示0V - 15V) + /// 最小计量单元:0.001V + /// 异常:0xFF,0XFE + /// 无效:0xFF,0xFF + /// + public ushort MinVoltageSingleBatteryValue { get; set; } + /// + /// 蓄电池中最高温度子系统号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MaxTempProbeBatteryNo { get; set; } + /// + /// 蓄电池中最高温度探针序号 + /// 有效值范围:1-250 + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MaxTempBatteryAssemblyNo { get; set; } + /// + /// 最高温度值 + /// 有效值范围:0-250(数值偏移量40℃,表示-40℃ - +210℃) + /// 最小计量单元:1℃ + /// 异常:0XFE + /// 无效:0xFF + /// + public byte MaxTempProbeBatteryValue { get; set; } + /// + /// 最低温度子系统号 + /// + public byte MinTempProbeBatteryNo { get; set; } + /// + /// 蓄电池中最低温度探针序号 + /// + public byte MinTempBatteryAssemblyNo { get; set; } + /// + /// 最低温度值 + /// + public byte MinTempProbeBatteryValue { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Device.cs similarity index 92% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Device.cs index f03bae9..46fa1c1 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Device.cs @@ -9,10 +9,10 @@ namespace JTNE.Protocol.MessageBody /// /// 报警数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x07_Formatter))] - public class JTNE_0x02_0x07 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x07_Device_Formatter))] + public class JTNE_0x02_0x07_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x07; + public override byte TypeCode { get; set; } = JTNE_0x02_0x07_Device; /// /// 最高报警等级 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Platform.cs new file mode 100644 index 0000000..3cb7046 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x07_Platform.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 报警数据 + /// + [JTNEFormatter(typeof(JTNE_0x02_0x07_Platform_Formatter))] + public class JTNE_0x02_0x07_Platform : JTNE_0x02_Body_Platform + { + public override byte TypeCode { get; set; } = JTNE_0x02_0x07_Platform; + + /// + /// 最高报警等级 + /// + public byte AlarmLevel { get; set; } + /// + /// 通用报警标志 + /// + public uint AlarmBatteryFlag { get; set; } + /// + /// 可充电储能装置故障总数 + /// + public byte AlarmBatteryOtherCount { get; set; } + /// + /// 可充电储能装置故障代码列表 + /// + public List AlarmBatteryOthers { get; set; } + /// + /// 驱动电机故障总数 + /// + public byte AlarmElCount { get; set; } + /// + /// 驱动电机故障代码列表 + /// + public List AlarmEls { get; set; } + /// + /// 发动机故障总数 + /// + public byte AlarmEngineCount { get; set; } + /// + /// 发动机故障列表 + /// + public List AlarmEngines { get; set; } + /// + /// 其他故障总数 + /// + public byte AlarmOtherCount { get; set; } + /// + /// 其他故障代码列表 + /// + public List AlarmOthers { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08_Device.cs index 96d0cfa..bcb9b28 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x08_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 可充电储能装置电压数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x08_Formatter))] - public class JTNE_0x02_0x08 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x08_Device_Formatter))] + public class JTNE_0x02_0x08_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x08; + public override byte TypeCode { get; set; } = JTNE_0x02_0x08_Device; /// /// 可充电储能子系统个数 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09_Device.cs index 30392d5..d203ee3 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_0x09_Device.cs @@ -10,10 +10,10 @@ namespace JTNE.Protocol.MessageBody /// /// 可充电储能装置温度数据 /// - [JTNEFormatter(typeof(JTNE_0x02_0x09_Formatter))] - public class JTNE_0x02_0x09 : JTNE_0x02_Body + [JTNEFormatter(typeof(JTNE_0x02_0x09_Device_Formatter))] + public class JTNE_0x02_0x09_Device : JTNE_0x02_Body_Device { - public override byte TypeCode { get; set; } = JTNE_0x02_0x09; + public override byte TypeCode { get; set; } = JTNE_0x02_0x09_Device; /// /// 可充电储能子系统个数 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body.cs deleted file mode 100644 index 690ee24..0000000 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace JTNE.Protocol.MessageBody -{ - public abstract class JTNE_0x02_Body - { - /// - /// 类型编码 - /// - public abstract byte TypeCode { get; set; } - - /// - /// 整车数据 - /// - public const byte JTNE_0x02_0x01 = 0x01; - /// - /// 驱动电机数据 - /// - public const byte JTNE_0x02_0x02 = 0x02; - /// - /// 燃料电池数据 - /// - public const byte JTNE_0x02_0x03 = 0x03; - /// - /// 发动机数据 - /// - public const byte JTNE_0x02_0x04 = 0x04; - /// - /// 车辆位置数据 - /// - public const byte JTNE_0x02_0x05 = 0x05; - /// - /// 极值数据 - /// - public const byte JTNE_0x02_0x06 = 0x06; - /// - /// 报警数据 - /// - public const byte JTNE_0x02_0x07 = 0x07; - /// - /// 可充电储能装置电压数据 - /// - public const byte JTNE_0x02_0x08 = 0x08; - /// - /// 可充电储能装置温度数据 - /// - public const byte JTNE_0x02_0x09 = 0x09; - - static JTNE_0x02_Body() - { - TypeCodes = new Dictionary(); - TypeCodes.Add(JTNE_0x02_0x01, typeof(JTNE_0x02_0x01)); - TypeCodes.Add(JTNE_0x02_0x02, typeof(JTNE_0x02_0x02)); - TypeCodes.Add(JTNE_0x02_0x03, typeof(JTNE_0x02_0x03)); - TypeCodes.Add(JTNE_0x02_0x04, typeof(JTNE_0x02_0x04)); - TypeCodes.Add(JTNE_0x02_0x05, typeof(JTNE_0x02_0x05)); - TypeCodes.Add(JTNE_0x02_0x06, typeof(JTNE_0x02_0x06)); - TypeCodes.Add(JTNE_0x02_0x07, typeof(JTNE_0x02_0x07)); - TypeCodes.Add(JTNE_0x02_0x08, typeof(JTNE_0x02_0x08)); - TypeCodes.Add(JTNE_0x02_0x09, typeof(JTNE_0x02_0x09)); - } - - internal static Dictionary TypeCodes; - - - } -} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Device.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Device.cs new file mode 100644 index 0000000..abe0123 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Device.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + public abstract class JTNE_0x02_Body_Device + { + /// + /// 类型编码 + /// + public abstract byte TypeCode { get; set; } + + /// + /// 整车数据 + /// + public const byte JTNE_0x02_0x01_Device = 0x01; + /// + /// 驱动电机数据 + /// + public const byte JTNE_0x02_0x02_Device = 0x02; + /// + /// 燃料电池数据 + /// + public const byte JTNE_0x02_0x03_Device = 0x03; + /// + /// 发动机数据 + /// + public const byte JTNE_0x02_0x04_Device = 0x04; + /// + /// 车辆位置数据 + /// + public const byte JTNE_0x02_0x05_Device = 0x05; + /// + /// 极值数据 + /// + public const byte JTNE_0x02_0x06_Device = 0x06; + /// + /// 报警数据 + /// + public const byte JTNE_0x02_0x07_Device = 0x07; + /// + /// 可充电储能装置电压数据 + /// + public const byte JTNE_0x02_0x08_Device = 0x08; + /// + /// 可充电储能装置温度数据 + /// + public const byte JTNE_0x02_0x09_Device = 0x09; + + static JTNE_0x02_Body_Device() + { + TypeCodes = new Dictionary(); + TypeCodes.Add(JTNE_0x02_0x01_Device, typeof(JTNE_0x02_0x01_Device)); + TypeCodes.Add(JTNE_0x02_0x02_Device, typeof(JTNE_0x02_0x02_Device)); + TypeCodes.Add(JTNE_0x02_0x03_Device, typeof(JTNE_0x02_0x03_Device)); + TypeCodes.Add(JTNE_0x02_0x04_Device, typeof(JTNE_0x02_0x04_Device)); + TypeCodes.Add(JTNE_0x02_0x05_Device, typeof(JTNE_0x02_0x05_Device)); + TypeCodes.Add(JTNE_0x02_0x06_Device, typeof(JTNE_0x02_0x06_Device)); + TypeCodes.Add(JTNE_0x02_0x07_Device, typeof(JTNE_0x02_0x07_Device)); + TypeCodes.Add(JTNE_0x02_0x08_Device, typeof(JTNE_0x02_0x08_Device)); + TypeCodes.Add(JTNE_0x02_0x09_Device, typeof(JTNE_0x02_0x09_Device)); + } + + internal static Dictionary TypeCodes; + + + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Platform.cs new file mode 100644 index 0000000..47f5c92 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Body_Platform.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + public abstract class JTNE_0x02_Body_Platform + { + /// + /// 类型编码 + /// + public abstract byte TypeCode { get; set; } + + /// + /// 整车数据 + /// + public const byte JTNE_0x02_0x01_Platform = 0x01; + /// + /// 驱动电机数据 + /// + public const byte JTNE_0x02_0x02_Platform = 0x02; + /// + /// 燃料电池数据 + /// + public const byte JTNE_0x02_0x03_Platform = 0x03; + /// + /// 发动机数据 + /// + public const byte JTNE_0x02_0x04_Platform = 0x04; + /// + /// 车辆位置数据 + /// + public const byte JTNE_0x02_0x05_Platform = 0x05; + /// + /// 极值数据 + /// + public const byte JTNE_0x02_0x06_Platform = 0x06; + /// + /// 报警数据 + /// + public const byte JTNE_0x02_0x07_Platform = 0x07; + + static JTNE_0x02_Body_Platform() + { + TypeCodes = new Dictionary(); + TypeCodes.Add(JTNE_0x02_0x01_Platform, typeof(JTNE_0x02_0x01_Platform)); + TypeCodes.Add(JTNE_0x02_0x02_Platform, typeof(JTNE_0x02_0x02_Platform)); + TypeCodes.Add(JTNE_0x02_0x03_Platform, typeof(JTNE_0x02_0x03_Platform)); + TypeCodes.Add(JTNE_0x02_0x04_Platform, typeof(JTNE_0x02_0x04_Platform)); + TypeCodes.Add(JTNE_0x02_0x05_Platform, typeof(JTNE_0x02_0x05_Platform)); + TypeCodes.Add(JTNE_0x02_0x06_Platform, typeof(JTNE_0x02_0x06_Platform)); + TypeCodes.Add(JTNE_0x02_0x07_Platform, typeof(JTNE_0x02_0x07_Platform)); + } + + internal static Dictionary TypeCodes; + + + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Device.cs similarity index 81% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Device.cs index 6739cb1..75f0fe6 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Device.cs @@ -7,14 +7,14 @@ namespace JTNE.Protocol.MessageBody /// /// 自定义类型数据体 /// - public abstract class JTNE_0x02_CustomBody: JTNE_0x02_Body + public abstract class JTNE_0x02_CustomBody_Device: JTNE_0x02_Body_Device { /// /// 自定义数据长度 /// public abstract ushort Length { get; set; } - static JTNE_0x02_CustomBody() + static JTNE_0x02_CustomBody_Device() { CustomTypeCodes = new Dictionary(); } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Platform.cs new file mode 100644 index 0000000..590f19c --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_CustomBody_Platform.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 自定义类型数据体 + /// + public abstract class JTNE_0x02_CustomBody_Platform: JTNE_0x02_Body_Platform + { + /// + /// 自定义数据长度 + /// + public abstract ushort Length { get; set; } + + static JTNE_0x02_CustomBody_Platform() + { + CustomTypeCodes = new Dictionary(); + } + /// + /// 自定义类型编码 + /// + internal static Dictionary CustomTypeCodes; + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Device.cs similarity index 66% rename from src/JTNE.Protocol/MessageBody/JTNE_0x02.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x02_Device.cs index 9c9dc56..13ec646 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x02.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Device.cs @@ -9,17 +9,17 @@ namespace JTNE.Protocol.MessageBody /// /// 实时信息上报 /// - [JTNEFormatter(typeof(JTNE_0x02_Formatter))] - public class JTNE_0x02 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x02_Device_Formatter))] + public class JTNE_0x02_Device : JTNEBodies { /// /// 公共值 /// - public Dictionary Values { get; set; } + public Dictionary Values { get; set; } /// /// 用于构造序列化自定义值 /// - public Dictionary CusotmSerializeObjectValues { get; set; } + public Dictionary CusotmSerializeObjectValues { get; set; } /// /// 自定义值 /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x02_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Platform.cs new file mode 100644 index 0000000..eb92673 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x02_Platform.cs @@ -0,0 +1,28 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 实时信息上报 + /// + [JTNEFormatter(typeof(JTNE_0x02_Platform_Formatter))] + public class JTNE_0x02_Platform : JTNEBodies + { + /// + /// 公共值 + /// + public Dictionary Values { get; set; } + /// + /// 用于构造序列化自定义值 + /// + public Dictionary CusotmSerializeObjectValues { get; set; } + /// + /// 自定义值 + /// + public Dictionary CusotmValues { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x03.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x03_Device.cs similarity index 63% rename from src/JTNE.Protocol/MessageBody/JTNE_0x03.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x03_Device.cs index a5ea0a9..d1ba0be 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x03.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x03_Device.cs @@ -9,9 +9,9 @@ namespace JTNE.Protocol.MessageBody /// /// 实时信息上报 /// - [JTNEFormatter(typeof(JTNE_0x03_Formatter))] - public class JTNE_0x03 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x03_Device_Formatter))] + public class JTNE_0x03_Device : JTNEBodies { - public JTNE_0x02 Supplement { get; set; } + public JTNE_0x02_Device Supplement { get; set; } } } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x03_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x03_Platform.cs new file mode 100644 index 0000000..2e4a9d3 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x03_Platform.cs @@ -0,0 +1,17 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 实时信息上报 + /// + [JTNEFormatter(typeof(JTNE_0x03_Platform_Formatter))] + public class JTNE_0x03_Platform : JTNEBodies + { + public JTNE_0x02_Platform Supplement { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x04.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x04_Device.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x04.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x04_Device.cs index 1439434..343f56c 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x04.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x04_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 车辆登出 /// - [JTNEFormatter(typeof(JTNE_0x04_Formatter))] - public class JTNE_0x04: JTNEBodies + [JTNEFormatter(typeof(JTNE_0x04_Device_Formatter))] + public class JTNE_0x04_Device: JTNEBodies { /// /// 登出时间 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x04_Platform.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x04_Platform.cs new file mode 100644 index 0000000..0675763 --- /dev/null +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x04_Platform.cs @@ -0,0 +1,24 @@ +using JTNE.Protocol.Attributes; +using JTNE.Protocol.Formatters.MessageBodyFormatters; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.Protocol.MessageBody +{ + /// + /// 车辆登出 + /// + [JTNEFormatter(typeof(JTNE_0x04_Platform_Formatter))] + public class JTNE_0x04_Platform : JTNEBodies + { + /// + /// 登出时间 + /// + public DateTime LogoutTime { get; set; } + /// + /// 登出流水号与当次登入流水号一致 + /// + public ushort LogoutNum { get; set; } + } +} diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x05.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x05_Platform.cs similarity index 92% rename from src/JTNE.Protocol/MessageBody/JTNE_0x05.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x05_Platform.cs index 9612f4b..ac20ff8 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x05.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x05_Platform.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 平台登入 /// - [JTNEFormatter(typeof(JTNE_0x05_Formatter))] - public class JTNE_0x05 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x05_Platform_Formatter))] + public class JTNE_0x05_Platform : JTNEBodies { /// /// 平台登入时间 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x06.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x06_Platform.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x06.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x06_Platform.cs index f8388e1..44e8c52 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x06.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x06_Platform.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 平台登出 /// - [JTNEFormatter(typeof(JTNE_0x06_Formatter))] - public class JTNE_0x06 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x06_Platform_Formatter))] + public class JTNE_0x06_Platform : JTNEBodies { /// /// 登出时间 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x07.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x07_Device.cs similarity index 85% rename from src/JTNE.Protocol/MessageBody/JTNE_0x07.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x07_Device.cs index c54a892..b1678cd 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x07.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x07_Device.cs @@ -9,7 +9,7 @@ namespace JTNE.Protocol.MessageBody /// /// 车载终端心跳 /// - public class JTNE_0x07 : JTNEBodies + public class JTNE_0x07_Device : JTNEBodies { } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x08.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x08_Device.cs similarity index 85% rename from src/JTNE.Protocol/MessageBody/JTNE_0x08.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x08_Device.cs index 4f60acb..a92fac3 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x08.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x08_Device.cs @@ -9,7 +9,7 @@ namespace JTNE.Protocol.MessageBody /// /// 终端校时 /// - public class JTNE_0x08 : JTNEBodies + public class JTNE_0x08_Device : JTNEBodies { } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x80Reply.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_Device.cs similarity index 64% rename from src/JTNE.Protocol/MessageBody/JTNE_0x80Reply.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_Device.cs index 28d6e2d..ed24767 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x80Reply.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x80Reply_Device.cs @@ -9,12 +9,12 @@ namespace JTNE.Protocol.MessageBody /// /// 参数查询响应 /// - [JTNEFormatter(typeof(JTNE_0x80Reply_Formatter))] - public class JTNE_0x80Reply : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x80Reply_Device_Formatter))] + public class JTNE_0x80Reply_Device : JTNEBodies { /// /// /// - public JTNE_0x81 JTNE_Reply0x80 { get; set; } + public JTNE_0x81_Device JTNE_Reply0x80_Device { get; set; } } } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x80.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x80_Device.cs similarity index 85% rename from src/JTNE.Protocol/MessageBody/JTNE_0x80.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x80_Device.cs index 6df04af..a95e9be 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x80.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x80_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 参数查询 /// - [JTNEFormatter(typeof(JTNE_0x80_Formatter))] - public class JTNE_0x80 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x80_Device_Formatter))] + public class JTNE_0x80_Device : JTNEBodies { /// /// 查询时间 diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01_Device.cs similarity index 86% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01_Device.cs index f686449..b73926f 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x01_Device.cs @@ -10,8 +10,8 @@ namespace JTNE.Protocol.MessageBody /// 车载终端本地存储时间周期,有效值范围:0~60 000(表示0ms~60 000ms)最小计量单元:1ms /// 0x81_0x01 /// - [JTNEFormatter(typeof(JTNE_0x81_0x01Formatter))] - public class JTNE_0x81_0x01: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x01_Device_Formatter))] + public class JTNE_0x81_0x01_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x01; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02_Device.cs similarity index 86% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02_Device.cs index 8b8ad6a..b06d88b 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x02_Device.cs @@ -10,8 +10,8 @@ namespace JTNE.Protocol.MessageBody /// 正常时,信息上报时间周期,有效值范围:1~600(表示1s~600s) 最小计量单元:1s /// 0x81_0x02 /// - [JTNEFormatter(typeof(JTNE_0x81_0x02Formatter))] - public class JTNE_0x81_0x02: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x02_Device_Formatter))] + public class JTNE_0x81_0x02_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x02; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03_Device.cs similarity index 85% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03_Device.cs index 4619c16..3643a0d 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x03_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 出现报警时,信息上报时间周期,有效值范围:0~60 000(表示0ms~60 000ms) /// - [JTNEFormatter(typeof(JTNE_0x81_0x03Formatter))] - public class JTNE_0x81_0x03: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x03_Device_Formatter))] + public class JTNE_0x81_0x03_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x03; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04_Device.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04_Device.cs index d5452fb..1cabed6 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x04_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 远程服务和管理平台域名长度M /// - [JTNEFormatter(typeof(JTNE_0x81_0x04Formatter))] - public class JTNE_0x81_0x04: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x04_Device_Formatter))] + public class JTNE_0x81_0x04_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x04; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05_Device.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05_Device.cs index 8fb603c..461638b 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x05_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 远程服务和管理平台域名 /// - [JTNEFormatter(typeof(JTNE_0x81_0x05Formatter))] - public class JTNE_0x81_0x05: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x05_Device_Formatter))] + public class JTNE_0x81_0x05_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x05; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06_Device.cs index 054d2c9..07b503e 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x06_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 远程服务和管理平台端口,有效值范围:0~65531 /// - [JTNEFormatter(typeof(JTNE_0x81_0x06Formatter))] - public class JTNE_0x81_0x06: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x06_Device_Formatter))] + public class JTNE_0x81_0x06_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x06; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07_Device.cs index 1f5abc9..477a23c 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x07_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 硬件版本,车载终端厂商自行定义 /// - [JTNEFormatter(typeof(JTNE_0x81_0x07Formatter))] - public class JTNE_0x81_0x07: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x07_Device_Formatter))] + public class JTNE_0x81_0x07_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x07; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08_Device.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08_Device.cs index 30e4146..e8bd51f 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x08_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 固件版本,车载终端厂商自行定义 /// - [JTNEFormatter(typeof(JTNE_0x81_0x08Formatter))] - public class JTNE_0x81_0x08: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x08_Device_Formatter))] + public class JTNE_0x81_0x08_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x08; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09_Device.cs similarity index 85% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09_Device.cs index c143b70..1fb8ca9 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x09_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 车载终端心跳发送周期,有效值范围:1~240(表示1s~240s) /// - [JTNEFormatter(typeof(JTNE_0x81_0x09Formatter))] - public class JTNE_0x81_0x09: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x09_Device_Formatter))] + public class JTNE_0x81_0x09_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x09; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A_Device.cs index 5be86e6..d2c157c 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0A_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 终端应答超时时间,有效值范围:1~600(表示1s~600s) /// - [JTNEFormatter(typeof(JTNE_0x81_0x0AFormatter))] - public class JTNE_0x81_0x0A: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0A_Device_Formatter))] + public class JTNE_0x81_0x0A_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0A; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B_Device.cs index 7057f0a..b5365ca 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0B_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 平台应答超时时间,有效值范围:1~600(表示1s~600s) /// - [JTNEFormatter(typeof(JTNE_0x81_0x0BFormatter))] - public class JTNE_0x81_0x0B: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0B_Device_Formatter))] + public class JTNE_0x81_0x0B_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0B; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C_Device.cs similarity index 86% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C_Device.cs index bb20d52..495cb4e 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0C_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 连续三次登入失败后,到下一次登入的时间间隔。有效值范围:1~240(表示1min~240min) /// - [JTNEFormatter(typeof(JTNE_0x81_0x0CFormatter))] - public class JTNE_0x81_0x0C: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0C_Device_Formatter))] + public class JTNE_0x81_0x0C_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0C; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D_Device.cs similarity index 82% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D_Device.cs index d93c38d..e49ba2c 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0D_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 公共平台域名长度N /// - [JTNEFormatter(typeof(JTNE_0x81_0x0DFormatter))] - public class JTNE_0x81_0x0D: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0D_Device_Formatter))] + public class JTNE_0x81_0x0D_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0D; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E_Device.cs similarity index 82% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E_Device.cs index b9da336..33fd2f4 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0E_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 公共平台域名 /// - [JTNEFormatter(typeof(JTNE_0x81_0x0EFormatter))] - public class JTNE_0x81_0x0E: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0E_Device_Formatter))] + public class JTNE_0x81_0x0E_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0E; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F_Device.cs similarity index 83% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F_Device.cs index 78fb111..0fa790c 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x0F_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 公共平台端口,有效值访问:0~65531 /// - [JTNEFormatter(typeof(JTNE_0x81_0x0FFormatter))] - public class JTNE_0x81_0x0F: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x0F_Device_Formatter))] + public class JTNE_0x81_0x0F_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x0F; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10_Device.cs similarity index 84% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10_Device.cs index ba043c3..5963ffc 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_0x10_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 是否处于抽样监测中 0x01 表示是 0x02 表示否 /// - [JTNEFormatter(typeof(JTNE_0x81_0x10Formatter))] - public class JTNE_0x81_0x10: JTNE_0x81_Body + [JTNEFormatter(typeof(JTNE_0x81_0x10_Device_Formatter))] + public class JTNE_0x81_0x10_Device: JTNE_0x81_Body_Device { public override byte ParamId { get; set; } = 0x10; /// diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81_Body.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_Body_Device.cs similarity index 93% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81_Body.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_Body_Device.cs index 92fbc18..da810ee 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81_Body.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_Body_Device.cs @@ -9,7 +9,7 @@ namespace JTNE.Protocol.MessageBody /// /// 参数设置 /// - public abstract class JTNE_0x81_Body + public abstract class JTNE_0x81_Body_Device { /// /// 车载终端本地存储时间周期,有效值范围:0~60 000(表示0ms~60 000ms) @@ -109,25 +109,25 @@ namespace JTNE.Protocol.MessageBody /// public abstract byte ParamLength { get; set; } - static JTNE_0x81_Body() + static JTNE_0x81_Body_Device() { JTNE_0x81Method = new Dictionary(); - JTNE_0x81Method.Add(JTNE_0x81_0x01_Type, typeof(JTNE_0x81_0x01)); - JTNE_0x81Method.Add(JTNE_0x81_0x02_Type, typeof(JTNE_0x81_0x02)); - JTNE_0x81Method.Add(JTNE_0x81_0x03_Type, typeof(JTNE_0x81_0x03)); - JTNE_0x81Method.Add(JTNE_0x81_0x04_Type, typeof(JTNE_0x81_0x04)); - JTNE_0x81Method.Add(JTNE_0x81_0x05_Type, typeof(JTNE_0x81_0x05)); - JTNE_0x81Method.Add(JTNE_0x81_0x06_Type, typeof(JTNE_0x81_0x06)); - JTNE_0x81Method.Add(JTNE_0x81_0x07_Type, typeof(JTNE_0x81_0x07)); - JTNE_0x81Method.Add(JTNE_0x81_0x08_Type, typeof(JTNE_0x81_0x08)); - JTNE_0x81Method.Add(JTNE_0x81_0x09_Type, typeof(JTNE_0x81_0x09)); - JTNE_0x81Method.Add(JTNE_0x81_0x0A_Type, typeof(JTNE_0x81_0x0A)); - JTNE_0x81Method.Add(JTNE_0x81_0x0B_Type, typeof(JTNE_0x81_0x0B)); - JTNE_0x81Method.Add(JTNE_0x81_0x0C_Type, typeof(JTNE_0x81_0x0C)); - JTNE_0x81Method.Add(JTNE_0x81_0x0D_Type, typeof(JTNE_0x81_0x0D)); - JTNE_0x81Method.Add(JTNE_0x81_0x0E_Type, typeof(JTNE_0x81_0x0E)); - JTNE_0x81Method.Add(JTNE_0x81_0x0F_Type, typeof(JTNE_0x81_0x0F)); - JTNE_0x81Method.Add(JTNE_0x81_0x10_Type, typeof(JTNE_0x81_0x10)); + JTNE_0x81Method.Add(JTNE_0x81_0x01_Type, typeof(JTNE_0x81_0x01_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x02_Type, typeof(JTNE_0x81_0x02_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x03_Type, typeof(JTNE_0x81_0x03_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x04_Type, typeof(JTNE_0x81_0x04_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x05_Type, typeof(JTNE_0x81_0x05_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x06_Type, typeof(JTNE_0x81_0x06_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x07_Type, typeof(JTNE_0x81_0x07_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x08_Type, typeof(JTNE_0x81_0x08_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x09_Type, typeof(JTNE_0x81_0x09_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0A_Type, typeof(JTNE_0x81_0x0A_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0B_Type, typeof(JTNE_0x81_0x0B_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0C_Type, typeof(JTNE_0x81_0x0C_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0D_Type, typeof(JTNE_0x81_0x0D_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0E_Type, typeof(JTNE_0x81_0x0E_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x0F_Type, typeof(JTNE_0x81_0x0F_Device)); + JTNE_0x81Method.Add(JTNE_0x81_0x10_Type, typeof(JTNE_0x81_0x10_Device)); JTNE_0x81LengthOfADependOnValueOfB = new Dictionary(); JTNE_0x81LengthOfADependOnValueOfB.Add(JTNE_0x81_0x05_Type, JTNE_0x81_0x04_Type); diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x81.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x81_Device.cs similarity index 79% rename from src/JTNE.Protocol/MessageBody/JTNE_0x81.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x81_Device.cs index a7bfdb0..7ec8f33 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x81.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x81_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 参数设置 /// - [JTNEFormatter(typeof(JTNE_0x81_Formatter))] - public class JTNE_0x81 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x81_Device_Formatter))] + public class JTNE_0x81_Device : JTNEBodies { /// /// 操作时间(若为设置操作时,则为设置时间,若为参数查询响应时,则为参数查询响应时间) @@ -23,6 +23,6 @@ namespace JTNE.Protocol.MessageBody /// /// 参数列表 /// - public List ParamList { get; set; } + public List ParamList { get; set; } } } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01_Device.cs similarity index 87% rename from src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01_Device.cs index 51d20ff..9dd78dd 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x01_Device.cs @@ -14,8 +14,8 @@ namespace JTNE.Protocol.MessageBody /// 如某个参数无值,则为空 /// 远程升级操作建议但不限于采用FTP方式进行操作,数据定义见表B.16 /// - [JTNEFormatter(typeof(JTNE_0x82_0x01Formatter))] - public class JTNE_0x82_0x01 : JTNE_0x82_Body + [JTNEFormatter(typeof(JTNE_0x82_0x01_Device_Formatter))] + public class JTNE_0x82_0x01_Device : JTNE_0x82_Body_Device { public override byte ParamId { get; set; } = 0x01; public override byte ParamLength { get; set; } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06_Device.cs similarity index 79% rename from src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06_Device.cs index 82fc66f..7ff7391 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x82_0x06_Device.cs @@ -10,8 +10,8 @@ namespace JTNE.Protocol.MessageBody /// /// 车载终端报警 /// - [JTNEFormatter(typeof(JTNE_0x82_0x06Formatter))] - public class JTNE_0x82_0x06 : JTNE_0x82_Body + [JTNEFormatter(typeof(JTNE_0x82_0x06_Device_Formatter))] + public class JTNE_0x82_0x06_Device : JTNE_0x82_Body_Device { public override byte ParamId { get; set; } = 0x06; public override byte ParamLength { get; set; } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x82_Body.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x82_Body_Device.cs similarity index 95% rename from src/JTNE.Protocol/MessageBody/JTNE_0x82_Body.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x82_Body_Device.cs index 92914fc..2f58dfa 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x82_Body.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x82_Body_Device.cs @@ -9,7 +9,7 @@ namespace JTNE.Protocol.MessageBody /// /// 终端控制 /// - public class JTNE_0x82_Body + public class JTNE_0x82_Body_Device { /// /// 未用 @@ -61,11 +61,11 @@ namespace JTNE.Protocol.MessageBody /// public virtual byte ParamLength { get; set; } - static JTNE_0x82_Body() + static JTNE_0x82_Body_Device() { JTNE_0x82Method = new Dictionary(); - JTNE_0x82Method.Add(JTNE_0x82_0x01_Type, typeof(JTNE_0x82_0x01)); - JTNE_0x82Method.Add(JTNE_0x82_0x06_Type, typeof(JTNE_0x82_0x06)); + JTNE_0x82Method.Add(JTNE_0x82_0x01_Type, typeof(JTNE_0x82_0x01_Device)); + JTNE_0x82Method.Add(JTNE_0x82_0x06_Type, typeof(JTNE_0x82_0x06_Device)); } } } diff --git a/src/JTNE.Protocol/MessageBody/JTNE_0x82.cs b/src/JTNE.Protocol/MessageBody/JTNE_0x82_Device.cs similarity index 77% rename from src/JTNE.Protocol/MessageBody/JTNE_0x82.cs rename to src/JTNE.Protocol/MessageBody/JTNE_0x82_Device.cs index a186e48..4711205 100644 --- a/src/JTNE.Protocol/MessageBody/JTNE_0x82.cs +++ b/src/JTNE.Protocol/MessageBody/JTNE_0x82_Device.cs @@ -9,8 +9,8 @@ namespace JTNE.Protocol.MessageBody /// /// 终端控制 /// - [JTNEFormatter(typeof(JTNE_0x82_Formatter))] - public class JTNE_0x82 : JTNEBodies + [JTNEFormatter(typeof(JTNE_0x82_Device_Formatter))] + public class JTNE_0x82_Device : JTNEBodies { /// /// 控制时间 @@ -23,6 +23,6 @@ namespace JTNE.Protocol.MessageBody /// /// 参数 /// - public JTNE_0x82_Body Parameter { get; set; } + public JTNE_0x82_Body_Device Parameter { get; set; } } }