fix: modbustcp读功能与测试
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user