From 071a8328823a2861f93ce556a4da3e4119cab1a3 Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期四, 19 九月 2024 16:24:28 +0800
Subject: [PATCH] 完成金茂定制功能
---
HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/Crc.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/Crc.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/Crc.java
index 54a87db..759293f 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/Crc.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/Crc.java
@@ -140,6 +140,38 @@
}
+ private static int[] Modbus_crc_tab = new int[]
+ {
+ 0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401,
+ 0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400,
+ };
+
+ public static void CRC16_MODBUS(byte[] buffer, int len) {
+ int crc;
+ byte dat;
+ int i;
+ crc = 0XFFFF;
+ for (i = 0; i < len - 2; i++) {
+ dat = buffer[i];
+ crc = Modbus_crc_tab[(dat ^ crc) & 15] ^ (crc >> 4);
+ crc = Modbus_crc_tab[((dat >> 4) ^ crc) & 15] ^ (crc >> 4);
+ }
+ buffer[i] = (byte) (crc & 0xff);
+ buffer[i + 1] = (byte) (crc >> 8);
+ }
+
+ public static boolean CRC16_MODBUS_MATCH(byte[] buffer, int len) {
+ int crc;
+ byte dat;
+ int i;
+ crc = 0XFFFF;
+ for (i = 0; i < len - 2; i++) {
+ dat = buffer[i];
+ crc = Modbus_crc_tab[(dat ^ crc) & 15] ^ (crc >> 4);
+ crc = Modbus_crc_tab[((dat >> 4) ^ crc) & 15] ^ (crc >> 4);
+ }
+ return (buffer[i] & 0xFF) == (crc & 0xff) && (buffer[i + 1] & 0xFF) == (crc >> 8);
+ }
//
// // 2.閫氫俊鍗忚
--
Gitblit v1.8.0