void UARTputi(uint8_t UART, long i) { char digs[12], reversed[12]; uint8_t a = 0, b, neg = 0; if (i < 0) { neg = 1; i = -i; } do { b = i % 10; digs[a] = b + 48; // Convert to digit ASCII i /= 10; a++; } while (i); // Reverse the digits into most significant to least significant if (neg) { reversed[0] = '-'; for (b = 1; b < a + neg; b++) reversed[b] = digs[a - b]; a += 1; // Extend the length of the string by 1 due to - sign } else for (b = 0; b < a; b++) reversed[b] = digs[a - b - 1]; reversed[a] = '\0'; UARTputs(UART, (char *) reversed); }
void UARTputh(uint8_t UART, unsigned long h, uint8_t digits) { if (digits > 8) digits = 8; char digs[9], reversed[9]; uint8_t a = 0, b, c; do { b = h % 16; // Convert to digit ASCII if (b < 10) digs[a] = b + 48; else digs[a] = b + 55; h /= 16; a++; } while (h); // Add padding zeroes if necessary b = 0; if (a < digits) { for (; b < digits - a; b++) reversed[b] = '0'; } // Reverse the digits into most significant to least significant for (c = 0; b < digits; b++, c++) reversed[b] = digs[a - c - 1]; reversed[digits] = '\0'; UARTputs(UART, (char *) reversed); }
void UARTputu(uint8_t UART, unsigned long u, uint8_t digits) { if (digits > 10) digits = 10; char digs[11], reversed[11]; uint8_t a = 0, b, c; do { b = u % 10; digs[a] = b + 48; // Convert to digit ASCII u /= 10; a++; } while (u); // Add padding zeroes if necessary b = 0; if (a < digits) { for (; b < digits - a; b++) reversed[b] = '0'; } // Reverse the digits into most significant to least significant for (c = 0; b < digits; b++, c++) reversed[b] = digs[a - c - 1]; reversed[digits] = '\0'; UARTputs(UART, (char *) reversed); }
void blanquearPantalla(UART *consolaBT) { int i; for (i = 0; i < height; i++) UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); i = i + 1; }
void showAlertaSalud(UART *consolaBT) { DatosDriver_t datos; char dato1[33]; char dato2[33]; char dato3[33]; if (xQueueReceive(colaMensajesUsuarios, &datos, 100)) { if (datos.codigo == ALARMA) { //dato1 = (datos.dato1 == ALARMASALUD)? "Alarma salud activada ! \r\n" : "Alarma seguridad activada ! \r\n"; UARTputs(consolaBT, dato1, UART_PUTS_BLOQUEANTE); } else { itoa(datos.dato1, dato1, 10); itoa(datos.dato2, dato2, 10); itoa(datos.dato3, dato3, 10); UARTputs(consolaBT, "Andando... \r\n", UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, strcat(dato1, " Velocidad \r\n"), UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, strcat(dato2, " Inclinacion \r\n"), UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, strcat(dato3, " Pulsaciones \r\n"), UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "m) Main Menu \r\n", UART_PUTS_BLOQUEANTE); } } }
void UARTputf(uint8_t UART, float f, uint8_t decimal) { char digs[12], reversed[12]; uint8_t a = 0, b, neg = 0; if (f < 0) { neg = 1; f = -f; } if (decimal) { f *= power(10, decimal); for (a = 0; a < decimal; a++) { b = (uint8_t) fmod_(f, 10); digs[a] = b + 48; // Convert to digit ASCII f /= 10; } digs[a] = '.'; a++; } do { b = (uint8_t) fmod_(f, 10); digs[a] = b + 48; // Convert to digit ASCII f /= 10; a++; } while ((int) f && a < 11); // Reverse the digits into most significant to least significant if (neg) { reversed[0] = '-'; for (b = 1; b < a + neg; b++) reversed[b] = digs[a - b]; a += 1; // Extend the length of the string by 1 due to - sign } else for (b = 0; b < a; b++) reversed[b] = digs[a - b - 1]; reversed[a] = '\0'; UARTputs(UART, (char *) reversed); }
void showAlertaSeguridad(UART *consolaBT) { char *dato1 = " "; DatosDriver_t datos; if (swAlarmaSeguridadON == 0) { if (xQueueReceive(colaMensajesUsuarios, &datos, 100)) { if (datos.codigo == ALARMA) { swAlarmaSeguridadON = 1; dato1 = (datos.dato1 == ALARMASALUD)? "Alarma salud activada ! \r\n" : "Alarma seguridad activada ! \r\n"; UARTputs(consolaBT, dato1, UART_PUTS_BLOQUEANTE); } } else { UARTputs(consolaBT, "Alarma activada... ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "m) Main Menu", UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "OK ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); } } }
void showMenu(UART *consolaBT, int estado) { char temp[] = " "; if (banderaShowMenu == 0) { blanquearPantalla(consolaBT); UARTputs(consolaBT, texto[TITULOAPP],UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[estado],UART_PUTS_BLOQUEANTE); switch (estado) { case CONFIGMENU : ponerEnColaEventos(EVENT_HI_MODO_CONFIGURACION_ENTRAR,0); break; case MAINMENU : ponerEnColaEventos(EVENT_HI_MODO_CONFIGURACION_SALIR,0); ponerEnColaEventos(EVENT_HI_MODO_ESTACIONADO_DESACTIVO,0); break; case ESTACIONADO : ponerEnColaEventos(EVENT_HI_MODO_ESTACIONADO_ACTIVO,0); break; case VERVALORES: UARTputs(consolaBT, "Rodado: ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, rodado,UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "''\r\n",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "Max. velocidad: ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, velocidadMaxima,UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, " km/h\r\n",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "Max. inclinacion: ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, inclinacionMaxima,UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, " grados \r\n",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, "Max. pulsaciones/minuto: ",UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, pulsacionesMaxima,UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE); UARTputs(consolaBT, " m) Menu de configuracion",UART_PUTS_BLOQUEANTE); break; } } banderaShowMenu = 1; }