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;