A POC Code of doing ANCS with nrf51822-mKit. See README.txt for details.

Dependencies:   BLE_API mbed nRF51822

A sample code implementing ANCS client accessory with nRF51822-mKit. This is just a proof that this thing is indeed doable.

The code itself is complete mess. I'm not planing to furnish this, as the purpose (make sure it is doable) was achieved.

The next step possible step is (no timeline) 1. Implementing Gatt Client API in BLE API (forking?) 2. Do ANCS with that.

Please see README.txt for details.

Committer:
devsar
Date:
Tue Jun 03 04:25:33 2014 +0000
Revision:
0:1f985a7c0a8b
Working code!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
devsar 0:1f985a7c0a8b 1
devsar 0:1f985a7c0a8b 2 // Set error string based on error number for
devsar 0:1f985a7c0a8b 3 // convinience debugging purpose.
devsar 0:1f985a7c0a8b 4 // See: API Reference>S110>SofDevice Global Error Codes
devsar 0:1f985a7c0a8b 5 #include <stdint.h>
devsar 0:1f985a7c0a8b 6 #include <stdio.h>
devsar 0:1f985a7c0a8b 7
devsar 0:1f985a7c0a8b 8 #include "nRF51822n.h"
devsar 0:1f985a7c0a8b 9
devsar 0:1f985a7c0a8b 10 #define MAX_BUFFER 100
devsar 0:1f985a7c0a8b 11 char m_error_string[MAX_BUFFER];
devsar 0:1f985a7c0a8b 12 char m_event_string[MAX_BUFFER];
devsar 0:1f985a7c0a8b 13 char m_nrfevent_string[MAX_BUFFER];
devsar 0:1f985a7c0a8b 14 char m_ancs_string[MAX_BUFFER];
devsar 0:1f985a7c0a8b 15
devsar 0:1f985a7c0a8b 16
devsar 0:1f985a7c0a8b 17 char *get_error_unknown(uint32_t error_num) {
devsar 0:1f985a7c0a8b 18 snprintf(m_error_string, MAX_BUFFER, "Unknown");
devsar 0:1f985a7c0a8b 19 return m_error_string;
devsar 0:1f985a7c0a8b 20 }
devsar 0:1f985a7c0a8b 21
devsar 0:1f985a7c0a8b 22 // Global error base.
devsar 0:1f985a7c0a8b 23 char *get_error_global(uint32_t error_num) {
devsar 0:1f985a7c0a8b 24 if(error_num == NRF_ERROR_BASE_NUM + 0){
devsar 0:1f985a7c0a8b 25 snprintf(m_error_string, MAX_BUFFER, "Successful command. ");
devsar 0:1f985a7c0a8b 26 } else if(error_num == NRF_ERROR_BASE_NUM + 1){
devsar 0:1f985a7c0a8b 27 snprintf(m_error_string, MAX_BUFFER, "SVC handler is missing. ");
devsar 0:1f985a7c0a8b 28 } else if(error_num == NRF_ERROR_BASE_NUM + 2){
devsar 0:1f985a7c0a8b 29 snprintf(m_error_string, MAX_BUFFER, "SoftDevice has not been enabled. ");
devsar 0:1f985a7c0a8b 30 } else if(error_num == NRF_ERROR_BASE_NUM + 3){
devsar 0:1f985a7c0a8b 31 snprintf(m_error_string, MAX_BUFFER, "Internal Error. ");
devsar 0:1f985a7c0a8b 32 } else if(error_num == NRF_ERROR_BASE_NUM + 4){
devsar 0:1f985a7c0a8b 33 snprintf(m_error_string, MAX_BUFFER, "No Memory for operation. ");
devsar 0:1f985a7c0a8b 34 } else if(error_num == NRF_ERROR_BASE_NUM + 5){
devsar 0:1f985a7c0a8b 35 snprintf(m_error_string, MAX_BUFFER, "Not found. ");
devsar 0:1f985a7c0a8b 36 } else if(error_num == NRF_ERROR_BASE_NUM + 6){
devsar 0:1f985a7c0a8b 37 snprintf(m_error_string, MAX_BUFFER, "Not supported. ");
devsar 0:1f985a7c0a8b 38 } else if(error_num == NRF_ERROR_BASE_NUM + 7){
devsar 0:1f985a7c0a8b 39 snprintf(m_error_string, MAX_BUFFER, "Invalid Parameter. ");
devsar 0:1f985a7c0a8b 40 } else if(error_num == NRF_ERROR_BASE_NUM + 8){
devsar 0:1f985a7c0a8b 41 snprintf(m_error_string, MAX_BUFFER, "Invalid state, operation disallowed in this state. ");
devsar 0:1f985a7c0a8b 42 } else if(error_num == NRF_ERROR_BASE_NUM + 9){
devsar 0:1f985a7c0a8b 43 snprintf(m_error_string, MAX_BUFFER, "Invalid Length. ");
devsar 0:1f985a7c0a8b 44 } else if(error_num == NRF_ERROR_BASE_NUM + 10){
devsar 0:1f985a7c0a8b 45 snprintf(m_error_string, MAX_BUFFER, "Invalid Flags. ");
devsar 0:1f985a7c0a8b 46 } else if(error_num == NRF_ERROR_BASE_NUM + 11){
devsar 0:1f985a7c0a8b 47 snprintf(m_error_string, MAX_BUFFER, "Invalid Data. ");
devsar 0:1f985a7c0a8b 48 } else if(error_num == NRF_ERROR_BASE_NUM + 12){
devsar 0:1f985a7c0a8b 49 snprintf(m_error_string, MAX_BUFFER, "Data size exceeds limit. ");
devsar 0:1f985a7c0a8b 50 } else if(error_num == NRF_ERROR_BASE_NUM + 13){
devsar 0:1f985a7c0a8b 51 snprintf(m_error_string, MAX_BUFFER, "Operation timed out. ");
devsar 0:1f985a7c0a8b 52 } else if(error_num == NRF_ERROR_BASE_NUM + 14){
devsar 0:1f985a7c0a8b 53 snprintf(m_error_string, MAX_BUFFER, "Null Pointer. ");
devsar 0:1f985a7c0a8b 54 } else if(error_num == NRF_ERROR_BASE_NUM + 15){
devsar 0:1f985a7c0a8b 55 snprintf(m_error_string, MAX_BUFFER, "Forbidden Operation. ");
devsar 0:1f985a7c0a8b 56 } else if(error_num == NRF_ERROR_BASE_NUM + 16){
devsar 0:1f985a7c0a8b 57 snprintf(m_error_string, MAX_BUFFER, "Bad Memory Address. ");
devsar 0:1f985a7c0a8b 58 } else if(error_num == NRF_ERROR_BASE_NUM + 17){
devsar 0:1f985a7c0a8b 59 snprintf(m_error_string, MAX_BUFFER, "Busy. ");
devsar 0:1f985a7c0a8b 60 } else {
devsar 0:1f985a7c0a8b 61 return get_error_unknown(error_num);
devsar 0:1f985a7c0a8b 62 }
devsar 0:1f985a7c0a8b 63 return m_error_string;
devsar 0:1f985a7c0a8b 64 }
devsar 0:1f985a7c0a8b 65
devsar 0:1f985a7c0a8b 66 // SDM error base.
devsar 0:1f985a7c0a8b 67 char *get_error_sdm(uint32_t error_num) {
devsar 0:1f985a7c0a8b 68 if(error_num == NRF_ERROR_SDM_BASE_NUM + 0){
devsar 0:1f985a7c0a8b 69 snprintf(m_error_string, MAX_BUFFER, "Unknown lfclk source. ");
devsar 0:1f985a7c0a8b 70 } else if(error_num == NRF_ERROR_SDM_BASE_NUM + 1){
devsar 0:1f985a7c0a8b 71 snprintf(m_error_string, MAX_BUFFER, "Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts) ");
devsar 0:1f985a7c0a8b 72 } else if(error_num == NRF_ERROR_SDM_BASE_NUM + 2){
devsar 0:1f985a7c0a8b 73 snprintf(m_error_string, MAX_BUFFER, "Incorrect CLENR0 (can be caused by erronous SoftDevice flashing) ");
devsar 0:1f985a7c0a8b 74 } else {
devsar 0:1f985a7c0a8b 75 return get_error_unknown(error_num);
devsar 0:1f985a7c0a8b 76 }
devsar 0:1f985a7c0a8b 77 return m_error_string;
devsar 0:1f985a7c0a8b 78 }
devsar 0:1f985a7c0a8b 79
devsar 0:1f985a7c0a8b 80 // SoC error base.
devsar 0:1f985a7c0a8b 81 char *get_error_soc(uint32_t error_num) {
devsar 0:1f985a7c0a8b 82 if(error_num == NRF_ERROR_SOC_BASE_NUM + 0){
devsar 0:1f985a7c0a8b 83 snprintf(m_error_string, MAX_BUFFER, "Mutex already taken. ");
devsar 0:1f985a7c0a8b 84 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 1){
devsar 0:1f985a7c0a8b 85 snprintf(m_error_string, MAX_BUFFER, "NVIC interrupt not available. ");
devsar 0:1f985a7c0a8b 86 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 2){
devsar 0:1f985a7c0a8b 87 snprintf(m_error_string, MAX_BUFFER, "NVIC interrupt priority not allowed. ");
devsar 0:1f985a7c0a8b 88 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 3){
devsar 0:1f985a7c0a8b 89 snprintf(m_error_string, MAX_BUFFER, "NVIC should not return. ");
devsar 0:1f985a7c0a8b 90 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 4){
devsar 0:1f985a7c0a8b 91 snprintf(m_error_string, MAX_BUFFER, "Power mode unknown. ");
devsar 0:1f985a7c0a8b 92 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 5){
devsar 0:1f985a7c0a8b 93 snprintf(m_error_string, MAX_BUFFER, "Power POF threshold unknown. ");
devsar 0:1f985a7c0a8b 94 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 6){
devsar 0:1f985a7c0a8b 95 snprintf(m_error_string, MAX_BUFFER, "Power off should not return. ");
devsar 0:1f985a7c0a8b 96 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 7){
devsar 0:1f985a7c0a8b 97 snprintf(m_error_string, MAX_BUFFER, "RAND not enough values. ");
devsar 0:1f985a7c0a8b 98 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 8){
devsar 0:1f985a7c0a8b 99 snprintf(m_error_string, MAX_BUFFER, "Invalid PPI Channel. ");
devsar 0:1f985a7c0a8b 100 } else if(error_num == NRF_ERROR_SOC_BASE_NUM + 9){
devsar 0:1f985a7c0a8b 101 snprintf(m_error_string, MAX_BUFFER, "Invalid PPI Group. ");
devsar 0:1f985a7c0a8b 102 } else {
devsar 0:1f985a7c0a8b 103 return get_error_unknown(error_num);
devsar 0:1f985a7c0a8b 104 }
devsar 0:1f985a7c0a8b 105 return m_error_string;
devsar 0:1f985a7c0a8b 106 }
devsar 0:1f985a7c0a8b 107
devsar 0:1f985a7c0a8b 108 // STK error base.
devsar 0:1f985a7c0a8b 109 char *get_error_stk(uint32_t error_num) {
devsar 0:1f985a7c0a8b 110 snprintf(m_error_string, MAX_BUFFER, "stk error.");
devsar 0:1f985a7c0a8b 111 return m_error_string;
devsar 0:1f985a7c0a8b 112 }
devsar 0:1f985a7c0a8b 113
devsar 0:1f985a7c0a8b 114 char *error2string(uint32_t error_num) {
devsar 0:1f985a7c0a8b 115
devsar 0:1f985a7c0a8b 116 if(error_num<NRF_ERROR_SDM_BASE_NUM) {
devsar 0:1f985a7c0a8b 117 return get_error_global(error_num);
devsar 0:1f985a7c0a8b 118 } else if(error_num<NRF_ERROR_SDM_BASE_NUM) {
devsar 0:1f985a7c0a8b 119 return get_error_sdm(error_num);
devsar 0:1f985a7c0a8b 120 } else if(error_num<NRF_ERROR_SOC_BASE_NUM) {
devsar 0:1f985a7c0a8b 121 return get_error_soc(error_num);
devsar 0:1f985a7c0a8b 122 } else if(error_num<NRF_ERROR_STK_BASE_NUM) {
devsar 0:1f985a7c0a8b 123 return get_error_stk(error_num);
devsar 0:1f985a7c0a8b 124 } else {
devsar 0:1f985a7c0a8b 125 return get_error_unknown(error_num);
devsar 0:1f985a7c0a8b 126 }
devsar 0:1f985a7c0a8b 127
devsar 0:1f985a7c0a8b 128 }
devsar 0:1f985a7c0a8b 129
devsar 0:1f985a7c0a8b 130 char *event2string(ble_evt_t * p_ble_evt) {
devsar 0:1f985a7c0a8b 131 switch (p_ble_evt->header.evt_id) {
devsar 0:1f985a7c0a8b 132 // GAP
devsar 0:1f985a7c0a8b 133 case BLE_GAP_EVT_CONNECTED:
devsar 0:1f985a7c0a8b 134 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_CONNECTED", "Connection established.");
devsar 0:1f985a7c0a8b 135 break;
devsar 0:1f985a7c0a8b 136 case BLE_GAP_EVT_DISCONNECTED :
devsar 0:1f985a7c0a8b 137 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_DISCONNECTED ", "Disconnected from peer.");
devsar 0:1f985a7c0a8b 138 break;
devsar 0:1f985a7c0a8b 139 case BLE_GAP_EVT_CONN_PARAM_UPDATE:
devsar 0:1f985a7c0a8b 140 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_CONN_PARAM_UPDATE", "Connection Parameters updated.");
devsar 0:1f985a7c0a8b 141 break;
devsar 0:1f985a7c0a8b 142 case BLE_GAP_EVT_SEC_PARAMS_REQUEST :
devsar 0:1f985a7c0a8b 143 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_SEC_PARAMS_REQUEST ", "Request to provide security parameters.");
devsar 0:1f985a7c0a8b 144 break;
devsar 0:1f985a7c0a8b 145 case BLE_GAP_EVT_SEC_INFO_REQUEST :
devsar 0:1f985a7c0a8b 146 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_SEC_INFO_REQUEST ", "Request to provide security information.");
devsar 0:1f985a7c0a8b 147 break;
devsar 0:1f985a7c0a8b 148 case BLE_GAP_EVT_PASSKEY_DISPLAY:
devsar 0:1f985a7c0a8b 149 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_PASSKEY_DISPLAY", "Request to display a passkey to the user.");
devsar 0:1f985a7c0a8b 150 break;
devsar 0:1f985a7c0a8b 151 case BLE_GAP_EVT_AUTH_KEY_REQUEST:
devsar 0:1f985a7c0a8b 152 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_AUTH_KEY_REQUEST", "Request to provide an authentication key.");
devsar 0:1f985a7c0a8b 153 break;
devsar 0:1f985a7c0a8b 154 case BLE_GAP_EVT_AUTH_STATUS :
devsar 0:1f985a7c0a8b 155 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_AUTH_STATUS ", "Authentication procedure completed with status.");
devsar 0:1f985a7c0a8b 156 break;
devsar 0:1f985a7c0a8b 157 case BLE_GAP_EVT_CONN_SEC_UPDATE:
devsar 0:1f985a7c0a8b 158 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_CONN_SEC_UPDATE ", "Connection security updated.");
devsar 0:1f985a7c0a8b 159 break;
devsar 0:1f985a7c0a8b 160 case BLE_GAP_EVT_TIMEOUT :
devsar 0:1f985a7c0a8b 161 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_TIMEOUT ", "Timeout expired.");
devsar 0:1f985a7c0a8b 162 break;
devsar 0:1f985a7c0a8b 163 case BLE_GAP_EVT_RSSI_CHANGED :
devsar 0:1f985a7c0a8b 164 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GAP_EVT_RSSI_CHANGED ", "Signal strength measurement report.");
devsar 0:1f985a7c0a8b 165 break;
devsar 0:1f985a7c0a8b 166 // GATTC
devsar 0:1f985a7c0a8b 167 case BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP :
devsar 0:1f985a7c0a8b 168 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP ", "Primary Service Discovery Response event.");
devsar 0:1f985a7c0a8b 169 break;
devsar 0:1f985a7c0a8b 170 case BLE_GATTC_EVT_REL_DISC_RSP :
devsar 0:1f985a7c0a8b 171 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_REL_DISC_RSP ", "Relationship Discovery Response event.");
devsar 0:1f985a7c0a8b 172 break;
devsar 0:1f985a7c0a8b 173 case BLE_GATTC_EVT_CHAR_DISC_RSP :
devsar 0:1f985a7c0a8b 174 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_CHAR_DISC_RSP ", "Characteristic Discovery Response event.");
devsar 0:1f985a7c0a8b 175 break;
devsar 0:1f985a7c0a8b 176 case BLE_GATTC_EVT_DESC_DISC_RSP :
devsar 0:1f985a7c0a8b 177 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_DESC_DISC_RSP ", "Descriptor Discovery Response event.");
devsar 0:1f985a7c0a8b 178 break;
devsar 0:1f985a7c0a8b 179 case BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP :
devsar 0:1f985a7c0a8b 180 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP", "Read By UUID Response event.");
devsar 0:1f985a7c0a8b 181 break;
devsar 0:1f985a7c0a8b 182 case BLE_GATTC_EVT_READ_RSP :
devsar 0:1f985a7c0a8b 183 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_READ_RSP ", "Read Response event.");
devsar 0:1f985a7c0a8b 184 break;
devsar 0:1f985a7c0a8b 185 case BLE_GATTC_EVT_CHAR_VALS_READ_RSP :
devsar 0:1f985a7c0a8b 186 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_CHAR_VALS_READ_RSP ", "Read multiple Response event.");
devsar 0:1f985a7c0a8b 187 break;
devsar 0:1f985a7c0a8b 188 case BLE_GATTC_EVT_WRITE_RSP :
devsar 0:1f985a7c0a8b 189 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_WRITE_RSP", "Write Response event.");
devsar 0:1f985a7c0a8b 190 break;
devsar 0:1f985a7c0a8b 191 case BLE_GATTC_EVT_HVX :
devsar 0:1f985a7c0a8b 192 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_HVX ", "Handle Value Notification or Indication event.");
devsar 0:1f985a7c0a8b 193 break;
devsar 0:1f985a7c0a8b 194 case BLE_GATTC_EVT_TIMEOUT :
devsar 0:1f985a7c0a8b 195 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTC_EVT_TIMEOUT ", "Timeout event.");
devsar 0:1f985a7c0a8b 196 break;
devsar 0:1f985a7c0a8b 197 // GATTS
devsar 0:1f985a7c0a8b 198 case BLE_GATTS_EVT_WRITE :
devsar 0:1f985a7c0a8b 199 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_WRITE ", "Write operation performed.");
devsar 0:1f985a7c0a8b 200 break;
devsar 0:1f985a7c0a8b 201 case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST :
devsar 0:1f985a7c0a8b 202 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST ", "Read/Write Authorization request.");
devsar 0:1f985a7c0a8b 203 break;
devsar 0:1f985a7c0a8b 204 case BLE_GATTS_EVT_SYS_ATTR_MISSING :
devsar 0:1f985a7c0a8b 205 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_SYS_ATTR_MISSING ", "A persistent system attribute access is pending, awaiting a sd_ble_gatts_sys_attr_set().");
devsar 0:1f985a7c0a8b 206 break;
devsar 0:1f985a7c0a8b 207 case BLE_GATTS_EVT_HVC :
devsar 0:1f985a7c0a8b 208 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_HVC ", "Handle Value Confirmation.");
devsar 0:1f985a7c0a8b 209 break;
devsar 0:1f985a7c0a8b 210 case BLE_GATTS_EVT_SC_CONFIRM :
devsar 0:1f985a7c0a8b 211 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_SC_CONFIRM ", "Service Changed Confirmation.");
devsar 0:1f985a7c0a8b 212 break;
devsar 0:1f985a7c0a8b 213 case BLE_GATTS_EVT_TIMEOUT :
devsar 0:1f985a7c0a8b 214 snprintf(m_event_string, MAX_BUFFER, "%s (%s)", "BLE_GATTS_EVT_TIMEOUT ", "Timeout.");
devsar 0:1f985a7c0a8b 215 break;
devsar 0:1f985a7c0a8b 216 //
devsar 0:1f985a7c0a8b 217 default:
devsar 0:1f985a7c0a8b 218 snprintf(m_event_string, MAX_BUFFER, "Event: Unknown (%d)", p_ble_evt->header.evt_id);
devsar 0:1f985a7c0a8b 219 break;
devsar 0:1f985a7c0a8b 220 }
devsar 0:1f985a7c0a8b 221
devsar 0:1f985a7c0a8b 222 return m_event_string;
devsar 0:1f985a7c0a8b 223 }
devsar 0:1f985a7c0a8b 224
devsar 0:1f985a7c0a8b 225
devsar 0:1f985a7c0a8b 226 char *nrfevent2string(uint32_t evt_id) {
devsar 0:1f985a7c0a8b 227 switch (evt_id) {
devsar 0:1f985a7c0a8b 228 // case NRF_EVT_HFCLKSTARTED :
devsar 0:1f985a7c0a8b 229 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_HFCLKSTARTED", "Event indicating that the HFCLK has started.");
devsar 0:1f985a7c0a8b 230 // break;
devsar 0:1f985a7c0a8b 231 // case NRF_EVT_POWER_FAILURE_WARNING :
devsar 0:1f985a7c0a8b 232 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_POWER_FAILURE_WARNING", "Event indicating that a power failure warning has occurred.");
devsar 0:1f985a7c0a8b 233 // break;
devsar 0:1f985a7c0a8b 234 // case NRF_EVT_FLASH_OPERATION_SUCCESS :
devsar 0:1f985a7c0a8b 235 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_FLASH_OPERATION_SUCCESS", "Event indicating that the ongoing flash operation has completed successfully.");
devsar 0:1f985a7c0a8b 236 // break;
devsar 0:1f985a7c0a8b 237 // case NRF_EVT_FLASH_OPERATION_ERROR :
devsar 0:1f985a7c0a8b 238 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_FLASH_OPERATION_ERROR", "Event indicating that the ongoing flash operation has timed out with an error.");
devsar 0:1f985a7c0a8b 239 // break;
devsar 0:1f985a7c0a8b 240 // case NRF_EVT_HFCLKSTARTED :
devsar 0:1f985a7c0a8b 241 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_HFCLKSTARTED ", "Event indicating that the HFCLK has started.");
devsar 0:1f985a7c0a8b 242 // break;
devsar 0:1f985a7c0a8b 243 // case NRF_EVT_POWER_FAILURE_WARNING :
devsar 0:1f985a7c0a8b 244 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_POWER_FAILURE_WARNING", "Event indicating that a power failure warning has occurred.");
devsar 0:1f985a7c0a8b 245 // break;
devsar 0:1f985a7c0a8b 246 // case NRF_EVT_FLASH_OPERATION_SUCCESS :
devsar 0:1f985a7c0a8b 247 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_FLASH_OPERATION_SUCCESS", "Event indicating that the ongoing flash operation has completed successfully.");
devsar 0:1f985a7c0a8b 248 // break;
devsar 0:1f985a7c0a8b 249 // case NRF_EVT_FLASH_OPERATION_ERROR :
devsar 0:1f985a7c0a8b 250 // snprintf(m_nrfevent_string, MAX_BUFFER, "%s (%s)", "NRF_EVT_FLASH_OPERATION_ERROR ", "Event indicating that the ongoing flash operation has timed out with an error.");
devsar 0:1f985a7c0a8b 251 // break;
devsar 0:1f985a7c0a8b 252 default:
devsar 0:1f985a7c0a8b 253 snprintf(m_nrfevent_string, MAX_BUFFER, "Event: Unknown (%d)", evt_id);
devsar 0:1f985a7c0a8b 254 break;
devsar 0:1f985a7c0a8b 255 }
devsar 0:1f985a7c0a8b 256
devsar 0:1f985a7c0a8b 257 return m_nrfevent_string;
devsar 0:1f985a7c0a8b 258 }
devsar 0:1f985a7c0a8b 259
devsar 0:1f985a7c0a8b 260 char *eventid2string(uint8_t d) {
devsar 0:1f985a7c0a8b 261 switch (d) {
devsar 0:1f985a7c0a8b 262 case 0 :
devsar 0:1f985a7c0a8b 263 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Notification Added");
devsar 0:1f985a7c0a8b 264 break;
devsar 0:1f985a7c0a8b 265 case 1 :
devsar 0:1f985a7c0a8b 266 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Notification Modified");
devsar 0:1f985a7c0a8b 267 break;
devsar 0:1f985a7c0a8b 268 case 2 :
devsar 0:1f985a7c0a8b 269 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Notification Removed");
devsar 0:1f985a7c0a8b 270 break;
devsar 0:1f985a7c0a8b 271 default:
devsar 0:1f985a7c0a8b 272 snprintf(m_ancs_string, MAX_BUFFER, "Reserved (%d)", d);
devsar 0:1f985a7c0a8b 273 break;
devsar 0:1f985a7c0a8b 274 }
devsar 0:1f985a7c0a8b 275
devsar 0:1f985a7c0a8b 276 return m_ancs_string;
devsar 0:1f985a7c0a8b 277 }
devsar 0:1f985a7c0a8b 278
devsar 0:1f985a7c0a8b 279 char *eventflags2string(uint8_t d) {
devsar 0:1f985a7c0a8b 280 snprintf(m_ancs_string, MAX_BUFFER, "(no flags)");
devsar 0:1f985a7c0a8b 281 if(d & 3) {
devsar 0:1f985a7c0a8b 282 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Silent & Important");
devsar 0:1f985a7c0a8b 283 } else if(d & 1) {
devsar 0:1f985a7c0a8b 284 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Silent");
devsar 0:1f985a7c0a8b 285 } else if(d & 2) {
devsar 0:1f985a7c0a8b 286 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Important");
devsar 0:1f985a7c0a8b 287 }
devsar 0:1f985a7c0a8b 288
devsar 0:1f985a7c0a8b 289 return m_ancs_string;
devsar 0:1f985a7c0a8b 290 }
devsar 0:1f985a7c0a8b 291
devsar 0:1f985a7c0a8b 292 char *categoryid2string(uint8_t d) {
devsar 0:1f985a7c0a8b 293 switch (d) {
devsar 0:1f985a7c0a8b 294 case 0 :
devsar 0:1f985a7c0a8b 295 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Other");
devsar 0:1f985a7c0a8b 296 break;
devsar 0:1f985a7c0a8b 297 case 1 :
devsar 0:1f985a7c0a8b 298 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Incomming Call");
devsar 0:1f985a7c0a8b 299 break;
devsar 0:1f985a7c0a8b 300 case 2 :
devsar 0:1f985a7c0a8b 301 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Missed Call");
devsar 0:1f985a7c0a8b 302 break;
devsar 0:1f985a7c0a8b 303 case 3 :
devsar 0:1f985a7c0a8b 304 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Voice Mail");
devsar 0:1f985a7c0a8b 305 break;
devsar 0:1f985a7c0a8b 306 case 4 :
devsar 0:1f985a7c0a8b 307 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Social");
devsar 0:1f985a7c0a8b 308 break;
devsar 0:1f985a7c0a8b 309 case 5 :
devsar 0:1f985a7c0a8b 310 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Schedule");
devsar 0:1f985a7c0a8b 311 break;
devsar 0:1f985a7c0a8b 312 case 6 :
devsar 0:1f985a7c0a8b 313 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Email");
devsar 0:1f985a7c0a8b 314 break;
devsar 0:1f985a7c0a8b 315 case 7 :
devsar 0:1f985a7c0a8b 316 snprintf(m_ancs_string, MAX_BUFFER, "%s", "News");
devsar 0:1f985a7c0a8b 317 break;
devsar 0:1f985a7c0a8b 318 case 8 :
devsar 0:1f985a7c0a8b 319 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Health And Fitness");
devsar 0:1f985a7c0a8b 320 break;
devsar 0:1f985a7c0a8b 321 case 9 :
devsar 0:1f985a7c0a8b 322 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Business And Finance");
devsar 0:1f985a7c0a8b 323 break;
devsar 0:1f985a7c0a8b 324 case 10 :
devsar 0:1f985a7c0a8b 325 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Location"); // iBeacon?
devsar 0:1f985a7c0a8b 326 break;
devsar 0:1f985a7c0a8b 327 case 11 :
devsar 0:1f985a7c0a8b 328 snprintf(m_ancs_string, MAX_BUFFER, "%s", "Entertainment");
devsar 0:1f985a7c0a8b 329 break;
devsar 0:1f985a7c0a8b 330 default:
devsar 0:1f985a7c0a8b 331 snprintf(m_ancs_string, MAX_BUFFER, "Reserved (%d)", d);
devsar 0:1f985a7c0a8b 332 break;
devsar 0:1f985a7c0a8b 333 }
devsar 0:1f985a7c0a8b 334
devsar 0:1f985a7c0a8b 335 return m_ancs_string;
devsar 0:1f985a7c0a8b 336 }
devsar 0:1f985a7c0a8b 337
devsar 0:1f985a7c0a8b 338