Browse Source

0.8.103

* fix cppcheck warnings
* changed MqTT retained flags of some topics
pull/1557/head
lumapu 10 months ago
parent
commit
7ee1f992cb
  1. 2
      src/CHANGES.md
  2. 17
      src/app.cpp
  3. 2
      src/app.h
  4. 2
      src/defines.h
  5. 10
      src/network/AhoyWifiEsp32.h
  6. 4
      src/publisher/pubMqtt.h
  7. 2
      src/publisher/pubMqttIvData.h
  8. 2
      src/web/RestApi.h

2
src/CHANGES.md

@ -4,6 +4,8 @@
* merge PR: fix: get refresh property from object #1552
* merge PR: fix typos and spelling in Github Issue template #1550
* merge PR: shorten last cmt waiting time #1549
* fix cppcheck warnings
* changed MqTT retained flags of some topics
## 0.8.102 - 2024-04-01
* fix NTP for `opendtufusion` #1542

17
src/app.cpp

@ -56,9 +56,9 @@ void app::setup() {
#ifdef ETHERNET
delay(1000);
mNetwork = (AhoyNetwork*) new AhoyEthernet();
mNetwork = static_cast<AhoyNetwork*>(new AhoyEthernet());
#else
mNetwork = (AhoyNetwork*) new AhoyWifi();
mNetwork = static_cast<AhoyNetwork*>(new AhoyWifi());
#endif // ETHERNET
mNetwork->setup(mConfig, &mTimestamp, [this](bool gotIp) { this->onNetwork(gotIp); }, [this](bool gotTime) { this->onNtpUpdate(gotTime); });
mNetwork->begin();
@ -403,7 +403,8 @@ void app::tickSend(void) {
for (uint8_t i = 0; i < MAX_NUM_INVERTERS; i++) {
Inverter<> *iv = mSys.getInverterByPos(i);
sendIv(iv);
if(!sendIv(iv))
notAvail = false;
}
if(mAllIvNotAvail != notAvail)
@ -415,22 +416,22 @@ void app::tickSend(void) {
//-----------------------------------------------------------------------------
bool app::sendIv(Inverter<> *iv) {
bool notAvail = true;
if(NULL == iv)
return notAvail;
return true;
if(!iv->config->enabled)
return notAvail;
return true;
if(!iv->commEnabled) {
DPRINT_IVID(DBG_INFO, iv->id);
DBGPRINTLN(F("no communication to the inverter (night time)"));
return notAvail;
return true;
}
if(!iv->radio->isChipConnected())
return notAvail;
return true;
bool notAvail = true;
if(InverterStatus::OFF != iv->status)
notAvail = false;

2
src/app.h

@ -414,7 +414,7 @@ class app : public IApp, public ah::Scheduler {
bool mShowRebootRequest = false;
AhoyNetwork *mNetwork;
AhoyNetwork *mNetwork = nullptr;
WebType mWeb;
RestApiType mApi;
Protection *mProtection = nullptr;

2
src/defines.h

@ -13,7 +13,7 @@
//-------------------------------------
#define VERSION_MAJOR 0
#define VERSION_MINOR 8
#define VERSION_PATCH 102
#define VERSION_PATCH 103
//-------------------------------------
typedef struct {
uint8_t ch;

10
src/network/AhoyWifiEsp32.h

@ -68,16 +68,6 @@ class AhoyWifi : public AhoyNetwork {
String getIp(void) override {
return WiFi.localIP().toString();
}
private:
void sortRSSI(int *sort, int n) {
for (int i = 0; i < n; i++)
sort[i] = i;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (WiFi.RSSI(sort[j]) > WiFi.RSSI(sort[i]))
std::swap(sort[i], sort[j]);
}
};
#endif /*ESP32 & !ETHERNET*/

4
src/publisher/pubMqtt.h

@ -251,8 +251,8 @@ class PubMqtt {
void onConnect(bool sessionPreset) {
DPRINTLN(DBG_INFO, F("MQTT connected"));
publish(subtopics[MQTT_VERSION], mVersion, true);
publish(subtopics[MQTT_DEVICE], mDevName, true);
publish(subtopics[MQTT_VERSION], mVersion, false);
publish(subtopics[MQTT_DEVICE], mDevName, false);
publish(subtopics[MQTT_IP_ADDR], mApp->getIp().c_str(), true);
tickerMinute();
publish(mLwtTopic.data(), mqttStr[MQTT_STR_LWT_CONN], true, false);

2
src/publisher/pubMqttIvData.h

@ -187,7 +187,6 @@ class PubMqttIvData {
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_FW_BUILD_MONTH_DAY, rec)),
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_FW_BUILD_HOUR_MINUTE, rec)),
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_BOOTLOADER_VER, rec)));
retained = true;
} else if(InverterDevInform_Simple == mCmd) {
snprintf(mSubTopic.data(), mSubTopic.size(), "%s/hardware", mIv->config->name);
snprintf(mVal.data(), mVal.size(), "{\"part\":%d,\"version\":\"%d\",\"grid_profile_code\":%d,\"grid_profile_version\":%d}",
@ -195,7 +194,6 @@ class PubMqttIvData {
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_HW_VERSION, rec)),
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_GRID_PROFILE_CODE, rec)),
static_cast<int>(mIv->getChannelFieldValue(CH0, FLD_GRID_PROFILE_VERSION, rec)));
retained = true;
} else {
snprintf(mSubTopic.data(), mSubTopic.size(), "%s/ch%d/%s", mIv->config->name, rec->assign[mPos].ch, fields[rec->assign[mPos].fieldId]);
snprintf(mVal.data(), mVal.size(), "%g", ah::round3(mIv->getValue(mPos, rec)));

2
src/web/RestApi.h

@ -166,7 +166,7 @@ class RestApi {
#else
DynamicJsonDocument json(12000); // does this work? I have no ESP32 :-(
#endif
DeserializationError err = deserializeJson(json, (const char *)mTmpBuf, mTmpSize);
DeserializationError err = deserializeJson(json, static_cast<const char *>(mTmpBuf, mTmpSize));
json.shrinkToFit();
JsonObject obj = json.as<JsonObject>();

Loading…
Cancel
Save