Compare commits
3 Commits
a312625085
...
97072a7d87
Author | SHA1 | Date | |
---|---|---|---|
97072a7d87
|
|||
59f2d3f83a
|
|||
6efbe91747
|
2
firmware/.gitignore
vendored
2
firmware/.gitignore
vendored
@@ -38,3 +38,5 @@ bin/
|
|||||||
components/**/*.a
|
components/**/*.a
|
||||||
*.ninja
|
*.ninja
|
||||||
Testing/*
|
Testing/*
|
||||||
|
|
||||||
|
**/insights_auth_key.txt
|
||||||
|
10
firmware/components/analytics/CMakeLists.txt
Normal file
10
firmware/components/analytics/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
idf_component_register(SRCS
|
||||||
|
src/analytics.c
|
||||||
|
INCLUDE_DIRS "include"
|
||||||
|
REQUIRES
|
||||||
|
rmaker_common
|
||||||
|
esp_insights
|
||||||
|
rmaker_common
|
||||||
|
)
|
||||||
|
|
||||||
|
target_add_binary_data(${COMPONENT_TARGET} "insights_auth_key.txt" TEXT)
|
@@ -4,7 +4,7 @@
|
|||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
void wifi_init_sta(void);
|
void analytics_init(void);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
20
firmware/components/analytics/src/analytics.c
Normal file
20
firmware/components/analytics/src/analytics.c
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#include "analytics.h"
|
||||||
|
#include "esp_insights.h"
|
||||||
|
#include "esp_rmaker_utils.h"
|
||||||
|
|
||||||
|
extern const char insights_auth_key_start[] asm("_binary_insights_auth_key_txt_start");
|
||||||
|
extern const char insights_auth_key_end[] asm("_binary_insights_auth_key_txt_end");
|
||||||
|
|
||||||
|
void analytics_init(void)
|
||||||
|
{
|
||||||
|
esp_insights_config_t config = {
|
||||||
|
.log_type = ESP_DIAG_LOG_TYPE_ERROR | ESP_DIAG_LOG_TYPE_EVENT | ESP_DIAG_LOG_TYPE_WARNING,
|
||||||
|
.node_id = NULL,
|
||||||
|
.auth_key = insights_auth_key_start,
|
||||||
|
.alloc_ext_ram = false,
|
||||||
|
};
|
||||||
|
|
||||||
|
esp_insights_init(&config);
|
||||||
|
|
||||||
|
esp_rmaker_time_sync_init(NULL);
|
||||||
|
}
|
@@ -1,7 +1,11 @@
|
|||||||
idf_component_register(SRCS
|
idf_component_register(SRCS
|
||||||
src/ble_manager.c
|
src/ble_manager.c
|
||||||
|
src/wifi_manager.c
|
||||||
INCLUDE_DIRS "include"
|
INCLUDE_DIRS "include"
|
||||||
PRIV_REQUIRES
|
PRIV_REQUIRES
|
||||||
bt
|
bt
|
||||||
|
driver
|
||||||
nvs_flash
|
nvs_flash
|
||||||
)
|
esp_insights
|
||||||
|
led-manager
|
||||||
|
)
|
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
void wifi_manager_init(void);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
@@ -1,4 +1,4 @@
|
|||||||
#include "wifi_handler.h"
|
#include "wifi_manager.h"
|
||||||
|
|
||||||
#include "esp_event.h"
|
#include "esp_event.h"
|
||||||
#include "esp_insights.h"
|
#include "esp_insights.h"
|
||||||
@@ -21,7 +21,7 @@ static EventGroupHandle_t s_wifi_event_group;
|
|||||||
#define WIFI_CONNECTED_BIT BIT0
|
#define WIFI_CONNECTED_BIT BIT0
|
||||||
#define WIFI_FAIL_BIT BIT1
|
#define WIFI_FAIL_BIT BIT1
|
||||||
|
|
||||||
static const char *TAG = "wifi_handler";
|
static const char *TAG = "wifi_manager";
|
||||||
|
|
||||||
static int s_retry_num = 0;
|
static int s_retry_num = 0;
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ static void event_handler(void *arg, esp_event_base_t event_base, int32_t event_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wifi_init_sta()
|
void wifi_manager_init()
|
||||||
{
|
{
|
||||||
s_wifi_event_group = xEventGroupCreate();
|
s_wifi_event_group = xEventGroupCreate();
|
||||||
|
|
@@ -2,12 +2,7 @@
|
|||||||
|
|
||||||
#include "ui/MainMenu.h"
|
#include "ui/MainMenu.h"
|
||||||
|
|
||||||
#ifndef ESP32
|
uint64_t splashTime = 0;
|
||||||
#include <chrono>
|
|
||||||
#include <thread>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint64_t counter = 0;
|
|
||||||
|
|
||||||
SplashScreen::SplashScreen(menu_options_t *options) : Widget(options->u8g2), m_options(options)
|
SplashScreen::SplashScreen(menu_options_t *options) : Widget(options->u8g2), m_options(options)
|
||||||
{
|
{
|
||||||
@@ -15,18 +10,14 @@ SplashScreen::SplashScreen(menu_options_t *options) : Widget(options->u8g2), m_o
|
|||||||
|
|
||||||
void SplashScreen::update(const uint64_t dt)
|
void SplashScreen::update(const uint64_t dt)
|
||||||
{
|
{
|
||||||
counter += dt;
|
splashTime += dt;
|
||||||
if (counter >= 3000)
|
if (splashTime > 100)
|
||||||
{
|
{
|
||||||
counter = 0;
|
|
||||||
if (m_options && m_options->setScreen)
|
if (m_options && m_options->setScreen)
|
||||||
{
|
{
|
||||||
m_options->setScreen(std::make_shared<MainMenu>(m_options));
|
m_options->setScreen(std::make_shared<MainMenu>(m_options));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef ESP32
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SplashScreen::render()
|
void SplashScreen::render()
|
||||||
@@ -36,4 +27,4 @@ void SplashScreen::render()
|
|||||||
u8g2_DrawStr(u8g2, 30, u8g2->height / 2 + 5, "Axel Janz");
|
u8g2_DrawStr(u8g2, 30, u8g2->height / 2 + 5, "Axel Janz");
|
||||||
u8g2_SetFont(u8g2, u8g2_font_haxrcorp4089_tr);
|
u8g2_SetFont(u8g2, u8g2_font_haxrcorp4089_tr);
|
||||||
u8g2_DrawStr(u8g2, 35, 50, "Initialisierung...");
|
u8g2_DrawStr(u8g2, 35, 50, "Initialisierung...");
|
||||||
}
|
}
|
||||||
|
@@ -4,21 +4,18 @@ idf_component_register(SRCS
|
|||||||
button_handling.c
|
button_handling.c
|
||||||
i2c_checker.c
|
i2c_checker.c
|
||||||
hal/u8g2_esp32_hal.c
|
hal/u8g2_esp32_hal.c
|
||||||
wifi_handler.c
|
|
||||||
INCLUDE_DIRS "."
|
INCLUDE_DIRS "."
|
||||||
PRIV_REQUIRES
|
PRIV_REQUIRES
|
||||||
|
analytics
|
||||||
insa
|
insa
|
||||||
ble-manager
|
connectivity-manager
|
||||||
led-manager
|
led-manager
|
||||||
persistence-manager
|
persistence-manager
|
||||||
u8g2
|
u8g2
|
||||||
nvs_flash
|
nvs_flash
|
||||||
driver
|
|
||||||
esp_timer
|
esp_timer
|
||||||
esp_event
|
esp_event
|
||||||
esp_wifi
|
esp_wifi
|
||||||
app_update
|
app_update
|
||||||
rmaker_common
|
rmaker_common
|
||||||
)
|
)
|
||||||
|
|
||||||
target_add_binary_data(${COMPONENT_TARGET} "insights_auth_key.txt" TEXT)
|
|
||||||
|
@@ -1,5 +1,11 @@
|
|||||||
menu "System Control"
|
menu "System Control"
|
||||||
menu "WiFi Configuration"
|
menu "WiFi Configuration"
|
||||||
|
config WIFI_ENABLED
|
||||||
|
bool "Enable WiFi"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Enable or disable WiFi connectivity.
|
||||||
|
|
||||||
config WIFI_SSID
|
config WIFI_SSID
|
||||||
string "WiFi SSID"
|
string "WiFi SSID"
|
||||||
default "YourSSID"
|
default "YourSSID"
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
#include "app_task.h"
|
#include "app_task.h"
|
||||||
|
|
||||||
|
#include "analytics.h"
|
||||||
#include "button_handling.h"
|
#include "button_handling.h"
|
||||||
#include "common/InactivityTracker.h"
|
#include "common/InactivityTracker.h"
|
||||||
#include "driver/i2c.h"
|
#include "driver/i2c.h"
|
||||||
@@ -10,10 +11,12 @@
|
|||||||
#include "hal_esp32/PersistenceManager.h"
|
#include "hal_esp32/PersistenceManager.h"
|
||||||
#include "i2c_checker.h"
|
#include "i2c_checker.h"
|
||||||
#include "led_status.h"
|
#include "led_status.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "u8g2.h"
|
#include "u8g2.h"
|
||||||
#include "ui/ClockScreenSaver.h"
|
#include "ui/ClockScreenSaver.h"
|
||||||
#include "ui/ScreenSaver.h"
|
#include "ui/ScreenSaver.h"
|
||||||
#include "ui/SplashScreen.h"
|
#include "ui/SplashScreen.h"
|
||||||
|
#include "wifi_manager.h"
|
||||||
|
|
||||||
#define PIN_RST GPIO_NUM_NC
|
#define PIN_RST GPIO_NUM_NC
|
||||||
|
|
||||||
@@ -102,6 +105,10 @@ static void init_ui(void)
|
|||||||
auto screensaver = std::make_shared<ClockScreenSaver>(&options);
|
auto screensaver = std::make_shared<ClockScreenSaver>(&options);
|
||||||
options.pushScreen(screensaver);
|
options.pushScreen(screensaver);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
u8g2_ClearBuffer(&u8g2);
|
||||||
|
m_widget->render();
|
||||||
|
u8g2_SendBuffer(&u8g2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_button(uint8_t button)
|
static void handle_button(uint8_t button)
|
||||||
@@ -160,6 +167,11 @@ void app_task(void *args)
|
|||||||
setup_buttons();
|
setup_buttons();
|
||||||
init_ui();
|
init_ui();
|
||||||
|
|
||||||
|
#if CONFIG_WIFI_ENABLED
|
||||||
|
wifi_manager_init();
|
||||||
|
analytics_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
auto oldTime = esp_timer_get_time();
|
auto oldTime = esp_timer_get_time();
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
|
@@ -3,38 +3,13 @@
|
|||||||
#include "esp_event.h"
|
#include "esp_event.h"
|
||||||
#include "esp_insights.h"
|
#include "esp_insights.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
#include "esp_ota_ops.h"
|
|
||||||
#include "esp_rmaker_utils.h"
|
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
#include "led_manager.h"
|
#include "led_manager.h"
|
||||||
#include "led_status.h"
|
#include "led_status.h"
|
||||||
#include "nvs_flash.h"
|
#include "nvs_flash.h"
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
#include "wifi_handler.h"
|
#include "wifi_manager.h"
|
||||||
|
|
||||||
static const char *TAG = "main";
|
|
||||||
|
|
||||||
extern const char insights_auth_key_start[] asm("_binary_insights_auth_key_txt_start");
|
|
||||||
extern const char insights_auth_key_end[] asm("_binary_insights_auth_key_txt_end");
|
|
||||||
|
|
||||||
void show_partition(void)
|
|
||||||
{
|
|
||||||
const esp_partition_t *running_partition = esp_ota_get_running_partition();
|
|
||||||
|
|
||||||
if (running_partition != NULL)
|
|
||||||
{
|
|
||||||
ESP_DIAG_EVENT(TAG, "Currently running partition: %s", running_partition->label);
|
|
||||||
ESP_DIAG_EVENT(TAG, " Type: %s", (running_partition->type == ESP_PARTITION_TYPE_APP) ? "APP" : "DATA");
|
|
||||||
ESP_DIAG_EVENT(TAG, " Subtype: %d", running_partition->subtype);
|
|
||||||
ESP_DIAG_EVENT(TAG, " Offset: 0x%lx", running_partition->address);
|
|
||||||
ESP_DIAG_EVENT(TAG, " Size: %ld bytes", running_partition->size);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ESP_LOGE(TAG, "Could not determine the running partition!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
@@ -50,23 +25,8 @@ extern "C"
|
|||||||
ESP_ERROR_CHECK(nvs_flash_init());
|
ESP_ERROR_CHECK(nvs_flash_init());
|
||||||
}
|
}
|
||||||
|
|
||||||
show_partition();
|
|
||||||
|
|
||||||
led_status_init(CONFIG_STATUS_WLED_PIN);
|
led_status_init(CONFIG_STATUS_WLED_PIN);
|
||||||
|
|
||||||
wifi_init_sta();
|
|
||||||
|
|
||||||
esp_insights_config_t config = {
|
|
||||||
.log_type = ESP_DIAG_LOG_TYPE_ERROR | ESP_DIAG_LOG_TYPE_EVENT | ESP_DIAG_LOG_TYPE_WARNING,
|
|
||||||
.node_id = nullptr,
|
|
||||||
.auth_key = insights_auth_key_start,
|
|
||||||
.alloc_ext_ram = false,
|
|
||||||
};
|
|
||||||
|
|
||||||
esp_insights_init(&config);
|
|
||||||
|
|
||||||
esp_rmaker_time_sync_init(NULL);
|
|
||||||
|
|
||||||
wled_init();
|
wled_init();
|
||||||
|
|
||||||
register_handler();
|
register_handler();
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
# Name , Type , SubType , Offset , Size , Flags
|
# Name , Type , SubType , Offset , Size , Flags
|
||||||
nvs , data , nvs , 0x9000 , 20k ,
|
nvs , data , nvs , 0x9000 , 24k ,
|
||||||
otadata , data , ota , , 8k ,
|
phy_init , data , phy , , 4k ,
|
||||||
app0 , app , ota_0 , 0x10000 , 1536k ,
|
factory , app , factory , 0x10000 , 3584K ,
|
||||||
app1 , app , ota_1 , , 1536k ,
|
|
||||||
phy , data , phy , , 4k ,
|
|
||||||
coredump , data , coredump , , 64k ,
|
coredump , data , coredump , , 64k ,
|
||||||
spiffs , data , spiffs , , 892k ,
|
fctry , data , nvs , , 24k ,
|
||||||
|
|
Reference in New Issue
Block a user