From 1200ca0b7956e322010b3e9025c39e624d0e8cb2 Mon Sep 17 00:00:00 2001 From: Marcel Alburg Date: Mon, 15 Aug 2022 22:42:08 +0200 Subject: [PATCH] first changes to prepare code for esp32 --- tools/esp8266/app.cpp | 4 ++-- tools/esp8266/app.h | 2 +- tools/esp8266/crc.cpp | 3 +++ tools/esp8266/crc.h | 7 +++++-- tools/esp8266/hmRadio.h | 16 +++++++++++----- tools/esp8266/hmSystem.h | 5 ++++- 6 files changed, 26 insertions(+), 11 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 79356d98..7127b7c1 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -318,12 +318,12 @@ bool app::buildPayload(uint8_t id) { for(uint8_t i = 0; i < mPayload[id].maxPackId; i ++) { if(mPayload[id].len[i] > 0) { if(i == (mPayload[id].maxPackId-1)) { - crc = crc16(mPayload[id].data[i], mPayload[id].len[i] - 2, crc); + crc = Hoymiles::crc16(mPayload[id].data[i], mPayload[id].len[i] - 2, crc); crcRcv = (mPayload[id].data[i][mPayload[id].len[i] - 2] << 8) | (mPayload[id].data[i][mPayload[id].len[i] - 1]); } else - crc = crc16(mPayload[id].data[i], mPayload[id].len[i], crc); + crc = Hoymiles::crc16(mPayload[id].data[i], mPayload[id].len[i], crc); } yield(); } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index ef1737e3..25ee205c 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -164,7 +164,7 @@ class app { while(length > 0) { len = (length < 32) ? length : 32; mEep->read(start, buf, len); - crc = crc16(buf, len, crc); + crc = Hoymiles::crc16(buf, len, crc); start += len; length -= len; } diff --git a/tools/esp8266/crc.cpp b/tools/esp8266/crc.cpp index 7c64d642..29f9b82f 100644 --- a/tools/esp8266/crc.cpp +++ b/tools/esp8266/crc.cpp @@ -5,6 +5,8 @@ #include "crc.h" +namespace Hoymiles { + uint8_t crc8(uint8_t buf[], uint8_t len) { uint8_t crc = CRC8_INIT; for(uint8_t i = 0; i < len; i++) { @@ -33,3 +35,4 @@ uint16_t crc16(uint8_t buf[], uint8_t len, uint16_t start) { } return crc; } +} // namespace Hoymiles \ No newline at end of file diff --git a/tools/esp8266/crc.h b/tools/esp8266/crc.h index c0323ebb..1c8de9e0 100644 --- a/tools/esp8266/crc.h +++ b/tools/esp8266/crc.h @@ -14,7 +14,10 @@ #define CRC16_MODBUS_POLYNOM 0xA001 -uint8_t crc8(uint8_t buf[], uint8_t len); -uint16_t crc16(uint8_t buf[], uint8_t len, uint16_t start = 0xffff); +namespace Hoymiles { + uint8_t crc8(uint8_t buf[], uint8_t len); + uint16_t crc16(uint8_t buf[], uint8_t len, uint16_t start = 0xffff); + +} #endif /*__CRC_H__*/ diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 957ace68..a664bbde 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -59,7 +59,12 @@ template amplifierPower])); + DPRINT(DBG_INFO, F("RF24 Amp Pwr: RF24_PA_")); + DPRINTLN(DBG_INFO, String(rf24AmpPowerNames[config->amplifierPower])); mNrf24.setPALevel(config->amplifierPower & 0x03); mNrf24.startListening(); @@ -180,12 +186,12 @@ class HmRadio { mTxBuf[10 + (++cnt)] = (powerLimitSetting ) & 0xff; // setting for persistens handling } // crc control data - uint16_t crc = crc16(&mTxBuf[10], cnt+1); + uint16_t crc = Hoymiles::crc16(&mTxBuf[10], cnt+1); mTxBuf[10 + (++cnt)] = (crc >> 8) & 0xff; mTxBuf[10 + (++cnt)] = (crc ) & 0xff; // crc over all cnt +=1; - mTxBuf[10 + cnt] = crc8(mTxBuf, 10 + cnt); + mTxBuf[10 + cnt] = Hoymiles::crc8(mTxBuf, 10 + cnt); sendPacket(invId, mTxBuf, 10 + (++cnt), true); } @@ -204,7 +210,7 @@ class HmRadio { mTxBuf[18] = 0x00; mTxBuf[19] = 0x00; } - uint16_t crc = crc16(&mTxBuf[10], 14); + uint16_t crc = Hoymiles::crc16(&mTxBuf[10], 14); mTxBuf[24] = (crc >> 8) & 0xff; mTxBuf[25] = (crc ) & 0xff; mTxBuf[26] = crc8(mTxBuf, 26); diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h index 386484fa..c2a7e28a 100644 --- a/tools/esp8266/hmSystem.h +++ b/tools/esp8266/hmSystem.h @@ -52,7 +52,10 @@ class HmSystem { case 0x21: p->type = INV_TYPE_1CH; break; case 0x41: p->type = INV_TYPE_2CH; break; case 0x61: p->type = INV_TYPE_4CH; break; - default: DPRINTLN(DBG_ERROR, F("unknown inverter type: 11") + String(p->serial.b[4], HEX)); break; + default: + DPRINT(DBG_ERROR, F("unknown inverter type: 11")); + DPRINTLN(DBG_ERROR, String(p->serial.b[4], HEX)); + break; } } else