From df6f7bd781aaf83f3bc0ac668f6273fa9269aa23 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 29 Mar 2022 23:17:44 +0200 Subject: [PATCH] avahi --- components/APlib/APlib.c | 4 ++-- default_conf.csv | 1 + main/CO2_Sense.c | 26 +++++++++++++++++++++----- main/CO2_Sense.h | 1 + nvs.bin | Bin 24576 -> 24576 bytes 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/components/APlib/APlib.c b/components/APlib/APlib.c index 175273b..ee70469 100644 --- a/components/APlib/APlib.c +++ b/components/APlib/APlib.c @@ -21,8 +21,8 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base,int32_t ev void wifi_init_softap(wifi_config_t wifi_config){ - ESP_ERROR_CHECK(esp_netif_init()); - ESP_ERROR_CHECK(esp_event_loop_create_default()); + //ESP_ERROR_CHECK(esp_netif_init()); + //ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_ap(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); diff --git a/default_conf.csv b/default_conf.csv index 9f39c78..7fa1b97 100644 --- a/default_conf.csv +++ b/default_conf.csv @@ -1,6 +1,7 @@ # Default nvs configuration key,type,encoding,value main,namespace,, +name,data,string,CO2Sense wireless_conf,data,binary,00000001 sensor_conf,data,binary,00000000 led1_conf,data,hex2bin,0400DC051027640001FF diff --git a/main/CO2_Sense.c b/main/CO2_Sense.c index b630d79..723abb3 100644 --- a/main/CO2_Sense.c +++ b/main/CO2_Sense.c @@ -11,6 +11,7 @@ #include "esp_wifi.h" #include "esp_log.h" #include "esp_vfs_fat.h" +#include "mdns.h" #include "APlib.h" #include "HTTPServe.h" @@ -34,11 +35,17 @@ void app_main(void){ // init LEDs driver led_disp_config_t* led_configs = generate_led_conf(nvs_handle,LED_NUMBER); init_led_driver(led_configs, LED_NUMBER); - - // init wifi AP (and nvs) - wifi_config_t wifi_config = wifi_config_generator("CO2Sense","testtest",1); - wifi_init_softap(wifi_config); + // init wifi AP + wifi_config_t wifi_config = wifi_config_generator("CO2Sense","testtest",1); + + ESP_ERROR_CHECK(esp_netif_init()); + ESP_ERROR_CHECK(esp_event_loop_create_default()); + + // start avahi + init_avahi(nvs_handle); + + wifi_init_softap(wifi_config); // mount http server fat partition const esp_vfs_fat_mount_config_t mount_config = { @@ -119,14 +126,23 @@ void init_nvs(void){ ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); +} +void init_avahi(nvs_handle_t nvs){ + ESP_ERROR_CHECK(mdns_init()); + char hostname[16]; + size_t buff_size = sizeof(hostname); + ESP_ERROR_CHECK(nvs_get_str(nvs, "name", &hostname[0], &buff_size)); + ESP_LOGI("avahi", "hosname : %s", hostname); + ESP_ERROR_CHECK(mdns_hostname_set(hostname)); + ESP_ERROR_CHECK(mdns_instance_name_set(hostname)); } led_disp_config_t* generate_led_conf(nvs_handle_t nvs, unsigned int nb){ led_disp_config_t* led_configs = malloc(nb * sizeof(led_disp_config_t)); size_t conf_size = sizeof(led_disp_config_t); for(int i = 0; i < nb; i++){ - char key[15]; + char key[16]; sprintf(key, "led%i_conf", i+1); ESP_ERROR_CHECK(nvs_get_blob(nvs, key, &led_configs[i], &conf_size)); } diff --git a/main/CO2_Sense.h b/main/CO2_Sense.h index 5093e8d..9341bdd 100644 --- a/main/CO2_Sense.h +++ b/main/CO2_Sense.h @@ -3,4 +3,5 @@ void fetch_sensor_task(void* pvParameters); void init_nvs(void); +void init_avahi(nvs_handle_t nvs); led_disp_config_t* generate_led_conf(nvs_handle_t nvs, unsigned int nb); diff --git a/nvs.bin b/nvs.bin index 5874d99bf9ecc54663d62bd1f40ddbc21ed26c0c..0cb4b0348dd1d84b6c0a079bbe4e83b0842a9e6e 100644 GIT binary patch delta 69 zcmZoTz}Rqrae@ltugQ)~(i0sNH58ftU%or5B`+~Il>rHGGW`F)ez Q3_$hb8xs=v7YPIa068`m^8f$< delta 26 icmZoTz}Rqrae~U^Mkbkw4vHHW#`8~}z~rz