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

main.cpp

Committer:
mvargas_dtk
Date:
2016-05-26
Revision:
0:d74fc1505b54

File content as of revision 0:d74fc1505b54:

/*
 * - 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);
    }
}