bbmagic_lib to biblioteka do komunikacji z modułami BBMagic. Kompatybilna jest z mikrokomputerami Raspberry Pi zero W i Raspberry Pi 3, które wysposażone są w chip Bluetooth Low Energy.
Zmiany w bbmagic_lib_1.4
Dodano możliwość komunikacji z modułem wykonawczym BBMagic DIMMER
int bbm_bt_dimmer(unsigned char *dest_bd_addr, unsigned char *chan) ;
- unsigned char *dest_bd_addr – wskaźnik do sześcioelementowej tablicy zawierającej adres MAC bluetooth modułu BBMagic DIMMER
- unsigned char *chan – wskaźnik do trzyelementowej tablicy zawierającej współczynnik wypełnienia sygnału PWM na kanałach odpowiednio: 0, 1 i 2
Np.:
Wyłącza wszystkie kanały PWM w module o adresie: 0xFE4FF394EECD:
unsigned char bd_addr_dimmer_1[6] = {0xFE, 0x4F, 0xF3, 0x94, 0xEE, 0xCD} ; unsigned char dimm_val[3] = {0, 0, 0} ; int i = bbm_bt_dimmer(bd_addr_dimmer_1, dimm_val) ;
Ustawia kanał 0 na 10% (25/255) mocy, kanał 1 na 78% (200/255) mocy, a kanał 2 na 100% mocy:
dimm_val[0] = 25; dimm_val[1] = 200; dimm_val[2] = 255; i = bbm_bt_dimmer(bd_addr_dimmer_1, dimm_val) ;
Dodano możliwość komunikacji z modułem wykonawczym BBMagic RELAY
int bbm_bt_relay_on(unsigned char *dest_bd_addr, unsigned char relays) ;
- unsigned char *dest_bd_addr – wskaźnik do sześcioelementowej tablicy zawierającej adres MAC bluetooth modułu BBMagic RELAY
- unsigned char relays – flagi bitowe przekażników do włączenia
- #define BBM_RELAY_0 1
- #define BBM_RELAY_1 2
- #define BBM_RELAY_2 4
- #define BBM_RELAY_3 8
int bbm_bt_relay_off(unsigned char *dest_bd_addr, unsigned char relays) ;
- unsigned char *dest_bd_addr – wskaźnik do sześcioelementowej tablicy zawierającej adres MAC bluetooth modułu BBMagic RELAY
- unsigned char relays – flagi bitowe przekażników do wyłączenia
- #define BBM_RELAY_0 1
- #define BBM_RELAY_1 2
- #define BBM_RELAY_2 4
- #define BBM_RELAY_3 8
Np.:
Włącz przekaźniki 0 i 3 w module o adresie: 0xFE43E394DEEE:
unsigned char bd_addr_test[6] = {0xFE, 0x43, 0xE3, 0x94, 0xDE, 0xEE} ; int i = bbm_bt_relay_on(bd_addr_test, BBM_RELAY_0 | BBM_RELAY_3) ;
Wyłącz przekaźnik na wyjściu RELAY_3 w module o adresie: 0xFE43E394DEEE:
int i = bbm_bt_relay_off(bd_addr_test, BBM_RELAY_3) ;
Dodano możliwość włączania i wyłączania komunikatów wypisywanych na konsolę
Konfiguracji dokonujemy przy otwarciu biblioteki funkcją:
int bbm_bt_open(0, 0, 0, int op_mode) ;
- op_mode równe 0 – komunikaty wyłączone
- op_mode różne od 0 – komunikaty włączone
Dodano możliwość włączenia sygnalizacji trzema diodami LED
Konfiguracji dokonujemy przy otwarciu biblioteki funkcją:
int bbm_bt_open(int led_rx_pin, int led_tx_pin, int led_run_pin, int op_mode) ;
- led_rx_pin – sygnalizuje odbieranie danych Bbmagic Bluetooth, zakres od 2 do 27.
- led_tx_pin – sygnalizuje wysyłanie danych Bbmagic Bluetooth, zakres od 2 do 27.
- led_run_pin – sygnalizuje uruchomienie biblioteki, zakres od 2 do 27.
Podanie wartośći spoza zakresu od 2 do 27 wyłącza sygnalizację.
Np.:
Sygnalizacjha odbierania na pinie GPIO02, wysyłania na pinie GPIO03 i uruchomienia biblioteki na pinie GPIO04:
i = bbm_bt_open(2, 3, 4, 0) ;
Sygnalizacjha odbierania na pinie GPIO26, wysyłania na pinie GPIO19. Sygnalizacja uruchomienia biblioteki jest wyłączona:
i = bbm_bt_open(26, 19, 0, 0) ;
Dodano możliwość odczytania adresu MAC bluetooth maszyny na której uruchomiona jest biblioteka
unsigned char bd_addr[6] ; int len = bbm_bt_addr_get(bd_addr) ; printf("my_bt_mac: ") ; if(len) { do { len-- ; printf("%0.2X", bd_addr[len]) ; } while(len>0) ; printf("\n") ; }else { if(len == -1) printf("bt not opened, use bbm_bt_open(..) first") ; else printf("reading error !!\n") ; exit(1) ; }
Nowa wersja biblioteki bbmagic_lib_1.4 dostępna jest w dziale Download.