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

Committer:
mvargas_dtk
Date:
Thu May 26 21:19:42 2016 +0000
Revision:
0:d74fc1505b54
Conexion de un solo sensor ultrasonico de combustible al nucleo-F091RC, y lectura del valor real de altura del liquido. Aplicacion para tanques estacionarios

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mvargas_dtk 0:d74fc1505b54 1 /*
mvargas_dtk 0:d74fc1505b54 2 * - Proyecto: Accesorios Queclink.
mvargas_dtk 0:d74fc1505b54 3 * - Lenguaje: ANSI C/C++ (mbed)
mvargas_dtk 0:d74fc1505b54 4 * - Tarjeta: Nucleo F091RC
mvargas_dtk 0:d74fc1505b54 5 * - Referencias:
mvargas_dtk 0:d74fc1505b54 6 * - Fecha: 2016/May
mvargas_dtk 0:d74fc1505b54 7 * - Autor(es): Felícito Manzano /
mvargas_dtk 0:d74fc1505b54 8 Mario Vargas
mvargas_dtk 0:d74fc1505b54 9 * - Compañia: V.S.R. de Centroamérica
mvargas_dtk 0:d74fc1505b54 10 * - País: SV / CR
mvargas_dtk 0:d74fc1505b54 11 */
mvargas_dtk 0:d74fc1505b54 12
mvargas_dtk 0:d74fc1505b54 13 #include "mbed.h"
mvargas_dtk 0:d74fc1505b54 14 #include "BufferedSerial.h"
mvargas_dtk 0:d74fc1505b54 15 #include "funciones_basicas.h"
mvargas_dtk 0:d74fc1505b54 16 #include "funciones_UFS270.h"
mvargas_dtk 0:d74fc1505b54 17 #include "constantes.hpp"
mvargas_dtk 0:d74fc1505b54 18 #include <stdio.h>
mvargas_dtk 0:d74fc1505b54 19
mvargas_dtk 0:d74fc1505b54 20 //HARDWARE SETUP
mvargas_dtk 0:d74fc1505b54 21 //***********************************
mvargas_dtk 0:d74fc1505b54 22 extern Serial pcusb(USBTX, USBRX); //Serial ports TX,RX Hardware
mvargas_dtk 0:d74fc1505b54 23 extern Serial gv300(PC_10, PC_11); // Para conexión con el GPS GV300 N/W
mvargas_dtk 0:d74fc1505b54 24 extern BufferedSerial fuelR1(PB_10, PB_11); // 1er. tanque de combustible
mvargas_dtk 0:d74fc1505b54 25 extern DigitalOut myled(LED1); // LED1 Integrado
mvargas_dtk 0:d74fc1505b54 26 int contador_tramas = 1;
mvargas_dtk 0:d74fc1505b54 27
mvargas_dtk 0:d74fc1505b54 28
mvargas_dtk 0:d74fc1505b54 29 int main()
mvargas_dtk 0:d74fc1505b54 30 {
mvargas_dtk 0:d74fc1505b54 31 // CONFIGURAR INTERFACES SERIALES
mvargas_dtk 0:d74fc1505b54 32 pcusb.baud(9600); // Common PC Baudrate
mvargas_dtk 0:d74fc1505b54 33 gv300.baud(115200); // GV300 USB Default Baudrate
mvargas_dtk 0:d74fc1505b54 34 fuelR1.baud(19200); // UFS270 Default Baudrate
mvargas_dtk 0:d74fc1505b54 35
mvargas_dtk 0:d74fc1505b54 36 // Mensaje de Inicio
mvargas_dtk 0:d74fc1505b54 37 booting_gtdat(&gv300, &pcusb);
mvargas_dtk 0:d74fc1505b54 38
mvargas_dtk 0:d74fc1505b54 39 // Declaración de Variables
mvargas_dtk 0:d74fc1505b54 40 // Nivel de combustible UFS270
mvargas_dtk 0:d74fc1505b54 41 char level_FuelR1[6] = "-----";
mvargas_dtk 0:d74fc1505b54 42 char sw_StatusR1[2] = "-";
mvargas_dtk 0:d74fc1505b54 43 char hw_StatusR1[2] = "-";
mvargas_dtk 0:d74fc1505b54 44 int eval_Fuel1 = 0;
mvargas_dtk 0:d74fc1505b54 45 int contador_TX = 0;
mvargas_dtk 0:d74fc1505b54 46
mvargas_dtk 0:d74fc1505b54 47
mvargas_dtk 0:d74fc1505b54 48 while(1) {
mvargas_dtk 0:d74fc1505b54 49 myled = 1;
mvargas_dtk 0:d74fc1505b54 50 // Leer UFS270 en el tanque A
mvargas_dtk 0:d74fc1505b54 51 pcusb.printf("UFS270 A - INICIA\r\n");
mvargas_dtk 0:d74fc1505b54 52 eval_Fuel1 = ufs270_rtFL(&fuelR1, level_FuelR1, hw_StatusR1, sw_StatusR1);
mvargas_dtk 0:d74fc1505b54 53 if (eval_Fuel1) {
mvargas_dtk 0:d74fc1505b54 54 pcusb.printf("UFS270_A Altura=%s - OK\r\n",level_FuelR1);
mvargas_dtk 0:d74fc1505b54 55 contador_TX++;
mvargas_dtk 0:d74fc1505b54 56 } else {
mvargas_dtk 0:d74fc1505b54 57 pcusb.printf("UFS270_A - SIN DATOS\r\n");
mvargas_dtk 0:d74fc1505b54 58 }
mvargas_dtk 0:d74fc1505b54 59 wait_ms(T_TX);
mvargas_dtk 0:d74fc1505b54 60
mvargas_dtk 0:d74fc1505b54 61
mvargas_dtk 0:d74fc1505b54 62 // Transmitir
mvargas_dtk 0:d74fc1505b54 63 if ((eval_Fuel1)&&(contador_TX == 3)){
mvargas_dtk 0:d74fc1505b54 64 // Generar transmisión
mvargas_dtk 0:d74fc1505b54 65 pcusb.printf("REPORTE CONSOLIDADO COMBUSTIBLE\r\n");
mvargas_dtk 0:d74fc1505b54 66 pcusb.printf("Inicia comunicacion con CP. Enviando mensaje:\r\n");
mvargas_dtk 0:d74fc1505b54 67 pcusb.printf("%s%sFTMS%s%s%s%c%c%s%04X%s\r\n\n",
mvargas_dtk 0:d74fc1505b54 68 CABECERA_TX, CODIGO_INT_FUEL, SEPARADOR,
mvargas_dtk 0:d74fc1505b54 69 level_FuelR1, SEPARADOR, hw_StatusR1[0], sw_StatusR1[0],
mvargas_dtk 0:d74fc1505b54 70 FIN_CABECERA_TX, contador_tramas, ULTIMO_CARACTER);
mvargas_dtk 0:d74fc1505b54 71 wait_ms(T_ESPERA_CP);
mvargas_dtk 0:d74fc1505b54 72
mvargas_dtk 0:d74fc1505b54 73 gv300.printf("%s%sFTMS%s%s%s%c%c%s%04X%s\r\n",
mvargas_dtk 0:d74fc1505b54 74 CABECERA_TX, CODIGO_INT_FUEL, SEPARADOR,
mvargas_dtk 0:d74fc1505b54 75 level_FuelR1, SEPARADOR, hw_StatusR1[0], sw_StatusR1[0],
mvargas_dtk 0:d74fc1505b54 76 FIN_CABECERA_TX, contador_tramas, ULTIMO_CARACTER);
mvargas_dtk 0:d74fc1505b54 77 wait_ms(T_ESPERA_CP);
mvargas_dtk 0:d74fc1505b54 78 contador_TX = 0;
mvargas_dtk 0:d74fc1505b54 79 incrementar_trama(&contador_tramas);
mvargas_dtk 0:d74fc1505b54 80 pcusb.printf("Mensaje escrito en puerto serial del CP\r\n\n");
mvargas_dtk 0:d74fc1505b54 81 wait_ms(T_TX);
mvargas_dtk 0:d74fc1505b54 82
mvargas_dtk 0:d74fc1505b54 83 }
mvargas_dtk 0:d74fc1505b54 84 /* CIERRE */
mvargas_dtk 0:d74fc1505b54 85
mvargas_dtk 0:d74fc1505b54 86 pcusb.printf("Contador tx = %d\n", contador_TX);
mvargas_dtk 0:d74fc1505b54 87 pcusb.printf("***FIN***\r\n\n");
mvargas_dtk 0:d74fc1505b54 88 strcpy(level_FuelR1,"-----\0");
mvargas_dtk 0:d74fc1505b54 89 strcpy(sw_StatusR1, "-\0");
mvargas_dtk 0:d74fc1505b54 90 strcpy(hw_StatusR1, "-\0");
mvargas_dtk 0:d74fc1505b54 91 eval_Fuel1 = 0;
mvargas_dtk 0:d74fc1505b54 92 myled = 0;
mvargas_dtk 0:d74fc1505b54 93 wait(2);
mvargas_dtk 0:d74fc1505b54 94 }
mvargas_dtk 0:d74fc1505b54 95 }