Bluetooth hc05 library
hc05.cpp
- Committer:
- rainerraul
- Date:
- 2018-08-19
- Revision:
- 10:2e1538dc2e1a
- Parent:
- 9:a8a96ce56d6e
- Child:
- 11:770663228ced
File content as of revision 10:2e1538dc2e1a:
#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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+VERSION?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+RESET\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+ORGL\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+ADDR?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+NAME?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+RNAME?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+ROLE?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+CLASS?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+IAC?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+INQM?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+PSWD?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+UART?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+INQ\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send("AT+INIT\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+STATE?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+CMODE?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+BIND?\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_modul_role(UART num, ROLE role) { switch(num) { case UART1 : at0.at_send("AT+ROLE=%i\r\n", (char*)role); if(t_interrupt == OFF) { return at0.getAnswer(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+ROLE=%i\r\n", (char*)role); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_device_class(UART num, int dclass) { switch(num) { case UART1 : at0.at_send("AT+CLASS=%i\r\n", (char*) dclass); if(t_interrupt == OFF) { return at0.getAnswer(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+CLASS=%i\r\n", (char*) dclass); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_modul_giac(UART num, char *giac) { switch(num) { case UART1 : at0.at_send("AT+IAC=%s\r\n", giac); if(t_interrupt == OFF) { return at0.getAnswer(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+IAC=%s\r\n", giac); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+PSWD=%s\r\n", pin); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_modul_inquiry(UART num, char *inqparams) { switch(num) { case UART1 : at0.at_send("AT+INQM=%s\r\n", inqparams); if(t_interrupt == OFF) { return at0.getAnswer(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+INQM=%s\r\n", inqparams); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_modul_name(UART num, char *name) { switch(num) { case UART1 : at0.at_send("AT+NAME=%s\r\n", name); if(t_interrupt == OFF) { return at0.getAnswer(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+NAME=%s\r\n", name); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_modul_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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+UART=%s\r\n", uartparams); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+BIND=\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { return at1.buffer; } } return 0; } char *bt_modul_hc05::set_addr_mode(UART num, CMODE mode) { switch(num) { case UART1 : at0.at_send("AT+CMODE=%i\r\n", (char*)mode); if(t_interrupt == OFF) { return at0.getAnswer(600); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+CMODE=%i\r\n", (char*)mode); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+FSAD=%s\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+PMSAD=%s\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+RMAAD\r\n", ""); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+LINK=%s\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } 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(800); } else { return at0.buffer; } case UART6 : at1.at_send1("AT+DISC=%s\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(800); } else { return at1.buffer; } } return 0; } bool bt_modul_hc05::data_send(UART num, char *data) { switch(num) { case UART1 : at0.at_send("%s\r\n", data); return true; case UART6 : at1.at_send1("%s\r\n", data); return true; } return false; } char *bt_modul_hc05::data_receive(UART num) { switch(num) { case UART1 : if(t_interrupt == OFF) { return at0.getAnswer(800); } else { return at0.buffer; } case UART6 : if(t_interrupt1 == OFF) { return at1.getAnswer(800); } else { return at1.buffer; } } return '\0'; } void bt_modul_hc05::flush(UART num) { switch(num) { case UART1 : if(t_interrupt == ON) { at0.clear(); } case UART6 : if(t_interrupt1 == ON) { at1.clear(); } } } char *bt_modul_hc05::search(UART num) { // bt_modul_hc05::set_modul_role(UART6, MASTER); bt_modul_hc05::get_modul_init(num); bt_modul_hc05::set_modul_giac(num, "9e8b33"); bt_modul_hc05::set_device_class(num, 0); bt_modul_hc05::set_modul_inquiry(num, "1,5,10"); return bt_modul_hc05::get_modul_inqm(num); } char *bt_modul_hc05::link_device(UART num, char *address) { bt_modul_hc05::search_device(num, address); return bt_modul_hc05::connect_device(num, address); }