cli_i.h 832 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "cli.h"
  3. #include <flipper.h>
  4. #include <flipper_v2.h>
  5. #include <m-dict.h>
  6. #define CLI_LINE_SIZE_MAX
  7. typedef struct {
  8. CliCallback callback;
  9. void* context;
  10. } CliCommand;
  11. DICT_DEF2(CliCommandDict, string_t, STRING_OPLIST, CliCommand, M_POD_OPLIST)
  12. typedef enum {
  13. CliSymbolAsciiSOH = 0x01,
  14. CliSymbolAsciiEOT = 0x04,
  15. CliSymbolAsciiBell = 0x07,
  16. CliSymbolAsciiBackspace = 0x08,
  17. CliSymbolAsciiTab = 0x09,
  18. CliSymbolAsciiCR = 0x0D,
  19. CliSymbolAsciiEsc = 0x1B,
  20. CliSymbolAsciiUS = 0x1F,
  21. CliSymbolAsciiSpace = 0x20,
  22. CliSymbolAsciiDel = 0x7F,
  23. } CliSymbols;
  24. struct Cli {
  25. CliCommandDict_t commands;
  26. osMutexId_t mutex;
  27. string_t line;
  28. };
  29. Cli* cli_alloc();
  30. void cli_free(Cli* cli);
  31. void cli_reset_state(Cli* cli);
  32. void cli_print_version();
  33. void cli_putc(char c);