Eu estou olhando para integrar uma interface de comando em um projeto que estou fazendo que aceitará comandos em série a partir de um PC.
A idéia é que o dispositivo faça suas coisas, mas receba um comando, ele executará. Isso é diferente da maioria dos exemplos que consegui encontrar, que é apenas um dispositivo inativo aguardando dados seriais.
Por exemplo, um dispositivo que controla LEDs e reproduz uma animação. Digamos que haja 3 animações predefinidas e, quando ativada, sempre reproduz o número 1. No lado do PC, eu enviava um comando 'play preset 2' ou 'muda de cor para verde' ou enviava uma animação ao vivo em tempo real para o dispositivo para jogar nos LEDs.
Então, minha pergunta é que não consigo encontrar muita informação sobre esse "padrão de design"? Não sei por onde começar a procurar. O mais próximo que eu cheguei é de bibliotecas pré-fabricadas de análise serial do arduino. No entanto, estou procurando mais de C / não arduino / abordagem teórica.
Eu estou olhando para protocolos seriais, mas isso é apenas coisas como SPI e I2C etc, não realmente como implementar uma interface de controle / comando no software.
Eu também descobri sobre o HDLC, embora pareça ser mais um protocolo padrão. Um segmento semelhante é /programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system Que possui algumas informações muito boas, mas novamente deve ser feito com o próprio protocolo / comunicação.
Estou tentando descobrir como codificar / implementar isso para criar uma capacidade de comando ou controle.
Utilizo um loop infinito para monitorar e capturar a série de um comando recebido e uso uma lista de instruções IF para escolher qual comando executar, mas o que acontece quando nenhum comando e o sistema devem ser normais ou se falta um comando?
Máquina de estado acionada por interrupção?
Existe um nome oficial para isso que possa ser usado para pesquisar e encontrar exemplos?
EDITAR:
Para quem tem a mesma pergunta, encontrei este exemplo muito bom enquanto pesquisava, http://www.adnbr.co.uk/articles/parsing-simple-usart-commands