diff --git a/Provider/dependencies.lock b/Provider/dependencies.lock index cb35a78..51217e2 100644 --- a/Provider/dependencies.lock +++ b/Provider/dependencies.lock @@ -145,6 +145,12 @@ dependencies: registry_url: https://components.espressif.com/ type: service version: 1.20.4 + led: + dependencies: [] + source: + path: C:\Dev\Classified\Calendink\components\led + type: local + version: '*' lvgl/lvgl: component_hash: 17e68bfd21f0edf4c3ee838e2273da840bf3930e5dbc3bfa6c1190c3aed41f9f dependencies: [] @@ -168,8 +174,9 @@ direct_dependencies: - espressif/mdns - idf - joltwallet/littlefs +- led - lvgl/lvgl - network -manifest_hash: adc42d97d037e4815c3e1d03227cf1a5b29b8a914aa24fefa5760edd541a6bac +manifest_hash: 8a9836e63bff09fce191602012b7b8be5ce92e62a59560b077f9129823441672 target: esp32s3 version: 2.0.0 diff --git a/Provider/main/CMakeLists.txt b/Provider/main/CMakeLists.txt index 3b2cd99..792e364 100644 --- a/Provider/main/CMakeLists.txt +++ b/Provider/main/CMakeLists.txt @@ -1,8 +1,8 @@ idf_component_register(SRCS "main.cpp" - PRIV_REQUIRES esp_http_server esp_eth - esp_wifi nvs_flash esp_netif vfs - json app_update esp_timer esp_psram mdns driver network - INCLUDE_DIRS ".") + PRIV_REQUIRES esp_http_server + nvs_flash vfs esp_timer + json app_update esp_psram mdns driver network + INCLUDE_DIRS "." "../../components/shared") if(CONFIG_CALENDINK_DEPLOY_WEB_PAGES) set(WEB_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../frontend") diff --git a/Provider/main/idf_component.yml b/Provider/main/idf_component.yml index b841858..78762b1 100644 --- a/Provider/main/idf_component.yml +++ b/Provider/main/idf_component.yml @@ -21,3 +21,5 @@ dependencies: lvgl/lvgl: "9.4.0" network: path: "../../components/network" + led: + path: "../../components/led" diff --git a/Provider/main/main.cpp b/Provider/main/main.cpp index abd4564..7632a32 100644 --- a/Provider/main/main.cpp +++ b/Provider/main/main.cpp @@ -18,10 +18,10 @@ // Project headers #include "types.hpp" #include "network.hpp" +#include "led.hpp" // Project cpp (Unity Build entry) // clang-format off -#include "led_status.cpp" #include "http_server.cpp" #include "mdns_service.cpp" #include "udp_logger.cpp" @@ -42,7 +42,7 @@ constexpr bool kBlockUntilEthernetEstablished = false; internal void my_timer_callback(void *arg) { ESP_LOGI(kTagMain, "Timer finished! Turning Led Off..."); - destroy_led(); + turn_off_led(); } extern "C" void app_main() @@ -378,7 +378,7 @@ shutdown: g_Wifi_Initialized = false; } - destroy_led(); + turn_off_led(); ESP_ERROR_CHECK(esp_event_loop_delete_default()); ESP_ERROR_CHECK(nvs_flash_deinit()); diff --git a/components/led/CMakeLists.txt b/components/led/CMakeLists.txt new file mode 100644 index 0000000..ce8eefd --- /dev/null +++ b/components/led/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "led.cpp" + INCLUDE_DIRS "." "../shared" + PRIV_REQUIRES led_strip) diff --git a/components/led/idf_component.yml b/components/led/idf_component.yml new file mode 100644 index 0000000..e69de29 diff --git a/Provider/main/led_status.cpp b/components/led/led.cpp similarity index 82% rename from Provider/main/led_status.cpp rename to components/led/led.cpp index ef1128e..296e8fe 100644 --- a/Provider/main/led_status.cpp +++ b/components/led/led.cpp @@ -1,5 +1,5 @@ // Project includes -#include "types.hpp" +#include "led.hpp" // SDK Includes #include "led_strip.h" @@ -7,18 +7,9 @@ // Could be a config but its the GPIO on my ESP32-S3-ETH #define LED_GPIO GPIO_NUM_21 -enum class led_status : uint8 -{ - ConnectingEthernet, - ConnectingWifi, - ReadyEthernet, - ReadyWifi, - Failed -}; - internal led_strip_handle_t led_strip; -internal void setup_led(void) +void setup_led(void) { /* LED strip initialization with the GPIO and pixels number*/ led_strip_config_t strip_config = {}; @@ -34,9 +25,9 @@ internal void setup_led(void) led_strip_clear(led_strip); } -internal void destroy_led(void) { led_strip_clear(led_strip); } +void turn_off_led(void) { led_strip_clear(led_strip); } -internal void set_led_status(led_status status) +void set_led_status(led_status status) { switch (status) { @@ -59,8 +50,7 @@ internal void set_led_status(led_status status) led_strip_refresh(led_strip); } -#if CONFIG_CALENDINK_BLINK_IP -internal void led_blink_number(int n, uint8_t r, uint8_t g, uint8_t b) +void led_blink_number(int n, uint8_t r, uint8_t g, uint8_t b) { if (n <= 0) { @@ -87,4 +77,3 @@ internal void led_blink_number(int n, uint8_t r, uint8_t g, uint8_t b) } vTaskDelay(pdMS_TO_TICKS(1000)); } -#endif diff --git a/components/led/led.hpp b/components/led/led.hpp new file mode 100644 index 0000000..1e4cb85 --- /dev/null +++ b/components/led/led.hpp @@ -0,0 +1,18 @@ +#pragma once + +// Project includes +#include "types.hpp" + +enum class led_status : uint8 +{ + ConnectingEthernet, + ConnectingWifi, + ReadyEthernet, + ReadyWifi, + Failed +}; + +void setup_led(void); +void turn_off_led(void); +void set_led_status(led_status status); +void led_blink_number(int n, uint8_t r, uint8_t g, uint8_t b); diff --git a/components/network/CMakeLists.txt b/components/network/CMakeLists.txt index 5cffadd..1fb756b 100644 --- a/components/network/CMakeLists.txt +++ b/components/network/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "network.cpp" - INCLUDE_DIRS "." + INCLUDE_DIRS "." "../shared" PRIV_REQUIRES esp_eth esp_wifi esp_netif driver) diff --git a/components/network/network.cpp b/components/network/network.cpp index eab39ab..708303a 100644 --- a/components/network/network.cpp +++ b/components/network/network.cpp @@ -16,13 +16,11 @@ #include "freertos/semphr.h" #include "freertos/timers.h" +#include "types.hpp" + // Project includes #include "network.hpp" -#ifndef internal -#define internal static -#endif - // Forward declarations #if CONFIG_CALENDINK_BLINK_IP internal esp_err_t get_ip_info(esp_netif_ip_info_t *ip_info); diff --git a/components/network/network.hpp b/components/network/network.hpp index dd95aee..371f197 100644 --- a/components/network/network.hpp +++ b/components/network/network.hpp @@ -1,8 +1,9 @@ #pragma once -#include "esp_err.h" #include +#include "esp_err.h" + esp_err_t connect_ethernet(bool blockUntilIPAcquired); void disconnect_ethernet(); esp_err_t check_ethernet_connection(uint32_t timeoutSeconds); diff --git a/Provider/main/types.hpp b/components/shared/types.hpp similarity index 100% rename from Provider/main/types.hpp rename to components/shared/types.hpp