summaryrefslogtreecommitdiff
path: root/fw/esp32/components/eos/wifi.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/esp32/components/eos/wifi.c')
-rwxr-xr-xfw/esp32/components/eos/wifi.c66
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);
}