cli_i.h 902 B

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