From a023089b9d8880f4790660aeb19f9f7d7481b37e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com>
Date: Thu, 11 May 2023 11:02:15 +0800
Subject: [PATCH] 'commit'
---
pom.xml | 2 +-
src/main/java/UnitTest/HexDataSender.java | 18 +++---
src/main/java/UnitTest/HexStringSender.java | 70 +++++++++++++++++++++
3 files changed, 80 insertions(+), 10 deletions(-)
create mode 100644 src/main/java/UnitTest/HexStringSender.java
diff --git a/pom.xml b/pom.xml
index cbd8781..05ed064 100644
--- a/pom.xml
+++ b/pom.xml
@@ -289,7 +289,7 @@
io.netty
netty-all
- 4.1.32.Final
+ 4.1.92.Final
diff --git a/src/main/java/UnitTest/HexDataSender.java b/src/main/java/UnitTest/HexDataSender.java
index f717434..5d60801 100644
--- a/src/main/java/UnitTest/HexDataSender.java
+++ b/src/main/java/UnitTest/HexDataSender.java
@@ -29,15 +29,15 @@ public class HexDataSender {
b.handler(new ChannelInitializer() {
@Override
public void initChannel(SocketChannel ch) {
- ChannelPipeline p = ch.pipeline();
- p.addLast(new HexDataEncoder());
- p.addLast(new HexDataSenderHandler(hexData));
+ //ChannelPipeline p = ch.pipeline();
+ //p.addLast(new HexDataEncoder());
+ //p.addLast(new HexDataSenderHandler(hexData));
}
});
// Start the client.
ChannelFuture f = b.connect(host, port).sync();
-
+ f.channel().writeAndFlush(Unpooled.copiedBuffer(hexData.getBytes())).sync();
// Wait until the connection is closed.
f.channel().closeFuture().sync();
} finally {
@@ -48,9 +48,9 @@ public class HexDataSender {
public static String IP = "10.10.21.18";
public static int PORT = 8001;
- public static void Open(String sb_id) throws Exception {
+ public static void Open() throws Exception {
//开
- String hexData = "16 00 34 F5 41 11 FE 82 0D 02 ? 00 00 00 00 00 00 01 00 00 01".replace("?", sb_id).replace(" ", "");
+ String hexData = "16 00 34 F5 41 11 FE 82 0D 02 6D FF 00 00 00 00 00 00 01 00 00 01".replace(" ","");
HexDataSender sender = new HexDataSender(IP, PORT);
sender.sendHexData(hexData);
}
@@ -63,9 +63,9 @@ public class HexDataSender {
}
public static void main(String[] args) throws Exception {
- Close("6D FF");
- //Thread.sleep(3000);
- //Open("6D FF");
+ //Close("6D FF");
+
+ Open();
}
}
diff --git a/src/main/java/UnitTest/HexStringSender.java b/src/main/java/UnitTest/HexStringSender.java
new file mode 100644
index 0000000..f6292ad
--- /dev/null
+++ b/src/main/java/UnitTest/HexStringSender.java
@@ -0,0 +1,70 @@
+package UnitTest;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+
+public class HexStringSender {
+ public static String IP = "10.10.21.18";
+ public static int PORT = 8001;
+
+ //# 开
+ public static String open_hex_str = "16 00 34 F5 41 11 FE 82 0D 02 6D FF 00 00 00 00 00 00 01 00 00 01";
+
+
+ //关
+ public static String close_hex_str = "16 00 34 F5 41 11 FE 82 0D 02 6D FF 00 00 00 00 00 00 01 00 00 00";
+
+ public static void main(String[] args) throws IOException, InterruptedException {
+
+ for (int i = 1; ; i++) {
+ Socket socket = new Socket(IP, PORT);
+ String hex_str;
+ if (i % 2 == 0) hex_str = close_hex_str;
+ else hex_str = open_hex_str;
+ byte[] bytes = hexStringToByteArray(hex_str);
+ OutputStream os = socket.getOutputStream();
+ os.write(bytes);
+ socket.close();
+
+ Thread.sleep(2000);
+ }
+
+ }
+
+ /**
+ * 16进制表示的字符串转换为字节数组
+ *
+ * @param hexString 16进制表示的字符串
+ * @return byte[] 字节数组
+ */
+ public static byte[] hexStringToByteArray(String hexString) {
+ hexString = hexString.replaceAll(" ", "");
+ int len = hexString.length();
+ byte[] bytes = new byte[len / 2];
+ for (int i = 0; i < len; i += 2) {
+ // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节
+ bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character
+ .digit(hexString.charAt(i + 1), 16));
+ }
+ return bytes;
+ }
+
+ /**
+ * 将字节数组转换成十六进制的字符串
+ *
+ * @return
+ */
+ public static String BinaryToHexString(byte[] bytes) {
+ String hexStr = "0123456789ABCDEF";
+ String result = "";
+ String hex = "";
+ for (byte b : bytes) {
+ hex = String.valueOf(hexStr.charAt((b & 0xF0) >> 4));
+ hex += String.valueOf(hexStr.charAt(b & 0x0F));
+ result += hex + " ";
+ }
+ return result;
+ }
+}