From c6962c5700f99441538dafa346626bb7e6d12488 Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 30 Mar 2022 13:22:19 +0200 Subject: sock api fixed; net reply messages fixed --- fw/fe310/eos/wifi.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'fw/fe310/eos/wifi.c') diff --git a/fw/fe310/eos/wifi.c b/fw/fe310/eos/wifi.c index d7c1824..0663582 100644 --- a/fw/fe310/eos/wifi.c +++ b/fw/fe310/eos/wifi.c @@ -43,3 +43,64 @@ eos_evt_handler_t eos_wifi_get_handler(unsigned char mtype) { if (mtype < EOS_WIFI_MAX_MTYPE) return evt_handler[mtype]; return NULL; } + +int eos_wifi_scan(unsigned char *buffer) { + int async; + + async = 0; + if (buffer == NULL) { + buffer = eos_net_alloc(); + async = 1; + } + buffer[0] = EOS_WIFI_MTYPE_SCAN; + return _eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, async, 1); +} + +int eos_wifi_auth(const char *ssid, const char *pass, unsigned char *buffer) { + unsigned char *buf; + size_t ssid_len, pass_len; + int async; + + async = 0; + if (buffer == NULL) { + buffer = eos_net_alloc(); + async = 1; + } + ssid_len = strlen(ssid) + 1; + pass_len = strlen(pass) + 1; + if ((1 + ssid_len + pass_len) > EOS_NET_MTU) return EOS_ERR_SIZE; + + buf = buffer; + buf[0] = EOS_WIFI_MTYPE_AUTH; + buf++; + strcpy(buf, ssid); + buf += ssid_len; + strcpy(buf, pass); + buf += pass_len; + + return _eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1 + ssid_len + pass_len, async, 1); +} + +int eos_wifi_connect(unsigned char *buffer) { + int async; + + async = 0; + if (buffer == NULL) { + buffer = eos_net_alloc(); + async = 1; + } + buffer[0] = EOS_WIFI_MTYPE_CONNECT; + return _eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, async, 1); +} + +int eos_wifi_disconnect(unsigned char *buffer) { + int async; + + async = 0; + if (buffer == NULL) { + buffer = eos_net_alloc(); + async = 1; + } + buffer[0] = EOS_WIFI_MTYPE_DISCONNECT; + return _eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, async, 1); +} -- cgit v1.2.3