From a836f03a5d1fbfa81e147d09ffdfa87ba3975c13 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 18 三月 2025 16:45:02 +0800
Subject: [PATCH] 1

---
 server/jtt808_parent/jtt808-server/src/test/java/org/yzh/client/ClientTest.java |  228 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 228 insertions(+), 0 deletions(-)

diff --git a/server/jtt808_parent/jtt808-server/src/test/java/org/yzh/client/ClientTest.java b/server/jtt808_parent/jtt808-server/src/test/java/org/yzh/client/ClientTest.java
new file mode 100644
index 0000000..7323ab8
--- /dev/null
+++ b/server/jtt808_parent/jtt808-server/src/test/java/org/yzh/client/ClientTest.java
@@ -0,0 +1,228 @@
+package org.yzh.client;
+
+import io.github.yezhihao.netmc.session.Session;
+import io.swagger.models.auth.In;
+import org.yzh.client.netty.ClientConfig;
+import org.yzh.client.netty.HandlerMapping;
+import org.yzh.client.netty.TCPClient;
+import org.yzh.commons.util.DateUtils;
+import org.yzh.commons.util.StrUtils;
+import org.yzh.protocol.basics.JTMessage;
+import org.yzh.protocol.codec.JTMessageAdapter;
+import org.yzh.protocol.commons.JT808;
+import org.yzh.protocol.commons.transform.attribute.AlarmADAS;
+import org.yzh.protocol.commons.transform.attribute.AlarmBSD;
+import org.yzh.protocol.commons.transform.attribute.AlarmDSM;
+import org.yzh.protocol.commons.transform.attribute.AlarmTPMS;
+import org.yzh.protocol.t808.*;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ThreadLocalRandom;
+
+public class ClientTest {
+
+    public static final JTMessageAdapter messageAdapter = new JTMessageAdapter("org.yzh.protocol");
+
+    // tcp://server.demo.natool.cn:19392
+//    dmtest.ahapp.net:7611
+    public static final ClientConfig jtConfig = new ClientConfig.Builder()
+//            .setIp("server.demo.natool.cn")
+//            .setPort(31146)
+            .setIp("dmtest.ahapp.net")
+            .setPort(7611)
+            .setMaxFrameLength(2 + 21 + 1023 * 2 + 1 + 2)
+            .setDelimiters(new byte[]{0x7e})
+            .setDecoder(messageAdapter)
+            .setEncoder(messageAdapter)
+            .setHandlerMapping(new HandlerMapping("org.yzh.client"))
+            .build();
+
+    public static void main(String[] args) {
+        TCPClient tcpClient = new TCPClient("0", jtConfig).start();
+        tcpClient.writeObject(T0100("2"));
+       /* for (int i = 0; i < 1000; i++) {
+            try {
+                Thread.sleep(3000L);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            boolean alarm = i % 10 == 0;
+            tcpClient.writeObject(T0200(""+i, alarm));
+        }*/
+    }
+
+    public static T0100 T0100(String id) {
+        String deviceId = "T" + StrUtils.leftPad(id, 6, '0');
+        String clientId = "1" + StrUtils.leftPad(id, 10, '0');
+        String plateNo = "鐨朅" + StrUtils.leftPad(id, 5, '0');
+
+        T0100 message = new T0100();
+        message.setMessageId(JT808.缁堢娉ㄥ唽);
+        message.setProtocolVersion(1);
+        message.setVersion(true);
+        message.setClientId(clientId);
+
+        message.setProvinceId(31);
+        message.setCityId(115);
+        message.setMakerId("yzh");
+        message.setDeviceModel("www.baidu.cn");
+        message.setDeviceId(deviceId);
+        message.setPlateColor(1);
+        message.setPlateNo(plateNo);
+        return message;
+    }
+
+    private static ThreadLocalRandom random = ThreadLocalRandom.current();
+
+    public static T0200 T0200(String id, int no) {
+        return T0200(id, false,no);
+    }
+    public static T0201_0500 T0201_0500(String id, int no) {
+        return T0201_0500(id, no);
+    }
+
+    public static T0201_0500 T0201_0500(JTMessage msg) {
+//        String clientId = "1" + StrUtils.leftPad(id, 10, '0');
+        T0201_0500 message = new T0201_0500();
+//        message.setMessageId(JT808.浣嶇疆淇℃伅姹囨姤);
+        message.setMessageId(JT808.浣嶇疆淇℃伅鏌ヨ搴旂瓟);
+        message.setProtocolVersion(1);
+        message.setResponseSerialNo(msg.getSerialNo());
+        message.setVersion(true);
+        message.setClientId(msg.getClientId());
+        message.setWarnBit(1024);
+        message.setStatusBit(2048);
+        message.setLatitude(39915931);
+        message.setLongitude(116403829);
+        message.setAltitude(312);
+        message.setSpeed(111);
+        message.setDirection(99);
+        LocalDateTime dateTime = LocalDateTime.now();
+        message.setDeviceTime(dateTime);
+        return message;
+    }
+    public static T0107 T0107_0500(JTMessage msg) {
+//        String clientId = "1" + StrUtils.leftPad(id, 10, '0');
+        T0107 message = new T0107();
+        message.setMessageId(JT808.鏌ヨ缁堢灞炴�у簲绛�);
+        message.setProtocolVersion(1);
+        message.setResponseSerialNo(msg.getSerialNo());
+        message.setVersion(true);
+        message.setClientId(msg.getClientId());
+        message.setDeviceType(1);
+        message.setDeviceId("123123");
+        message.setDeviceModel("12324235235325");
+        message.setIccid("23");
+        message.setReserved(true);
+        message.setDeviceId ("T00002");
+        LocalDateTime dateTime = LocalDateTime.now();
+        return message;
+    }
+
+    public static T0200 T0200(String clientId, boolean alarm, int no) {
+//        String clientId = "1" + StrUtils.leftPad(id, 10, '0');
+
+        T0200 message = new T0200();
+//        message.setMessageId(JT808.浣嶇疆淇℃伅姹囨姤);
+        message.setMessageId(JT808.浣嶇疆淇℃伅鏌ヨ搴旂瓟);
+        message.setProtocolVersion(1);
+        message.setSerialNo(no);
+        message.setVersion(true);
+        message.setClientId(clientId);
+        message.setWarnBit(1024);
+        message.setStatusBit(2048);
+        message.setLatitude(39915931);
+        message.setLongitude(116403829);
+        message.setAltitude(312);
+        message.setSpeed(111);
+        message.setDirection(99);
+        LocalDateTime dateTime = LocalDateTime.now();
+        message.setDeviceTime(dateTime);
+
+        if (alarm) {
+            AlarmADAS alarmADAS = new AlarmADAS();
+            alarmADAS.setId(64);
+            alarmADAS.setState(1);
+            alarmADAS.setType(random.nextInt(1, 11));
+            alarmADAS.setLevel(1);
+            alarmADAS.setFrontSpeed(10);
+            alarmADAS.setFrontDistance(10);
+            alarmADAS.setDeviateType(1);
+            alarmADAS.setRoadSign(1);
+            alarmADAS.setRoadSignValue(10);
+            alarmADAS.setSpeed(10);
+            alarmADAS.setAltitude(100);
+            alarmADAS.setLatitude(32111111);
+            alarmADAS.setLongitude(123111111);
+            alarmADAS.setAlarmTime(dateTime);
+            alarmADAS.setStatusBit(1);
+            alarmADAS.setDeviceId(clientId);
+            alarmADAS.setDateTime(dateTime);
+            alarmADAS.setSequenceNo(1);
+            alarmADAS.setFileTotal(1);
+            alarmADAS.setReserved(1);
+
+            AlarmDSM alarmDSM = new AlarmDSM();
+            alarmDSM.setId(65);
+            alarmDSM.setState(2);
+            alarmDSM.setType(random.nextInt(1, 17));
+            alarmDSM.setLevel(2);
+            alarmDSM.setFatigueDegree(20);
+            alarmDSM.setReserved(20);
+            alarmDSM.setSpeed(20);
+            alarmDSM.setAltitude(200);
+            alarmDSM.setLatitude(32222222);
+            alarmDSM.setLongitude(123222222);
+            alarmDSM.setAlarmTime(dateTime);
+            alarmDSM.setStatusBit(2);
+            alarmDSM.setDeviceId(clientId);
+            alarmDSM.setDateTime(dateTime);
+            alarmDSM.setSequenceNo(2);
+            alarmDSM.setFileTotal(2);
+            alarmDSM.setReserved(2);
+
+            AlarmTPMS alarmTPMS = new AlarmTPMS();
+            alarmTPMS.setId(66);
+            alarmTPMS.setState(3);
+            alarmTPMS.setSpeed(30);
+            alarmTPMS.setAltitude(300);
+            alarmTPMS.setLatitude(32333333);
+            alarmTPMS.setLongitude(123333333);
+            alarmTPMS.setAlarmTime(dateTime);
+            alarmTPMS.setStatusBit(3);
+            alarmTPMS.setDeviceId(clientId);
+            alarmTPMS.setDateTime(dateTime);
+            alarmTPMS.setSequenceNo(3);
+            alarmTPMS.setFileTotal(3);
+            alarmTPMS.setReserved(3);
+
+            AlarmBSD alarmBSD = new AlarmBSD();
+            alarmBSD.setId(67);
+            alarmBSD.setState(4);
+            alarmBSD.setType(random.nextInt(1, 3));
+            alarmBSD.setSpeed(40);
+            alarmBSD.setAltitude(400);
+            alarmBSD.setLatitude(32444444);
+            alarmBSD.setLongitude(123444444);
+            alarmBSD.setAlarmTime(dateTime);
+            alarmBSD.setStatusBit(4);
+            alarmBSD.setDeviceId(clientId);
+            alarmBSD.setDateTime(dateTime);
+            alarmBSD.setSequenceNo(4);
+            alarmBSD.setFileTotal(4);
+            alarmBSD.setReserved(4);
+
+            Map<Integer, Object> attributes = new TreeMap<>();
+            attributes.put(Integer.valueOf(AlarmADAS.key), alarmADAS);
+            attributes.put(Integer.valueOf(AlarmDSM.key), alarmDSM);
+            attributes.put(Integer.valueOf(AlarmTPMS.key), alarmTPMS);
+            attributes.put(Integer.valueOf(AlarmBSD.key), alarmBSD);
+
+            message.setAttributes(attributes);
+        }
+        return message;
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.9.3