mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-09 23:16:38 +02:00
first changes to prepare code for esp32
This commit is contained in:
parent
6ac3876092
commit
1200ca0b79
6 changed files with 26 additions and 11 deletions
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -14,7 +14,10 @@
|
|||
|
||||
#define CRC16_MODBUS_POLYNOM 0xA001
|
||||
|
||||
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__*/
|
||||
|
|
|
@ -59,7 +59,12 @@ template <uint8_t CE_PIN, uint8_t CS_PIN, class BUFFER, uint64_t DTU_ID=DTU_RADI
|
|||
class HmRadio {
|
||||
public:
|
||||
HmRadio() : mNrf24(CE_PIN, CS_PIN, SPI_SPEED) {
|
||||
DPRINTLN(DBG_VERBOSE, F("hmRadio.h : HmRadio():mNrf24(CE_PIN: ") + String(CE_PIN) + F(", CS_PIN: ") + String(CS_PIN) + F(", SPI_SPEED: ") + String(SPI_SPEED) + ")");
|
||||
DPRINT(DBG_VERBOSE, F("hmRadio.h : HmRadio():mNrf24(CE_PIN: "));
|
||||
DPRINT(DBG_VERBOSE, String(CE_PIN));
|
||||
DPRINT(DBG_VERBOSE, F(", CS_PIN: "));
|
||||
DPRINT(DBG_VERBOSE, String(CS_PIN));
|
||||
DPRINT(DBG_VERBOSE, F(", SPI_SPEED: "));
|
||||
DPRINTLN(DBG_VERBOSE, String(SPI_SPEED) + ")");
|
||||
|
||||
// Depending on the program, the module can work on 2403, 2423, 2440, 2461 or 2475MHz.
|
||||
// Channel List 2403, 2423, 2440, 2461, 2475MHz
|
||||
|
@ -101,7 +106,8 @@ class HmRadio {
|
|||
// enable only receiving interrupts
|
||||
mNrf24.maskIRQ(true, true, false);
|
||||
|
||||
DPRINTLN(DBG_INFO, F("RF24 Amp Pwr: RF24_PA_") + String(rf24AmpPowerNames[config->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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue