#include #include #include "esp32-uart-cmdr.h" #define MAX_COMMANDS (10) static struct Cmd cmd_list[MAX_COMMANDS]; static volatile uint8_t cmd_count = 0; uint8_t ucmdr_install(char *cmd, void(*callback)(void *p)) { //printf("installing: %s\n", cmd); cmd_list[cmd_count].cmd = cmd; cmd_list[cmd_count].callback = callback; //printf("cmd_count: %d\n", cmd_count); ++cmd_count; //printf("cmd_count: %d\n", cmd_count); return cmd_count; }; uint8_t ucmdr_match(char *str, struct Cmd **handler) { uint8_t i = 0; //printf("Checking against %d handlers\n", cmd_count); for(; i < cmd_count; i++) { //printf("checking %s\n", (const char*)cmd_list[i].cmd); if(strstr(str, (const char*)cmd_list[i].cmd) != NULL) { *handler = &cmd_list[i]; return 1; } } return 0; }; void ucmdr_init() { bzero(&cmd_list, sizeof(cmd_list)); cmd_count = 0; };