Conexión de un UFS270 al la tarjeta NUCLEO-F091RC, se envia el dato de la altura real del liquido al puerto RS232 del GV300 cada 30seg (Aplicacion para tanques estacionarios)
Dependencies: BufferedSerial mbed
Diff: main.cpp
- Revision:
- 0:d74fc1505b54
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu May 26 21:19:42 2016 +0000 @@ -0,0 +1,95 @@ +/* + * - Proyecto: Accesorios Queclink. + * - Lenguaje: ANSI C/C++ (mbed) + * - Tarjeta: Nucleo F091RC + * - Referencias: + * - Fecha: 2016/May + * - Autor(es): Felícito Manzano / + Mario Vargas + * - Compañia: V.S.R. de Centroamérica + * - País: SV / CR +*/ + +#include "mbed.h" +#include "BufferedSerial.h" +#include "funciones_basicas.h" +#include "funciones_UFS270.h" +#include "constantes.hpp" +#include <stdio.h> + +//HARDWARE SETUP +//*********************************** +extern Serial pcusb(USBTX, USBRX); //Serial ports TX,RX Hardware +extern Serial gv300(PC_10, PC_11); // Para conexión con el GPS GV300 N/W +extern BufferedSerial fuelR1(PB_10, PB_11); // 1er. tanque de combustible +extern DigitalOut myled(LED1); // LED1 Integrado +int contador_tramas = 1; + + +int main() +{ + // CONFIGURAR INTERFACES SERIALES + pcusb.baud(9600); // Common PC Baudrate + gv300.baud(115200); // GV300 USB Default Baudrate + fuelR1.baud(19200); // UFS270 Default Baudrate + + // Mensaje de Inicio + booting_gtdat(&gv300, &pcusb); + + // Declaración de Variables + // Nivel de combustible UFS270 + char level_FuelR1[6] = "-----"; + char sw_StatusR1[2] = "-"; + char hw_StatusR1[2] = "-"; + int eval_Fuel1 = 0; + int contador_TX = 0; + + + while(1) { + myled = 1; + // Leer UFS270 en el tanque A + pcusb.printf("UFS270 A - INICIA\r\n"); + eval_Fuel1 = ufs270_rtFL(&fuelR1, level_FuelR1, hw_StatusR1, sw_StatusR1); + if (eval_Fuel1) { + pcusb.printf("UFS270_A Altura=%s - OK\r\n",level_FuelR1); + contador_TX++; + } else { + pcusb.printf("UFS270_A - SIN DATOS\r\n"); + } + wait_ms(T_TX); + + + // Transmitir + if ((eval_Fuel1)&&(contador_TX == 3)){ + // Generar transmisión + pcusb.printf("REPORTE CONSOLIDADO COMBUSTIBLE\r\n"); + pcusb.printf("Inicia comunicacion con CP. Enviando mensaje:\r\n"); + pcusb.printf("%s%sFTMS%s%s%s%c%c%s%04X%s\r\n\n", + CABECERA_TX, CODIGO_INT_FUEL, SEPARADOR, + level_FuelR1, SEPARADOR, hw_StatusR1[0], sw_StatusR1[0], + FIN_CABECERA_TX, contador_tramas, ULTIMO_CARACTER); + wait_ms(T_ESPERA_CP); + + gv300.printf("%s%sFTMS%s%s%s%c%c%s%04X%s\r\n", + CABECERA_TX, CODIGO_INT_FUEL, SEPARADOR, + level_FuelR1, SEPARADOR, hw_StatusR1[0], sw_StatusR1[0], + FIN_CABECERA_TX, contador_tramas, ULTIMO_CARACTER); + wait_ms(T_ESPERA_CP); + contador_TX = 0; + incrementar_trama(&contador_tramas); + pcusb.printf("Mensaje escrito en puerto serial del CP\r\n\n"); + wait_ms(T_TX); + + } + /* CIERRE */ + + pcusb.printf("Contador tx = %d\n", contador_TX); + pcusb.printf("***FIN***\r\n\n"); + strcpy(level_FuelR1,"-----\0"); + strcpy(sw_StatusR1, "-\0"); + strcpy(hw_StatusR1, "-\0"); + eval_Fuel1 = 0; + myled = 0; + wait(2); + } +}