Cambio de pin de entrada digital a PA10
Dependencies: BufferedSerial PinDetect mbed
Fork of DTK-MEGAPACA_NUCLEO by
Diff: funciones_basicas.h
- Revision:
- 6:e0f528571367
- Child:
- 7:0ec9cc5b9fe0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/funciones_basicas.h Fri Jan 19 14:51:02 2018 +0000 @@ -0,0 +1,90 @@ +/* + * - Proyecto: Apagado Temporizado MEGAPACA + * - Lenguaje: ANSI C/C++ (mbed) + * - Tarjeta: NUCLEO F303K8 + * - Referencias: + * - Fecha: 2017/Septiembre + * - Autor(es): Felícito Manzano / + Mario Vargas + * - Compañia: V.S.R. de Centroamérica + * - País: SV / CR + */ + +#include "constantes.hpp" +#include "BufferedSerial.h" + +int incrementar_trama(int *tramas) +{ + /* + Esta función recibe un entero que es el contador de tramas + realiza el incremento en uno y verifica si el valor es mayor + o igual que 65535 que es equivalente a 0xFFFF. Si se cumple + la condución se regresa el valor a 1. + Esta función siempre retorna 0. + */ + int actual = *tramas; + int limite = 65535; + actual++; + + if (actual > limite) { + *tramas = 1; + } else { + *tramas = actual; + } + return(0); +} + +int booting_gtdat(BufferedSerial *puerto_cp, Serial *puerto_usb) +{ + /* + Esta función recibe los puertos Seriales del GV300 y de la PC + conectada por USB para notificar que se ha reiniciado la interfaz. + Siempre retorna 0 + */ + puerto_cp -> printf("%s\r\n", RESET_TXT); + wait_ms(T_TX); + puerto_usb -> printf("\r\n*** BOOTING ***\r\n"); + puerto_usb -> printf("VSR de Centroamerica\r\n"); + puerto_usb -> printf("Serial Port - OK\r\n"); + wait_ms(T_TX); + return(0); +} + +int leer_uart(BufferedSerial *puerto, char buffer[128]) +{ + /* Esta función se encarga de leer el puerto serial y + almacenar la respuesta en un buffer de datos de entrada. + Si se lee información, la función devuelve 1, sino 0. */ + + int w = 0; + int x = 0; + + if (puerto -> readable()) { + x = 1; + while (puerto -> readable()) { + char incoming_char = puerto -> getc(); + buffer[w] = incoming_char; + w++; + } + buffer[w] = '\0'; + } + return(x); +} + +int procesar_trama(char buffer[128]) +{ + /* Esta función se encarga de verificar que se ha recibido una trama desde Skytrack + o si el comando de apagado se ejecutó apropiadamente. */ + + int x = 0; + + if (strstr(buffer, ABORT_TXT) != NULL) { + x = 1; // Se recibió trama con "ABORTAR" + } + + if (strstr(buffer, GTOUT_TXT) != NULL) { + x = 2; // Se recibió trama con "ACK:GTOUT" + } + + return(x); +} \ No newline at end of file