Bluetooth hc05 library

Dependents:   Nucleo_bt

hc05.cpp

Committer:
rainerraul
Date:
2018-08-17
Revision:
5:498533929bb6
Parent:
4:1eee19777111
Child:
6:fed08834891c

File content as of revision 5:498533929bb6:

#include "mbed.h"
#include "at.h"
#include "hc05.h"


void bt_modul_hc05::initUART(UART num, unsigned long baudrate, _IRQ interrupt)
{
    switch(num)  {
        case UART1 :
            at0.device_init(baudrate, interrupt);
            t_interrupt = interrupt;
            break;
        case UART6 :
            at1.device_init1(baudrate, interrupt);
            t_interrupt1 = interrupt;
            break;
    }

}

char *bt_modul_hc05::get_version(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+VERSION?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+VERSION?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
}

char *bt_modul_hc05::set_reset(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+RESET\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+RESET\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
}

char *bt_modul_hc05::set_default_settings(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+ORGL\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+ORGL\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_address(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+ADDR?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(1);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+ADDR?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(1);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_name(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+NAME?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+NAME?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_device_name(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+RNAME?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+RNAME?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_role(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+ROLE?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+ROLE?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_device_class(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+CLASS?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+CLASS?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_giac(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+IAC?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+IAC?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_inquiry(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+INQM?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+INQM?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_pincode(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+PSWD?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(1);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+PSWD?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(1);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_uart(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+UART?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+UART?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_inqm(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+INQ?\r\n", "");

            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }


        case UART6 :
            at1.at_send1("AT+INQ?\r\n", "");

            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_modul_init(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+INIT\r\n", "");

            if(t_interrupt == OFF)  {
                return at0.getAnswer(2);
            } else  {
                return at0.buffer;
            }


        case UART6 :
            at1.at_send("AT+INIT\r\n", "");

            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(2);
            } else  {
                return at1.buffer;
            }


    }
    return 0;

}

char *bt_modul_hc05::get_modul_state(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+STATE?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+STATE?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_addr_mode(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+CMODE?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+CMODE?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::get_fixed_addr(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+BIND?\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+BIND?\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::set_modul_role(UART num, int role)
{

    switch(num)  {
        case UART1 :
            at0.at_send("AT+ROLE=%i\r\n", (char*)role);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+ROLE=%i\r\n", (char*)role);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::set_modul_pincode(UART num, char *pin)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+PSWD=%s\r\n", pin);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+PSWD=%s\r\n", pin);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}

char *bt_modul_hc05::set_device_uart(UART num, char *uartparams)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+UART=%s\r\n", uartparams);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+UART=%s\r\n", uartparams);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
}


char *bt_modul_hc05::set_fixed_addr(UART num, char *address)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+BIND=\r\n", address);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+BIND=\r\n", address);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;

}


char *bt_modul_hc05::set_addr_mode(UART num, int mode)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+CMODE=%i\r\n", (char*)mode);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+CMODE=%i\r\n", (char*)mode);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }
    
    char *bt_modul_hc05::search_device(UART num, char *address)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+FSAD=%s\r\n", address);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+FSAD=%s\r\n", address);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }
    
     char *bt_modul_hc05::delete_device(UART num, char *address)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+PMSAD=%s\r\n", address);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+PMSAD=%s\r\n", address);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }
    
     char *bt_modul_hc05::delete_all(UART num)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+RMAAD\r\n", "");
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+RMAAD\r\n", "");
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }
    
     char *bt_modul_hc05::connect_device(UART num, char *address)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+LINK=%s\r\n", address);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+LINK=%s\r\n", address);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }
    
     char *bt_modul_hc05::disconnect_device(UART num, char *address)
{
    switch(num)  {
        case UART1 :
            at0.at_send("AT+DISC=%s\r\n", address);
            if(t_interrupt == OFF)  {
                return at0.getAnswer(3);
            } else  {
                return at0.buffer;
            }

        case UART6 :
            at1.at_send1("AT+DISC=%s\r\n", address);
            if(t_interrupt1 == OFF)  {
                return at1.getAnswer(3);
            } else  {
                return at1.buffer;
            }

    }
    return 0;
    }