mirror of
https://github.com/lumapu/ahoy.git
synced 2025-06-02 10:41:40 +02:00
Powerlimit is transfered immediately to inverter
This commit is contained in:
parent
4a00f90e34
commit
27b3a9cd87
7 changed files with 44 additions and 18 deletions
|
@ -2,6 +2,10 @@
|
|||
|
||||
(starting from release version `0.5.66`)
|
||||
|
||||
## 0.5.68
|
||||
* repaired receive payload
|
||||
* Powerlimit is transfered immediately to inverter
|
||||
|
||||
## 0.5.67
|
||||
* changed calculation of start / stop communication to 1 min after last comm. stop #515
|
||||
* moved payload send to `payload.h`, function `ivSend` #515
|
||||
|
|
|
@ -90,6 +90,7 @@ void app::loop(void) {
|
|||
|
||||
ah::Scheduler::loop();
|
||||
mSys->Radio.loop();
|
||||
mPayload.loop();
|
||||
|
||||
yield();
|
||||
|
||||
|
@ -116,8 +117,6 @@ void app::loop(void) {
|
|||
|
||||
if (rxRdy)
|
||||
mPayload.process(true);
|
||||
|
||||
mRxTicker = 0;
|
||||
}
|
||||
|
||||
#if !defined(AP_ONLY)
|
||||
|
|
|
@ -122,6 +122,10 @@ class app : public IApp, public ah::Scheduler {
|
|||
once(std::bind(&PubMqttType::sendDiscoveryConfig, &mMqtt), 1);
|
||||
}
|
||||
|
||||
void ivSendHighPrio(Inverter<> *iv) {
|
||||
mPayload.ivSendHighPrio(iv);
|
||||
}
|
||||
|
||||
bool getMqttIsConnected() {
|
||||
return mMqtt.isConnected();
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#define __IAPP_H__
|
||||
|
||||
#include "defines.h"
|
||||
#include "hm/hmSystem.h"
|
||||
|
||||
// abstract interface to App. Make members of App accessible from child class
|
||||
// like web or API without forward declaration
|
||||
|
@ -34,6 +35,8 @@ class IApp {
|
|||
virtual bool getSettingsValid() = 0;
|
||||
virtual void setMqttDiscoveryFlag() = 0;
|
||||
|
||||
virtual void ivSendHighPrio(Inverter<> *iv) = 0;
|
||||
|
||||
virtual bool getMqttIsConnected() = 0;
|
||||
virtual uint32_t getMqttRxCnt() = 0;
|
||||
virtual uint32_t getMqttTxCnt() = 0;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
//-------------------------------------
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 5
|
||||
#define VERSION_PATCH 67
|
||||
#define VERSION_PATCH 68
|
||||
|
||||
//-------------------------------------
|
||||
typedef struct {
|
||||
|
|
|
@ -42,6 +42,7 @@ class Payload : public Handler<payloadListenerType> {
|
|||
mTimestamp = timestamp;
|
||||
memset(mPayload, 0, (MAX_NUM_INVERTERS * sizeof(invPayload_t)));
|
||||
mSerialDebug = false;
|
||||
mHighPrioIv = NULL;
|
||||
}
|
||||
|
||||
void enableSerialDebug(bool enable) {
|
||||
|
@ -54,7 +55,19 @@ class Payload : public Handler<payloadListenerType> {
|
|||
}
|
||||
}
|
||||
|
||||
void ivSend(Inverter<> *iv) {
|
||||
void loop() {
|
||||
if(NULL != mHighPrioIv) {
|
||||
ivSend(mHighPrioIv, true);
|
||||
mHighPrioIv = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void ivSendHighPrio(Inverter<> *iv) {
|
||||
mHighPrioIv = iv;
|
||||
}
|
||||
|
||||
void ivSend(Inverter<> *iv, bool highPrio = false) {
|
||||
if(!highPrio) {
|
||||
if (!mPayload[iv->id].complete)
|
||||
process(false);
|
||||
|
||||
|
@ -72,6 +85,7 @@ class Payload : public Handler<payloadListenerType> {
|
|||
DPRINTLN(DBG_INFO, F("no Payload received! (retransmits: ") + String(mPayload[iv->id].retransmits) + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reset(iv);
|
||||
mPayload[iv->id].requested = true;
|
||||
|
@ -180,7 +194,7 @@ class Payload : public Handler<payloadListenerType> {
|
|||
mPayload[iv->id].txCmd = iv->getQueuedCmd();
|
||||
DPRINTLN(DBG_INFO, F("(#") + String(iv->id) + F(") sendTimePacket"));
|
||||
mSys->Radio.sendTimePacket(iv->radioId.u64, mPayload[iv->id].txCmd, mPayload[iv->id].ts, iv->alarmMesIndex);
|
||||
} else if (mPayload[iv->id].maxPackId != 0) {
|
||||
} else {
|
||||
for (uint8_t i = 0; i < (mPayload[iv->id].maxPackId - 1); i++) {
|
||||
if (mPayload[iv->id].len[i] == 0) {
|
||||
DPRINTLN(DBG_WARN, F("while retrieving data: Frame ") + String(i + 1) + F(" missing: Request Retransmit"));
|
||||
|
@ -264,6 +278,7 @@ class Payload : public Handler<payloadListenerType> {
|
|||
uint32_t *mTimestamp;
|
||||
invPayload_t mPayload[MAX_NUM_INVERTERS];
|
||||
bool mSerialDebug;
|
||||
Inverter<> *mHighPrioIv;
|
||||
};
|
||||
|
||||
#endif /*__PAYLOAD_H_*/
|
||||
|
|
|
@ -534,6 +534,7 @@ class RestApi {
|
|||
iv->powerLimit[1] = AbsolutNonPersistent;
|
||||
iv->devControlCmd = ActivePowerContr;
|
||||
iv->devControlRequest = true;
|
||||
mApp->ivSendHighPrio(iv);
|
||||
}
|
||||
else if(F("dev") == jsonIn[F("cmd")]) {
|
||||
DPRINTLN(DBG_INFO, F("dev cmd"));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue