classC example
LoRaMacString.cpp@1:708d73c0e43c, 2018-05-29 (annotated)
- Committer:
- Wayne Roberts
- Date:
- Tue May 29 14:21:35 2018 -0700
- Revision:
- 1:708d73c0e43c
- Parent:
- 0:4b6e76c6608f
update to latest library version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wayne Roberts |
0:4b6e76c6608f | 1 | #include "LoRaMac1v1.h" |
Wayne Roberts |
0:4b6e76c6608f | 2 | #include "LoRaMacString.h" |
Wayne Roberts |
0:4b6e76c6608f | 3 | |
Wayne Roberts |
0:4b6e76c6608f | 4 | void |
Wayne Roberts |
0:4b6e76c6608f | 5 | Mlme_to_string(Mlme_t mlme, char* dst) |
Wayne Roberts |
0:4b6e76c6608f | 6 | { |
Wayne Roberts |
0:4b6e76c6608f | 7 | const char* ptr = NULL; |
Wayne Roberts |
0:4b6e76c6608f | 8 | |
Wayne Roberts |
0:4b6e76c6608f | 9 | switch (mlme) { |
Wayne Roberts |
0:4b6e76c6608f | 10 | case MLME_NONE: ptr = "NONE"; break; |
Wayne Roberts |
0:4b6e76c6608f | 11 | case MLME_LINK_CHECK: ptr = "LINK_CHECK"; break; |
Wayne Roberts |
0:4b6e76c6608f | 12 | case MLME_SWITCH_CLASS: ptr = "SWITCH_CLASS"; break; |
Wayne Roberts |
0:4b6e76c6608f | 13 | case MLME_PING_SLOT_INFO: ptr = "PING_SLOT_INFO"; break; |
Wayne Roberts |
0:4b6e76c6608f | 14 | case MLME_BEACON_TIMING: ptr = "BEACON_TIMING"; break; |
Wayne Roberts |
0:4b6e76c6608f | 15 | case MLME_BEACON_ACQUISITION: ptr = "BEACON_ACQUISITION"; break; |
Wayne Roberts |
0:4b6e76c6608f | 16 | case MLME_TIME_REQ: ptr = "TIME_REQ"; break; |
Wayne Roberts |
0:4b6e76c6608f | 17 | case MLME_BEACON: ptr = "BEACON"; break; |
Wayne Roberts |
0:4b6e76c6608f | 18 | case MLME_TXCW: ptr = "TXCW"; break; |
Wayne Roberts |
0:4b6e76c6608f | 19 | #ifdef LORAWAN_JOIN_EUI |
Wayne Roberts |
0:4b6e76c6608f | 20 | case MLME_JOIN: ptr = "JOIN"; break; |
Wayne Roberts |
0:4b6e76c6608f | 21 | case MLME_REJOIN_0: ptr = "REJOIN_0"; break; |
Wayne Roberts |
0:4b6e76c6608f | 22 | case MLME_REJOIN_1: ptr = "REJOIN_1"; break; |
Wayne Roberts |
0:4b6e76c6608f | 23 | case MLME_REJOIN_2: ptr = "REJOIN_2"; break; |
Wayne Roberts |
0:4b6e76c6608f | 24 | #endif |
Wayne Roberts |
0:4b6e76c6608f | 25 | } |
Wayne Roberts |
0:4b6e76c6608f | 26 | |
Wayne Roberts |
0:4b6e76c6608f | 27 | if (ptr != NULL) |
Wayne Roberts |
0:4b6e76c6608f | 28 | strcpy(dst, ptr); |
Wayne Roberts |
0:4b6e76c6608f | 29 | } |
Wayne Roberts |
0:4b6e76c6608f | 30 | |
Wayne Roberts |
0:4b6e76c6608f | 31 | void |
Wayne Roberts |
0:4b6e76c6608f | 32 | LoRaMacEventInfoStatus_to_string(LoRaMacEventInfoStatus_t status, char* dst) |
Wayne Roberts |
0:4b6e76c6608f | 33 | { |
Wayne Roberts |
0:4b6e76c6608f | 34 | const char* ptr = NULL; |
Wayne Roberts |
0:4b6e76c6608f | 35 | |
Wayne Roberts |
0:4b6e76c6608f | 36 | switch (status) { |
Wayne Roberts |
0:4b6e76c6608f | 37 | |
Wayne Roberts |
0:4b6e76c6608f | 38 | case LORAMAC_EVENT_INFO_STATUS_OK: ptr = "OK"; break; |
Wayne Roberts |
0:4b6e76c6608f | 39 | case LORAMAC_EVENT_INFO_STATUS_INCR_FAIL: ptr = "INCR_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 40 | case LORAMAC_EVENT_INFO_STATUS_MLMEREQ: ptr = "MLMEREQ"; break; |
Wayne Roberts |
0:4b6e76c6608f | 41 | case LORAMAC_EVENT_INFO_STATUS_UNKNOWN_MTYPE: ptr = "UNKNOWN_MTYPE"; break; |
Wayne Roberts |
0:4b6e76c6608f | 42 | case LORAMAC_EVENT_INFO_STATUS_SENDING: ptr = "SENDING"; break; |
Wayne Roberts |
0:4b6e76c6608f | 43 | case LORAMAC_EVENT_INFO_STATUS_MCPSREQ: ptr = "MCPSREQ"; break; |
Wayne Roberts |
0:4b6e76c6608f | 44 | case LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT: ptr = "TX_TIMEOUT"; break; |
Wayne Roberts |
0:4b6e76c6608f | 45 | case LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT: ptr = "RX2_TIMEOUT"; break; |
Wayne Roberts |
0:4b6e76c6608f | 46 | case LORAMAC_EVENT_INFO_STATUS_RX2_ERROR: ptr = "RX2_ERROR"; break; |
Wayne Roberts |
0:4b6e76c6608f | 47 | #ifdef LORAWAN_JOIN_EUI |
Wayne Roberts |
0:4b6e76c6608f | 48 | case LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL: ptr = "JOIN_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 49 | case LORAMAC_EVENT_INFO_STATUS_JOINNONCE: ptr = "JOINNONCE"; break; |
Wayne Roberts |
0:4b6e76c6608f | 50 | #endif |
Wayne Roberts |
0:4b6e76c6608f | 51 | case LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED: ptr = "DOWNLINK_REPEATED"; break; |
Wayne Roberts |
0:4b6e76c6608f | 52 | case LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR: ptr = "TX_DR_PAYLOAD_SIZE_ERROR"; break; |
Wayne Roberts |
0:4b6e76c6608f | 53 | case LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS: ptr = "DOWNLINK_TOO_MANY_FRAMES_LOSS"; break; |
Wayne Roberts |
0:4b6e76c6608f | 54 | case LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL: ptr = "ADDRESS_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 55 | case LORAMAC_EVENT_INFO_STATUS_MIC_FAIL: ptr = "MIC_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 56 | case LORAMAC_EVENT_INFO_STATUS_MULTICAST_FAIL: ptr = "MULTICAST_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 57 | case LORAMAC_EVENT_INFO_STATUS_BEACON_LOCKED: ptr = "BEACON_LOCKED"; break; |
Wayne Roberts |
0:4b6e76c6608f | 58 | case LORAMAC_EVENT_INFO_STATUS_BEACON_LOST: ptr = "BEACON_LOST"; break; |
Wayne Roberts |
0:4b6e76c6608f | 59 | case LORAMAC_EVENT_INFO_STATUS_BEACON_NOT_FOUND: ptr = "BEACON_NOT_FOUND"; break; |
Wayne Roberts |
0:4b6e76c6608f | 60 | case LORAMAC_EVENT_INFO_STATUS_NO_APPKEY: ptr = "NO_APPKEY"; break; |
Wayne Roberts |
0:4b6e76c6608f | 61 | case LORAMAC_EVENT_INFO_BAD_RX_DELAY: ptr = "BAD_RX_DELAY"; break; |
Wayne Roberts |
0:4b6e76c6608f | 62 | case LORAMAC_EVENT_INFO_STATUS_CHANNEL_BUSY: ptr = "CHANNEL_BUSY"; break; |
Wayne Roberts |
0:4b6e76c6608f | 63 | } |
Wayne Roberts |
0:4b6e76c6608f | 64 | |
Wayne Roberts |
0:4b6e76c6608f | 65 | if (ptr != NULL) |
Wayne Roberts |
0:4b6e76c6608f | 66 | strcpy(dst, ptr); |
Wayne Roberts |
0:4b6e76c6608f | 67 | } |
Wayne Roberts |
0:4b6e76c6608f | 68 | |
Wayne Roberts |
0:4b6e76c6608f | 69 | void |
Wayne Roberts |
0:4b6e76c6608f | 70 | LoRaMacStatus_to_string(LoRaMacStatus_t status, char* dst) |
Wayne Roberts |
0:4b6e76c6608f | 71 | { |
Wayne Roberts |
0:4b6e76c6608f | 72 | const char* ptr = NULL; |
Wayne Roberts |
0:4b6e76c6608f | 73 | |
Wayne Roberts |
0:4b6e76c6608f | 74 | switch (status) { |
Wayne Roberts |
0:4b6e76c6608f | 75 | case LORAMAC_STATUS_OK: ptr = "OK"; break; |
Wayne Roberts |
0:4b6e76c6608f | 76 | case LORAMAC_STATUS_LSE: ptr = "LSE"; break; |
Wayne Roberts |
0:4b6e76c6608f | 77 | case LORAMAC_STATUS_WAITING_FOR_TXSTART: ptr = "WAIT_TXSTART"; break; |
Wayne Roberts |
0:4b6e76c6608f | 78 | case LORAMAC_STATUS_WAITING_FOR_TXDONE: ptr = "WAIT_TXDONE"; break; |
Wayne Roberts |
0:4b6e76c6608f | 79 | case LORAMAC_STATUS_WAITING_FOR_RX1: ptr = "WAIT_RX1"; break; |
Wayne Roberts |
0:4b6e76c6608f | 80 | case LORAMAC_STATUS_WAITING_FOR_RX2: ptr = "WAIT_RX2"; break; |
Wayne Roberts |
0:4b6e76c6608f | 81 | case LORAMAC_STATUS_BUSY_UPCONF: ptr = "BUSY_UPCONF"; break; |
Wayne Roberts |
0:4b6e76c6608f | 82 | case LORAMAC_STATUS_SERVICE_UNKNOWN: ptr = "SERVICE_UNKNOWN"; break; |
Wayne Roberts |
0:4b6e76c6608f | 83 | case LORAMAC_STATUS_PARAMETER_INVALID: ptr = "PARAMETER_INVALID"; break; |
Wayne Roberts |
0:4b6e76c6608f | 84 | case LORAMAC_STATUS_FREQUENCY_INVALID: ptr = "FREQUENCY_INVALID"; break; |
Wayne Roberts |
0:4b6e76c6608f | 85 | case LORAMAC_STATUS_DATARATE_INVALID: ptr = "DATARATE_INVALID"; break; |
Wayne Roberts |
0:4b6e76c6608f | 86 | case LORAMAC_STATUS_FREQ_AND_DR_INVALID: ptr = "FREQ_AND_DR_INVALID"; break; |
Wayne Roberts |
0:4b6e76c6608f | 87 | #ifdef LORAWAN_JOIN_EUI |
Wayne Roberts |
0:4b6e76c6608f | 88 | case LORAMAC_STATUS_NO_NETWORK_JOINED: ptr = "NO_NETWORK_JOINED"; break; |
Wayne Roberts |
0:4b6e76c6608f | 89 | #endif |
Wayne Roberts |
0:4b6e76c6608f | 90 | case LORAMAC_STATUS_LENGTH_ERROR: ptr = "LENGTH_ERROR"; break; |
Wayne Roberts |
0:4b6e76c6608f | 91 | case LORAMAC_STATUS_MAC_CMD_LENGTH_ERROR: ptr = "MAC_CMD_LENGTH_ERROR"; break; |
Wayne Roberts |
0:4b6e76c6608f | 92 | case LORAMAC_STATUS_DEVICE_OFF: ptr = "DEVICE_OFF"; break; |
Wayne Roberts |
0:4b6e76c6608f | 93 | case LORAMAC_STATUS_EEPROM_FAIL: ptr = "EEPROM_FAIL"; break; |
Wayne Roberts |
0:4b6e76c6608f | 94 | } |
Wayne Roberts |
0:4b6e76c6608f | 95 | if (ptr != NULL) |
Wayne Roberts |
0:4b6e76c6608f | 96 | strcpy(dst, ptr); |
Wayne Roberts |
0:4b6e76c6608f | 97 | } |