Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Console.h@5:4624aed3b143, 2018-04-23 (annotated)
- Committer:
- JanusErasmus
- Date:
- Mon Apr 23 16:06:02 2018 +0000
- Revision:
- 5:4624aed3b143
- Parent:
- 2:4c8b24eb7ad5
Print thread info in tables
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JanusErasmus | 0:cda1bfa06c7c | 1 | /* |
JanusErasmus | 0:cda1bfa06c7c | 2 | * Console.h |
JanusErasmus | 0:cda1bfa06c7c | 3 | * |
JanusErasmus | 0:cda1bfa06c7c | 4 | * Created on: 17 Mar 2018 |
JanusErasmus | 0:cda1bfa06c7c | 5 | * Author: Janus |
JanusErasmus | 0:cda1bfa06c7c | 6 | */ |
JanusErasmus | 0:cda1bfa06c7c | 7 | |
JanusErasmus | 0:cda1bfa06c7c | 8 | #ifndef CONSOLE_H_ |
JanusErasmus | 0:cda1bfa06c7c | 9 | #define CONSOLE_H_ |
JanusErasmus | 0:cda1bfa06c7c | 10 | |
JanusErasmus | 0:cda1bfa06c7c | 11 | #include "mbed.h" |
JanusErasmus | 0:cda1bfa06c7c | 12 | |
JanusErasmus | 0:cda1bfa06c7c | 13 | |
JanusErasmus | 0:cda1bfa06c7c | 14 | #define INFO_TRACE(_class, _string, ...) diag_printf( "%15s : " _string, _class, ##__VA_ARGS__) |
JanusErasmus | 0:cda1bfa06c7c | 15 | #define DEBUG_TRACE(_lvl, _class, _string, ...) dbg_printf(_lvl, "%15s : " _string, _class, ##__VA_ARGS__) |
JanusErasmus | 0:cda1bfa06c7c | 16 | #define PRINT_REG(_base, _x) diag_printf(#_x": 0x%08X\n", *((volatile CYG_WORD32 *)(_base + _x))); |
JanusErasmus | 0:cda1bfa06c7c | 17 | |
JanusErasmus | 0:cda1bfa06c7c | 18 | #ifndef VT100_OFF |
JanusErasmus | 0:cda1bfa06c7c | 19 | #define COLOR(__c,__x) "\x1b[3" #__c "m" __x "\x1b[0m" |
JanusErasmus | 0:cda1bfa06c7c | 20 | #define COLOR_BOLD(__c,__x) "\x1b[3" #__c ";1m" __x "\x1b[0m" |
JanusErasmus | 0:cda1bfa06c7c | 21 | #define UNDERLINE(__x) "\x1b[4m" __x "\x1b[0m" |
JanusErasmus | 0:cda1bfa06c7c | 22 | #define CLEAR_SCREEN "\x1b[2J\x1b[H" |
JanusErasmus | 0:cda1bfa06c7c | 23 | #else |
JanusErasmus | 0:cda1bfa06c7c | 24 | #define COLOR(__c,__x) __x |
JanusErasmus | 0:cda1bfa06c7c | 25 | #define COLOR_BOLD(__c,__x) __x |
JanusErasmus | 0:cda1bfa06c7c | 26 | #define UNDERLINE(__x) __x |
JanusErasmus | 0:cda1bfa06c7c | 27 | #define CLEAR_SCREEN |
JanusErasmus | 0:cda1bfa06c7c | 28 | #endif |
JanusErasmus | 0:cda1bfa06c7c | 29 | #define RED(__x) COLOR(1, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 30 | #define GREEN(__x) COLOR(2, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 31 | #define YELLOW(__x) COLOR(3, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 32 | #define BLUE(__x) COLOR(4, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 33 | #define MAGENTA(__x) COLOR(5, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 34 | #define CYAN(__x) COLOR(6, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 35 | #define RED_B(__x) COLOR_BOLD(1, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 36 | #define GREEN_B(__x) COLOR_BOLD(2, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 37 | #define YELLOW_B(__x) COLOR_BOLD(3, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 38 | #define BLUE_B(__x) COLOR_BOLD(4, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 39 | #define MAGENTA_B(__x) COLOR_BOLD(5, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 40 | #define CYAN_B(__x) COLOR_BOLD(6, __x ) |
JanusErasmus | 0:cda1bfa06c7c | 41 | |
JanusErasmus | 0:cda1bfa06c7c | 42 | class Console |
JanusErasmus | 0:cda1bfa06c7c | 43 | { |
JanusErasmus | 0:cda1bfa06c7c | 44 | public: |
JanusErasmus | 0:cda1bfa06c7c | 45 | typedef void (*func_t)(int argc,char *argv[]); |
JanusErasmus | 0:cda1bfa06c7c | 46 | |
JanusErasmus | 0:cda1bfa06c7c | 47 | typedef struct |
JanusErasmus | 0:cda1bfa06c7c | 48 | { |
jcerasmus@gmail.com | 1:ffc6a669f391 | 49 | const char* cmd; |
jcerasmus@gmail.com | 1:ffc6a669f391 | 50 | const char* argDesc; |
jcerasmus@gmail.com | 1:ffc6a669f391 | 51 | const char* desc; |
JanusErasmus | 0:cda1bfa06c7c | 52 | func_t f; |
JanusErasmus | 0:cda1bfa06c7c | 53 | } cmd_list_t; |
JanusErasmus | 0:cda1bfa06c7c | 54 | |
JanusErasmus | 0:cda1bfa06c7c | 55 | static cmd_list_t *mCmdTable[]; |
JanusErasmus | 0:cda1bfa06c7c | 56 | static void help(int argc,char *argv[]); |
jcerasmus@gmail.com | 1:ffc6a669f391 | 57 | static void dumpThreadInfo(int argc,char *argv[]); |
JanusErasmus | 0:cda1bfa06c7c | 58 | |
JanusErasmus | 0:cda1bfa06c7c | 59 | private: |
JanusErasmus | 0:cda1bfa06c7c | 60 | static Console *__instance; |
JanusErasmus | 0:cda1bfa06c7c | 61 | Serial *mSerial; |
JanusErasmus | 0:cda1bfa06c7c | 62 | |
jcerasmus@gmail.com | 2:4c8b24eb7ad5 | 63 | const char *mPrompt; |
JanusErasmus | 0:cda1bfa06c7c | 64 | rtos::Thread work; |
JanusErasmus | 0:cda1bfa06c7c | 65 | |
JanusErasmus | 0:cda1bfa06c7c | 66 | char mBuffer[128]; |
JanusErasmus | 0:cda1bfa06c7c | 67 | int mIndex; |
JanusErasmus | 0:cda1bfa06c7c | 68 | |
JanusErasmus | 0:cda1bfa06c7c | 69 | static void ReceiveSerial(Console *instance); |
JanusErasmus | 0:cda1bfa06c7c | 70 | void handleByte(char byte); |
JanusErasmus | 0:cda1bfa06c7c | 71 | void handleCommand(char *cmd); |
JanusErasmus | 0:cda1bfa06c7c | 72 | void process(int argc,char *argv[]); |
JanusErasmus | 0:cda1bfa06c7c | 73 | |
jcerasmus@gmail.com | 2:4c8b24eb7ad5 | 74 | Console(Serial *serial, const char *prompt); |
JanusErasmus | 0:cda1bfa06c7c | 75 | |
JanusErasmus | 0:cda1bfa06c7c | 76 | public: |
jcerasmus@gmail.com | 2:4c8b24eb7ad5 | 77 | static void init(Serial *serial, const char *prompt); |
JanusErasmus | 0:cda1bfa06c7c | 78 | virtual ~Console(); |
JanusErasmus | 0:cda1bfa06c7c | 79 | |
JanusErasmus | 0:cda1bfa06c7c | 80 | }; |
JanusErasmus | 0:cda1bfa06c7c | 81 | |
jcerasmus@gmail.com | 1:ffc6a669f391 | 82 | extern const Console::cmd_list_t shellCommands[]; |
jcerasmus@gmail.com | 1:ffc6a669f391 | 83 | |
JanusErasmus | 0:cda1bfa06c7c | 84 | #endif /* CONSOLE_H_ */ |