TEST GUARIA2

Dependencies:   BufferedSerial

main.cpp

Committer:
mvargas_dtk
Date:
2022-08-27
Revision:
0:cb19c7be20b9
Child:
1:67969835e6a7

File content as of revision 0:cb19c7be20b9:

/* 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