ilyazh
@ilyazh
Инженер-программист

Как программно реализовать текстовый протокол SCPI на микроконтроллере?

Здравствуйте!

Пишу программу для железки на микроконтроллере, язык С.

Подскажите как можно реализовать программно текстовый протокол SCPI? Данные принимаются по UART. С железом нет проблем - не знаю как обрабатывать программно. Есть синонимы команд, есть не обязательные параметры, параметры могут быть, могут не быть, может быть сразу несколько. Как это всё обрабатывать и проверять не пытается ли пользовать ввести несуществующую команду?

Кто не знаком с SCPI - описание
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Для начала нужен парсер который разделит строку на команду и параметры. Команда отдельной строкой возможно сразу ее капитализация сравнение и замена на цифровой код(для удобства сравнения в дальнейшем) и массив парамметров(естественно с длинной чтобы ее учитывать в обработках). через switch...case(удобен для синонимов) передача управления и указателя на массив парамотров требуемой процедуре.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Подскажите как можно реализовать программно текстовый протокол SCPI?
Есть синонимы команд, есть не обязательные параметры, параметры могут быть, могут не быть, может быть сразу несколько. Как это всё обрабатывать и проверять не пытается ли пользовать ввести несуществующую команду?

На мой взгляд, проще всего воспользоваться связкой генератор парсеров + лексический анализатор, bison + flex. Описать грамматику языка на языке bison, описать допустимые лексемы на языке flex, скомпилировать и получить парсер для этого языка на C.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы