powermeter refactor: use destructors to de-initialize

This commit is contained in:
Bernhard Kirchen 2024-05-09 22:23:42 +02:00
parent e78f5849c1
commit 673b9f4fa8
12 changed files with 13 additions and 15 deletions

View File

@ -16,7 +16,6 @@ public:
~PowerMeterHttpJson(); ~PowerMeterHttpJson();
bool init() final { return true; } bool init() final { return true; }
void deinit() final { }
void loop() final; void loop() final;
float getPowerTotal() const final; float getPowerTotal() const final;
void doMqttPublish() const final; void doMqttPublish() const final;

View File

@ -13,7 +13,6 @@ public:
~PowerMeterHttpSml(); ~PowerMeterHttpSml();
bool init() final { return true; } bool init() final { return true; }
void deinit() final { }
void loop() final; void loop() final;
bool updateValues(); bool updateValues();
char tibberPowerMeterError[256]; char tibberPowerMeterError[256];

View File

@ -8,8 +8,9 @@
class PowerMeterMqtt : public PowerMeterProvider { class PowerMeterMqtt : public PowerMeterProvider {
public: public:
~PowerMeterMqtt();
bool init() final; bool init() final;
void deinit() final;
void loop() final { } void loop() final { }
float getPowerTotal() const final; float getPowerTotal() const final;
void doMqttPublish() const final; void doMqttPublish() const final;

View File

@ -21,7 +21,6 @@ public:
// returns true if the provider is ready for use, false otherwise // returns true if the provider is ready for use, false otherwise
virtual bool init() = 0; virtual bool init() = 0;
virtual void deinit() = 0;
virtual void loop() = 0; virtual void loop() = 0;
virtual float getPowerTotal() const = 0; virtual float getPowerTotal() const = 0;

View File

@ -7,8 +7,9 @@
class PowerMeterSerialSdm : public PowerMeterProvider { class PowerMeterSerialSdm : public PowerMeterProvider {
public: public:
~PowerMeterSerialSdm();
bool init() final; bool init() final;
void deinit() final;
void loop() final; void loop() final;
float getPowerTotal() const final; float getPowerTotal() const final;
void doMqttPublish() const final; void doMqttPublish() const final;

View File

@ -6,8 +6,9 @@
class PowerMeterSerialSml : public PowerMeterSml { class PowerMeterSerialSml : public PowerMeterSml {
public: public:
~PowerMeterSerialSml();
bool init() final; bool init() final;
void deinit() final;
void loop() final; void loop() final;
private: private:

View File

@ -9,8 +9,9 @@
class PowerMeterUdpSmaHomeManager : public PowerMeterProvider { class PowerMeterUdpSmaHomeManager : public PowerMeterProvider {
public: public:
~PowerMeterUdpSmaHomeManager();
bool init() final; bool init() final;
void deinit() final;
void loop() final; void loop() final;
float getPowerTotal() const final { return _powerMeterPower; } float getPowerTotal() const final { return _powerMeterPower; }
void doMqttPublish() const final; void doMqttPublish() const final;

View File

@ -24,10 +24,7 @@ void PowerMeterClass::updateSettings()
{ {
std::lock_guard<std::mutex> l(_mutex); std::lock_guard<std::mutex> l(_mutex);
if (_upProvider) { if (_upProvider) { _upProvider.reset(); }
_upProvider->deinit();
_upProvider = nullptr;
}
auto const& config = Configuration.get(); auto const& config = Configuration.get();

View File

@ -26,7 +26,7 @@ bool PowerMeterMqtt::init()
return _mqttSubscriptions.size() > 0; return _mqttSubscriptions.size() > 0;
} }
void PowerMeterMqtt::deinit() PowerMeterMqtt::~PowerMeterMqtt()
{ {
for (auto const& t: _mqttSubscriptions) { MqttSettings.unsubscribe(t); } for (auto const& t: _mqttSubscriptions) { MqttSettings.unsubscribe(t); }
_mqttSubscriptions.clear(); _mqttSubscriptions.clear();

View File

@ -5,7 +5,7 @@
#include "MessageOutput.h" #include "MessageOutput.h"
#include "SerialPortManager.h" #include "SerialPortManager.h"
void PowerMeterSerialSdm::deinit() PowerMeterSerialSdm::~PowerMeterSerialSdm()
{ {
if (_upSdmSerial) { if (_upSdmSerial) {
_upSdmSerial->end(); _upSdmSerial->end();

View File

@ -25,7 +25,7 @@ bool PowerMeterSerialSml::init()
return true; return true;
} }
void PowerMeterSerialSml::deinit() PowerMeterSerialSml::~PowerMeterSerialSml()
{ {
if (!_upSmlSerial) { return; } if (!_upSmlSerial) { return; }
_upSmlSerial->end(); _upSmlSerial->end();

View File

@ -29,7 +29,7 @@ bool PowerMeterUdpSmaHomeManager::init()
return true; return true;
} }
void PowerMeterUdpSmaHomeManager::deinit() PowerMeterUdpSmaHomeManager::~PowerMeterUdpSmaHomeManager()
{ {
SMAUdp.stop(); SMAUdp.stop();
} }