#ifndef __CLI_H
#define __CLI_H

#include "cli_inter_actor.h"
#include "cli_inter_preter.h"
#include <stm32f4xx.h>

#define cli_reset() NVIC_SystemReset()

extern void light_lib_cli_input(void);
extern void light_lib_cli_loop(void);

extern command_entry command_debug_table[];
extern command_entry command_ble_table[];
extern command_entry command_eeprom_table[];
extern command_entry command_flash_table[];

#define CLI_COMPONENTS_LIST                                                     \
    command_entry_sub_menu("debug", command_debug_table, "debug_table"),        \
        command_entry_sub_menu("ble", command_ble_table, "ble_table"),          \
        command_entry_sub_menu("eeprom", command_eeprom_table, "eeprom_table"), \
        command_entry_sub_menu("flash", command_flash_table, "flash_table"),

#define CLI_COMPONENTS_INIT \
    // light_lib_cli_init();

#define CLI_COMPONENTS_LOOP \
    // light_lib_cli_loop();

extern command_entry main_table[];

extern void cli_init(void);
extern void cli_loop(void);

#endif // __CLI_H