Last active
January 12, 2018 07:56
-
-
Save pollend/f9dab5ff176bee52104fc96af3707164 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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