# Modbus TCP 客户端模块

基于libmodbus库的Modbus TCP客户端实现，提供完整的Modbus功能支持。

## 功能特性

- 基于libmodbus的稳定实现
- 支持所有标准Modbus功能码
- 线程安全的连接管理
- 数据类型转换工具（32位整数、浮点数）
- 完整的错误处理和状态报告
- 跨平台支持（Windows/Linux）

## 支持的Modbus功能

- 读取线圈（0x01）
- 读取离散输入（0x02）
- 读取保持寄存器（0x03）
- 读取输入寄存器（0x04）
- 写单个线圈（0x05）
- 写单个保持寄存器（0x06）
- 写多个线圈（0x0F）
- 写多个保持寄存器（0x10）

## API接口

### 基本操作
```cpp
ModbusTCPClient client("192.168.1.100", 502);
if (client.connect()) {
    // 连接成功
}
```

### 读操作
```cpp
std::vector<bool> coils;
client.readCoils(0, 10, coils);

std::vector<uint16_t> registers;
client.readHoldingRegisters(0, 10, registers);
```

### 写操作
```cpp
client.writeSingleCoil(0, true);
client.writeSingleRegister(0, 1234);

std::vector<bool> coils = {true, false, true};
client.writeMultipleCoils(0, coils);

std::vector<uint16_t> registers = {1234, 5678};
client.writeMultipleRegisters(0, registers);
```

## 编译说明

### 依赖
- Qt 5.x 或更高版本
- C++17 编译器
- libmodbus源码（已包含在VrNets模块中）

### 构建
```bash
qmake ModbusTCPClient.pro
make
```

### 使用
该模块编译为静态库，在其他项目中包含：
```pro
LIBS += -L../Module/ModbusTCPClient -lModbusTCPClient
INCLUDEPATH += ../Module/ModbusTCPClient/Inc
```

## 错误处理

所有API调用返回bool值指示操作是否成功，可通过getLastError()获取详细错误信息：

```cpp
if (!client.readCoils(0, 10, coils)) {
    qDebug() << "Error:" << client.getLastError();
}
``` 