//
// Protofusion ESP32S3 Template
//
#include <stdint.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "esp_system.h"
#include "esp_event.h"
#include "esp_log.h"
#include "nvs_flash.h"
#include "sdkconfig.h"
#include "osc_control.h"
#include "wifi.h"
// #include "usb_cdc.h"
#include "can.h"
#include "display.h"
#include "squeeze.h"
#include "ledstrip.h"
#include "display_gui.h"
// Private variables
static const char *TAG = "main";
// Application entry point
void app_main(void)
{
// Initialize usb-cdc interface
// usb_cdc_init();
// Initialize NVS
esp_err_t ret = nvs_flash_init();
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
ESP_ERROR_CHECK(nvs_flash_erase());
ret = nvs_flash_init();
}
ESP_ERROR_CHECK(ret);
// Initialize display
display_init();
display_gui_homescreen();
// Connect to wifi
wifi_init();
ledstrip_init();
squeeze_init();
// Initialize OSC
osc_init();
// Initialize canbus
//can_init();
// Start tasks
xTaskCreatePinnedToCore(ledstrip_refresh, "ledstrip_refresh", 4096, NULL, 10, NULL, 1);
xTaskCreatePinnedToCore(display_gui_process, "display_gui_process", 4096, NULL, 10, NULL, 1);
while(1)
{
vTaskDelay(pdMS_TO_TICKS(100));
}
}