Skip to content

Instantly share code, notes, and snippets.

@pollend
Last active January 12, 2018 07:56
Show Gist options
  • Select an option

  • Save pollend/f9dab5ff176bee52104fc96af3707164 to your computer and use it in GitHub Desktop.

Select an option

Save pollend/f9dab5ff176bee52104fc96af3707164 to your computer and use it in GitHub Desktop.
import gatt
manager = gatt.DeviceManager(adapter_name='hci0')
SerialPortUUID = "0000dfb1-0000-1000-8000-00805f9b34fb";
CommandUUID = "0000dfb2-0000-1000-8000-00805f9b34fb";
ModelNumberStringUUID = "00002a24-0000-1000-8000-00805f9b34fb";
class AnyDevice(gatt.Device):
def connect_succeeded(self):
super().connect_succeeded()
print("[%s] Connected" % (self.mac_address))
def connect_failed(self, error):
super().connect_failed(error)
print("[%s] Connection failed: %s" % (self.mac_address, str(error)))
def disconnect_succeeded(self):
super().disconnect_succeeded()
print("[%s] Disconnected" % (self.mac_address))
def services_resolved(self):
super().services_resolved()
self.command_characteristic = None
self.model_number_characteristic = None
self.serial_port_characteristic = None
print("[%s] Resolved services" % (self.mac_address))
for service in self.services:
print("[%s] Service [%s]" % (self.mac_address, service.uuid))
for characteristic in service.characteristics:
if(characteristic.uuid == ModelNumberStringUUID):
self.model_number_characteristic = characteristic
elif(characteristic.uuid == SerialPortUUID):
self.serial_port_characteristic = characteristic
self.serial_port_characteristic.enable_notifications()
elif(characteristic.uuid == CommandUUID):
self.command_characteristic = characteristic
print("[%s] Characteristic [%s]" % (self.mac_address, characteristic.uuid))
if(self.model_number_characteristic == None or self.serial_port_characteristic == None or self.command_characteristic == None):
print("Please select a DFRobot device")
device.disconnect()
else:
print("Valid DFRobot device")
self.characteristic = self.model_number_characteristic
def characteristic_value_updated(self, characteristic, value):
print(value.decode("utf-8"))
device = AnyDevice(mac_address='50:65:83:94:2A:C6', manager=manager)
device.connect()
manager.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment