Skip to content

Commit

Permalink
lorawan.cpp: removed buggy mac_decode()
Browse files Browse the repository at this point in the history
  • Loading branch information
cyberman54 committed Apr 12, 2021
1 parent 36363ee commit 9e586ec
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 94 deletions.
36 changes: 0 additions & 36 deletions include/lorawan.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,42 +45,6 @@ const char *getBwName(rps_t rps);
const char *getCrName(rps_t rps);

#if (VERBOSE)

// a table for storage of LORAWAN MAC commands
typedef struct {
const uint8_t cid;
const char cmdname[20];
const uint8_t params;
} mac_t;

// table of LORAWAN MAC messages sent by the network to the device
// format: CDI, Command (max 19 chars), #parameters (bytes)
// source: LoRaWAN 1.1 Specification (October 11, 2017)
static const mac_t MACdn_table[] = {
{0x01, "ResetConf", 1}, {0x02, "LinkCheckAns", 2},
{0x03, "LinkADRReq", 4}, {0x04, "DutyCycleReq", 1},
{0x05, "RXParamSetupReq", 4}, {0x06, "DevStatusReq", 0},
{0x07, "NewChannelReq", 5}, {0x08, "RxTimingSetupReq", 1},
{0x09, "TxParamSetupReq", 1}, {0x0A, "DlChannelReq", 4},
{0x0B, "RekeyConf", 1}, {0x0C, "ADRParamSetupReq", 1},
{0x0D, "DeviceTimeAns", 5}, {0x0E, "ForceRejoinReq", 2},
{0x0F, "RejoinParamSetupReq", 1}};

static const uint8_t MACdn_tSize = sizeof(MACdn_table) / sizeof(MACdn_table[0]);

// table of LORAWAN MAC messages sent by the device to the network
static const mac_t MACup_table[] = {
{0x01, "ResetInd", 1}, {0x02, "LinkCheckReq", 0},
{0x03, "LinkADRAns", 1}, {0x04, "DutyCycleAns", 0},
{0x05, "RXParamSetupAns", 1}, {0x06, "DevStatusAns", 2},
{0x07, "NewChannelAns", 1}, {0x08, "RxTimingSetupAns", 0},
{0x09, "TxParamSetupAns", 0}, {0x0A, "DlChannelAns", 1},
{0x0B, "RekeyInd", 1}, {0x0C, "ADRParamSetupAns", 0},
{0x0D, "DeviceTimeReq", 0}, {0x0F, "RejoinParamSetupAns", 1}};

static const uint8_t MACup_tSize = sizeof(MACup_table) / sizeof(MACup_table[0]);

void mac_decode(const uint8_t cmd[], const uint8_t cmdlen, bool is_down);
void showLoraKeys(void);
#endif // VERBOSE

Expand Down
58 changes: 0 additions & 58 deletions src/lorawan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -439,18 +439,6 @@ void myRxCallback(void *pUserData, uint8_t port, const uint8_t *pMsg,

switch (port) {

// decode mac messages if we want to print those
#if (VERBOSE)
case MACPORT:
// decode downlink MAC commands
if (LMIC.dataBeg)
mac_decode(LMIC.frame, LMIC.dataBeg, true);
// decode uplink MAC commands
if (LMIC.pendMacLen)
mac_decode(LMIC.pendMacData, LMIC.pendMacLen, false);
break; // do not fallthrough to default, we are done
#endif

// rcommand received -> call interpreter
case RCMDPORT:
rcommand(pMsg, nMsg);
Expand Down Expand Up @@ -483,52 +471,6 @@ const char *getCrName(rps_t rps) {
return t[getCr(rps)];
}

#if (VERBOSE)
// decode LORAWAN MAC message
// see
// https://github.com/mcci-catena/arduino-lmic/blob/master/doc/LoRaWAN-at-a-glance.pdf
void mac_decode(const uint8_t cmd[], const uint8_t cmdlen, bool is_down) {

if (!cmdlen)
return;

uint8_t foundcmd[cmdlen], cursor = 0;

// select CID resolve table
const mac_t *p;
p = is_down ? MACdn_table : MACup_table;
const int tablesize = is_down ? MACdn_tSize : MACup_tSize;
const String MACdir = is_down ? "-->" : "<--";

while (cursor < cmdlen) {

// get number of commands in CID table
int i = tablesize;

// lookup cmd in CID table
while (i--) {
if (cmd[cursor] == (p + i)->cid) { // lookup command in CID table
cursor++; // strip 1 byte CID
if ((cursor + (p + i)->params) <= cmdlen) {
memmove(foundcmd, cmd + cursor,
(p + i)->params); // strip opcode from cmd array
cursor += (p + i)->params;
ESP_LOGD(TAG, "%s %s", MACdir, (p + i)->cmdname);
} else
ESP_LOGD(TAG, "%s MAC command 0x%02X with missing parameter(s)",
MACdir, (p + i)->cid);
break; // command found -> exit table lookup loop
} // end of command validation
} // end of command table lookup loop
if (i < 0) { // command not found -> skip it
ESP_LOGD(TAG, "%s Unknown MAC command 0x%02X", MACdir, cmd[cursor]);
cursor++;
}
} // command parsing loop

} // mac_decode()
#endif // VERBOSE

// following code snippet was taken from
// https://github.com/JackGruber/ESP32-LMIC-DeepSleep-example/blob/master/src/main.cpp

Expand Down

0 comments on commit 9e586ec

Please sign in to comment.