fix: modbustcp读功能与测试

This commit is contained in:
2026-03-03 14:26:23 +08:00
parent 800736caf8
commit 30a5f68905
2 changed files with 110 additions and 10 deletions

View File

@@ -2,9 +2,18 @@ package org.nl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.nl.iot.core.driver.bo.AttributeBO;
import org.nl.iot.core.driver.entity.RValue;
import org.nl.iot.core.driver.protocol.modbustcp.ModBusProtocolDriverImpl;
import org.nl.iot.modular.iot.entity.IotConfig;
import org.nl.iot.modular.iot.entity.IotConnect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author: lyd
@@ -13,8 +22,61 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class ApiTest {
@Autowired
private ModBusProtocolDriverImpl modBusProtocolDriver;
@Test
public void modbusTest() {
// 构建驱动配置(连接配置)
Map<String, AttributeBO> driverConfig = new HashMap<>();
driverConfig.put("host", AttributeBO.builder().value("192.168.81.251").build());
driverConfig.put("port", AttributeBO.builder().value("502").build());
// 构建点位配置
Map<String, AttributeBO> pointConfig = new HashMap<>();
pointConfig.put("slaveId", AttributeBO.builder().value("1").build());
pointConfig.put("offset", AttributeBO.builder().value("40001").build()); // 功能码3保持寄存器
pointConfig.put("data_type", AttributeBO.builder().value("int16").build());
// 构建连接对象
IotConnect connect = IotConnect.builder()
.id(1)
.code("MODBUS_TCP_001")
.host("192.168.81.251")
.port(502)
.protocol("modbus-tcp")
.enabled(true)
.description("测试Modbus TCP连接")
.build();
// 构建配置对象
IotConfig config = IotConfig.builder()
.id(1)
.connectId(1)
.alias("temperature")
.aliasName("温度传感器")
.registerAddress("40001")
.dataType("int16")
.readonly(true)
.enabled(true)
.description("测试温度读取")
.build();
try {
// 调用read方法进行测试
RValue result = modBusProtocolDriver.read(driverConfig, pointConfig, connect, config);
// 输出测试结果
System.out.println("=== Modbus读取测试结果 ===");
System.out.println("连接信息: " + result.getConnect());
System.out.println("配置信息: " + result.getConfig());
System.out.println("读取值: " + result.getValue());
System.out.println("测试完成!");
} catch (Exception e) {
System.err.println("测试失败: " + e.getMessage());
e.printStackTrace();
}
}
}