mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
Dependencies: EthernetNetIf SDHCFileSystem I2CLEDDisp Agentbed NTPClient_NetServices mbed BMP085 HTTPClient ConfigFile I2CLCD
conf.cpp@7:0d3484dc13a9, 2011-01-13 (annotated)
- Committer:
- okini3939
- Date:
- Thu Jan 13 12:35:51 2011 +0000
- Revision:
- 7:0d3484dc13a9
- Child:
- 9:8c63e4f3edab
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 7:0d3484dc13a9 | 1 | /** @file |
okini3939 | 7:0d3484dc13a9 | 2 | * @brief mbed Weather Platform |
okini3939 | 7:0d3484dc13a9 | 3 | */ |
okini3939 | 7:0d3484dc13a9 | 4 | #include "mbed.h" |
okini3939 | 7:0d3484dc13a9 | 5 | #include "conf.h" |
okini3939 | 7:0d3484dc13a9 | 6 | #include "ConfigFile.h" |
okini3939 | 7:0d3484dc13a9 | 7 | |
okini3939 | 7:0d3484dc13a9 | 8 | extern struct Config conf; |
okini3939 | 7:0d3484dc13a9 | 9 | extern float pres, temp, humi, light, anemo, vane, rain, uv, moist, temp2; |
okini3939 | 7:0d3484dc13a9 | 10 | |
okini3939 | 7:0d3484dc13a9 | 11 | char* chop (char *s) { |
okini3939 | 7:0d3484dc13a9 | 12 | int i; |
okini3939 | 7:0d3484dc13a9 | 13 | |
okini3939 | 7:0d3484dc13a9 | 14 | for (i = strlen(s) - 1; i >= 0; i --) { |
okini3939 | 7:0d3484dc13a9 | 15 | if (s[i] == ' ' || s[i] == '\n' || s[i] == '\r') { |
okini3939 | 7:0d3484dc13a9 | 16 | s[i] = 0; |
okini3939 | 7:0d3484dc13a9 | 17 | } else { |
okini3939 | 7:0d3484dc13a9 | 18 | break; |
okini3939 | 7:0d3484dc13a9 | 19 | } |
okini3939 | 7:0d3484dc13a9 | 20 | } |
okini3939 | 7:0d3484dc13a9 | 21 | return s; |
okini3939 | 7:0d3484dc13a9 | 22 | } |
okini3939 | 7:0d3484dc13a9 | 23 | |
okini3939 | 7:0d3484dc13a9 | 24 | int check_action (char type) { |
okini3939 | 7:0d3484dc13a9 | 25 | int i, j, count; |
okini3939 | 7:0d3484dc13a9 | 26 | float value; |
okini3939 | 7:0d3484dc13a9 | 27 | time_t sec = time(NULL) + (60 * 60 * 9); |
okini3939 | 7:0d3484dc13a9 | 28 | struct tm *tim = localtime(&sec); |
okini3939 | 7:0d3484dc13a9 | 29 | |
okini3939 | 7:0d3484dc13a9 | 30 | for(i = 0; i < conf.actionscount; i ++) { |
okini3939 | 7:0d3484dc13a9 | 31 | if (conf.actions[i].action != type) continue; |
okini3939 | 7:0d3484dc13a9 | 32 | |
okini3939 | 7:0d3484dc13a9 | 33 | count = 0; |
okini3939 | 7:0d3484dc13a9 | 34 | for (j = 0; j < conf.actions[i].count; j ++) { |
okini3939 | 7:0d3484dc13a9 | 35 | switch (conf.actions[i].exps[j].key) { |
okini3939 | 7:0d3484dc13a9 | 36 | case 'P': |
okini3939 | 7:0d3484dc13a9 | 37 | value = pres; |
okini3939 | 7:0d3484dc13a9 | 38 | break; |
okini3939 | 7:0d3484dc13a9 | 39 | case 'T': |
okini3939 | 7:0d3484dc13a9 | 40 | value = temp; |
okini3939 | 7:0d3484dc13a9 | 41 | break; |
okini3939 | 7:0d3484dc13a9 | 42 | case 'H': |
okini3939 | 7:0d3484dc13a9 | 43 | value = humi; |
okini3939 | 7:0d3484dc13a9 | 44 | break; |
okini3939 | 7:0d3484dc13a9 | 45 | case 'A': |
okini3939 | 7:0d3484dc13a9 | 46 | value = anemo; |
okini3939 | 7:0d3484dc13a9 | 47 | break; |
okini3939 | 7:0d3484dc13a9 | 48 | case 'V': |
okini3939 | 7:0d3484dc13a9 | 49 | value = vane; |
okini3939 | 7:0d3484dc13a9 | 50 | break; |
okini3939 | 7:0d3484dc13a9 | 51 | case 'R': |
okini3939 | 7:0d3484dc13a9 | 52 | value = rain; |
okini3939 | 7:0d3484dc13a9 | 53 | break; |
okini3939 | 7:0d3484dc13a9 | 54 | |
okini3939 | 7:0d3484dc13a9 | 55 | case 'y': |
okini3939 | 7:0d3484dc13a9 | 56 | value = tim->tm_year + 1900; |
okini3939 | 7:0d3484dc13a9 | 57 | break; |
okini3939 | 7:0d3484dc13a9 | 58 | case 'm': |
okini3939 | 7:0d3484dc13a9 | 59 | value = tim->tm_mon; |
okini3939 | 7:0d3484dc13a9 | 60 | break; |
okini3939 | 7:0d3484dc13a9 | 61 | case 'd': |
okini3939 | 7:0d3484dc13a9 | 62 | value = tim->tm_mday; |
okini3939 | 7:0d3484dc13a9 | 63 | break; |
okini3939 | 7:0d3484dc13a9 | 64 | case 'h': |
okini3939 | 7:0d3484dc13a9 | 65 | value = tim->tm_hour; |
okini3939 | 7:0d3484dc13a9 | 66 | break; |
okini3939 | 7:0d3484dc13a9 | 67 | case 'i': |
okini3939 | 7:0d3484dc13a9 | 68 | value = tim->tm_min; |
okini3939 | 7:0d3484dc13a9 | 69 | break; |
okini3939 | 7:0d3484dc13a9 | 70 | case 's': |
okini3939 | 7:0d3484dc13a9 | 71 | value = tim->tm_sec; |
okini3939 | 7:0d3484dc13a9 | 72 | break; |
okini3939 | 7:0d3484dc13a9 | 73 | |
okini3939 | 7:0d3484dc13a9 | 74 | default: |
okini3939 | 7:0d3484dc13a9 | 75 | value = 0; |
okini3939 | 7:0d3484dc13a9 | 76 | break; |
okini3939 | 7:0d3484dc13a9 | 77 | } |
okini3939 | 7:0d3484dc13a9 | 78 | |
okini3939 | 7:0d3484dc13a9 | 79 | switch (conf.actions[i].exps[j].expression) { |
okini3939 | 7:0d3484dc13a9 | 80 | case EXP_EQ: |
okini3939 | 7:0d3484dc13a9 | 81 | if (value == conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 82 | count ++; |
okini3939 | 7:0d3484dc13a9 | 83 | } |
okini3939 | 7:0d3484dc13a9 | 84 | break; |
okini3939 | 7:0d3484dc13a9 | 85 | case EXP_NE: |
okini3939 | 7:0d3484dc13a9 | 86 | if (value != conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 87 | count ++; |
okini3939 | 7:0d3484dc13a9 | 88 | } |
okini3939 | 7:0d3484dc13a9 | 89 | break; |
okini3939 | 7:0d3484dc13a9 | 90 | case EXP_LE: |
okini3939 | 7:0d3484dc13a9 | 91 | if (value <= conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 92 | count ++; |
okini3939 | 7:0d3484dc13a9 | 93 | } |
okini3939 | 7:0d3484dc13a9 | 94 | break; |
okini3939 | 7:0d3484dc13a9 | 95 | case EXP_LT: |
okini3939 | 7:0d3484dc13a9 | 96 | if (value < conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 97 | count ++; |
okini3939 | 7:0d3484dc13a9 | 98 | } |
okini3939 | 7:0d3484dc13a9 | 99 | break; |
okini3939 | 7:0d3484dc13a9 | 100 | case EXP_GE: |
okini3939 | 7:0d3484dc13a9 | 101 | if (value >= conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 102 | count ++; |
okini3939 | 7:0d3484dc13a9 | 103 | } |
okini3939 | 7:0d3484dc13a9 | 104 | break; |
okini3939 | 7:0d3484dc13a9 | 105 | case EXP_GT: |
okini3939 | 7:0d3484dc13a9 | 106 | if (value > conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 107 | count ++; |
okini3939 | 7:0d3484dc13a9 | 108 | } |
okini3939 | 7:0d3484dc13a9 | 109 | break; |
okini3939 | 7:0d3484dc13a9 | 110 | case EXP_MOD: |
okini3939 | 7:0d3484dc13a9 | 111 | if ((int)value % (int)conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 112 | count ++; |
okini3939 | 7:0d3484dc13a9 | 113 | } |
okini3939 | 7:0d3484dc13a9 | 114 | break; |
okini3939 | 7:0d3484dc13a9 | 115 | case EXP_NMOD: |
okini3939 | 7:0d3484dc13a9 | 116 | if (! (int)value % (int)conf.actions[i].exps[j].value) { |
okini3939 | 7:0d3484dc13a9 | 117 | count ++; |
okini3939 | 7:0d3484dc13a9 | 118 | } |
okini3939 | 7:0d3484dc13a9 | 119 | break; |
okini3939 | 7:0d3484dc13a9 | 120 | |
okini3939 | 7:0d3484dc13a9 | 121 | default: |
okini3939 | 7:0d3484dc13a9 | 122 | count ++; |
okini3939 | 7:0d3484dc13a9 | 123 | break; |
okini3939 | 7:0d3484dc13a9 | 124 | } |
okini3939 | 7:0d3484dc13a9 | 125 | } |
okini3939 | 7:0d3484dc13a9 | 126 | if (count == conf.actions[i].count) { |
okini3939 | 7:0d3484dc13a9 | 127 | return 1; |
okini3939 | 7:0d3484dc13a9 | 128 | } |
okini3939 | 7:0d3484dc13a9 | 129 | } |
okini3939 | 7:0d3484dc13a9 | 130 | return 0; |
okini3939 | 7:0d3484dc13a9 | 131 | } |
okini3939 | 7:0d3484dc13a9 | 132 | |
okini3939 | 7:0d3484dc13a9 | 133 | void add_actionsub (struct tExpression *exp, char *buf) { |
okini3939 | 7:0d3484dc13a9 | 134 | |
okini3939 | 7:0d3484dc13a9 | 135 | exp->key = buf[0]; |
okini3939 | 7:0d3484dc13a9 | 136 | |
okini3939 | 7:0d3484dc13a9 | 137 | switch (buf[1]) { |
okini3939 | 7:0d3484dc13a9 | 138 | case '=': |
okini3939 | 7:0d3484dc13a9 | 139 | if (buf[2] == '=') { |
okini3939 | 7:0d3484dc13a9 | 140 | exp->expression = EXP_EQ; |
okini3939 | 7:0d3484dc13a9 | 141 | exp->value = atof(&buf[3]); |
okini3939 | 7:0d3484dc13a9 | 142 | } |
okini3939 | 7:0d3484dc13a9 | 143 | break; |
okini3939 | 7:0d3484dc13a9 | 144 | |
okini3939 | 7:0d3484dc13a9 | 145 | case '!': |
okini3939 | 7:0d3484dc13a9 | 146 | if (buf[2] == '=') { |
okini3939 | 7:0d3484dc13a9 | 147 | exp->expression = EXP_NE; |
okini3939 | 7:0d3484dc13a9 | 148 | exp->value = atof(&buf[3]); |
okini3939 | 7:0d3484dc13a9 | 149 | } else |
okini3939 | 7:0d3484dc13a9 | 150 | if (buf[2] == '%') { |
okini3939 | 7:0d3484dc13a9 | 151 | exp->expression = EXP_NMOD; |
okini3939 | 7:0d3484dc13a9 | 152 | exp->value = atof(&buf[3]); |
okini3939 | 7:0d3484dc13a9 | 153 | } |
okini3939 | 7:0d3484dc13a9 | 154 | break; |
okini3939 | 7:0d3484dc13a9 | 155 | |
okini3939 | 7:0d3484dc13a9 | 156 | case '<': |
okini3939 | 7:0d3484dc13a9 | 157 | if (buf[2] == '=') { |
okini3939 | 7:0d3484dc13a9 | 158 | exp->expression = EXP_LE; |
okini3939 | 7:0d3484dc13a9 | 159 | exp->value = atof(&buf[3]); |
okini3939 | 7:0d3484dc13a9 | 160 | } else { |
okini3939 | 7:0d3484dc13a9 | 161 | exp->expression = EXP_LT; |
okini3939 | 7:0d3484dc13a9 | 162 | exp->value = atof(&buf[2]); |
okini3939 | 7:0d3484dc13a9 | 163 | } |
okini3939 | 7:0d3484dc13a9 | 164 | break; |
okini3939 | 7:0d3484dc13a9 | 165 | |
okini3939 | 7:0d3484dc13a9 | 166 | case '>': |
okini3939 | 7:0d3484dc13a9 | 167 | if (buf[2] == '=') { |
okini3939 | 7:0d3484dc13a9 | 168 | exp->expression = EXP_GE; |
okini3939 | 7:0d3484dc13a9 | 169 | exp->value = atof(&buf[3]); |
okini3939 | 7:0d3484dc13a9 | 170 | } else { |
okini3939 | 7:0d3484dc13a9 | 171 | exp->expression = EXP_GT; |
okini3939 | 7:0d3484dc13a9 | 172 | exp->value = atof(&buf[2]); |
okini3939 | 7:0d3484dc13a9 | 173 | } |
okini3939 | 7:0d3484dc13a9 | 174 | break; |
okini3939 | 7:0d3484dc13a9 | 175 | |
okini3939 | 7:0d3484dc13a9 | 176 | case '%': |
okini3939 | 7:0d3484dc13a9 | 177 | exp->expression = EXP_MOD; |
okini3939 | 7:0d3484dc13a9 | 178 | exp->value = atof(&buf[2]); |
okini3939 | 7:0d3484dc13a9 | 179 | break; |
okini3939 | 7:0d3484dc13a9 | 180 | |
okini3939 | 7:0d3484dc13a9 | 181 | default: |
okini3939 | 7:0d3484dc13a9 | 182 | exp->expression = EXP_NULL; |
okini3939 | 7:0d3484dc13a9 | 183 | break; |
okini3939 | 7:0d3484dc13a9 | 184 | } |
okini3939 | 7:0d3484dc13a9 | 185 | } |
okini3939 | 7:0d3484dc13a9 | 186 | |
okini3939 | 7:0d3484dc13a9 | 187 | void add_action (char *buf) { |
okini3939 | 7:0d3484dc13a9 | 188 | int i, len, count; |
okini3939 | 7:0d3484dc13a9 | 189 | char c; |
okini3939 | 7:0d3484dc13a9 | 190 | char *tmp = NULL; |
okini3939 | 7:0d3484dc13a9 | 191 | |
okini3939 | 7:0d3484dc13a9 | 192 | if (conf.actionscount >= CF_ACTION_NUM) return; |
okini3939 | 7:0d3484dc13a9 | 193 | |
okini3939 | 7:0d3484dc13a9 | 194 | // conf.actions[conf.actionscount].action = atoi(&buf[0]); |
okini3939 | 7:0d3484dc13a9 | 195 | conf.actions[conf.actionscount].action = buf[0]; |
okini3939 | 7:0d3484dc13a9 | 196 | |
okini3939 | 7:0d3484dc13a9 | 197 | count = 0; |
okini3939 | 7:0d3484dc13a9 | 198 | strcat(buf, "\n"); |
okini3939 | 7:0d3484dc13a9 | 199 | len = strlen(buf); |
okini3939 | 7:0d3484dc13a9 | 200 | for (i = 0; i < len; i ++) { |
okini3939 | 7:0d3484dc13a9 | 201 | c = buf[i]; |
okini3939 | 7:0d3484dc13a9 | 202 | if (c == ' ' || c == '\t' || c == '\n' || c == '\r') { |
okini3939 | 7:0d3484dc13a9 | 203 | buf[i] = 0; |
okini3939 | 7:0d3484dc13a9 | 204 | if (count) { |
okini3939 | 7:0d3484dc13a9 | 205 | add_actionsub(&conf.actions[conf.actionscount].exps[count - 1], tmp); |
okini3939 | 7:0d3484dc13a9 | 206 | } |
okini3939 | 7:0d3484dc13a9 | 207 | if (count >= CF_ACTION_EXPS || c == '\n') break; |
okini3939 | 7:0d3484dc13a9 | 208 | tmp = &buf[i + 1]; |
okini3939 | 7:0d3484dc13a9 | 209 | count ++; |
okini3939 | 7:0d3484dc13a9 | 210 | } |
okini3939 | 7:0d3484dc13a9 | 211 | } |
okini3939 | 7:0d3484dc13a9 | 212 | |
okini3939 | 7:0d3484dc13a9 | 213 | conf.actions[conf.actionscount].count = count; |
okini3939 | 7:0d3484dc13a9 | 214 | conf.actionscount ++; |
okini3939 | 7:0d3484dc13a9 | 215 | } |
okini3939 | 7:0d3484dc13a9 | 216 | |
okini3939 | 7:0d3484dc13a9 | 217 | int config (char *file) { |
okini3939 | 7:0d3484dc13a9 | 218 | int i; |
okini3939 | 7:0d3484dc13a9 | 219 | ConfigFile cfg; |
okini3939 | 7:0d3484dc13a9 | 220 | char buf[80], key[20]; |
okini3939 | 7:0d3484dc13a9 | 221 | int ip0, ip1, ip2, ip3; |
okini3939 | 7:0d3484dc13a9 | 222 | |
okini3939 | 7:0d3484dc13a9 | 223 | conf.ipaddr = IpAddr(0, 0, 0, 0); |
okini3939 | 7:0d3484dc13a9 | 224 | conf.netmask = IpAddr(255, 255, 255, 0); |
okini3939 | 7:0d3484dc13a9 | 225 | conf.gateway = IpAddr(0, 0, 0, 0); |
okini3939 | 7:0d3484dc13a9 | 226 | conf.nameserver = IpAddr(0, 0, 0, 0); |
okini3939 | 7:0d3484dc13a9 | 227 | conf.interval = 60; |
okini3939 | 7:0d3484dc13a9 | 228 | conf.ntpserver[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 229 | conf.filetype = 0; |
okini3939 | 7:0d3484dc13a9 | 230 | conf.actionscount = 0; |
okini3939 | 7:0d3484dc13a9 | 231 | conf.pachube_apikey[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 232 | conf.pachube_feedid[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 233 | conf.twitter_user[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 234 | conf.twitter_pwd[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 235 | conf.twitter_mesg[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 236 | conf.stations_id[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 237 | conf.stations_pin[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 238 | conf.snmp_commname[0] = 0; |
okini3939 | 7:0d3484dc13a9 | 239 | |
okini3939 | 7:0d3484dc13a9 | 240 | if (! cfg.read(file)) { |
okini3939 | 7:0d3484dc13a9 | 241 | return -1; |
okini3939 | 7:0d3484dc13a9 | 242 | } |
okini3939 | 7:0d3484dc13a9 | 243 | |
okini3939 | 7:0d3484dc13a9 | 244 | if (cfg.getValue("INTERVAL", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 245 | conf.interval = atoi(chop(buf)); |
okini3939 | 7:0d3484dc13a9 | 246 | } |
okini3939 | 7:0d3484dc13a9 | 247 | if (cfg.getValue("FILE", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 248 | chop(buf); |
okini3939 | 7:0d3484dc13a9 | 249 | if (strcmp(buf, "SD") == 0) { |
okini3939 | 7:0d3484dc13a9 | 250 | conf.filetype = 1; |
okini3939 | 7:0d3484dc13a9 | 251 | } else |
okini3939 | 7:0d3484dc13a9 | 252 | if (strcmp(buf, "USB") == 0) { |
okini3939 | 7:0d3484dc13a9 | 253 | conf.filetype = 2; |
okini3939 | 7:0d3484dc13a9 | 254 | } |
okini3939 | 7:0d3484dc13a9 | 255 | } |
okini3939 | 7:0d3484dc13a9 | 256 | |
okini3939 | 7:0d3484dc13a9 | 257 | if (cfg.getValue("IPADDRESS", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 258 | chop(buf); |
okini3939 | 7:0d3484dc13a9 | 259 | if (strcmp(buf, "DHCP") == 0) { |
okini3939 | 7:0d3484dc13a9 | 260 | conf.ipaddr = IpAddr(255, 255, 255, 255); |
okini3939 | 7:0d3484dc13a9 | 261 | } else { |
okini3939 | 7:0d3484dc13a9 | 262 | sscanf(buf, "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); |
okini3939 | 7:0d3484dc13a9 | 263 | conf.ipaddr = IpAddr(ip0, ip1, ip2, ip3); |
okini3939 | 7:0d3484dc13a9 | 264 | } |
okini3939 | 7:0d3484dc13a9 | 265 | } |
okini3939 | 7:0d3484dc13a9 | 266 | if (cfg.getValue("NETMASK", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 267 | sscanf(chop(buf), "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); |
okini3939 | 7:0d3484dc13a9 | 268 | conf.netmask = IpAddr(ip0, ip1, ip2, ip3); |
okini3939 | 7:0d3484dc13a9 | 269 | } |
okini3939 | 7:0d3484dc13a9 | 270 | if (cfg.getValue("GATEWAY", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 271 | sscanf(chop(buf), "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); |
okini3939 | 7:0d3484dc13a9 | 272 | conf.gateway = IpAddr(ip0, ip1, ip2, ip3); |
okini3939 | 7:0d3484dc13a9 | 273 | } |
okini3939 | 7:0d3484dc13a9 | 274 | if (cfg.getValue("NAMESERVER", buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 275 | sscanf(chop(buf), "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); |
okini3939 | 7:0d3484dc13a9 | 276 | conf.nameserver = IpAddr(ip0, ip1, ip2, ip3); |
okini3939 | 7:0d3484dc13a9 | 277 | } |
okini3939 | 7:0d3484dc13a9 | 278 | |
okini3939 | 7:0d3484dc13a9 | 279 | cfg.getValue("NTPSERVER", conf.ntpserver, sizeof(conf.ntpserver)); |
okini3939 | 7:0d3484dc13a9 | 280 | chop(conf.ntpserver); |
okini3939 | 7:0d3484dc13a9 | 281 | cfg.getValue("PACHUBE_APIKEY", conf.pachube_apikey, sizeof(conf.pachube_apikey)); |
okini3939 | 7:0d3484dc13a9 | 282 | chop(conf.pachube_apikey); |
okini3939 | 7:0d3484dc13a9 | 283 | cfg.getValue("PACHUBE_FEEDID", conf.pachube_feedid, sizeof(conf.pachube_feedid)); |
okini3939 | 7:0d3484dc13a9 | 284 | chop(conf.pachube_feedid); |
okini3939 | 7:0d3484dc13a9 | 285 | cfg.getValue("TWITTER_USER", conf.twitter_user, sizeof(conf.twitter_user)); |
okini3939 | 7:0d3484dc13a9 | 286 | chop(conf.twitter_user); |
okini3939 | 7:0d3484dc13a9 | 287 | cfg.getValue("TWITTER_PWD", conf.twitter_pwd, sizeof(conf.twitter_pwd)); |
okini3939 | 7:0d3484dc13a9 | 288 | chop(conf.twitter_pwd); |
okini3939 | 7:0d3484dc13a9 | 289 | cfg.getValue("TWITTER_MESG", conf.twitter_mesg, sizeof(conf.twitter_mesg)); |
okini3939 | 7:0d3484dc13a9 | 290 | chop(conf.twitter_mesg); |
okini3939 | 7:0d3484dc13a9 | 291 | cfg.getValue("STATIONS_ID", conf.stations_id, sizeof(conf.stations_id)); |
okini3939 | 7:0d3484dc13a9 | 292 | chop(conf.stations_id); |
okini3939 | 7:0d3484dc13a9 | 293 | cfg.getValue("STATIONS_PIN", conf.stations_pin, sizeof(conf.stations_pin)); |
okini3939 | 7:0d3484dc13a9 | 294 | chop(conf.stations_pin); |
okini3939 | 7:0d3484dc13a9 | 295 | cfg.getValue("SNMP_COMMNAME", conf.snmp_commname, sizeof(conf.snmp_commname)); |
okini3939 | 7:0d3484dc13a9 | 296 | chop(conf.snmp_commname); |
okini3939 | 7:0d3484dc13a9 | 297 | |
okini3939 | 7:0d3484dc13a9 | 298 | for (i = 0; i < CF_ACTION_NUM; i ++) { |
okini3939 | 7:0d3484dc13a9 | 299 | sprintf(key, "ACTION[%d]", i); |
okini3939 | 7:0d3484dc13a9 | 300 | if (cfg.getValue(key, buf, sizeof(buf))) { |
okini3939 | 7:0d3484dc13a9 | 301 | add_action(chop(buf)); |
okini3939 | 7:0d3484dc13a9 | 302 | } |
okini3939 | 7:0d3484dc13a9 | 303 | } |
okini3939 | 7:0d3484dc13a9 | 304 | |
okini3939 | 7:0d3484dc13a9 | 305 | return 0; |
okini3939 | 7:0d3484dc13a9 | 306 | } |