diff options
Diffstat (limited to 'fw/esp32/components/eos/wifi.c')
-rwxr-xr-x | fw/esp32/components/eos/wifi.c | 66 |
1 files changed, 37 insertions, 29 deletions
diff --git a/fw/esp32/components/eos/wifi.c b/fw/esp32/components/eos/wifi.c index 2be169f..77f9143 100755 --- a/fw/esp32/components/eos/wifi.c +++ b/fw/esp32/components/eos/wifi.c @@ -10,7 +10,6 @@ #include <esp_log.h> #include <esp_err.h> #include <esp_wifi.h> -#include <nvs_flash.h> #include "eos.h" #include "net.h" @@ -53,8 +52,6 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t e ESP_LOGI(TAG, "Event disconnected - reason: %d", sta_disconnected->reason); if (sta_disconnected->reason == WIFI_REASON_ASSOC_LEAVE) { - stop = 0; - reconnect_cnt = 0; eos_wifi_send_status(); break; } @@ -113,25 +110,25 @@ static void wifi_handler(unsigned char _mtype, unsigned char *buffer, uint16_t b mtype = buffer[0]; switch (mtype) { case EOS_WIFI_MTYPE_STATUS: { - int reply; - ssize_t rv; + unsigned char *_buffer; + ssize_t _rv; + int reply, rv; reply = _mtype & EOS_NET_MTYPE_FLAG_REPL; if (reply) { - rv = eos_wifi_get_status(buffer + 1); - if (rv < 0) break; + _rv = eos_wifi_get_status(buffer + 1); + if (_rv < 0) break; - eos_net_reply(EOS_NET_MTYPE_WIFI, buffer, rv + 1); + eos_net_reply(EOS_NET_MTYPE_WIFI, buffer, _rv + 1); } else { - unsigned char *buf; - - buf = eos_net_alloc(); - buf[0] = EOS_WIFI_MTYPE_STATUS; - rv = eos_wifi_get_status(buf + 1); - if (rv < 0) break; + _buffer = eos_net_alloc(); + _buffer[0] = EOS_WIFI_MTYPE_STATUS; + _rv = eos_wifi_get_status(_buffer + 1); + if (_rv < 0) break; - eos_net_send(EOS_NET_MTYPE_WIFI, buf, rv + 1); + rv = eos_net_send(EOS_NET_MTYPE_WIFI, _buffer, _rv + 1); + if (rv) ESP_LOGE(TAG, "NET SEND ERR:%d", rv); } break; } @@ -202,20 +199,14 @@ static void wifi_handler(unsigned char _mtype, unsigned char *buffer, uint16_t b } void eos_wifi_init(void) { - esp_err_t ret; wifi_init_config_t wifi_config = WIFI_INIT_CONFIG_DEFAULT(); + esp_err_t ret; wifi_netif = esp_netif_create_default_wifi_sta(); ret = esp_wifi_init(&wifi_config); assert(ret == ESP_OK); - ret = esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL); - assert(ret == ESP_OK); - - ret = esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL, NULL); - assert(ret == ESP_OK); - ret = esp_wifi_set_storage(WIFI_STORAGE_RAM); assert(ret == ESP_OK); @@ -226,9 +217,22 @@ void eos_wifi_init(void) { assert(ret == ESP_OK); eos_net_set_handler(EOS_NET_MTYPE_WIFI, wifi_handler); + ESP_LOGI(TAG, "INIT"); } +void eos_wifi_run(void) { + esp_err_t ret; + + ret = esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL); + assert(ret == ESP_OK); + + ret = esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL, NULL); + assert(ret == ESP_OK); + + ESP_LOGI(TAG, "RUN"); +} + ssize_t eos_wifi_get_status(unsigned char *buffer) { unsigned char *p; wifi_ap_record_t ap_info; @@ -293,26 +297,28 @@ ssize_t eos_wifi_get_status(unsigned char *buffer) { void eos_wifi_send_status(void) { unsigned char *rbuf; - ssize_t rv; + ssize_t _rv; + int rv; rbuf = eos_net_alloc(); rbuf[0] = EOS_WIFI_MTYPE_STATUS; - rv = eos_wifi_get_status(rbuf + 1); - if (rv < 0) { + _rv = eos_wifi_get_status(rbuf + 1); + if (_rv < 0) { eos_net_free(rbuf); return; } - eos_net_send(EOS_NET_MTYPE_WIFI, rbuf, rv + 1); + rv = eos_net_send(EOS_NET_MTYPE_WIFI, rbuf, _rv + 1); + if (rv) ESP_LOGE(TAG, "NET SEND ERR:%d", rv); } void eos_wifi_send_scan(void) { static wifi_ap_record_t scan_r[EOS_WIFI_MAX_SCAN_RECORDS]; static uint16_t scan_n; - unsigned char *rbuf, *p; - int i; size_t len; esp_err_t ret; + unsigned char *rbuf, *p; + int i, rv; scan_n = EOS_WIFI_MAX_SCAN_RECORDS; memset(scan_r, 0, sizeof(scan_r)); @@ -336,5 +342,7 @@ void eos_wifi_send_scan(void) { strcpy((char *)p, (char *)scan_r[i].ssid); p += len + 1; } - eos_net_send(EOS_NET_MTYPE_WIFI, rbuf, p - rbuf); + + rv = eos_net_send(EOS_NET_MTYPE_WIFI, rbuf, p - rbuf); + if (rv) ESP_LOGE(TAG, "NET SEND ERR:%d", rv); } |