emsApplication/applications/EmsShow/modbuscontroller.h

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