classC example

Dependencies:   lorawan1v1

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?

UserRevisionLine numberNew 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 }