Skip to content

Commit 7ecfefb

Browse files
committed
Finds usb2can serial numbers by name
1 parent 596f07d commit 7ecfefb

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

can/interfaces/usb2can/serial_selector.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def WMIDateStringToDate(dtmDate) -> str:
4040
return strDateTime
4141

4242

43-
def find_serial_devices(serial_matcher: str = "ED") -> List[str]:
43+
def find_serial_devices(serial_matcher: str = "") -> List[str]:
4444
"""
4545
Finds a list of USB devices where the serial number (partially) matches the given string.
4646
@@ -49,6 +49,9 @@ def find_serial_devices(serial_matcher: str = "ED") -> List[str]:
4949
"""
5050
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
5151
objSWbemServices = objWMIService.ConnectServer(".", "root\\cimv2")
52-
items = objSWbemServices.ExecQuery("SELECT * FROM Win32_USBControllerDevice")
53-
ids = (item.Dependent.strip('"')[-8:] for item in items)
54-
return [e for e in ids if e.startswith(serial_matcher)]
52+
query = "SELECT * FROM CIM_LogicalDevice where Name LIKE '%USB2CAN%'"
53+
usbs = objSWbemServices.ExecQuery(query)
54+
serial_numbers = [usb.DeviceID.split("\\")[-1] for usb in usbs]
55+
if serial_matcher:
56+
return [sn for sn in serial_numbers if serial_matcher in sn]
57+
return serial_numbers

0 commit comments

Comments
 (0)