Get Client Mac Address in GATTSService/Characteristic
-
I'm connecting to my LoPy using my Android phone and the app "BLE Scanner".
I would like to be able to print the MAC address of my Android phone once i try to read on a characteristic but i'm unsure how this is done using GATTSService/Characteristic.
from network import Bluetooth bluetooth = Bluetooth() bluetooth.set_advertisement(name='LoPy', service_uuid=b'1234567890123456') def conn_cb (bt_o): events = bt_o.events() if events & Bluetooth.CLIENT_CONNECTED: print("Client connected") elif events & Bluetooth.CLIENT_DISCONNECTED: print("Client disconnected") bluetooth.callback(trigger=Bluetooth.CLIENT_CONNECTED | Bluetooth.CLIENT_DISCONNECTED, handler=conn_cb) bluetooth.advertise(True) srv1 = bluetooth.service(uuid=b'1234567890123456', isprimary=True) chr1 = srv1.characteristic(uuid=b'ab34567890123456', value=5) char1_read_counter = 0 def char1_cb_handler(chr): global char1_read_counter char1_read_counter += 1 events = chr.events() if events & Bluetooth.CHAR_WRITE_EVENT: print("Write request with value = {}".format(chr.value())) else: if char1_read_counter < 3: print(bluetooth.client(mac_adder)) #print phone MAC address?? else: return 'ABC DEF' char1_cb = chr1.callback(trigger=Bluetooth.CHAR_WRITE_EVENT | Bluetooth.CHAR_READ_EVENT, handler=char1_cb_handler) srv2 = bluetooth.service(uuid=1234, isprimary=True) chr2 = srv2.characteristic(uuid=4567, value=0x1234) char2_read_counter = 0xF0 def char2_cb_handler(chr): global char2_read_counter char2_read_counter += 1 if char2_read_counter > 0xF1: return char2_read_counter char2_cb = chr2.callback(trigger=Bluetooth.CHAR_READ_EVENT, handler=char2_cb_handler)
-
We created a service with multiple characteristics but could only see the first characteristic using BLE scanner.
-
@ledbelly2142 I can write multiple times from the app on my phone to the Characteristic if that's what you mean?
are you writing values from a mobile app? or do you want multiple values per characteristic? because as far as i am aware each characteristic has a single value and you can create multiple characteristics.
-
I am having some issues with Bluetooth and the GATTSService/Characteristic, can't write multiple values.
Are you able to write multiple values?