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 14:51:02 2018 +0000
Revision:
6:e0f528571367
Child:
7:0ec9cc5b9fe0
Apagado remoto GTOUT temporizado despues de activacion de panico. version inicial

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 6:e0f528571367 89 return(x);
fmanzano_dtk 6:e0f528571367 90 }