Files
lilygo-t5-template/lib/epdiy/examples/screen_diag/main/screen_diag.c
Кобелев Андрей Андреевич a111352dc5 Прошло 2 года.
2026-03-10 22:54:23 +03:00

69 lines
1.9 KiB
C

/* Based on the console example app, which is licensed under CC0.
* @link
* https://github.com/espressif/esp-idf/blob/v4.4.3/examples/system/console/basic/main/console_example_main.c
*/
#include <esp_console.h>
#include <esp_log.h>
#include <esp_vfs_fat.h>
#include <nvs.h>
#include <nvs_flash.h>
#include <string.h>
#include "commands/graphics.h"
#include "commands/screen.h"
#include "commands/system.h"
#include "commands/tests.h"
#include "epd.h"
#define DEFINE_FONTS
#include "fonts.h"
static const char* TAG = "screen_diag";
static void initialize_filesystem(void) {
static wl_handle_t wl_handle;
const esp_vfs_fat_mount_config_t mount_config
= { .max_files = 4, .format_if_mount_failed = true };
esp_err_t err
= esp_vfs_fat_spiflash_mount("/screen_diag", "storage", &mount_config, &wl_handle);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to mount FATFS (%s)", esp_err_to_name(err));
return;
}
}
static void initialize_nvs(void) {
esp_err_t err = nvs_flash_init();
if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
ESP_ERROR_CHECK(nvs_flash_erase());
err = nvs_flash_init();
}
ESP_ERROR_CHECK(err);
}
void app_main(void) {
initialize_nvs();
initialize_filesystem();
initialize_screen();
esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT();
repl_config.prompt = "diag>";
repl_config.history_save_path = "/screen_diag/history.txt";
/* Register commands */
esp_console_register_help_command();
register_system_commands();
register_screen_commands();
register_graphics_commands();
register_tests_commands();
esp_console_repl_t* repl;
esp_console_dev_uart_config_t hw_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_console_new_repl_uart(&hw_config, &repl_config, &repl));
ESP_ERROR_CHECK(esp_console_start_repl(repl));
}