diff options
Diffstat (limited to 'fw/fe310/test/wifi.c')
| -rw-r--r-- | fw/fe310/test/wifi.c | 33 | 
1 files changed, 31 insertions, 2 deletions
| diff --git a/fw/fe310/test/wifi.c b/fw/fe310/test/wifi.c index 595a87c..86f6b62 100644 --- a/fw/fe310/test/wifi.c +++ b/fw/fe310/test/wifi.c @@ -30,6 +30,35 @@  extern EVEFont *_app_font_default; +static void wifi_scan(void) { +    unsigned char *buffer = eos_net_alloc(); +    buffer[0] = EOS_WIFI_MTYPE_SCAN; +    eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, 0); +} + +static void wifi_connect(const char *ssid, const char *pass) { +    unsigned char *buffer, *p; + +    buffer = eos_net_alloc(); +    buffer[0] = EOS_WIFI_MTYPE_CONFIG; +    p = buffer + 1; +    strcpy(p, ssid); +    p += strlen(ssid) + 1; +    strcpy(p, pass); +    p += strlen(pass) + 1; +    eos_net_send(EOS_NET_MTYPE_WIFI, buffer, p - buffer, 1); + +    buffer = eos_net_alloc(); +    buffer[0] = EOS_WIFI_MTYPE_CONNECT; +    eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, 0); +} + +static void wifi_disconnect(void) { +    unsigned char *buffer = eos_net_alloc(); +    buffer[0] = EOS_WIFI_MTYPE_DISCONNECT; +    eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, 0); +} +  void wifi_scan_handler(unsigned char type, unsigned char *buffer, uint16_t size) {      EVEScreen *screen = app_screen();      EVEWindow *window = eve_window_get(screen, "main"); @@ -86,7 +115,7 @@ void app_wifi(EVEWindow *window, EVEViewStack *stack) {      };      EVEForm *form = app_form_create(window, stack, spec, 3, app_wifi_action, app_wifi_close); -    eos_wifi_scan(); +    wifi_scan();  }  void app_wifi_action(EVEForm *form) { @@ -94,7 +123,7 @@ void app_wifi_action(EVEForm *form) {      EVEStrWidget *str = (EVEStrWidget *)eve_form_widget(form, 2);      char *ssid = eve_selectw_option_get_select(sel); -    eos_wifi_connect(ssid, str->str); +    if (ssid) wifi_connect(ssid, str->str);  }  void app_wifi_close(EVEForm *form) { | 
