Browse Source

clean up pull request

pull/804/head
lumapu 2 years ago
parent
commit
3ed76324d5
  1. 11
      src/hm/hmInverter.h
  2. 91
      src/hm/hmPayload.h
  3. 73
      src/hm/miPayload.h
  4. 90
      src/utils/dbg.h

11
src/hm/hmInverter.h

@ -143,10 +143,10 @@ class Inverter {
template <typename T>
void enqueCommand(uint8_t cmd) {
_commandQueue.push(std::make_shared<T>(cmd));
DPRINTHEAD(DBG_INFO, id);
//DBGPRINTLN(F("enqueuedCmd: 0x") + String(cmd, HEX));
DBGPRINT_TXT(TXT_ENQUCMD);
DBGHEXLN(cmd);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(id));
DBGPRINT(F(") enqueCommand: 0x"));
DHEX(cmd);
}
void setQueuedCmdFinished() {
@ -157,8 +157,7 @@ class Inverter {
}
void clearCmdQueue() {
DPRINTHEAD(DBG_INFO, id);
DBGPRINTLN_TXT(TXT_CLRQUE);
DPRINTLN(DBG_INFO, F("clearCmdQueue"));
while (!_commandQueue.empty()) {
// Will destroy CommandAbstract Class Object (?)
_commandQueue.pop();

91
src/hm/hmPayload.h

@ -117,13 +117,11 @@ class HmPayload {
iv->setQueuedCmdFinished(); // command failed
if (mSerialDebug)
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_TIMEOUT);
//DBGPRINTLN(F("enqueued cmd failed/timeout"));
DPRINTLN(DBG_INFO, F("enqueued cmd failed/timeout"));
if (mSerialDebug) {
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("no Payload received! (retransmits: "));
DBGPRINT_TXT(TXT_NOPYLD);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") no Payload received! (retransmits: "));
DBGPRINT(String(mPayload[iv->id].retransmits));
DBGPRINTLN(F(")"));
}
@ -136,17 +134,17 @@ class HmPayload {
yield();
if (mSerialDebug) {
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("Requesting Inv SN "));
DBGPRINT_TXT(TXT_INVSERNO);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") Requesting Inv SN "));
DBGPRINTLN(String(iv->config->serial.u64, HEX));
}
if (iv->getDevControlRequest()) {
if (mSerialDebug) {
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("Devcontrol request 0x"));
DBGPRINT_TXT(TXT_DEVCTRL);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") Devcontrol request 0x"));
DBGPRINT(String(iv->devControlCmd, HEX));
DBGPRINT(F(" power limit "));
DBGPRINTLN(String(iv->powerLimit[0]));
@ -157,9 +155,9 @@ class HmPayload {
//iv->enqueCommand<InfoCommand>(SystemConfigPara); // read back power limit
} else {
uint8_t cmd = iv->getQueuedCmd();
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("prepareDevInformCmd 0x"));
DBGPRINT_TXT(TXT_GDEVINF);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") prepareDevInformCmd 0x"));
DBGPRINTLN(String(cmd, HEX));
mSys->Radio.prepareDevInformCmd(iv->radioId.u64, cmd, mPayload[iv->id].ts, iv->alarmMesIndex, false);
mPayload[iv->id].txCmd = cmd;
@ -202,8 +200,9 @@ class HmPayload {
mApp->setMqttPowerLimitAck(iv);
else
ok = false;
DPRINTHEAD(DBG_INFO,iv->id);
DBGPRINT(F("has "));
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(" has "));
if(!ok) DBGPRINT(F("not "));
DBGPRINT(F("accepted power limit set point "));
DBGPRINT(String(iv->powerLimit[0]));
@ -241,14 +240,12 @@ class HmPayload {
mPayload[iv->id].retransmits++;
if (iv->devControlCmd == Restart || iv->devControlCmd == CleanState_LockAndAlarm) {
// This is required to prevent retransmissions without answer.
//DPRINTLN(DBG_INFO, F("Prevent retransmit on Restart / CleanState_LockAndAlarm..."));
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_PREVSND);
DPRINTLN(DBG_INFO, F("Prevent retransmit on Restart / CleanState_LockAndAlarm..."));
mPayload[iv->id].retransmits = mMaxRetrans;
} else if(iv->devControlCmd == ActivePowerContr) {
//DPRINTLN(DBG_INFO, F("retransmit power limit"));
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_RESPLIM);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DPRINTLN(DBG_INFO, F(") retransmit power limit"));
mSys->Radio.sendControlPacket(iv->radioId.u64, iv->devControlCmd, iv->powerLimit, true);
} else {
if(false == mPayload[iv->id].gotFragment) {
@ -258,18 +255,18 @@ class HmPayload {
DPRINTLN(DBG_INFO, F("(#") + String(iv->id) + F(") prepareDevInformCmd 0x") + String(mPayload[iv->id].txCmd, HEX));
mSys->Radio.prepareDevInformCmd(iv->radioId.u64, mPayload[iv->id].txCmd, mPayload[iv->id].ts, iv->alarmMesIndex, true);
*/
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_NOPYLD2);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINTLN(F(") nothing received"));
mPayload[iv->id].retransmits = mMaxRetrans;
} else {
for (uint8_t i = 0; i < (mPayload[iv->id].maxPackId - 1); i++) {
if (mPayload[iv->id].len[i] == 0) {
DPRINTHEAD(DBG_WARN,iv->id);
DBGPRINT(F("Frame "));
DPRINT(DBG_WARN, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") Frame "));
DBGPRINT(String(i + 1));
//DBGPRINTLN(F(" missing: Request Retransmit"));
DBGPRINT_TXT(TXT_REQRETR);
DBGPRINT(F("\r\n"));
DBGPRINTLN(F(" missing: Request Retransmit"));
mSys->Radio.sendCmdPacket(iv->radioId.u64, TX_REQ_INFO, (SINGLE_FRAME + i), true);
break; // only request retransmit one frame per loop
}
@ -282,29 +279,21 @@ class HmPayload {
} else if(!crcPass && pyldComplete) { // crc error on complete Payload
if (mPayload[iv->id].retransmits < mMaxRetrans) {
mPayload[iv->id].retransmits++;
DPRINTHEAD(DBG_WARN,iv->id);
DBGPRINTLN_TXT(TXT_CRCERR);
DPRINTLN(DBG_WARN, F("CRC Error: Request Complete Retransmit"));
mPayload[iv->id].txCmd = iv->getQueuedCmd();
DPRINTHEAD(DBG_INFO,iv->id);
DBGPRINT_TXT(TXT_GDEVINF);
//DBGPRINTLN(String(mPayload[iv->id].txCmd, HEX));
DBGHEXLN(mPayload[iv->id].txCmd);
DPRINT(DBG_INFO, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINT(F(") prepareDevInformCmd 0x"));
DHEXLN(mPayload[iv->id].txCmd);
mSys->Radio.prepareDevInformCmd(iv->radioId.u64, mPayload[iv->id].txCmd, mPayload[iv->id].ts, iv->alarmMesIndex, true);
}
} else { // payload complete
DPRINT(DBG_INFO, F("procPyld: cmd: 0x"));
//DBGPRINTLN(String(mPayload[iv->id].txCmd, HEX));
//DPRINT_INIT(DBG_INFO,TXT_PPYDCMD);
DBGHEXLN(mPayload[iv->id].txCmd);
DHEXLN(mPayload[iv->id].txCmd);
DPRINT(DBG_INFO, F("procPyld: txid: 0x"));
//DPRINT_INIT(DBG_INFO,TXT_PPYDTXI);
//DBGPRINTLN(String(mPayload[iv->id].txId, HEX));
DBGHEXLN(mPayload[iv->id].txId);
//DPRINT_INIT(DBG_DEBUG,TXT_PPYDMAX);
//DBGPRINTLN(String(mPayload[iv->id].maxPackId));
DPRINT(DBG_DEBUG, F("procPyld: max: ") + String(mPayload[iv->id].maxPackId));
DHEXLN(mPayload[iv->id].txId);
DPRINTLN(DBG_DEBUG, F("procPyld: max: "));
DBGPRINT(String(mPayload[iv->id].maxPackId));
record_t<> *rec = iv->getRecordStruct(mPayload[iv->id].txCmd); // choose the parser
mPayload[iv->id].complete = true;
@ -328,7 +317,7 @@ class HmPayload {
}
if (NULL == rec) {
DPRINTLN_TXT(DBG_ERROR, TXT_NULLREC);
DPRINTLN(DBG_ERROR, F("record is NULL!"));
} else if ((rec->pyldLen == payloadLen) || (0 == rec->pyldLen)) {
if (mPayload[iv->id].txId == (TX_REQ_INFO + ALL_FRAMES))
mStat->rxSuccess++;
@ -381,8 +370,6 @@ class HmPayload {
bool build(uint8_t id, bool *complete) {
DPRINTLN(DBG_VERBOSE, F("build"));
//DPRINTLN_TXT(DBG_VERBOSE, TXT_BUILD);
uint16_t crc = 0xffff, crcRcv = 0x0000;
if (mPayload[id].maxPackId > MAX_PAYLOAD_ENTRIES)
mPayload[id].maxPackId = MAX_PAYLOAD_ENTRIES;
@ -411,8 +398,8 @@ class HmPayload {
}
void reset(uint8_t id) {
DPRINTHEAD(DBG_INFO,id);
DBGPRINTLN_TXT(TXT_RSTPYLD);
DPRINT(DBG_INFO, "resetPayload: id: ");
DBGPRINTLN(String(id));
memset(mPayload[id].len, 0, MAX_PAYLOAD_ENTRIES);
mPayload[id].txCmd = 0;
mPayload[id].gotFragment = false;

73
src/hm/miPayload.h

@ -95,12 +95,10 @@ class MiPayload {
iv->setQueuedCmdFinished(); // command failed
if (mSerialDebug)
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINTLN(F("enqueued cmd failed/timeout"));
DBGPRINTLN_TXT(TXT_TIMEOUT);
DBGPRINTLN(F("enqueued cmd failed/timeout"));
if (mSerialDebug) {
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("no Payload received! (retransmits: "));
DBGPRINT_TXT(TXT_NOPYLD);
DBGPRINT(F("no Payload received! (retransmits: "));
DBGPRINT(String(mPayload[iv->id].retransmits));
DBGPRINTLN(F(")"));
}
@ -114,16 +112,14 @@ class MiPayload {
yield();
if (mSerialDebug){
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("Requesting Inv SN "));
DBGPRINT_TXT(TXT_INVSERNO);
DBGPRINT(F("Requesting Inv SN "));
DBGPRINTLN(String(iv->config->serial.u64, HEX));
}
if (iv->getDevControlRequest()) {
if (mSerialDebug) {
DPRINTHEAD(DBG_INFO, iv->id);
//DBGPRINT(F("Devcontrol request 0x"));
DBGPRINT_TXT(TXT_DEVCTRL);
DBGPRINT(F("Devcontrol request 0x"));
DHEX(iv->devControlCmd);
DBGPRINT(F(" power limit "));
DBGPRINTLN(String(iv->powerLimit[0]));
@ -137,8 +133,8 @@ class MiPayload {
} else {
uint8_t cmd = iv->getQueuedCmd();
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINT_TXT(TXT_GDEVINF);
DBGHEXLN(cmd);
DBGPRINT(F("prepareDevInformCmd 0x"));
DHEXLN(cmd);
uint8_t cmd2 = cmd;
if ( cmd == SystemConfigPara ) { //0x05 for HM-types
if (!mPayload[iv->id].limitrequested) { // only do once at startup
@ -149,7 +145,7 @@ class MiPayload {
}
}
if (cmd == 0x1 || cmd == SystemConfigPara ) { //0x1 and 0x05 for HM-types
if (cmd == 0x01 || cmd == SystemConfigPara ) { //0x1 and 0x05 for HM-types
cmd = 0x0f; // for MI, these seem to make part of the Polling the device software and hardware version number command
cmd2 = cmd == SystemConfigPara ? 0x01 : 0x00; //perhaps we can only try to get second frame?
mSys->Radio.sendCmdPacket(iv->radioId.u64, cmd, cmd2, false);
@ -270,20 +266,19 @@ const byteAssign_t InfoAssignment[] = {
}
} else if ( p->packet[0] == (TX_REQ_INFO + ALL_FRAMES) // response from get information command
|| p->packet[0] == 0xB6 && mPayload[iv->id].txCmd != 0x36) { // strange short response from MI-1500 3rd gen; might be missleading!
|| (p->packet[0] == 0xB6 && mPayload[iv->id].txCmd != 0x36)) { // strange short response from MI-1500 3rd gen; might be missleading!
// atm, we just do nothing else than print out what we got...
// for decoding see xls- Data collection instructions - #147ff
//mPayload[iv->id].txId = p->packet[0];
//DPRINTLN(DBG_DEBUG, F("Response from info request received"));
DBGPRINTLN_TXT(TXT_RXDIREQ);
DPRINTLN(DBG_DEBUG, F("Response from info request received"));
uint8_t *pid = &p->packet[9];
if (*pid == 0x00) {
//DPRINT(DBG_DEBUG, F("fragment number zero received"));
DBGPRINTLN_TXT(TXT_FRAGM0);
DPRINT(DBG_DEBUG, F("fragment number zero received"));
iv->setQueuedCmdFinished();
} else if (p->packet[9] == 0x81) { // might need some additional check, as this is only ment for short answers!
DPRINTHEAD(DBG_WARN, iv->id);
DBGPRINTLN_TXT(TXT_NO2NDG);
DPRINT(DBG_WARN, F("(#"));
DBGPRINT(String(iv->id));
DBGPRINTLN(F(") seems to use 3rd gen. protocol - switching ivGen!"));
iv->ivGen = IV_HM;
iv->setQueuedCmdFinished();
iv->clearCmdQueue();
@ -307,8 +302,7 @@ const byteAssign_t InfoAssignment[] = {
} else if (p->packet[0] == (TX_REQ_DEVCONTROL + ALL_FRAMES ) // response from dev control command
|| p->packet[0] == (TX_REQ_DEVCONTROL + ALL_FRAMES -1)) { // response from DRED instruction
DPRINTHEAD(DBG_DEBUG, iv->id);
DBGPRINTLN_TXT(TXT_RXCTRREQ);
//DBGPRINTLN(F("Response from devcontrol request received"));
DBGPRINTLN(F("Response from devcontrol request received"));
mPayload[iv->id].txId = p->packet[0];
iv->clearDevControlRequest();
@ -326,14 +320,12 @@ const byteAssign_t InfoAssignment[] = {
}
iv->devControlCmd = Init;
} else { // some other response; copied from hmPayload:process; might not be correct to do that here!!!
//DPRINTLN(DBG_INFO, F("procPyld: cmd: 0x") + String(mPayload[iv->id].txCmd, HEX));
//DPRINTLN(DBG_INFO, F("procPyld: txid: 0x") + String(mPayload[iv->id].txId, HEX));
//DPRINTLN(DBG_DEBUG, F("procPyld: max: ") + String(mPayload[iv->id].maxPackId));
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINT_TXT(TXT_PPYDCMD);
DBGHEXLN(mPayload[iv->id].txCmd);
DBGPRINT_TXT(TXT_PPYDTXI);
DBGHEXLN(mPayload[iv->id].txId);
DPRINT(DBG_INFO, F("procPyld: cmd: 0x"));
DHEXLN(mPayload[iv->id].txCmd);
DPRINT(DBG_INFO, F("procPyld: txid: 0x"));
DHEXLN(mPayload[iv->id].txId);
//DPRINT(DBG_DEBUG, F("procPyld: max: "));
//DBGPRINTLN(String(mPayload[iv->id].maxPackId));
record_t<> *rec = iv->getRecordStruct(mPayload[iv->id].txCmd); // choose the parser
mPayload[iv->id].complete = true;
@ -355,7 +347,7 @@ const byteAssign_t InfoAssignment[] = {
}
if (NULL == rec) {
DPRINTLN_TXT(DBG_ERROR, TXT_NULLREC);
DPRINTLN(DBG_ERROR, F("record is NULL!"));
} else if ((rec->pyldLen == payloadLen) || (0 == rec->pyldLen)) {
if (mPayload[iv->id].txId == (TX_REQ_INFO + ALL_FRAMES))
mStat->rxSuccess++;
@ -429,11 +421,11 @@ const byteAssign_t InfoAssignment[] = {
if (iv->devControlCmd == Restart || iv->devControlCmd == CleanState_LockAndAlarm) {
// This is required to prevent retransmissions without answer.
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_PREVSND);
DBGPRINTLN(F("Prevent retransmit on Restart / CleanState_LockAndAlarm..."));
mPayload[iv->id].retransmits = mMaxRetrans;
} else if(iv->devControlCmd == ActivePowerContr) {
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_RESPLIM);
DBGPRINTLN(F("retransmit power limit"));
mSys->Radio.sendControlPacket(iv->radioId.u64, iv->devControlCmd, iv->powerLimit, true, false);
} else {
uint8_t cmd = mPayload[iv->id].txCmd;
@ -441,7 +433,7 @@ const byteAssign_t InfoAssignment[] = {
mPayload[iv->id].retransmits++;
if( !mPayload[iv->id].gotFragment ) {
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINTLN_TXT(TXT_NOPYLD2);
DBGPRINTLN(F("nothing received"));
mPayload[iv->id].retransmits = mMaxRetrans;
} else if ( cmd == 0x0f ) {
//hard/firmware request
@ -477,11 +469,10 @@ const byteAssign_t InfoAssignment[] = {
//mPayload[iv->id].skipfirstrepeat = 0;
} else {
DBGPRINT(F("sth."));
DBGPRINT_TXT(TXT_REQRETR);
DBGPRINT(F(" missing: Request Retransmit"));
}
//DBGPRINTLN(String(cmd, HEX));
DBGPRINT(F(" 0x"));
DBGHEXLN(cmd);
DHEXLN(cmd);
//mSys->Radio.sendCmdPacket(iv->radioId.u64, cmd, cmd, true);
mSys->Radio.prepareDevInformCmd(iv->radioId.u64, cmd, mPayload[iv->id].ts, iv->alarmMesIndex, true, cmd);
mPayload[iv->id].txCmd = cmd;
@ -494,14 +485,12 @@ const byteAssign_t InfoAssignment[] = {
if (mPayload[iv->id].retransmits < mMaxRetrans) {
mPayload[iv->id].retransmits++;
DPRINTHEAD(DBG_WARN, iv->id);
DBGPRINTLN_TXT(TXT_CRCERR);
//DBGPRINTLN(F("CRC Error: Request Complete Retransmit"));
DBGPRINTLN(F("CRC Error: Request Complete Retransmit"));
mPayload[iv->id].txCmd = iv->getQueuedCmd();
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINT_TXT(TXT_GDEVINF);
//DBGPRINTLN(F("prepareDevInformCmd 0x") + String(mPayload[iv->id].txCmd, HEX));
DBGPRINTLN(String(mPayload[iv->id].txCmd, HEX));
DBGPRINT(F("prepareDevInformCmd 0x"));
DHEXLN(mPayload[iv->id].txCmd);
mSys->Radio.prepareDevInformCmd(iv->radioId.u64, mPayload[iv->id].txCmd, mPayload[iv->id].ts, iv->alarmMesIndex, true);
}
}
@ -617,7 +606,7 @@ const byteAssign_t InfoAssignment[] = {
iv->alarmMesIndex = rec->record[iv->getPosByChFld(0, FLD_EVT, rec)]; // seems there's no status per channel in 3rd gen. models?!?
DPRINTHEAD(DBG_INFO, iv->id);
DBGPRINT_TXT(TXT_INCRALM);
DBGPRINT(F("alarm ID incremented to "));
DBGPRINTLN(String(iv->alarmMesIndex));
}
/*if(AlarmData == mPayload[iv->id].txCmd) {
@ -796,7 +785,7 @@ const byteAssign_t InfoAssignment[] = {
void reset(uint8_t id, bool clrSts = false) {
DPRINTHEAD(DBG_INFO, id);
DBGPRINTLN_TXT(TXT_RSTPYLD);
DBGPRINTLN(F("resetPayload"));
memset(mPayload[id].len, 0, MAX_PAYLOAD_ENTRIES);
mPayload[id].gotFragment = false;
/*mPayload[id].maxPackId = MAX_PAYLOAD_ENTRIES;

90
src/utils/dbg.h

@ -61,7 +61,7 @@
}
}
inline void DBGHEXLN(uint8_t b) {
inline void DHEXLN(uint8_t b) {
DHEX(b);
DBGPRINT(F("\r\n"));
}
@ -151,16 +151,6 @@
}\
})
#define DPRINT_INIT(level,text) ({\
DPRINT(level,F(""));\
DBGPRINT_TXT(text);\
})
#define DPRINTLN_TXT(level,text) ({\
DPRINT(level,F(""));\
DBGPRINTLN_TXT(text);\
})
#define DPRINTHEAD(level, id) ({\
DPRINT(level, F("(#")); DBGPRINT(String(id)); DBGPRINT(F(") "));\
})
@ -176,84 +166,6 @@
})
// available text variables
#define TXT_ENQUCMD 6
#define TXT_INVSERNO 2
#define TXT_REQRETR 7
#define TXT_PPYDMAX 10
#define TXT_NOPYLD 1
#define TXT_GDEVINF 3
#define TXT_DEVCTRL 4
#define TXT_INCRALM 5
#define TXT_PPYDCMD 8
#define TXT_PPYDTXI 9
/* DBGPRINT(F(" power limit "));
DPRINTLN(DBG_DEBUG, F("Response from info request received"));
DBGPRINTLN(F("Response from devcontrol request received"));
DBGPRINT(F("has accepted power limit set point "));
DBGPRINT(F(" with PowerLimitControl "));
DPRINT(DBG_INFO, F("Payload (") + String(payloadLen) + "): ");
DPRINTLN(DBG_ERROR, F("plausibility check failed, expected ") + String(rec->pyldLen) + F(" bytes"));
DPRINTLN(DBG_VERBOSE, F("incomlete, txCmd is 0x") + String(txCmd, HEX)); // + F("cmd is 0x") + String(cmd, HEX));
*/
#define DBGPRINT_TXT(text) ({\
switch(text) {\
case TXT_NOPYLD: DBGPRINT(F("no Payload received! (retransmits: ")); break; \
case TXT_INVSERNO: DBGPRINT(F("Requesting Inv SN ")); break; \
case TXT_GDEVINF: DBGPRINT(F("prepareDevInformCmd 0x")); break; \
case TXT_DEVCTRL: DBGPRINT(F("Devcontrol request 0x")); break; \
case TXT_INCRALM: DBGPRINT(F("alarm ID incremented to ")); break; \
case TXT_ENQUCMD: DBGPRINT(F("enqueuedCmd: 0x")); break; \
case TXT_REQRETR: DBGPRINT(F(" missing: Request Retransmit")); break; \
case TXT_PPYDCMD: DBGPRINT(F("procPyld: cmd: 0x")); break; \
case TXT_PPYDTXI: DBGPRINT(F("procPyld: txid: 0x")); break; \
case TXT_PPYDMAX: DBGPRINT(F("procPyld: max: ")); break; \
default: ; break; \
}\
})
// available text variables w. lf
#define TXT_BUILD 1
#define TXT_TIMEOUT 2
#define TXT_NOPYLD2 3
#define TXT_CRCERR 4
#define TXT_RSTPYLD 5
#define TXT_RXDIREQ 6
#define TXT_CLRQUE 7
#define TXT_RXCTRREQ 8
#define TXT_NULLREC 9
#define TXT_PREVSND 10
#define TXT_RESPLIM 11
#define TXT_FRAGM0 20
#define TXT_NO2NDG 100
#define DBGPRINTLN_TXT(text) ({\
switch(text) {\
case TXT_TIMEOUT: DBGPRINTLN(F("enqueued cmd failed/timeout")); break; \
case TXT_BUILD: DBGPRINTLN(F("build")); break; \
case TXT_NOPYLD2: DBGPRINTLN(F("nothing received")); break; \
case TXT_CRCERR: DBGPRINTLN(F("CRC Error: Request Complete Retransmit")); break; \
case TXT_RSTPYLD: DBGPRINTLN(F("resetPayload"));break; \
case TXT_RXDIREQ: DBGPRINTLN(F("Response from info request received")); break; \
case TXT_CLRQUE: DBGPRINTLN(F("clearCmdQueue")); break; \
case TXT_RXCTRREQ: DBGPRINTLN(F("Response from devcontrol request received")); break; \
case TXT_NULLREC: DBGPRINTLN(F("record is NULL!")); break; \
case TXT_PREVSND: DBGPRINTLN(F("Prevent retransmit on Restart / CleanState_LockAndAlarm...")); break; \
case TXT_RESPLIM: DBGPRINTLN(F("retransmit power limit")); break; \
case TXT_FRAGM0: DBGPRINTLN(F("fragment number zero received")); break; \
case TXT_NO2NDG: DBGPRINTLN(F("seems to use 3rd gen. protocol - switching ivGen!")); break; \
default: ; break; \
}\
})
/*class ahoyLog {
public:
ahoyLog() {}

Loading…
Cancel
Save