Как создать командный интерфейс в 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 в шестнадцатеричном формате).

Я надеюсь, что это поможет вам начать.

Другие вопросы по тегам