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);
}
Example #4
0
void blanquearPantalla(UART *consolaBT)
{
	int i;
	for (i = 0; i < height; i++)
		UARTputs(consolaBT, texto[SALTOLINEA],UART_PUTS_BLOQUEANTE);
	i = i + 1;
}
Example #5
0
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);
}
Example #7
0
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);
		}
	}
}
Example #8
0
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;
}