Cambio de pin de entrada digital a PA10

Dependencies:   BufferedSerial PinDetect mbed

Fork of DTK-MEGAPACA_NUCLEO by Felícito Manzano

Committer:
fmanzano_dtk
Date:
Fri Jan 19 18:43:47 2018 +0000
Revision:
7:0ec9cc5b9fe0
Parent:
6:e0f528571367
Child:
9:04f9da6bc784
Se agrega filtrado de OK enviados constantemente por el GV300. Se elimina libreria para maple mini que no es necesaria en el nucleo. Se cambio pin de MYLED

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fmanzano_dtk 6:e0f528571367 1 /*
fmanzano_dtk 6:e0f528571367 2 * - Proyecto: Apagado Temporizado MEGAPACA
fmanzano_dtk 6:e0f528571367 3 * - Lenguaje: ANSI C/C++ (mbed)
fmanzano_dtk 6:e0f528571367 4 * - Tarjeta: NUCLEO F303K8
fmanzano_dtk 6:e0f528571367 5 * - Referencias:
fmanzano_dtk 6:e0f528571367 6 * - Fecha: 2017/Septiembre
fmanzano_dtk 6:e0f528571367 7 * - Autor(es): Felícito Manzano /
fmanzano_dtk 6:e0f528571367 8 Mario Vargas
fmanzano_dtk 6:e0f528571367 9 * - Compañia: V.S.R. de Centroamérica
fmanzano_dtk 6:e0f528571367 10 * - País: SV / CR
fmanzano_dtk 6:e0f528571367 11 */
fmanzano_dtk 6:e0f528571367 12
fmanzano_dtk 6:e0f528571367 13 #include "constantes.hpp"
fmanzano_dtk 6:e0f528571367 14 #include "BufferedSerial.h"
fmanzano_dtk 6:e0f528571367 15
fmanzano_dtk 6:e0f528571367 16 int incrementar_trama(int *tramas)
fmanzano_dtk 6:e0f528571367 17 {
fmanzano_dtk 6:e0f528571367 18 /*
fmanzano_dtk 6:e0f528571367 19 Esta función recibe un entero que es el contador de tramas
fmanzano_dtk 6:e0f528571367 20 realiza el incremento en uno y verifica si el valor es mayor
fmanzano_dtk 6:e0f528571367 21 o igual que 65535 que es equivalente a 0xFFFF. Si se cumple
fmanzano_dtk 6:e0f528571367 22 la condución se regresa el valor a 1.
fmanzano_dtk 6:e0f528571367 23 Esta función siempre retorna 0.
fmanzano_dtk 6:e0f528571367 24 */
fmanzano_dtk 6:e0f528571367 25 int actual = *tramas;
fmanzano_dtk 6:e0f528571367 26 int limite = 65535;
fmanzano_dtk 6:e0f528571367 27 actual++;
fmanzano_dtk 6:e0f528571367 28
fmanzano_dtk 6:e0f528571367 29 if (actual > limite) {
fmanzano_dtk 6:e0f528571367 30 *tramas = 1;
fmanzano_dtk 6:e0f528571367 31 } else {
fmanzano_dtk 6:e0f528571367 32 *tramas = actual;
fmanzano_dtk 6:e0f528571367 33 }
fmanzano_dtk 6:e0f528571367 34 return(0);
fmanzano_dtk 6:e0f528571367 35 }
fmanzano_dtk 6:e0f528571367 36
fmanzano_dtk 6:e0f528571367 37 int booting_gtdat(BufferedSerial *puerto_cp, Serial *puerto_usb)
fmanzano_dtk 6:e0f528571367 38 {
fmanzano_dtk 6:e0f528571367 39 /*
fmanzano_dtk 6:e0f528571367 40 Esta función recibe los puertos Seriales del GV300 y de la PC
fmanzano_dtk 6:e0f528571367 41 conectada por USB para notificar que se ha reiniciado la interfaz.
fmanzano_dtk 6:e0f528571367 42 Siempre retorna 0
fmanzano_dtk 6:e0f528571367 43 */
fmanzano_dtk 6:e0f528571367 44 puerto_cp -> printf("%s\r\n", RESET_TXT);
fmanzano_dtk 6:e0f528571367 45 wait_ms(T_TX);
fmanzano_dtk 6:e0f528571367 46 puerto_usb -> printf("\r\n*** BOOTING ***\r\n");
fmanzano_dtk 6:e0f528571367 47 puerto_usb -> printf("VSR de Centroamerica\r\n");
fmanzano_dtk 6:e0f528571367 48 puerto_usb -> printf("Serial Port - OK\r\n");
fmanzano_dtk 6:e0f528571367 49 wait_ms(T_TX);
fmanzano_dtk 6:e0f528571367 50 return(0);
fmanzano_dtk 6:e0f528571367 51 }
fmanzano_dtk 6:e0f528571367 52
fmanzano_dtk 6:e0f528571367 53 int leer_uart(BufferedSerial *puerto, char buffer[128])
fmanzano_dtk 6:e0f528571367 54 {
fmanzano_dtk 6:e0f528571367 55 /* Esta función se encarga de leer el puerto serial y
fmanzano_dtk 6:e0f528571367 56 almacenar la respuesta en un buffer de datos de entrada.
fmanzano_dtk 6:e0f528571367 57 Si se lee información, la función devuelve 1, sino 0. */
fmanzano_dtk 6:e0f528571367 58
fmanzano_dtk 6:e0f528571367 59 int w = 0;
fmanzano_dtk 6:e0f528571367 60 int x = 0;
fmanzano_dtk 6:e0f528571367 61
fmanzano_dtk 6:e0f528571367 62 if (puerto -> readable()) {
fmanzano_dtk 6:e0f528571367 63 x = 1;
fmanzano_dtk 6:e0f528571367 64 while (puerto -> readable()) {
fmanzano_dtk 6:e0f528571367 65 char incoming_char = puerto -> getc();
fmanzano_dtk 6:e0f528571367 66 buffer[w] = incoming_char;
fmanzano_dtk 6:e0f528571367 67 w++;
fmanzano_dtk 6:e0f528571367 68 }
fmanzano_dtk 6:e0f528571367 69 buffer[w] = '\0';
fmanzano_dtk 6:e0f528571367 70 }
fmanzano_dtk 6:e0f528571367 71 return(x);
fmanzano_dtk 6:e0f528571367 72 }
fmanzano_dtk 6:e0f528571367 73
fmanzano_dtk 6:e0f528571367 74 int procesar_trama(char buffer[128])
fmanzano_dtk 6:e0f528571367 75 {
fmanzano_dtk 6:e0f528571367 76 /* Esta función se encarga de verificar que se ha recibido una trama desde Skytrack
fmanzano_dtk 6:e0f528571367 77 o si el comando de apagado se ejecutó apropiadamente. */
fmanzano_dtk 6:e0f528571367 78
fmanzano_dtk 6:e0f528571367 79 int x = 0;
fmanzano_dtk 6:e0f528571367 80
fmanzano_dtk 6:e0f528571367 81 if (strstr(buffer, ABORT_TXT) != NULL) {
fmanzano_dtk 6:e0f528571367 82 x = 1; // Se recibió trama con "ABORTAR"
fmanzano_dtk 6:e0f528571367 83 }
fmanzano_dtk 6:e0f528571367 84
fmanzano_dtk 6:e0f528571367 85 if (strstr(buffer, GTOUT_TXT) != NULL) {
fmanzano_dtk 6:e0f528571367 86 x = 2; // Se recibió trama con "ACK:GTOUT"
fmanzano_dtk 6:e0f528571367 87 }
fmanzano_dtk 6:e0f528571367 88
fmanzano_dtk 7:0ec9cc5b9fe0 89 if (strstr(buffer, GV300_OK) != NULL) {
fmanzano_dtk 7:0ec9cc5b9fe0 90 x = 3; // El GV300 se la pasa mandando OK
fmanzano_dtk 7:0ec9cc5b9fe0 91 }
fmanzano_dtk 7:0ec9cc5b9fe0 92
fmanzano_dtk 6:e0f528571367 93 return(x);
fmanzano_dtk 6:e0f528571367 94 }