NVProperty generic key value store using the MCU flash area.
Dependents: Turtle_RadioShuttle
NVProperty_Editor.cpp@10:7999d15fd227, 2019-02-06 (annotated)
- Committer:
- Helmut Tschemernjak
- Date:
- Wed Feb 06 15:53:49 2019 +0100
- Revision:
- 10:7999d15fd227
- Parent:
- 9:ac6c43b29434
- Child:
- 12:5539cdc8be4b
Updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Helmut Tschemernjak | 7:5c36e5c18b65 | 1 | /* |
Helmut Tschemernjak | 7:5c36e5c18b65 | 2 | * This is an unpublished work copyright |
Helmut Tschemernjak | 7:5c36e5c18b65 | 3 | * (c) 2019 Helmut Tschemernjak |
Helmut Tschemernjak | 7:5c36e5c18b65 | 4 | * 30826 Garbsen (Hannover) Germany |
Helmut Tschemernjak | 7:5c36e5c18b65 | 5 | * |
Helmut Tschemernjak | 7:5c36e5c18b65 | 6 | * |
Helmut Tschemernjak | 7:5c36e5c18b65 | 7 | * Use is granted to registered RadioShuttle licensees only. |
Helmut Tschemernjak | 7:5c36e5c18b65 | 8 | * Licensees must own a valid serial number and product code. |
Helmut Tschemernjak | 7:5c36e5c18b65 | 9 | * Details see: www.radioshuttle.de |
Helmut Tschemernjak | 7:5c36e5c18b65 | 10 | */ |
Helmut Tschemernjak | 7:5c36e5c18b65 | 11 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 12 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 13 | #include <mbed.h> |
Helmut Tschemernjak | 7:5c36e5c18b65 | 14 | #include "main.h" |
Helmut Tschemernjak | 7:5c36e5c18b65 | 15 | #include "arch.h" |
Helmut Tschemernjak | 7:5c36e5c18b65 | 16 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 17 | #ifdef FEATURE_NVPROPERTYEDITOR |
Helmut Tschemernjak | 7:5c36e5c18b65 | 18 | #include <NVPropertyProviderInterface.h> |
Helmut Tschemernjak | 7:5c36e5c18b65 | 19 | #include "NVProperty.h" |
Helmut Tschemernjak | 7:5c36e5c18b65 | 20 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 21 | static const char *getNiceName(int id, int val); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 22 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 23 | /* |
Helmut Tschemernjak | 7:5c36e5c18b65 | 24 | * add custom user defined properties here |
Helmut Tschemernjak | 7:5c36e5c18b65 | 25 | */ |
Helmut Tschemernjak | 7:5c36e5c18b65 | 26 | class UserProperty : public NVProperty { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 27 | public: |
Helmut Tschemernjak | 7:5c36e5c18b65 | 28 | enum Properties { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 29 | MY_DEVNAME = PRIVATE_RANGE_START, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 30 | MY_CITY, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 31 | MY_APP_PASSWORD, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 32 | }; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 33 | }; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 34 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 35 | // #define ARRAYLEN(arr) (sizeof(arr) / sizeof(0[arr])) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 36 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 37 | struct propArray { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 38 | int id; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 39 | NVProperty::NVPType type; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 40 | const char *name; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 41 | int valueInt; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 42 | const char *valueStr; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 43 | } propArray[] = { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 44 | { NVProperty::RTC_AGING_CAL, NVProperty::T_32BIT, "RTC_AGING_CAL", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 45 | { NVProperty::ADC_VREF, NVProperty::T_32BIT, "ADC_VREF", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 46 | { NVProperty::HARDWARE_REV, NVProperty::T_32BIT, "HARDWARE_REV", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 47 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 48 | { NVProperty::LORA_DEVICE_ID, NVProperty::T_32BIT, "LORA_DEVICE_ID", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 49 | { NVProperty::LORA_CODE_ID, NVProperty::T_32BIT, "LORA_CODE_ID", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 50 | { NVProperty::LORA_REMOTE_ID, NVProperty::T_32BIT, "LORA_REMOTE_ID", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 51 | { NVProperty::LORA_REMOTE_ID_ALT, NVProperty::T_32BIT, "LORA_REMOTE_ID_ALT", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 52 | { NVProperty::LORA_RADIO_TYPE, NVProperty::T_32BIT, "LORA_RADIO_TYPE", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 53 | { NVProperty::LORA_FREQUENCY, NVProperty::T_32BIT, "LORA_FREQUENCY", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 54 | { NVProperty::LORA_BANDWIDTH, NVProperty::T_32BIT, "LORA_BANDWIDTH", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 55 | { NVProperty::LORA_SPREADING_FACTOR, NVProperty::T_32BIT, "LORA_SPREADING_FACTOR", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 56 | { NVProperty::LORA_TXPOWER, NVProperty::T_32BIT, "LORA_TXPOWER", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 57 | { NVProperty::LORA_FREQUENCY_OFFSET, NVProperty::T_32BIT, "LORA_FREQUENCY_OFFSET", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 58 | { NVProperty::LORA_APP_PWD, NVProperty::T_STR, "LORA_APP_PWD", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 59 | { NVProperty::LORA_APP_PWD_ALT, NVProperty::T_STR, "LORA_APP_PWD_ALT", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 60 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 61 | { NVProperty::LOC_LONGITUDE, NVProperty::T_STR, "LOC_LONGITUDE", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 62 | { NVProperty::LOC_LATITUDE, NVProperty::T_STR, "LOC_LATITUDE", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 63 | { NVProperty::LOC_NAME, NVProperty::T_STR, "LOC_NAME", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 64 | { NVProperty::HOSTNAME, NVProperty::T_STR, "HOSTNAME", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 65 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 66 | { NVProperty::WIFI_SSID, NVProperty::T_STR, "WIFI_SSID", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 67 | { NVProperty::WIFI_PASSWORD, NVProperty::T_STR, "WIFI_PASSWORD", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 68 | { NVProperty::WIFI_SSID_ALT, NVProperty::T_STR, "WIFI_SSID_ALT", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 69 | { NVProperty::WIFI_PASSWORD_ALT, NVProperty::T_STR, "WIFI_PASSWORD_ALT", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 70 | { NVProperty::USE_DHCP, NVProperty::T_32BIT, "USE_DHCP", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 71 | { NVProperty::MAC_ADDR, NVProperty::T_STR, "MAC_ADDR", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 72 | { NVProperty::NET_IP_ADDR, NVProperty::T_STR, "NET_IP_ADDR", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 73 | { NVProperty::NET_IP_ROUTER, NVProperty::T_STR, "NET_IP_ROUTER", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 74 | { NVProperty::NET_IP_DNS_SERVER, NVProperty::T_STR, "NET_IP_DNS_SERVER", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 75 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 76 | { NVProperty::MQTT_SERVER, NVProperty::T_STR, "MQTT_SERVER", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 77 | { NVProperty::MQTT_SERVER_ALT, NVProperty::T_STR, "MQTT_SERVER_ALT", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 78 | { NVProperty::MQTT_TOPIC_INFO, NVProperty::T_STR, "MQTT_TOPIC_INFO", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 79 | { NVProperty::MQTT_TOPIC_ALARM, NVProperty::T_STR, "MQTT_TOPIC_ALARM", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 80 | { NVProperty::MQTT_TOPIC_CONTROL, NVProperty::T_STR, "MQTT_TOPIC_CONTROL", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 81 | { NVProperty::MQTT_TOPIC_4, NVProperty::T_STR, "MQTT_TOPIC_4", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 82 | { NVProperty::MQTT_TOPIC_5, NVProperty::T_STR, "MQTT_TOPIC_5", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 83 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 84 | { NVProperty::ALARM_STATUS, NVProperty::T_32BIT, "ALARM_STATUS", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 85 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 86 | /* |
Helmut Tschemernjak | 7:5c36e5c18b65 | 87 | * A user defined property |
Helmut Tschemernjak | 7:5c36e5c18b65 | 88 | */ |
Helmut Tschemernjak | 7:5c36e5c18b65 | 89 | { UserProperty::MY_CITY, NVProperty::T_STR, "MY_CITY", 0, NULL }, |
Helmut Tschemernjak | 7:5c36e5c18b65 | 90 | }; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 91 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 92 | void NVPropertyEditor(void) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 93 | { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 94 | NVProperty p; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 95 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 96 | rprintf("\nWelcome to the Property Editor which allows reading/writing/erasing non volatile settings\r\n\r\n"); |
Helmut Tschemernjak | 10:7999d15fd227 | 97 | const char *help = "Properties cmds are:\r\n l (list properties), s (set e.g. s20=value), d (delete e.g. d20), q (quit)\r\n"; |
Helmut Tschemernjak | 10:7999d15fd227 | 98 | rprintf(help); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 99 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 100 | while(true) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 101 | char buf[80]; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 102 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 103 | memset(buf, 0, sizeof(buf)); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 104 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 105 | rprintf("$ "); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 106 | const char *cmd = ConsoleReadline(buf, (int)sizeof(buf), true); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 107 | if (!cmd) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 108 | continue; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 109 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 110 | switch(*cmd) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 111 | case 'l': { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 112 | int cnt = ARRAYLEN(propArray); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 113 | rprintf("List of Properties:\r\n"); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 114 | for (int i = 0; i < cnt; i++) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 115 | char tbuf[128]; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 116 | const char *value = "(not set)"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 117 | memset(tbuf, 0, sizeof(tbuf)); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 118 | if (propArray[i].type <= NVProperty::T_32BIT) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 119 | int val = p.GetProperty(propArray[i].id, NVProperty::NVP_ENOENT); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 120 | if (val != NVProperty::NVP_ENOENT) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 121 | value = tbuf; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 122 | snprintf(tbuf, sizeof(tbuf), "%d (0x%x) %s", val, val, getNiceName(propArray[i].id, val)); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 123 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 124 | } else if (propArray[i].type == NVProperty::T_STR) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 125 | const char *s = p.GetProperty(propArray[i].id, (const char *)NULL); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 126 | if (s) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 127 | value = s; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 128 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 129 | rprintf("%24s: %d=%s\r\n", propArray[i].name, propArray[i].id, value); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 130 | wait_ms(2); // to flush buffers |
Helmut Tschemernjak | 7:5c36e5c18b65 | 131 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 132 | rprintf("\r\n"); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 133 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 134 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 135 | case 'd': { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 136 | int id = strtol(++cmd, NULL, 0); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 137 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 138 | if (id < 1) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 139 | dprintf("invalid parameter"); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 140 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 141 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 142 | int cnt = ARRAYLEN(propArray); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 143 | int slot = -1; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 144 | for (int i = 0; i < cnt; i++) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 145 | if (propArray[i].id == id) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 146 | slot = i; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 147 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 148 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 149 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 150 | if (slot == -1) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 151 | dprintf("Property: %d not found in table", id); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 152 | else { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 153 | dprintf("Deleted Property: %d %s", id, propArray[slot].name); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 154 | p.OpenPropertyStore(true); // enable for write |
Helmut Tschemernjak | 7:5c36e5c18b65 | 155 | p.EraseProperty(id); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 156 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 157 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 158 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 159 | case 's': { |
Helmut Tschemernjak | 9:ac6c43b29434 | 160 | char *v = (char *)strchr(++cmd, '='); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 161 | if (!v) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 162 | continue; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 163 | *v++ = 0; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 164 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 165 | int id = strtol(cmd, NULL, 0); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 166 | if (id < 1) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 167 | dprintf("invalid parameter"); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 168 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 169 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 170 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 171 | int cnt = ARRAYLEN(propArray); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 172 | int slot = -1; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 173 | for (int i = 0; i < cnt; i++) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 174 | if (propArray[i].id == id) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 175 | slot = i; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 176 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 177 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 178 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 179 | if (slot == -1) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 180 | dprintf("Property: %d not found in table", id); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 181 | else { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 182 | dprintf("Set Property: %s: %d=%s", propArray[slot].name, id, v); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 183 | p.OpenPropertyStore(true); // enable for write |
Helmut Tschemernjak | 7:5c36e5c18b65 | 184 | if (propArray[slot].type == NVProperty::T_STR) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 185 | p.SetProperty(id, p.T_STR, v, p.S_FLASH); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 186 | } else if (propArray[slot].type <= NVProperty::T_32BIT) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 187 | p.SetProperty(id, p.T_32BIT, (int)strtoll(v, NULL, 0), p.S_FLASH); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 188 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 189 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 190 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 191 | break; |
Helmut Tschemernjak | 10:7999d15fd227 | 192 | case 'i': |
Helmut Tschemernjak | 10:7999d15fd227 | 193 | dump("Flash-Area", (void *)0x803c000, 2048); |
Helmut Tschemernjak | 10:7999d15fd227 | 194 | break; |
Helmut Tschemernjak | 10:7999d15fd227 | 195 | case 'r': |
Helmut Tschemernjak | 10:7999d15fd227 | 196 | dprintf("ReorgProperties"); |
Helmut Tschemernjak | 10:7999d15fd227 | 197 | p.ReorgProperties(); |
Helmut Tschemernjak | 10:7999d15fd227 | 198 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 199 | case 'q': |
Helmut Tschemernjak | 7:5c36e5c18b65 | 200 | return; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 201 | default: |
Helmut Tschemernjak | 10:7999d15fd227 | 202 | rprintf(help); |
Helmut Tschemernjak | 7:5c36e5c18b65 | 203 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 204 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 205 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 206 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 207 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 208 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 209 | static const char *getNiceName(int id, int val) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 210 | { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 211 | const char *name = ""; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 212 | |
Helmut Tschemernjak | 7:5c36e5c18b65 | 213 | switch(id) { |
Helmut Tschemernjak | 7:5c36e5c18b65 | 214 | case NVProperty::LORA_RADIO_TYPE: |
Helmut Tschemernjak | 7:5c36e5c18b65 | 215 | if (val == 1) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 216 | return "RS_Node_Offline"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 217 | else if (val == 2) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 218 | return "RS_Node_Checking"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 219 | else if (val == 3) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 220 | return "RS_Node_Online"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 221 | else if (val == 4) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 222 | return "RS_Station_Basic"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 223 | else if (val == 5) |
Helmut Tschemernjak | 7:5c36e5c18b65 | 224 | return "RS_Station_Server"; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 225 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 226 | default: |
Helmut Tschemernjak | 7:5c36e5c18b65 | 227 | break; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 228 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 229 | return name; |
Helmut Tschemernjak | 7:5c36e5c18b65 | 230 | } |
Helmut Tschemernjak | 7:5c36e5c18b65 | 231 | #endif |