![]() |
ОСРВ MULTEX-ARM
Полное описание
|
Терминал. Подробнее...
Макросы | |
| #define | MAX_CMD_SIZE 4096 |
Определения типов | |
| typedef void(* | SHELL_FUNCPTR) (const char *) |
| Тип функции для регистрации в Shell. | |
Функции | |
| void | printHeader (void) |
| TASK_ID | shell (bool printHeader) |
| STATUS | shellRegisterFunc (const char *name, SHELL_FUNCPTR func) |
| Регистрация пользовательских команд в Shell. | |
| int | shellTask (int printHeader) |
| #define MAX_CMD_SIZE 4096 |
| typedef void(* SHELL_FUNCPTR) (const char *) |
| void printHeader | ( | void | ) |
Вывести в stdout привественное сообщение терминала.
Запустить терминал в отдельной задаче.
Функция запускает shellTask() в отдельной задаче.
| printHeader | Следует ли выводить приветственное сообщение при запуске терминала. |
| STATUS shellRegisterFunc | ( | const char * | name, |
| SHELL_FUNCPTR | func | ||
| ) |
Команды пользователя можно регистрировать в Shell, что даёт возможность вызывать функции пользователя в сборках без подключения таблицы символов. Такие команды доступны для вызова из консоли в проектах собранных без опции DEBUG. Зарегистрированные функции получают в качестве строку вызова целиком, включая команду. Разбором параметров в этом случае должна заниматься сама зарегистрированная функция.
Имя регистрируемой команды может совпадать с именем вызываемой функции или отличаться от неё. В случае если имя команды совпадает с именем функции, вызов регистрируемой команды экранирует вызов функции.
Пример регистрации команды:
Вызов команды из консоли:
* C:/>my_cmd param1 param2 *
| name | Имя (команда) для вызова регистрируемой функции. |
| func | Вызываемая функция. |
| int shellTask | ( | int | printHeader | ) |
Запустить терминал в текущей задаче.
Задача будет обслуживать терминал для установленных для неё stdin и stdout. Задача будет завершена при получении команды 'quit' на терминале (при этом stdout и stdin задачи, если они не являются системными stdout и stdin, будут закрыты).
| printHeader | Следует ли выводить приветственное сообщение при запуске терминала. |