Как создать командный интерфейс в C
Я пытаюсь написать командный интерфейс на C для telosb, правило: "shift+:" для запуска новой команды и "Esc" для завершения команды. Так как же мне сказать комбинацию "смещение" и ":"? Большое спасибо.
1 ответ
Держите интерфейсы простыми на MSP430. У вас нет неограниченных ресурсов, как у вас на ПК. Если вы хотели использовать комбинацию символов для представления команды, вам нужно будет выполнить сравнение строк (это будет намного проще, чем проверка каждого отдельного символа, входящего в структуру if-else). Я использовал для разработки этих интерфейсов, используя следующий тип структуры команд:
struct command
{
char *command;
char *params;
int numOfParams;
};
struct command commandList[] =
{
{ "help", null, 0 },
{ "reset", "%x", 1 }
};
Затем мой обработчик UART будет искать допустимые команды - команду, которая входит с допустимым разделителем (например, символом новой строки). После прочтения новой строки вы можете начать синтаксический анализ команды и проверить ее (с помощью strcmp) с помощью записей commandList. CommandList содержит команду, тип ожидаемых параметров (используйте sscanf для проверки параметров) и количество ожидаемых параметров.
Этот процесс может быть расширен и для сравнения байтовых массивов (в вашем случае используются специальные символы, такие как ESC в шестнадцатеричном формате).
Я надеюсь, что это поможет вам начать.