Browse Source

set radio pointer to inverter

pull/1197/head
lumapu 2 years ago
parent
commit
dcd5d5a72b
  1. 8
      src/app.cpp
  2. 4
      src/hm/hmSystem.h

8
src/app.cpp

@ -60,9 +60,13 @@ void app::setup() {
#endif /* defined(ETHERNET) */
mSys.setup(&mTimestamp, &mConfig->inst);
Inverter<> *iv;
for (uint8_t i = 0; i < MAX_NUM_INVERTERS; i++) {
mSys.addInverter(i);
mSys.addInverter(i, [this](Inverter<> *iv) {
if((IV_MI == iv->ivGen) || (IV_HM == iv->ivGen))
iv->radio = &mNrfRadio;
else if((IV_HMS == iv->ivGen) || (IV_HMT == iv->ivGen))
iv->radio = &mCmtRadio;
});
}
if (mConfig->nrf.enabled) {
mPayload.setup(this, &mSys, &mNrfRadio, &mNrfStat, mConfig->nrf.maxRetransPerPyld, &mTimestamp);

4
src/hm/hmSystem.h

@ -20,7 +20,7 @@ class HmSystem {
mNumInv = 0;
}
void addInverter(uint8_t id) {
void addInverter(uint8_t id, std::function<void(Inverter<> *iv)> cb) {
DPRINTLN(DBG_VERBOSE, F("hmSystem.h:addInverter"));
if(MAX_INVERTER <= mNumInv) {
DPRINT(DBG_WARN, F("max number of inverters reached!"));
@ -89,6 +89,8 @@ class HmSystem {
if((iv->config->serial.b[5] == 0x10) && ((iv->config->serial.b[4] & 0x03) == 0x01))
DPRINTLN(DBG_WARN, F("MI Inverter are not fully supported now!!!"));
cb(iv);
}
INVERTERTYPE *findInverter(uint8_t buf[]) {

Loading…
Cancel
Save