cola_t UARTgetc(UART * uart) { ColaCircular * cola = &uart->colaRx; if(ColaVacia(cola)) return CAPI_ERROR; return ColaSacar(cola); }
struct ENEARIO *RetCola (struct FIFO **p,int *pp) { struct FIFO *q,*r; struct ENEARIO *Temp; if (!ColaVacia(*p)) { q = (*p)->Sig; r = q->Sig; Temp = r->Info; *pp = r->Nivel; q->Sig = r->Sig; if (r == *p) *p = q; delete r; return Temp; } else { printf ("Error...\n"); return 0; } }
void interfazHumana(void * parametrosTarea) { portTickType ticker = xTaskGetTickCount(); int estado = MAINMENU; char input; while(1) { if (estado == ESTACIONADO) showAlertaSeguridad(&consolaBT); if (estado == ANDANDO) showAlertaSalud(&consolaBT); showMenu(&consolaBT, estado); // lee un caracter desde el BT if (!ColaVacia(&consolaBT.colaRx)) { input = UARTgetc(&consolaBT); inputBTChar(&estado, input, &consolaBT); } } }
void Niveles (struct ENEARIO *p) { struct FIFO *Cola; struct ENEARIO *s; struct ENEARIO *q; int i=0,Ant=-1; InitCola(&Cola); InsCola (&Cola,p,1); while (!ColaVacia(Cola)) { q = RetCola(&Cola,&i); if (i != Ant) { Ant = i; printf ("\n"); } printf ("%d ",q->Info); s = q->Hijo; while (s != NULL) { InsCola(&Cola,s,i+1); s = s->Hermano; } } }