shellmatta.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <stdint.h>
  2. typedef enum
  3. {
  4. SHELLMATTA_OK = 0u
  5. , SHELLMATTA_ERROR
  6. , SHELLMATTA_CONTINUE
  7. , SHELLMATTA_USE_FAULT
  8. } shellmatta_retCode_t;
  9. typedef shellmatta_retCode_t (*shellmatta_cmdFct_t)(int argc, char *argv[]);
  10. typedef struct shellmatta_cmd
  11. {
  12. char *cmd;
  13. char *cmdAlias;
  14. char *helpText;
  15. char *usageText;
  16. shellmatta_cmdFct_t cmdFct;
  17. struct shellmatta_cmd *next;
  18. } shellmatta_cmd_t;
  19. typedef struct
  20. {
  21. uint8_t *buffer;
  22. uint32_t bufferSize;
  23. uint32_t bufferWritePointer;
  24. uint32_t bufferReadPointer;
  25. uint8_t *historyBuffer;
  26. uint32_t historyBufferSize;
  27. shellmatta_cmd_t *cmdList;
  28. } shellmatta_instance_t;
  29. extern void shellmatta_doInit(shellmatta_instance_t *inst, uint8_t *buffer, uint32_t bufferSize, uint8_t *historyBuffer, uint32_t historyBufferSize);
  30. extern void shellmatta_addCmd(shellmatta_instance_t *inst, shellmatta_cmd_t *cmd);
  31. extern void shellmatta_doTask(shellmatta_instance_t *inst, uint32_t time);
  32. extern void shellmatta_processData(shellmatta_instance_t *inst, char *data, uint32_t size);
  33. extern void shellmatta_printf(shellmatta_instance_t *inst, const char *fmt, ...);
  34. extern void shellmatta_getArg(uint32_t cnt, uint8_t *arg);