forked from auracaster/bumble_mirror
MTU size check added
This commit is contained in:
@@ -224,7 +224,7 @@ class HID(EventEmitter):
|
|||||||
device.register_l2cap_server(HID_INTERRUPT_PSM, self.on_connection)
|
device.register_l2cap_server(HID_INTERRUPT_PSM, self.on_connection)
|
||||||
|
|
||||||
device.on('connection', self.on_device_connection)
|
device.on('connection', self.on_device_connection)
|
||||||
|
|
||||||
async def connect_control_channel(self) -> None:
|
async def connect_control_channel(self) -> None:
|
||||||
# Create a new L2CAP connection - control channel
|
# Create a new L2CAP connection - control channel
|
||||||
try:
|
try:
|
||||||
@@ -383,6 +383,10 @@ class Device(HID):
|
|||||||
|
|
||||||
def __init__(self, device: Device) -> None:
|
def __init__(self, device: Device) -> None:
|
||||||
super().__init__(device, HID.Role.DEVICE)
|
super().__init__(device, HID.Role.DEVICE)
|
||||||
|
self.get_report_cb = None
|
||||||
|
self.set_report_cb = None
|
||||||
|
self.get_protocol_cb = None
|
||||||
|
self.set_protocol_cb = None
|
||||||
|
|
||||||
def send_handshake_message(self, result_code: int) -> None:
|
def send_handshake_message(self, result_code: int) -> None:
|
||||||
msg = SendHandshakeMessage(result_code)
|
msg = SendHandshakeMessage(result_code)
|
||||||
@@ -416,9 +420,11 @@ class Device(HID):
|
|||||||
data = bytearray()
|
data = bytearray()
|
||||||
data.append(report_id)
|
data.append(report_id)
|
||||||
data.extend(ret.data)
|
data.extend(ret.data)
|
||||||
#TODO Check the data size and MTU size here and only then send out
|
if(len(data)<self.l2cap_ctrl_channel.mtu):
|
||||||
#the message
|
self.send_control_data(report_type=report_type, data = data)
|
||||||
self.send_control_data(report_type=report_type, data = data)
|
else:
|
||||||
|
self.send_handshake_message(Message.Handshake.ERR_INVALID_PARAMETER)
|
||||||
|
|
||||||
elif(ret.status == self.GetSetReturn.REPORT_ID_NOT_FOUND):
|
elif(ret.status == self.GetSetReturn.REPORT_ID_NOT_FOUND):
|
||||||
self.send_handshake_message(Message.Handshake.ERR_INVALID_REPORT_ID)
|
self.send_handshake_message(Message.Handshake.ERR_INVALID_REPORT_ID)
|
||||||
elif(ret.status == self.GetSetReturn.ERR_UNSUPPORTED_REQUEST):
|
elif(ret.status == self.GetSetReturn.ERR_UNSUPPORTED_REQUEST):
|
||||||
|
|||||||
Reference in New Issue
Block a user