Dependencies:   BufferedSerial

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