ОСРВ MULTEX-ARM
Полное описание
Загрузка...
Поиск...
Не найдено
Файл shell.h

Терминал. Подробнее...

Макросы

#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)
 

Макросы

◆ MAX_CMD_SIZE

#define MAX_CMD_SIZE   4096

Типы

◆ SHELL_FUNCPTR

typedef void(* SHELL_FUNCPTR) (const char *)

Функции

◆ printHeader()

void printHeader ( void  )

Вывести в stdout привественное сообщение терминала.

◆ shell()

TASK_ID shell ( bool  printHeader)

Запустить терминал в отдельной задаче.

Функция запускает shellTask() в отдельной задаче.

Аргументы
printHeaderСледует ли выводить приветственное сообщение при запуске терминала.
Возвращает
Идентификатор запущенной задачи.

◆ shellRegisterFunc()

STATUS shellRegisterFunc ( const char *  name,
SHELL_FUNCPTR  func 
)

Команды пользователя можно регистрировать в Shell, что даёт возможность вызывать функции пользователя в сборках без подключения таблицы символов. Такие команды доступны для вызова из консоли в проектах собранных без опции DEBUG. Зарегистрированные функции получают в качестве строку вызова целиком, включая команду. Разбором параметров в этом случае должна заниматься сама зарегистрированная функция.

Имя регистрируемой команды может совпадать с именем вызываемой функции или отличаться от неё. В случае если имя команды совпадает с именем функции, вызов регистрируемой команды экранирует вызов функции.

Пример регистрации команды:

void my_cmd (const char *str) {
// Разбор команды и параметров
char buf[100];
getWord (1, str, buf);
if (compareStr (buf, "my_cmd")) {
// ...
}
}
void main () {
shellRegisterFunc ("my_cmd", &my_cmd);
}
STATUS shellRegisterFunc(const char *name, SHELL_FUNCPTR func)
Регистрация пользовательских команд в Shell.
bool compareStr(char *S1, char *S2)
int getWord(size_t n, const char *src, char *dst)

Вызов команды из консоли:

*  C:/>my_cmd param1 param2
*  
Аргументы
nameИмя (команда) для вызова регистрируемой функции.
funcВызываемая функция.
Возвращает
OK в случае удачной регистрации, иначе ERROR.

◆ shellTask()

int shellTask ( int  printHeader)

Запустить терминал в текущей задаче.

Задача будет обслуживать терминал для установленных для неё stdin и stdout. Задача будет завершена при получении команды 'quit' на терминале (при этом stdout и stdin задачи, если они не являются системными stdout и stdin, будут закрыты).

Аргументы
printHeaderСледует ли выводить приветственное сообщение при запуске терминала.
Возвращает
Никогда не возвращает значение.