Fix tcp update method and update related plugins
parent
86c730a0da
commit
5bff288ec6
|
|
@ -454,7 +454,7 @@ def writeUpdateMethodTcp(fileDescriptor, className, registerDefinitions, blockDe
|
|||
writeLine(fileDescriptor)
|
||||
writeLine(fileDescriptor, ' m_pendingUpdateReplies.append(reply);')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater);')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, m_initObject, [this, reply](){')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, this, [this, reply](){')
|
||||
writeLine(fileDescriptor, ' m_pendingUpdateReplies.removeAll(reply);')
|
||||
writeLine(fileDescriptor, ' if (reply->error() != QModbusDevice::NoError) {')
|
||||
writeLine(fileDescriptor, ' verifyUpdateFinished();')
|
||||
|
|
@ -467,7 +467,7 @@ def writeUpdateMethodTcp(fileDescriptor, className, registerDefinitions, blockDe
|
|||
writeLine(fileDescriptor, ' verifyUpdateFinished();')
|
||||
writeLine(fileDescriptor, ' });')
|
||||
writeLine(fileDescriptor)
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, m_initObject, [this, reply] (QModbusDevice::Error error){')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){')
|
||||
writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while reading \\"%s\\" registers from" << hostAddress().toString() << error << reply->errorString();' % (className, registerDefinition['description']))
|
||||
writeLine(fileDescriptor, ' });')
|
||||
|
||||
|
|
@ -506,7 +506,7 @@ def writeUpdateMethodTcp(fileDescriptor, className, registerDefinitions, blockDe
|
|||
writeLine(fileDescriptor)
|
||||
writeLine(fileDescriptor, ' m_pendingUpdateReplies.append(reply);')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater);')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, m_initObject, [this, reply](){')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::finished, this, [this, reply](){')
|
||||
writeLine(fileDescriptor, ' m_pendingUpdateReplies.removeAll(reply);')
|
||||
writeLine(fileDescriptor, ' if (reply->error() != QModbusDevice::NoError) {')
|
||||
writeLine(fileDescriptor, ' verifyUpdateFinished();')
|
||||
|
|
@ -528,7 +528,7 @@ def writeUpdateMethodTcp(fileDescriptor, className, registerDefinitions, blockDe
|
|||
writeLine(fileDescriptor, ' verifyUpdateFinished();')
|
||||
writeLine(fileDescriptor, ' });')
|
||||
writeLine(fileDescriptor)
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, m_initObject, [reply] (QModbusDevice::Error error){')
|
||||
writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){')
|
||||
writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while updating block \\"%s\\" registers" << error << reply->errorString();' % (className, blockName))
|
||||
writeLine(fileDescriptor, ' });')
|
||||
writeLine(fileDescriptor)
|
||||
|
|
|
|||
|
|
@ -429,31 +429,12 @@ def writeRegistersDebugLine(fileDescriptor, debugObjectParamName, registerDefini
|
|||
for registerDefinition in registerDefinitions:
|
||||
propertyName = registerDefinition['id']
|
||||
propertyTyp = getCppDataType(registerDefinition)
|
||||
line = ('" - %s:" << %s->%s()' % (registerDefinition['description'], debugObjectParamName, propertyName))
|
||||
line = ('" - %s: " << %s->%s()' % (registerDefinition['description'], debugObjectParamName, propertyName))
|
||||
if 'unit' in registerDefinition and registerDefinition['unit'] != '':
|
||||
line += (' << " [%s]"' % registerDefinition['unit'])
|
||||
writeLine(fileDescriptor, ' debug.nospace().noquote() << %s << "\\n";' % (line))
|
||||
|
||||
|
||||
# def writeUpdateMethod(fileDescriptor, className, registerDefinitions, blockDefinitions):
|
||||
# writeLine(fileDescriptor, 'bool %s::update()' % (className))
|
||||
# writeLine(fileDescriptor, '{')
|
||||
# for registerDefinition in registerDefinitions:
|
||||
# propertyName = registerDefinition['id']
|
||||
# if 'readSchedule' in registerDefinition and registerDefinition['readSchedule'] == 'update':
|
||||
# writeLine(fileDescriptor, ' update%s();' % (propertyName[0].upper() + propertyName[1:]))
|
||||
|
||||
# # Add the update block methods
|
||||
# for blockDefinition in blockDefinitions:
|
||||
# blockName = blockDefinition['id']
|
||||
# if 'readSchedule' in blockDefinition and blockDefinition['readSchedule'] == 'update':
|
||||
# writeLine(fileDescriptor, ' update%sBlock();' % (blockName[0].upper() + blockName[1:]))
|
||||
|
||||
# writeLine(fileDescriptor, ' return true;')
|
||||
# writeLine(fileDescriptor, '}')
|
||||
# writeLine(fileDescriptor)
|
||||
|
||||
|
||||
def writePropertyChangedSignals(fileDescriptor, registerDefinitions):
|
||||
for registerDefinition in registerDefinitions:
|
||||
propertyName = registerDefinition['id']
|
||||
|
|
|
|||
|
|
@ -128,6 +128,10 @@ void IntegrationPluginPhoenixConnect::setupThing(ThingSetupInfo *info)
|
|||
}
|
||||
});
|
||||
|
||||
connect(connection, &PhoenixModbusTcpConnection::updateFinished, thing, [connection, thing](){
|
||||
qCDebug(dcPhoenixContact()) << "Update finished:" << thing->name() << connection;
|
||||
});
|
||||
|
||||
connect(connection, &PhoenixModbusTcpConnection::initializationFinished, info, [this, thing, connection, monitor, info](bool success){
|
||||
if (success) {
|
||||
qCDebug(dcPhoenixContact()) << "Phoenix wallbox initialized. Firmware version:" << connection->firmwareVersion();
|
||||
|
|
@ -141,11 +145,15 @@ void IntegrationPluginPhoenixConnect::setupThing(ThingSetupInfo *info)
|
|||
}
|
||||
});
|
||||
|
||||
connect(connection, &PhoenixModbusTcpConnection::initializationFinished, thing, [thing, connection]{
|
||||
thing->setStateValue("connected", true);
|
||||
thing->setStateValue("firmwareVersion", connection->firmwareVersion());
|
||||
connect(connection, &PhoenixModbusTcpConnection::initializationFinished, thing, [thing, connection](bool success){
|
||||
if (success) {
|
||||
thing->setStateValue("connected", true);
|
||||
thing->setStateValue("firmwareVersion", connection->firmwareVersion());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Handle property changed signals
|
||||
connect(connection, &PhoenixModbusTcpConnection::cpStatusChanged, thing, [thing, connection](quint16 cpStatus){
|
||||
qCDebug(dcPhoenixContact()) << "CP Signal state changed:" << (char)cpStatus;
|
||||
thing->setStateValue("pluggedIn", cpStatus >= 66);
|
||||
|
|
|
|||
|
|
@ -96,6 +96,15 @@ void IntegrationPluginSchrack::setupThing(ThingSetupInfo *info)
|
|||
|
||||
CionModbusRtuConnection *cionConnection = new CionModbusRtuConnection(hardwareManager()->modbusRtuResource()->getModbusRtuMaster(uuid), address, this);
|
||||
|
||||
connect(cionConnection, &CionModbusRtuConnection::updateFinished, thing, [cionConnection, thing](){
|
||||
qCDebug(dcSchrack()) << "Update finished:" << thing->name() << cionConnection;
|
||||
});
|
||||
|
||||
connect(cionConnection, &CionModbusRtuConnection::reachableChanged, thing, [thing](bool reachable){
|
||||
qCDebug(dcSchrack()) << "Reachable changed:" << thing->name() << reachable;
|
||||
});
|
||||
|
||||
|
||||
// Note: This register really only tells us if we can control anything... i.e. if the wallbox is unlocked via RFID
|
||||
connect(cionConnection, &CionModbusRtuConnection::chargingEnabledChanged, thing, [=](quint16 charging){
|
||||
qCDebug(dcSchrack()) << "Charging enabled changed:" << charging;
|
||||
|
|
|
|||
Loading…
Reference in New Issue