Port modbus rtu
This commit is contained in:
parent
aa59ddd714
commit
685d28f88b
@ -54,7 +54,12 @@ ModbusRtuMasterImpl::ModbusRtuMasterImpl(const QUuid &modbusUuid, const QString
|
|||||||
m_timeout(timeout)
|
m_timeout(timeout)
|
||||||
{
|
{
|
||||||
#ifdef WITH_QTSERIALBUS
|
#ifdef WITH_QTSERIALBUS
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
m_modbus = new QModbusRtuSerialClient(this);
|
||||||
|
#else
|
||||||
m_modbus = new QModbusRtuSerialMaster(this);
|
m_modbus = new QModbusRtuSerialMaster(this);
|
||||||
|
#endif
|
||||||
m_modbus->setConnectionParameter(QModbusDevice::SerialPortNameParameter, m_serialPort);
|
m_modbus->setConnectionParameter(QModbusDevice::SerialPortNameParameter, m_serialPort);
|
||||||
m_modbus->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, m_baudrate);
|
m_modbus->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, m_baudrate);
|
||||||
m_modbus->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, m_dataBits);
|
m_modbus->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, m_dataBits);
|
||||||
@ -63,7 +68,11 @@ ModbusRtuMasterImpl::ModbusRtuMasterImpl(const QUuid &modbusUuid, const QString
|
|||||||
m_modbus->setNumberOfRetries(m_numberOfRetries);
|
m_modbus->setNumberOfRetries(m_numberOfRetries);
|
||||||
m_modbus->setTimeout(m_timeout);
|
m_modbus->setTimeout(m_timeout);
|
||||||
|
|
||||||
connect(m_modbus, &QModbusTcpClient::stateChanged, this, [=](QModbusDevice::State state){
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
connect(m_modbus, &QModbusRtuSerialClient::stateChanged, this, [=](QModbusDevice::State state){
|
||||||
|
#else
|
||||||
|
connect(m_modbus, &QModbusRtuSerialMaster::stateChanged, this, [=](QModbusDevice::State state){
|
||||||
|
#endif
|
||||||
qCDebug(dcModbusRtu()) << "Connection state changed" << m_modbusUuid.toString() << m_serialPort << state;
|
qCDebug(dcModbusRtu()) << "Connection state changed" << m_modbusUuid.toString() << m_serialPort << state;
|
||||||
if (state == QModbusDevice::ConnectedState) {
|
if (state == QModbusDevice::ConnectedState) {
|
||||||
if (m_connected != true) {
|
if (m_connected != true) {
|
||||||
@ -78,7 +87,11 @@ ModbusRtuMasterImpl::ModbusRtuMasterImpl(const QUuid &modbusUuid, const QString
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
connect(m_modbus, &QModbusRtuSerialClient::errorOccurred, this, [=](QModbusDevice::Error error){
|
||||||
|
#else
|
||||||
connect(m_modbus, &QModbusRtuSerialMaster::errorOccurred, this, [=](QModbusDevice::Error error){
|
connect(m_modbus, &QModbusRtuSerialMaster::errorOccurred, this, [=](QModbusDevice::Error error){
|
||||||
|
#endif
|
||||||
qCWarning(dcModbusRtu()) << "Error occurred for modbus RTU master" << m_modbusUuid.toString() << m_serialPort << error << m_modbus->errorString();
|
qCWarning(dcModbusRtu()) << "Error occurred for modbus RTU master" << m_modbusUuid.toString() << m_serialPort << error << m_modbus->errorString();
|
||||||
if (error != QModbusDevice::NoError) {
|
if (error != QModbusDevice::NoError) {
|
||||||
disconnectDevice();
|
disconnectDevice();
|
||||||
|
|||||||
@ -93,9 +93,15 @@ private:
|
|||||||
bool m_connected = false;
|
bool m_connected = false;
|
||||||
|
|
||||||
#ifdef WITH_QTSERIALBUS
|
#ifdef WITH_QTSERIALBUS
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
QModbusRtuSerialClient *m_modbus = nullptr;
|
||||||
|
#else
|
||||||
QModbusRtuSerialMaster *m_modbus = nullptr;
|
QModbusRtuSerialMaster *m_modbus = nullptr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif // WITH_QTSERIALBUS
|
||||||
|
|
||||||
QString m_serialPort;
|
QString m_serialPort;
|
||||||
qint32 m_baudrate;
|
qint32 m_baudrate;
|
||||||
QSerialPort::Parity m_parity;
|
QSerialPort::Parity m_parity;
|
||||||
|
|||||||
@ -21,14 +21,14 @@ packagesExist(systemd) {
|
|||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
qtHaveModule(serialbus) {
|
qtHaveModule(serialbus) {
|
||||||
message("Building with QtSerialBus support.")
|
message("Building with QtSerialBus support.")
|
||||||
QT *= serialbus
|
QT += serialbus
|
||||||
DEFINES += WITH_QTSERIALBUS
|
DEFINES += WITH_QTSERIALBUS
|
||||||
} else {
|
} else {
|
||||||
message("QtSerialBus package not found. Building without QtSerialBus support.")
|
message("QtSerialBus package not found. Building without QtSerialBus support.")
|
||||||
}
|
}
|
||||||
|
|
||||||
# Separate module in Qt6
|
# Separate module in Qt6
|
||||||
QT *= concurrent
|
QT += concurrent
|
||||||
} else {
|
} else {
|
||||||
packagesExist(Qt5SerialBus) {
|
packagesExist(Qt5SerialBus) {
|
||||||
message("Building with QtSerialBus support.")
|
message("Building with QtSerialBus support.")
|
||||||
|
|||||||
@ -11,9 +11,9 @@ INSTALLS += target
|
|||||||
QT += sql websockets bluetooth dbus network
|
QT += sql websockets bluetooth dbus network
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
QT *= core5compat
|
QT += core5compat
|
||||||
} else {
|
} else {
|
||||||
QT *= xml
|
QT += xml
|
||||||
}
|
}
|
||||||
|
|
||||||
CONFIG += link_pkgconfig
|
CONFIG += link_pkgconfig
|
||||||
|
|||||||
@ -2,9 +2,9 @@ include(../../../nymea.pri)
|
|||||||
include(../autotests.pri)
|
include(../autotests.pri)
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
QT *= core5compat
|
QT += core5compat
|
||||||
} else {
|
} else {
|
||||||
QT *= xml
|
QT += xml
|
||||||
}
|
}
|
||||||
|
|
||||||
PKGCONFIG += nymea-mqtt
|
PKGCONFIG += nymea-mqtt
|
||||||
|
|||||||
@ -2,9 +2,9 @@ include(../../../nymea.pri)
|
|||||||
include(../autotests.pri)
|
include(../autotests.pri)
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
QT *= core5compat
|
QT += core5compat
|
||||||
} else {
|
} else {
|
||||||
QT *= xml
|
QT += xml
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,14 +11,14 @@ PKGCONFIG += nymea-zigbee
|
|||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
qtHaveModule(serialbus) {
|
qtHaveModule(serialbus) {
|
||||||
message("Building with QtSerialBus support.")
|
message("Building with QtSerialBus support.")
|
||||||
QT *= serialbus
|
QT += serialbus
|
||||||
DEFINES += WITH_QTSERIALBUS
|
DEFINES += WITH_QTSERIALBUS
|
||||||
} else {
|
} else {
|
||||||
message("QtSerialBus package not found. Building without QtSerialBus support.")
|
message("QtSerialBus package not found. Building without QtSerialBus support.")
|
||||||
}
|
}
|
||||||
|
|
||||||
# Separate module in Qt6
|
# Separate module in Qt6
|
||||||
QT *= concurrent
|
QT += concurrent
|
||||||
} else {
|
} else {
|
||||||
packagesExist(Qt5SerialBus) {
|
packagesExist(Qt5SerialBus) {
|
||||||
message("Building with QtSerialBus support.")
|
message("Building with QtSerialBus support.")
|
||||||
|
|||||||
Reference in New Issue
Block a user