Я ищу, чтобы интегрировать командный интерфейс в проект, который я делаю, который будет принимать последовательные команды с ПК.
Идея состоит в том, что устройство выполнит свою задачу, но ему отправят команду, оно выполнит ее. Это отличается от большинства примеров, которые мне удалось найти, это просто бездействующее устройство, ожидающее последовательных данных.
Например, устройство, которое управляет светодиодами и воспроизводит анимацию. Допустим, есть 3 предустановленных анимации, и когда он включается, он всегда воспроизводит номер 1. На стороне ПК я бы отправил команду «Play Preset 2», или «поменять цвет на зеленый», или отправил живую анимацию в реальном времени на устройство. играть на светодиодах.
Так что мой вопрос в том, что я не могу найти много информации об этом «шаблоне дизайна»? Я не знаю, с чего начать искать. Самое близкое, что я пришел, - это предварительно созданные библиотеки последовательного разбора arduino. Однако я ищу больше C / не Arduino / теоретический подход.
Я изучал последовательные протоколы, но это всего лишь вещи, такие как SPI, I2C и т. Д., А не то, как реализовать интерфейс управления / команд в программном обеспечении.
Я также узнал о HDLC, опять же, хотя это, кажется, больше стандарт / протокол. Похожая тема - /programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system, которая имеет очень полезную информацию, но опять же ее нужно сделать с протоколом / самой связью.
Я пытаюсь найти, как кодировать / реализовать это, чтобы создать команду или способность управления.
Должен ли я использовать бесконечный цикл для отслеживания и перехвата серийного номера для входящей команды, а также использовать список операторов IF для выбора, какую команду выполнять, но затем, что происходит, когда нет команд и система должна быть как обычно, или если она пропускает команду?
Управляемый прерыванием конечный автомат?
Есть ли официальное название для этого, которое можно использовать для исследования и поиска примеров?
РЕДАКТИРОВАТЬ:
Для тех, у кого такой же вопрос, я нашел этот действительно хороший пример во время исследования: http://www.adnbr.co.uk/articles/parsing-simple-usart-commands