Skip to content

Commit 713f005

Browse files
authored
Ignore the most significant bit in PDO mapping lengths. (#421)
1 parent 0e6e510 commit 713f005

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

canopen/pdo/base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,11 +358,12 @@ def _raw_from(param):
358358
value = _raw_from(self.map_array[subindex])
359359
index = value >> 16
360360
subindex = (value >> 8) & 0xFF
361-
size = value & 0xFF
361+
# Ignore the highest bit, it is never valid for <= 64 PDO length
362+
size = value & 0x7F
362363
if hasattr(self.pdo_node.node, "curtis_hack") and self.pdo_node.node.curtis_hack: # Curtis HACK: mixed up field order
363364
index = value & 0xFFFF
364365
subindex = (value >> 16) & 0xFF
365-
size = (value >> 24) & 0xFF
366+
size = (value >> 24) & 0x7F
366367
if index and size:
367368
self.add_variable(index, subindex, size)
368369

0 commit comments

Comments
 (0)