Estoy buscando integrar una interfaz de comandos en un proyecto que estoy haciendo que acepte comandos en serie desde una PC.
La idea es que el dispositivo haga lo suyo, pero se le envía un comando, lo ejecutará. Esto es diferente a la mayoría de los ejemplos que he logrado encontrar, que es solo un dispositivo inactivo que espera datos en serie.
Entonces, por ejemplo, un dispositivo que controla los LED y reproduce una animación. Digamos que hay 3 animaciones preestablecidas, y cuando se enciende, siempre reproduce el número 1. En el lado de la PC, enviaría un comando 'reproducir preestablecido 2' o 'cambiar el color a verde' o enviar una animación en vivo en tiempo real al dispositivo para jugar en los LED.
¿Entonces mi pregunta es que no puedo encontrar mucha información sobre este "patrón de diseño"? No sé por dónde empezar a mirar. Lo más cercano que he llegado son las bibliotecas de análisis serie Arduino prefabricadas. Sin embargo, estoy buscando más de C / no arduino / enfoque teórico.
He estado buscando protocolos en serie, pero eso es solo cosas como SPI e I2C, etc., no realmente cómo implementar una interfaz de control / comando en el software.
También descubrí HDLC, aunque parece ser más un protocolo estándar / a. Un hilo similar es /programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system que tiene una información muy buena, pero de nuevo es para hacer con el protocolo / comunicación en sí.
Estoy tratando de encontrar cómo codificar / implementar esto para crear un comando o capacidad de control.
¿Utilizo un bucle infinito para monitorear y capturar el serial para un comando entrante, y uso una lista de sentencias IF para elegir qué comando llevar a cabo, pero luego qué sucede cuando no hay comandos y el sistema debería ser tan normal, o si es así? pierde un comando?
¿Interrupción conducida, máquina de estado?
¿Existe un nombre oficial para esto que pueda usarse para investigar y encontrar ejemplos?
EDITAR:
Para cualquiera que tenga la misma pregunta, encontré este ejemplo realmente agradable mientras investigaba, http://www.adnbr.co.uk/articles/parsing-simple-usart-commands