Mercurial > repos > blastem
comparison megawifi.c @ 1960:f79e16d8baa4
megawifi: stub common commands to get config.
* CMD_AP_CFG_GET
* CMD_IP_CFG_GET
* CMD_DEF_AP_CFG_GET
* CMD_SERVER_URL_GET
author | doragasu <doragasu@hotmail.com> |
---|---|
date | Sun, 03 May 2020 12:39:05 -0700 |
parents | 6d99bdbf1e3e |
children | d14630883b1d |
comparison
equal
deleted
inserted
replaced
1959:6d99bdbf1e3e | 1960:f79e16d8baa4 |
---|---|
208 mw->receive_buffer[5] = len >> 8; | 208 mw->receive_buffer[5] = len >> 8; |
209 mw->receive_buffer[6] = len; | 209 mw->receive_buffer[6] = len; |
210 mw_putc(mw, ETX); | 210 mw_putc(mw, ETX); |
211 } | 211 } |
212 | 212 |
213 static void cmd_ap_cfg_get(megawifi *mw) | |
214 { | |
215 char ssid[32] = {0}; | |
216 char pass[64] = {0}; | |
217 uint8_t slot = mw->transmit_buffer[4]; | |
218 | |
219 sprintf(ssid, "BLASTEM! SSID %d", slot + 1); | |
220 sprintf(pass, "BLASTEM! PASS %d", slot + 1); | |
221 start_reply(mw, CMD_OK); | |
222 mw_putc(mw, slot); | |
223 mw_putc(mw, 7); /// 11bgn | |
224 mw_putraw(mw, ssid, 32); | |
225 mw_putraw(mw, pass, 64); | |
226 end_reply(mw); | |
227 } | |
228 | |
229 static void cmd_ip_cfg_get(megawifi *mw) | |
230 { | |
231 uint32_t ipv4s[5] = {0}; | |
232 | |
233 start_reply(mw, CMD_OK); | |
234 mw_putc(mw, mw->transmit_buffer[4]); | |
235 mw_putc(mw, 0); | |
236 mw_putc(mw, 0); | |
237 mw_putc(mw, 0); | |
238 mw_putraw(mw, (char*)ipv4s, sizeof(ipv4s)); | |
239 end_reply(mw); | |
240 } | |
241 | |
213 static void process_command(megawifi *mw) | 242 static void process_command(megawifi *mw) |
214 { | 243 { |
215 uint32_t command = mw->transmit_buffer[0] << 8 | mw->transmit_buffer[1]; | 244 uint32_t command = mw->transmit_buffer[0] << 8 | mw->transmit_buffer[1]; |
216 uint32_t size = mw->transmit_buffer[2] << 8 | mw->transmit_buffer[3]; | 245 uint32_t size = mw->transmit_buffer[2] << 8 | mw->transmit_buffer[3]; |
217 if (size > mw->transmit_bytes - 4) { | 246 if (size > mw->transmit_bytes - 4) { |
229 end_reply(mw); | 258 end_reply(mw); |
230 break; | 259 break; |
231 case CMD_ECHO: | 260 case CMD_ECHO: |
232 mw->receive_bytes = mw->transmit_bytes; | 261 mw->receive_bytes = mw->transmit_bytes; |
233 memcpy(mw->receive_buffer, mw->transmit_buffer, mw->transmit_bytes); | 262 memcpy(mw->receive_buffer, mw->transmit_buffer, mw->transmit_bytes); |
263 break; | |
264 case CMD_AP_CFG_GET: | |
265 cmd_ap_cfg_get(mw); | |
234 break; | 266 break; |
235 case CMD_IP_CURRENT: { | 267 case CMD_IP_CURRENT: { |
236 iface_info i; | 268 iface_info i; |
237 if (get_host_address(&i)) { | 269 if (get_host_address(&i)) { |
238 start_reply(mw, CMD_OK); | 270 start_reply(mw, CMD_OK); |
256 start_reply(mw, CMD_ERROR); | 288 start_reply(mw, CMD_ERROR); |
257 } | 289 } |
258 end_reply(mw); | 290 end_reply(mw); |
259 break; | 291 break; |
260 } | 292 } |
293 case CMD_IP_CFG_GET: | |
294 cmd_ip_cfg_get(mw); | |
295 break; | |
296 case CMD_DEF_AP_CFG_GET: | |
297 start_reply(mw, CMD_OK); | |
298 mw_putc(mw, 0); | |
299 end_reply(mw); | |
300 break; | |
261 case CMD_AP_JOIN: | 301 case CMD_AP_JOIN: |
262 mw->module_state = STATE_READY; | 302 mw->module_state = STATE_READY; |
263 start_reply(mw, CMD_OK); | 303 start_reply(mw, CMD_OK); |
264 end_reply(mw); | 304 end_reply(mw); |
265 break; | 305 break; |
334 start_reply(mw, CMD_OK); | 374 start_reply(mw, CMD_OK); |
335 mw_putc(mw, mw->module_state); | 375 mw_putc(mw, mw->module_state); |
336 mw_putc(mw, mw->flags); | 376 mw_putc(mw, mw->flags); |
337 mw_putc(mw, mw->channel_flags >> 8); | 377 mw_putc(mw, mw->channel_flags >> 8); |
338 mw_putc(mw, mw->channel_flags); | 378 mw_putc(mw, mw->channel_flags); |
379 end_reply(mw); | |
380 break; | |
381 case CMD_SERVER_URL_GET: | |
382 start_reply(mw, CMD_OK); | |
383 // FIXME: This should be get from config file | |
384 mw_puts(mw, "192.168.1.32"); | |
339 end_reply(mw); | 385 end_reply(mw); |
340 break; | 386 break; |
341 default: | 387 default: |
342 printf("Unhandled MegaWiFi command %s(%d) with length %X\n", cmd_names[command], command, size); | 388 printf("Unhandled MegaWiFi command %s(%d) with length %X\n", cmd_names[command], command, size); |
343 break; | 389 break; |