67 lines
1.3 KiB
C++
67 lines
1.3 KiB
C++
#ifndef MODBUSCONTROLLER_H
|
|
#define MODBUSCONTROLLER_H
|
|
|
|
#include <QObject>
|
|
#include <QSerialPort>
|
|
#include <QSerialPortInfo>
|
|
#include <QtSerialBus>
|
|
#include <QModbusDataUnit>
|
|
#include <QModbusClient>
|
|
//#include <QModbusRtuSerialMaster>
|
|
#include <QtSerialBus/qmodbusrtuserialclient.h>
|
|
#include <QModbusReply>
|
|
#include <QStringList>
|
|
#include <QSettings>
|
|
#include <QDebug>
|
|
#include <QTextStream>
|
|
#include <QString>
|
|
#include <QVector>
|
|
|
|
typedef struct _tagSlave
|
|
{
|
|
int id;
|
|
int function_code;
|
|
int start_address;
|
|
int quantity;
|
|
int interval;
|
|
} SlaveData;
|
|
|
|
class ModbusController :public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
ModbusController();
|
|
~ModbusController();
|
|
|
|
public:
|
|
void getConfiguration(QString iniFilePath);
|
|
bool Open();
|
|
bool Read();
|
|
|
|
|
|
protected:
|
|
bool modbus_rtu();
|
|
bool modbus_tcp();
|
|
protected:
|
|
QString m_version;
|
|
int m_modbus_type;
|
|
QString m_modbus_ip;
|
|
int m_modbus_port;
|
|
QString m_modbus_com;
|
|
int m_modbus_baund;
|
|
int m_modbus_data;
|
|
int m_modbus_parity;
|
|
int m_modbus_stop;
|
|
|
|
QVector<SlaveData*> m_slaves;
|
|
|
|
protected:
|
|
QModbusRtuSerialClient* m_pModbusMaster; //创建modbus对象
|
|
QSettings* m_pSettings;
|
|
|
|
public slots:
|
|
void readRegisters(); //读寄存器函数
|
|
};
|
|
|
|
#endif // MODBUSCONTROLLER_H
|