Skip to content

Commit e592a37

Browse files
committed
util/agents/usb_hid_relay: use VID to detect the protocol
Signed-off-by: Jan Luebbe <[email protected]>
1 parent cb1e88c commit e592a37

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

labgrid/util/agents/usb_hid_relay.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,17 @@ def __init__(self, **args):
2424
self._dev = usb.core.find(**args)
2525
if self._dev is None:
2626
raise ValueError("Device not found")
27+
28+
if self._dev.idVendor == 0x16C0:
29+
self.set_output = self.set_output_dcttech
30+
self.get_output = self.get_output_dcttech
31+
else:
32+
raise ValueError(f"Unknown vendor/protocol for VID {self._dev.idVendor:x}")
33+
2734
if self._dev.is_kernel_driver_active(0):
2835
self._dev.detach_kernel_driver(0)
2936

30-
def set_output(self, number, status):
37+
def set_output_dcttech(self, number, status):
3138
assert 1 <= number <= 8
3239
req = [0xFF if status else 0xFD, number]
3340
self._dev.ctrl_transfer(
@@ -38,7 +45,7 @@ def set_output(self, number, status):
3845
req, # payload
3946
)
4047

41-
def get_output(self, number):
48+
def get_output_dcttech(self, number):
4249
assert 1 <= number <= 8
4350
resp = self._dev.ctrl_transfer(
4451
usb.util.CTRL_TYPE_CLASS | usb.util.CTRL_RECIPIENT_DEVICE | usb.util.ENDPOINT_IN,

0 commit comments

Comments
 (0)