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@0:d74fc1505b54, 2016-05-26 (annotated)
- 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?
User | Revision | Line number | New 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 | } |