From b6e9d7a1a1c84683727e2b0571ca9060ab26d70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 21 Feb 2022 09:36:07 +0100 Subject: [PATCH] Rename Package to packet and fix connections --- sma/integrationpluginsma.cpp | 8 +++--- sma/speedwire.h | 48 +++++++++++++++++----------------- sma/speedwirediscovery.cpp | 8 +++--- sma/speedwireinverter.cpp | 30 ++++++++++----------- sma/speedwireinverter.h | 2 +- sma/speedwireinverterreply.cpp | 4 +-- sma/speedwireinverterreply.h | 4 +-- 7 files changed, 52 insertions(+), 52 deletions(-) diff --git a/sma/integrationpluginsma.cpp b/sma/integrationpluginsma.cpp index ff4392c5..465af7be 100644 --- a/sma/integrationpluginsma.cpp +++ b/sma/integrationpluginsma.cpp @@ -257,11 +257,11 @@ void IntegrationPluginSma::setupThing(ThingSetupInfo *info) return; } - connect(meter, &SpeedwireMeter::reachableChanged, this, [=](bool reachable){ + connect(meter, &SpeedwireMeter::reachableChanged, thing, [=](bool reachable){ thing->setStateValue(speedwireMeterConnectedStateTypeId, reachable); }); - connect(meter, &SpeedwireMeter::valuesUpdated, this, [=](){ + connect(meter, &SpeedwireMeter::valuesUpdated, thing, [=](){ thing->setStateValue(speedwireMeterConnectedStateTypeId, true); thing->setStateValue(speedwireMeterCurrentPowerStateTypeId, meter->currentPower()); thing->setStateValue(speedwireMeterCurrentPowerPhaseAStateTypeId, meter->currentPowerPhaseA()); @@ -331,11 +331,11 @@ void IntegrationPluginSma::setupThing(ThingSetupInfo *info) // Runtime connections - connect(inverter, &SpeedwireInverter::reachableChanged, this, [=](bool reachable){ + connect(inverter, &SpeedwireInverter::reachableChanged, thing, [=](bool reachable){ thing->setStateValue(speedwireInverterConnectedStateTypeId, reachable); }); - connect(inverter, &SpeedwireInverter::valuesUpdated, this, [=](){ + connect(inverter, &SpeedwireInverter::valuesUpdated, thing, [=](){ thing->setStateValue(speedwireInverterTotalEnergyProducedStateTypeId, inverter->totalEnergyProduced()); thing->setStateValue(speedwireInverterEnergyProducedTodayStateTypeId, inverter->todayEnergyProduced()); thing->setStateValue(speedwireInverterCurrentPowerStateTypeId, -inverter->totalAcPower()); diff --git a/sma/speedwire.h b/sma/speedwire.h index 3d01a854..05fd3603 100644 --- a/sma/speedwire.h +++ b/sma/speedwire.h @@ -95,7 +95,7 @@ public: } }; - typedef struct InverterPackage { + typedef struct InverterPacket { quint8 wordCount = 0; quint8 control = 0; quint16 destinationModelId = 0; @@ -108,7 +108,7 @@ public: quint16 fragmentId = 0; quint16 packetId = 0; quint32 command = 0; - } InverterPackage; + } InverterPacket; Speedwire() = default; @@ -259,23 +259,23 @@ public: return header; }; - static Speedwire::InverterPackage parseInverterPackage(QDataStream &stream) { + static Speedwire::InverterPacket parseInverterPacket(QDataStream &stream) { // Make sure the data stream is little endian stream.setByteOrder(QDataStream::LittleEndian); - InverterPackage package; - stream >> package.wordCount; - stream >> package.control; - stream >> package.destinationModelId; - stream >> package.destinationSerialNumber; - stream >> package.destinationControl; - stream >> package.sourceModelId; - stream >> package.sourceSerialNumber; - stream >> package.sourceControl; - stream >> package.errorCode; - stream >> package.fragmentId; - stream >> package.packetId; - stream >> package.command; - return package; + InverterPacket packet; + stream >> packet.wordCount; + stream >> packet.control; + stream >> packet.destinationModelId; + stream >> packet.destinationSerialNumber; + stream >> packet.destinationControl; + stream >> packet.sourceModelId; + stream >> packet.sourceSerialNumber; + stream >> packet.sourceControl; + stream >> packet.errorCode; + stream >> packet.fragmentId; + stream >> packet.packetId; + stream >> packet.command; + return packet; }; }; @@ -285,14 +285,14 @@ inline QDebug operator<<(QDebug debug, const Speedwire::Header &header) return debug.maybeSpace(); } -inline QDebug operator<<(QDebug debug, const Speedwire::InverterPackage &package) +inline QDebug operator<<(QDebug debug, const Speedwire::InverterPacket &packet) { - debug.nospace() << "InverterPackage(" << package.sourceSerialNumber; - debug.nospace() << ", Model ID: " << package.sourceModelId; - debug.nospace() << ", command: " << package.command; - debug.nospace() << ", error: " << package.errorCode; - debug.nospace() << ", fragment: " << package.fragmentId; - debug.nospace() << ", package ID: " << package.fragmentId; + debug.nospace() << "InverterPacket(" << packet.sourceSerialNumber; + debug.nospace() << ", Model ID: " << packet.sourceModelId; + debug.nospace() << ", command: " << packet.command; + debug.nospace() << ", error: " << packet.errorCode; + debug.nospace() << ", fragment: " << packet.fragmentId; + debug.nospace() << ", packet ID: " << packet.fragmentId; debug.nospace() << ")"; return debug.maybeSpace(); } diff --git a/sma/speedwirediscovery.cpp b/sma/speedwirediscovery.cpp index 6ae02bfa..301c6cfe 100644 --- a/sma/speedwirediscovery.cpp +++ b/sma/speedwirediscovery.cpp @@ -294,9 +294,9 @@ void SpeedwireDiscovery::processDatagram(const QHostAddress &senderAddress, quin m_results[senderAddress].modelId = modelId; m_results[senderAddress].serialNumber = serialNumber; } else if (header.protocolId == Speedwire::ProtocolIdInverter) { - Speedwire::InverterPackage inverterPackage = Speedwire::parseInverterPackage(stream); + Speedwire::InverterPacket inverterPacket = Speedwire::parseInverterPacket(stream); // Response from inverter 534d4100 0004 02a0 0000 0001 004e 0010 6065 1390 7d00 52be283a 0000 b500 c2c12e12 0000 0000 00000 1800102000000000000000000000003000000ff0000ecd5ff1f0100b500c2c12e1200000a000c00000000000000030000000101000000000000 - qCDebug(dcSma()) << "SpeedwireDiscovery:" << inverterPackage; + qCDebug(dcSma()) << "SpeedwireDiscovery:" << inverterPacket; if (!m_results.contains(senderAddress)) { SpeedwireDiscoveryResult result; @@ -309,8 +309,8 @@ void SpeedwireDiscovery::processDatagram(const QHostAddress &senderAddress, quin m_results[senderAddress].networkDeviceInfo = m_networkDeviceInfos.get(senderAddress); } - m_results[senderAddress].modelId = inverterPackage.sourceModelId; - m_results[senderAddress].serialNumber = inverterPackage.sourceSerialNumber; + m_results[senderAddress].modelId = inverterPacket.sourceModelId; + m_results[senderAddress].serialNumber = inverterPacket.sourceSerialNumber; } else { qCWarning(dcSma()) << "SpeedwireDiscovery: Unhandled data received" << datagram.toHex(); return; diff --git a/sma/speedwireinverter.cpp b/sma/speedwireinverter.cpp index 488cddec..39329c97 100644 --- a/sma/speedwireinverter.cpp +++ b/sma/speedwireinverter.cpp @@ -177,7 +177,7 @@ SpeedwireInverterReply *SpeedwireInverter::sendLoginRequest(const QString &passw Speedwire::Command command = Speedwire::CommandLogin; // The payload is little endian encoded - buildPackage(stream, command, packetId); + buildPacket(stream, command, packetId); // User type: 7 = user, a = installer stream << (loginAsUser ? static_cast(0x00000007) : static_cast(0x0000000a)); @@ -279,7 +279,7 @@ SpeedwireInverterReply *SpeedwireInverter::sendSoftwareVersionRequest() Speedwire::Command command = Speedwire::CommandQueryDevice; // The payload is little endian encoded - buildPackage(stream, command, packetId); + buildPacket(stream, command, packetId); // First and last word stream << static_cast(0x00823400); @@ -309,7 +309,7 @@ SpeedwireInverterReply *SpeedwireInverter::sendDeviceTypeRequest() Speedwire::Command command = Speedwire::CommandQueryDevice; // The payload is little endian encoded - buildPackage(stream, command, packetId); + buildPacket(stream, command, packetId); // 2 words stream << static_cast(0x00821e00); @@ -354,7 +354,7 @@ void SpeedwireInverter::sendNextReply() // Pick the next reply and send request m_currentReply = m_replyQueue.dequeue(); - qCDebug(dcSma()) << "Inverter: --> Sending" << m_currentReply->request().command() << "package ID:" << m_currentReply->request().packetId(); + qCDebug(dcSma()) << "Inverter: --> Sending" << m_currentReply->request().command() << "packet ID:" << m_currentReply->request().packetId(); m_interface->sendData(m_currentReply->request().requestData()); m_currentReply->startWaiting(); } @@ -403,9 +403,9 @@ void SpeedwireInverter::buildDefaultHeader(QDataStream &stream, quint16 payloadS stream << control; } -void SpeedwireInverter::buildPackage(QDataStream &stream, quint32 command, quint16 packetId) +void SpeedwireInverter::buildPacket(QDataStream &stream, quint32 command, quint16 packetId) { - // ========= package header (little endian) + // ========= packet header (little endian) // == 7a01842a71b30001 // 7a01 : destination model id @@ -492,7 +492,7 @@ SpeedwireInverterReply *SpeedwireInverter::sendQueryRequest(Speedwire::Command c quint16 packetId = m_packetId++ | 0x8000; // The payload is little endian encoded - buildPackage(stream, command, packetId); + buildPacket(stream, command, packetId); // First and second word stream << firstWord; @@ -995,19 +995,19 @@ void SpeedwireInverter::processData(const QByteArray &data) return; } - Speedwire::InverterPackage package = Speedwire::parseInverterPackage(stream); - if (package.sourceModelId != m_modelId || package.sourceSerialNumber != m_serialNumber) { - qCWarning(dcSma()) << "Inverter: Received datagram from different inverter" << package.sourceSerialNumber << "Ignoring data..."; + Speedwire::InverterPacket packet = Speedwire::parseInverterPacket(stream); + if (packet.sourceModelId != m_modelId || packet.sourceSerialNumber != m_serialNumber) { + qCWarning(dcSma()) << "Inverter: Received datagram from different inverter" << packet.sourceSerialNumber << "Ignoring data..."; return; } - qCDebug(dcSma()) << "Inverter: <-- Received" << static_cast(package.command) << "Packet ID:" << package.packetId; + qCDebug(dcSma()) << "Inverter: <-- Received" << static_cast(packet.command) << "Packet ID:" << packet.packetId; //qCDebug(dcSma()) << "Inverter:" << data.toHex(); - if (m_currentReply && m_currentReply->request().packetId() == package.packetId) { + if (m_currentReply && m_currentReply->request().packetId() == packet.packetId) { qCDebug(dcSma()) << "Inverter: Received response for current reply" << static_cast(m_currentReply->request().command()) << "Packet ID:" << m_currentReply->request().packetId(); m_currentReply->m_responseData = data; m_currentReply->m_responseHeader = header; - m_currentReply->m_responsePackage = package; + m_currentReply->m_responsePacket = packet; // Set the payload while (!stream.atEnd()) { quint8 byte; @@ -1015,7 +1015,7 @@ void SpeedwireInverter::processData(const QByteArray &data) m_currentReply->m_responsePayload.append(byte); } - if (package.errorCode != 0) { + if (packet.errorCode != 0) { m_currentReply->finishReply(SpeedwireInverterReply::ErrorInverterError); } else { m_currentReply->finishReply(SpeedwireInverterReply::ErrorNoError); @@ -1027,7 +1027,7 @@ void SpeedwireInverter::processData(const QByteArray &data) qCWarning(dcSma()) << "Inverter: Received unexpected data: not waiting for any response."; } qCWarning(dcSma()) << "Inverter:" << header; - qCWarning(dcSma()) << "Inverter:" << package; + qCWarning(dcSma()) << "Inverter:" << packet; qCWarning(dcSma()) << "Inverter:" << data.toHex(); } } diff --git a/sma/speedwireinverter.h b/sma/speedwireinverter.h index 50988b3c..ce2d34e5 100644 --- a/sma/speedwireinverter.h +++ b/sma/speedwireinverter.h @@ -169,7 +169,7 @@ private: // Request builder function void buildDefaultHeader(QDataStream &stream, quint16 payloadSize = 38, quint8 control = 0xa0); - void buildPackage(QDataStream &stream, quint32 command, quint16 packetId); + void buildPacket(QDataStream &stream, quint32 command, quint16 packetId); // Send generic request for internal use SpeedwireInverterReply *sendQueryRequest(Speedwire::Command command, quint32 firstWord, quint32 secondWord); diff --git a/sma/speedwireinverterreply.cpp b/sma/speedwireinverterreply.cpp index e65e0f50..95b76114 100644 --- a/sma/speedwireinverterreply.cpp +++ b/sma/speedwireinverterreply.cpp @@ -62,9 +62,9 @@ Speedwire::Header SpeedwireInverterReply::responseHeader() const return m_responseHeader; } -Speedwire::InverterPackage SpeedwireInverterReply::responsePackage() const +Speedwire::InverterPacket SpeedwireInverterReply::responsePacket() const { - return m_responsePackage; + return m_responsePacket; } QByteArray SpeedwireInverterReply::responsePayload() const diff --git a/sma/speedwireinverterreply.h b/sma/speedwireinverterreply.h index f2f8078f..b35dc5bd 100644 --- a/sma/speedwireinverterreply.h +++ b/sma/speedwireinverterreply.h @@ -58,7 +58,7 @@ public: // Response QByteArray responseData() const; Speedwire::Header responseHeader() const; - Speedwire::InverterPackage responsePackage() const; + Speedwire::InverterPacket responsePacket() const; QByteArray responsePayload() const; signals: @@ -77,7 +77,7 @@ private: QByteArray m_responseData; Speedwire::Header m_responseHeader; - Speedwire::InverterPackage m_responsePackage; + Speedwire::InverterPacket m_responsePacket; QByteArray m_responsePayload;