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
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
|
|
|