mirror of
https://github.com/kawasaki/pyscrlink.git
synced 2025-09-04 16:50:11 +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 socket
|
||||
import json
|
||||
import uuid
|
||||
import base64
|
||||
import logging
|
||||
import sys
|
||||
@@ -44,6 +45,24 @@ logger.propagate = False
|
||||
HOSTNAME="device-manager.scratch.mit.edu"
|
||||
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():
|
||||
"""Base class for BTSession and BLESession"""
|
||||
def __init__(self, websocket, loop):
|
||||
|
Reference in New Issue
Block a user