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);
}
}
Mario Vargas