diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java index 60199bb..7c64d4c 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java @@ -24,9 +24,9 @@ * 指挥机登录指令 * *AT^IOTDATA=24,"^$CC0Z06,11,LOGIN,d, D$^" */ - public static byte[] createServerLoginCmd(String serverName) { - int dataLength = 2 + serverName.length() + 16; - String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + ",11,LOGIN,d, D$^\""; + public static byte[] createServerLoginCmd(String serverName, String pwd) { + int dataLength = 2 + serverName.length() + 1 + pwd.length() + 13; + String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + "," + pwd + ",LOGIN,d, D$^\""; return cmd.getBytes(StandardCharsets.UTF_8); } @@ -77,7 +77,7 @@ byte[] bytes = data.getBytes(StandardCharsets.UTF_8); byte[] encrypt = TEA.encrypt(bytes); String dataHex = ByteUtils.bytesToHexString(encrypt); - int dataLength = 2 + serverAccount.length() + 9 + clientAccount.length() + 2 + dataHex.length() + 2; + int dataLength = 2 + serverAccount.length() + 1 + pwd.length() + 6 + clientAccount.length() + 2 + dataHex.length() + 2; String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverAccount + "," diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java index 60199bb..7c64d4c 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java @@ -24,9 +24,9 @@ * 指挥机登录指令 * *AT^IOTDATA=24,"^$CC0Z06,11,LOGIN,d, D$^" */ - public static byte[] createServerLoginCmd(String serverName) { - int dataLength = 2 + serverName.length() + 16; - String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + ",11,LOGIN,d, D$^\""; + public static byte[] createServerLoginCmd(String serverName, String pwd) { + int dataLength = 2 + serverName.length() + 1 + pwd.length() + 13; + String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + "," + pwd + ",LOGIN,d, D$^\""; return cmd.getBytes(StandardCharsets.UTF_8); } @@ -77,7 +77,7 @@ byte[] bytes = data.getBytes(StandardCharsets.UTF_8); byte[] encrypt = TEA.encrypt(bytes); String dataHex = ByteUtils.bytesToHexString(encrypt); - int dataLength = 2 + serverAccount.length() + 9 + clientAccount.length() + 2 + dataHex.length() + 2; + int dataLength = 2 + serverAccount.length() + 1 + pwd.length() + 6 + clientAccount.length() + 2 + dataHex.length() + 2; String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverAccount + "," diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java index eb3a5b7..a15fb2c 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java @@ -8,6 +8,7 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.LinkedList; import java.util.List; /** @@ -15,48 +16,32 @@ */ @Slf4j public class SerialPortManager { - /** - * 客户端参数设置指令 - */ - public static final List CLIENT_CMD = Arrays.asList( - /*设置天通终端天线工作模式*/ - CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8), - /*设置天通关闭Debug模式*/ - CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8), - /*设置天通连续快速传输模式*/ - CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8), - /*设置短信发送目的地的号码数量*/ - CommandManager.createTargetNumberCmd(new String[]{"8617400542542"}), - /*设置短信中心号码SCA*/ - CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8), + public static void setupSerialPortConfig(NRSerialPort serialPort, boolean isClient, String[] targetNumbers, String serverName, String pwd) { + List cmd = new LinkedList<>(); + /*设置天通指挥机天线工作模式*/ + cmd.add(CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8)); + /*设置天通关闭Debug模式*/ + cmd.add(CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8)); + /*设置天通连续快速传输模式*/ + cmd.add(CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8)); + /*设置短信发送目的地的号码数量*/ + cmd.add(CommandManager.createTargetNumberCmd(targetNumbers)); + /*设置短信中心号码SCA*/ + cmd.add(CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8)); + if (isClient) { /*设置终端号码*/ - CommandManager.CMD_CLIENT_NUMBER.getBytes(StandardCharsets.UTF_8) - ); - - /** - * 指挥机参数设置指令 - */ - public static final List SERVER_CMD = Arrays.asList( - /*设置天通指挥机天线工作模式*/ - CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8), - /*设置天通关闭Debug模式*/ - CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8), - /*设置天通连续快速传输模式*/ - CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8), - /*设置短信发送目的地的号码数量*/ - CommandManager.createTargetNumberCmd(new String[]{"8618765997865"}), - /*设置短信中心号码SCA*/ - CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8), + cmd.add(CommandManager.CMD_CLIENT_NUMBER.getBytes(StandardCharsets.UTF_8)); + } else { /*设置指挥机号码*/ - CommandManager.CMD_SERVER_NUMBER.getBytes(StandardCharsets.UTF_8), + cmd.add(CommandManager.CMD_SERVER_NUMBER.getBytes(StandardCharsets.UTF_8)); /*登录*/ - CommandManager.createServerLoginCmd("CC0Z06") - ); + cmd.add(CommandManager.createServerLoginCmd(serverName, pwd)); + } - public static void setupSerialPortConfig(NRSerialPort serialPort, List cmd) { + //将参数配置发送给设备 int index = 0; while (index < cmd.size()) { - SerialPortManager.sendToPort(serialPort, cmd.get(index)); + sendToPort(serialPort, cmd.get(index)); try { index++; Thread.sleep(1000); diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java index 60199bb..7c64d4c 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/CommandManager.java @@ -24,9 +24,9 @@ * 指挥机登录指令 * *AT^IOTDATA=24,"^$CC0Z06,11,LOGIN,d, D$^" */ - public static byte[] createServerLoginCmd(String serverName) { - int dataLength = 2 + serverName.length() + 16; - String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + ",11,LOGIN,d, D$^\""; + public static byte[] createServerLoginCmd(String serverName, String pwd) { + int dataLength = 2 + serverName.length() + 1 + pwd.length() + 13; + String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverName + "," + pwd + ",LOGIN,d, D$^\""; return cmd.getBytes(StandardCharsets.UTF_8); } @@ -77,7 +77,7 @@ byte[] bytes = data.getBytes(StandardCharsets.UTF_8); byte[] encrypt = TEA.encrypt(bytes); String dataHex = ByteUtils.bytesToHexString(encrypt); - int dataLength = 2 + serverAccount.length() + 9 + clientAccount.length() + 2 + dataHex.length() + 2; + int dataLength = 2 + serverAccount.length() + 1 + pwd.length() + 6 + clientAccount.length() + 2 + dataHex.length() + 2; String cmd = "*AT^IOTDATA=" + dataLength + ",\"^$" + serverAccount + "," diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java index eb3a5b7..a15fb2c 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/SerialPortManager.java @@ -8,6 +8,7 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.LinkedList; import java.util.List; /** @@ -15,48 +16,32 @@ */ @Slf4j public class SerialPortManager { - /** - * 客户端参数设置指令 - */ - public static final List CLIENT_CMD = Arrays.asList( - /*设置天通终端天线工作模式*/ - CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8), - /*设置天通关闭Debug模式*/ - CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8), - /*设置天通连续快速传输模式*/ - CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8), - /*设置短信发送目的地的号码数量*/ - CommandManager.createTargetNumberCmd(new String[]{"8617400542542"}), - /*设置短信中心号码SCA*/ - CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8), + public static void setupSerialPortConfig(NRSerialPort serialPort, boolean isClient, String[] targetNumbers, String serverName, String pwd) { + List cmd = new LinkedList<>(); + /*设置天通指挥机天线工作模式*/ + cmd.add(CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8)); + /*设置天通关闭Debug模式*/ + cmd.add(CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8)); + /*设置天通连续快速传输模式*/ + cmd.add(CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8)); + /*设置短信发送目的地的号码数量*/ + cmd.add(CommandManager.createTargetNumberCmd(targetNumbers)); + /*设置短信中心号码SCA*/ + cmd.add(CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8)); + if (isClient) { /*设置终端号码*/ - CommandManager.CMD_CLIENT_NUMBER.getBytes(StandardCharsets.UTF_8) - ); - - /** - * 指挥机参数设置指令 - */ - public static final List SERVER_CMD = Arrays.asList( - /*设置天通指挥机天线工作模式*/ - CommandManager.CMD_WORK_MODE.getBytes(StandardCharsets.UTF_8), - /*设置天通关闭Debug模式*/ - CommandManager.CMD_CLOSE_DEBUG.getBytes(StandardCharsets.UTF_8), - /*设置天通连续快速传输模式*/ - CommandManager.CMD_DTU_MODE.getBytes(StandardCharsets.UTF_8), - /*设置短信发送目的地的号码数量*/ - CommandManager.createTargetNumberCmd(new String[]{"8618765997865"}), - /*设置短信中心号码SCA*/ - CommandManager.CMD_CENTER_NUMBER.getBytes(StandardCharsets.UTF_8), + cmd.add(CommandManager.CMD_CLIENT_NUMBER.getBytes(StandardCharsets.UTF_8)); + } else { /*设置指挥机号码*/ - CommandManager.CMD_SERVER_NUMBER.getBytes(StandardCharsets.UTF_8), + cmd.add(CommandManager.CMD_SERVER_NUMBER.getBytes(StandardCharsets.UTF_8)); /*登录*/ - CommandManager.createServerLoginCmd("CC0Z06") - ); + cmd.add(CommandManager.createServerLoginCmd(serverName, pwd)); + } - public static void setupSerialPortConfig(NRSerialPort serialPort, List cmd) { + //将参数配置发送给设备 int index = 0; while (index < cmd.size()) { - SerialPortManager.sendToPort(serialPort, cmd.get(index)); + sendToPort(serialPort, cmd.get(index)); try { index++; Thread.sleep(1000); diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 89f8d51..72f4639 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -118,9 +118,17 @@ e.printStackTrace(); } if (isClient) { - SerialPortManager.setupSerialPortConfig(serialPort, SerialPortManager.CLIENT_CMD); + SerialPortManager.setupSerialPortConfig( + serialPort, true, + new String[]{"8617400542542"}, + "", "" + ); } else { - SerialPortManager.setupSerialPortConfig(serialPort, SerialPortManager.SERVER_CMD); + SerialPortManager.setupSerialPortConfig( + serialPort, false, + new String[]{"8618765997865"}, + serverAccount, serverPassword + ); } } else { sendToSocket("No Available TT Port");