Mario Vargas
/
mbed-os-example-mbed5-blinky
Diff: main.cpp
- Revision:
- 0:cb19c7be20b9
- Child:
- 1:67969835e6a7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Aug 27 00:02:51 2022 +0000 @@ -0,0 +1,418 @@ +/* mbed Microcontroller Library + * Copyright (c) 2019 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +#include "platform/mbed_thread.h" +#include <stdio.h> +#include <string.h> +#include <math.h> +#include "BufferedSerial.h" + + +DigitalOut led1(PB_4); +DigitalOut led2(PB_12); +DigitalOut BT_RST(PB_5); +InterruptIn Button (PC_13); +DigitalOut Stby_can(PD_3); +DigitalOut reg_3v3(PC_10); +DigitalOut reg_5v(PB_10); +DigitalIn bt_state (PA_15); + +DigitalIn in1 (PA_7); +DigitalIn in2 (PB_0); +DigitalIn in3 (PB_1); +DigitalIn in4 (PF_10); +DigitalIn in5 (PA_4); +DigitalIn in6 (PA_5); +DigitalIn in7 (PA_6); +DigitalIn in8 (PB_3); + +BufferedSerial RS232_2(PC_12, PE_7); +BufferedSerial RS232_1(PD_8, PD_9,1536, 1); +//Serial RS232_1(PD_8, PD_9); +BufferedSerial RS485(PC_6, PC_7); +BufferedSerial BT(PA_9, PA_10,1536 ,1); +//Serial BT(PA_9, PA_10); +BufferedSerial TTL(PA_2, PA_3); +BufferedSerial vm(PA_0, PA_1); + + +DigitalOut OUT1(PB_13); //Salidas activas en bajo +DigitalOut OUT2(PB_14); //Salidas activas en bajo +DigitalOut OUT3(PB_15); //Salidas activas en bajo +DigitalOut OUT4(PC_0); //Salidas activas en bajo + + +////////////////////////////////////////////////////////////////////////////// +int main() +{ + Stby_can = 0; + led1 = 0; + led2 = 0; + BT_RST = 1; + + char datoUSB[1311]; + char ONOUTS[] = "ONOUTS"; + char OFFOUTS[] = "OFFOUTS"; + char ONOUT1[] = "ONOUT1"; + char ONOUT2[] = "ONOUT2"; + char ONOUT3[] = "ONOUT3"; + char ONOUT4[] = "ONOUT4"; + char ANTO[] = "ANTO"; + + char ON3V3[] = "ON3V3"; + char OFF3V3[] = "OFF3V3"; + + char RSTBT[] = "RSTBT"; + + char ON5V[] = "ON5V"; + char OFF5V[] = "OFF5V"; + + char datox; + int x; + int y = 0; + int i = 0; + + BT.baud(9600); + RS232_1.baud(115200); + RS232_2.baud(115200); + RS485.baud(115200); + TTL.baud(115200); + vm.baud(9600); + wait_us(1000000); + + BT.printf("Inicio\n"); + RS232_1.printf("Inicio\n"); + RS232_2.printf("Inicio\n"); + + reg_3v3 = 0; + reg_5v = 0; + x = 0; + + wait_us(1000000); + + ////////////////////////////////////////////////////////////////////////////// + + while (true) { + + x = 0; + led1 = !led1; + led2 = !led2; + + /* BT.printf("Prueba Salidas\n"); + RS232_1.printf("Prueba Salidas\n"); + RS232_2.printf("Prueba Salidas\n"); + TTL.printf("Prueba Salidas\n"); + RS485.printf("Prueba Salidas\n");*/ + + BT.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(), + in5.read(),in6.read(),in7.read(),in8.read()); + RS232_1.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(), + in5.read(),in6.read(),in7.read(),in8.read()); + RS232_2.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(), + in5.read(),in6.read(),in7.read(),in8.read()); + TTL.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(), + in5.read(),in6.read(),in7.read(),in8.read()); + RS485.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(), + in5.read(),in6.read(),in7.read(),in8.read()); + if (((bt_state.read())==1)&&(y==0)){ + + BT.printf("Bluetooth Conectado\r\n"); + RS232_1.printf("Bluetooth Conectado\r\n"); + RS232_2.printf("Bluetooth Conectado\r\n"); + RS485.printf("Bluetooth Conectado\r\n"); + TTL.printf("Bluetooth Conectado\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X01); + vm.putc(0XB4); + y = 1; + } + + + while(RS232_1.readable()) { + datox = RS232_1.getc(); + wait_us(5000); + datoUSB[x] = datox; + x++; + } + + while(BT.readable()) { + datox = BT.getc(); + wait_us(5000); + datoUSB[x] = datox; + x++; + } + + while(RS232_2.readable()) { + datox = RS232_2.getc(); + wait_us(5000); + datoUSB[x] = datox; + x++; + } + + while(TTL.readable()) { + datox = TTL.getc(); + wait_us(5000); + datoUSB[x] = datox; + x++; + } + + while(RS485.readable()) { + datox = RS485.getc(); + wait_us(5000); + datoUSB[x] = datox; + x++; + } + + + if (x != 0) { + datoUSB[x] = '\0'; + + BT.printf("DATA: %s\r\n", datoUSB); + BT.printf("\nCaracteres: %d\r\n", x); + BT.printf("\r\n"); + BT.printf("\r\n"); + + RS232_1.printf("DATA: %s\r\n", datoUSB); + RS232_1.printf("\nCaracteres: %d\r\n", x); + RS232_1.printf("\r\n"); + RS232_1.printf("\r\n"); + + RS232_2.printf("DATA: %s\r\n", datoUSB); + RS232_2.printf("\nCaracteres: %d\r\n", x); + RS232_2.printf("\r\n"); + RS232_2.printf("\r\n"); + + TTL.printf("DATA: %s\r\n", datoUSB); + TTL.printf("\nCaracteres: %d\r\n", x); + TTL.printf("\r\n"); + TTL.printf("\r\n"); + + + + if(strcmp(ONOUTS,datoUSB) == 0) { + + OUT1 = OUT2 = OUT3 = OUT4 = 1; + i= 1; + BT.printf("Salidas activadas\r\n"); + RS232_1.printf("Salidas activadas\r\n"); + RS232_2.printf("Salidas activadas\r\n"); + TTL.printf("Salidas activadas\r\n"); + RS485.printf("Salidas activadas\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X0A); + vm.putc(0XBD); + + } + + + else if(strcmp(OFFOUTS,datoUSB) == 0) { + + OUT1 = OUT2 = OUT3 = OUT4 = 0; + i= 1; + BT.printf("Salidas desactivadas\r\n"); + RS232_1.printf("Salidas desactivadas\r\n"); + RS232_2.printf("Salidas desactivadas\r\n"); + RS485.printf("Salidas desactivadas\r\n"); + TTL.printf("Salidas desactivadas\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X0B); + vm.putc(0XBE); + + } + + + else if(strcmp(ONOUT1,datoUSB) == 0) { + + OUT2 = OUT3 = OUT4 = 0; + OUT1 = 1; + i= 1; + BT.printf("Salida 1 Activada\r\n"); + RS232_1.printf("Salida 1 Activada\r\n"); + RS232_2.printf("Salida 1 Activada\r\n"); + RS485.printf("Salida 1 Activada\r\n"); + TTL.printf("Salida 1 Activada\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X02); + vm.putc(0XB5); + + } + + else if(strcmp(ONOUT2,datoUSB) == 0) { + + OUT1 = OUT3 = OUT4 = 0; + OUT2 = 1; + i= 1; + BT.printf("Salida 2 Activada\r\n"); + RS232_1.printf("Salida 2 Activada\r\n"); + RS232_2.printf("Salida 2 Activada\r\n"); + RS485.printf("Salida 2 Activada\r\n"); + TTL.printf("Salida 2 Activada\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X03); + vm.putc(0XB6); + + } + + else if(strcmp(ONOUT3,datoUSB) == 0) { + + OUT1 = OUT2 = OUT4 = 0; + OUT3 = 1; + i= 1; + BT.printf("Salida 3 Activada\r\n"); + RS232_1.printf("Salida 3 Activada\r\n"); + RS232_2.printf("Salida 3 Activada\r\n"); + RS485.printf("Salida 3 Activada\r\n"); + TTL.printf("Salida 3 Activada\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X04); + vm.putc(0XB7); + + } + + else if(strcmp(ONOUT4,datoUSB) == 0) { + + OUT1 = OUT2 = OUT3 = 0; + OUT4 = 1; + i= 1; + BT.printf("Salida 4 Activada\r\n"); + RS232_1.printf("Salida 4 Activada\r\n"); + RS232_2.printf("Salida 4 Activada\r\n"); + RS485.printf("Salida 4 Activada\r\n"); + TTL.printf("Salida 4 Activada\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X05); + vm.putc(0XB8); + + } + + else if(strcmp(ON3V3,datoUSB) == 0) { + + reg_3v3 = 1; + BT.printf("Regulador 3.3V activado\r\n"); + RS232_1.printf("Regulador 3.3V activado\r\n"); + RS232_2.printf("Regulador 3.3V activado\r\n"); + RS485.printf("Regulador 3.3V activado\r\n"); + TTL.printf("Regulador 3.3V activado\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X06); + vm.putc(0XB9); + + } + + else if(strcmp(OFF3V3,datoUSB) == 0) { + + reg_3v3 = 0; + BT.printf("Regulador 3.3V desactivado\r\n"); + RS232_1.printf("Regulador 3.3V desactivado\r\n"); + RS232_2.printf("Regulador 3.3V desactivado\r\n"); + RS485.printf("Regulador 3.3V desactivado\r\n"); + TTL.printf("Regulador 3.3V desactivado\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X07); + vm.putc(0XBA); + + } + + else if(strcmp(RSTBT,datoUSB) == 0) { + + BT_RST = 0; + wait_us(100000); + BT_RST = 1; + y = 0; + + BT.printf("Reset BT\r\n"); + RS232_1.printf("Reset BT\r\n"); + RS232_2.printf("Reset BT\r\n"); + RS485.printf("Reset BT\r\n"); + TTL.printf("Reset BT\r\n"); + + } + + else if(strcmp(ON5V,datoUSB) == 0) { + + + reg_5v = 1; + BT.printf("Regulador 5V activado\r\n"); + RS232_1.printf("Regulador 5V activado\r\n"); + RS232_2.printf("Regulador 5V activado\r\n"); + RS485.printf("Regulador 5V activado\r\n"); + TTL.printf("Regulador 5V activado\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X08); + vm.putc(0XBB); + } + + else if(strcmp(OFF5V,datoUSB) == 0) { + + reg_5v = 0; + BT.printf("Regulador 5V desactivado\r\n"); + RS232_1.printf("Regulador 5V desactivado\r\n"); + RS232_2.printf("Regulador 5V desactivado\r\n"); + RS485.printf("Regulador 5V desactivado\r\n"); + TTL.printf("Regulador 5V desactivado\r\n"); + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X09); + vm.putc(0XBC); + + } + + else if(strcmp(ANTO,datoUSB) == 0) { + + vm.putc(0XAA); + vm.putc(0X07); + vm.putc(0X02); + vm.putc(0X00); + vm.putc(0X0C); + vm.putc(0XBF); + + } + + else{ + BT.printf("COMANDO INVALIDO\n"); + RS232_1.printf("COMANDO INVALIDO\n"); + RS232_2.printf("COMANDO INVALIDO\n"); + RS485.printf("COMANDO INVALIDO\n"); + TTL.printf("COMANDO INVALIDO\n"); + } + + } + + wait_us(3000000); + }//while true +}//main