Como utilizar ENUM em C

Nesse vídeo explico técnicas de utilização do enumerador em C.

Mostro também como utilizo no desenvolvimento de sistemas embarcados.

Segue abaixo o código do exemplo:

enum {
    DesligarEcho = 0,
    HabilitarIdentificacaoChamada,
    TotalComandosModemCelular
} InicializacaoModemCelular;

A vantagem é que o TotalComandosModemCelular é utilizado como um totalizador, permitindo o uso de um laço para percorrer todos os anteriores.

enum {
    AguardandoEnvio = 0,    
    AguardandoResposta
} EstadoComando;

Os enumeradores acima serão utilizado no envio do comando pela serial. Lembrando que para firmware, sem sistema operacional, não é aconselhável ficar aguardando resposta. Isso pode dar a impressão que o produto travou ou está lento.

const char *comandosAt[] = {"ATE0","AT+CLIP=1"};
const char* respostasComandosAt[] = { "\r\nECHO-OK\r\n","\r\nCLIP-OK\r\n" };

Lista de comandos a serem enviados.

int indiceComando = DesligarEcho;
int estadoComando = AguardandoEnvio;
while (true) {
  switch (estadoComando) {
   case AguardandoEnvio:
     if (enviarComando((char *) comandosAt[indiceComando])) {                
         estadoComando++;
      }
      break;
   case AguardandoResposta:
      if (verificaResposta((char *) respostasComandosAt[indiceComando])){
         estadoComando = AguardandoEnvio;
         indiceComando++;
         }
         break;
      }
      if (indiceComando >= TotalComandosModemCelular) {
          break;
  }
}
printf("Exemplo finalizado\n");

Finalizando com o loop principal.

Share:FacebookX
Join the discussion

Menu

Recent Comments

No comments to show.