Bluetooth hc05 library
Diff: hc05.cpp
- Revision:
- 13:85c3dac25599
- Parent:
- 12:4a779fa69f6b
- Child:
- 14:1b81b957214a
diff -r 4a779fa69f6b -r 85c3dac25599 hc05.cpp --- a/hc05.cpp Tue Aug 21 15:36:58 2018 +0000 +++ b/hc05.cpp Sat Aug 25 21:46:43 2018 +0000 @@ -313,7 +313,7 @@ at0.at_send("AT+INQ\r\n", ""); if(t_interrupt == OFF) { - return at0.getAnswer(20000); + return at0.getAnswer(600); } else { return at0.buffer; } @@ -322,7 +322,7 @@ at1.at_send1("AT+INQ\r\n", ""); if(t_interrupt1 == OFF) { - return at1.getAnswer(20000); + return at1.getAnswer(600); } else { return at1.buffer; } @@ -601,11 +601,11 @@ } -char *bt_modul_hc05::set_fixed_addr(char *address) +char *bt_modul_hc05::set_to_addr(char *address) { switch(t_uart) { case UART1 : - at0.at_send("AT+BIND=\r\n", address); + at0.at_send("AT+BIND=%s\r\n", address); if(t_interrupt == OFF) { return at0.getAnswer(600); } else { @@ -613,7 +613,7 @@ } case UART6 : - at1.at_send1("AT+BIND=\r\n", address); + at1.at_send1("AT+BIND=%s\r\n", address); if(t_interrupt1 == OFF) { return at1.getAnswer(600); } else { @@ -672,6 +672,32 @@ return 0; } +char *bt_modul_hc05::set_device_paired(char *address, int timeout) +{ + switch(t_uart) { + case UART1 : + sprintf("%c,%d", address, timeout); + at0.at_send("AT+PAIR=%s\r\n", address); + if(t_interrupt == OFF) { + return at0.getAnswer(800); + } else { + return at0.buffer; + } + + case UART6 : + sprintf("%c,%d", address, timeout); + 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(char *address) { switch(t_uart) { @@ -815,31 +841,38 @@ char *bt_modul_hc05::search() { + bt_modul_hc05::set_addr_mode(ANY); bt_modul_hc05::get_modul_init(); bt_modul_hc05::set_modul_giac("9e8b33"); bt_modul_hc05::set_device_class(0); - bt_modul_hc05::set_modul_inquiry("1,5,20"); + bt_modul_hc05::set_modul_inquiry("1,8,6"); return bt_modul_hc05::get_modul_inqm(); } char *bt_modul_hc05::link_device_any(char *address) { bt_modul_hc05::set_addr_mode(ANY); - - if(strncmp(bt_modul_hc05::get_modul_role(), "+ROLE:1", 7) == 0) { - bt_modul_hc05::search_device(address); - return bt_modul_hc05::connect_device(address); - } - return '\0'; + bt_modul_hc05::search_device(address); + bt_modul_hc05::set_to_addr(address); + return bt_modul_hc05::connect_device(address); + } char *bt_modul_hc05::link_device_fixed(char *address) { + bt_modul_hc05::set_addr_mode(FIXED); - - if(strncmp(bt_modul_hc05::get_modul_role(), "+ROLE:1", 7) == 0) { - bt_modul_hc05::set_fixed_addr(address); - return bt_modul_hc05::connect_device(address); - } - return '\0'; + bt_modul_hc05::set_to_addr(address); + return bt_modul_hc05::connect_device(address); + +} + +char *bt_modul_hc05::link_device_paired(char *address) +{ + bt_modul_hc05::set_addr_mode(ANY); + bt_modul_hc05::get_modul_init(); + bt_modul_hc05::set_device_paired(address, 10); + bt_modul_hc05::set_to_addr(address); + return bt_modul_hc05::connect_device(address); + } \ No newline at end of file