You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

59 lines
2.0 KiB

#ifndef MODBUSWRAPPER_H
#define MODBUSWRAPPER_H
#include <QObject>
#include <QThread>
#include <QBitArray>
#include "ModbusMaster.h"
#include "ModbusConfig.h"
class ModbusWrapper : public QObject
{
Q_OBJECT
private:
ModbusMaster _modbusMaster;
QThread _workerThread;
public:
explicit ModbusWrapper(QObject* parent = nullptr);
~ModbusWrapper();
void connectToDevice(ModbusConfig modbusConfig);
void init();
void close();
QBitArray getCoil(int startAddress, quint16 readSize);
QBitArray getInputCoil(int startAddress, quint16 readSize);
QVector<quint16> getHoldingRegister(int startAddress, quint16 readSize);
QVector<quint16> getInputRegister(int startAddress, quint16 readSize);
void setSingleCoil(int startAddress, bool coilFlag);
void setMultipleCoil(int startAddress, quint16 writeSize, QBitArray coilFlags);
void setSingleRegister(int startAddress, quint16 registerValue);
void setMultipleRegister(int startAddress, quint16 writeSize, QVector<quint16> registerValues);
bool getStatus();
signals:
void connectOrder(ModbusConfig modbusConfig, ExpConfig& expConfig);
void initOrder(ExpConfig& expConfig);
void closeOrder();
bool getConnectionStateOrder();
QBitArray getCoilOrder(int startAddress, quint16 readSize, ExpConfig& expConfig);
QBitArray getInputCoilOrder(int startAddress, quint16 readSize, ExpConfig& expConfig);
QVector<quint16> getHoldingRegisterOrder(int startAddress,
quint16 readSize, ExpConfig& expConfig);
QVector<quint16> getInputRegisterOrder(int startAddress, quint16 readSize,
ExpConfig& expConfig);
void setSingleCoilOrder(int startAddress, bool coilFlag, ExpConfig& expConfig);
void setMultipleCoilOrder(int startAddress,
quint16 writeSize,
QBitArray coilFlags,
ExpConfig& expConfig);
void setSingleRegisterOrder(int startAddress, quint16 registerValue, ExpConfig& expConfig);
void setMultipleRegisterOrder(int startAddress,
quint16 writeSize,
QVector<quint16> registerValues, ExpConfig& expConfig);
};
#endif //MODBUSWRAPPER_H