mirror of
https://github.com/kawasaki/pyscrlink.git
synced 2025-09-05 01:00:23 +02:00
introduce BTUUID class
As a preparation to move away from bluepy, introduce a new class BTUUID. Bluepy provides its unique UUID class which handles UUIDs of Bluetooth devices well. Instead of it, introduce BTUUID which extends python standard uuid.UUID class and support Bluetooth devices. Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
This commit is contained in:
@@ -10,6 +10,7 @@ import ssl
|
|||||||
import websockets
|
import websockets
|
||||||
import socket
|
import socket
|
||||||
import json
|
import json
|
||||||
|
import uuid
|
||||||
import base64
|
import base64
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
@@ -44,6 +45,24 @@ logger.propagate = False
|
|||||||
HOSTNAME="device-manager.scratch.mit.edu"
|
HOSTNAME="device-manager.scratch.mit.edu"
|
||||||
scan_seconds=10.0
|
scan_seconds=10.0
|
||||||
|
|
||||||
|
class BTUUID(uuid.UUID):
|
||||||
|
BLUETOOTH_BASE_UUID = "00001000800000805F9B34FB"
|
||||||
|
|
||||||
|
def __init__(self, val):
|
||||||
|
if isinstance(val, int):
|
||||||
|
if (val < 0) or (val > 0xFFFFFFFF):
|
||||||
|
raise ValueError(
|
||||||
|
"Short form UUIDs must be in range 0..0xFFFFFFFF")
|
||||||
|
val = "%04X" % val
|
||||||
|
else:
|
||||||
|
val = str(val)
|
||||||
|
|
||||||
|
val = val.replace("-", "")
|
||||||
|
if len(val) <= 8: # Short form
|
||||||
|
val = ("0" * (8 - len(val))) + val + self.BLUETOOTH_BASE_UUID
|
||||||
|
|
||||||
|
uuid.UUID.__init__(self, val)
|
||||||
|
|
||||||
class Session():
|
class Session():
|
||||||
"""Base class for BTSession and BLESession"""
|
"""Base class for BTSession and BLESession"""
|
||||||
def __init__(self, websocket, loop):
|
def __init__(self, websocket, loop):
|
||||||
|
Reference in New Issue
Block a user