Skip to content

Commit 10aef50

Browse files
pierreluctghardbyte
authored andcommitted
Adding neovi device serial base 36 decoding when needed (#250)
1 parent 269be72 commit 10aef50

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

can/interfaces/ics_neovi/neovi_bus.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def __init__(self, channel=None, can_filters=None, **config):
9898

9999
self.channel_info = '%s %s CH:%s' % (
100100
self.dev.Name,
101-
self.dev.SerialNumber,
101+
self.get_serial_number(self.dev),
102102
channel
103103
)
104104
logger.info("Using device: {}".format(self.channel_info))
@@ -117,6 +117,23 @@ def __init__(self, channel=None, can_filters=None, **config):
117117
ics.NEOVI6_VCAN_TIMESTAMP_1, ics.NEOVI6_VCAN_TIMESTAMP_2
118118
)
119119

120+
@staticmethod
121+
def get_serial_number(device):
122+
"""Decode (if needed) and return the ICS device serial string
123+
124+
:param device: ics device
125+
:return: ics device serial string
126+
:rtype: str
127+
"""
128+
def to_base36(n, alphabet="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"):
129+
return (to_base36(n // 36) + alphabet[n % 36]).lstrip("0") \
130+
if n > 0 else "0"
131+
132+
a0000 = 604661760
133+
if device.SerialNumber >= a0000:
134+
return to_base36(device.SerialNumber)
135+
return str(device.SerialNumber)
136+
120137
def shutdown(self):
121138
super(NeoViBus, self).shutdown()
122139
self.opened = False
@@ -129,7 +146,7 @@ def _open_device(self, type_filter=None, serial=None):
129146
devices = ics.find_devices()
130147

131148
for device in devices:
132-
if serial is None or str(device.SerialNumber) == str(serial):
149+
if serial is None or self.get_serial_number(device) == str(serial):
133150
dev = device
134151
break
135152
else:

0 commit comments

Comments
 (0)