Skip to content

Commit 68cb5ae

Browse files
TPDO mappings may be read-only
1 parent 6bc90a8 commit 68cb5ae

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

canopen/pdo/base.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -424,18 +424,23 @@ def save(self) -> None:
424424
# excess entries with all-zeros.
425425
self._fill_map(self.map_array[0].raw)
426426
subindex = 1
427+
427428
for var in self.map:
428429
logger.info("Writing %s (0x%04X:%02X, %d bits) to PDO map",
429430
var.name, var.index, var.subindex, var.length)
430-
if getattr(self.pdo_node.node, "curtis_hack", False):
431-
# Curtis HACK: mixed up field order
432-
self.map_array[subindex].raw = (var.index |
433-
var.subindex << 16 |
434-
var.length << 24)
435-
else:
436-
self.map_array[subindex].raw = (var.index << 16 |
437-
var.subindex << 8 |
438-
var.length)
431+
try:
432+
if getattr(self.pdo_node.node, "curtis_hack", False):
433+
# Curtis HACK: mixed up field order
434+
self.map_array[subindex].raw = (var.index |
435+
var.subindex << 16 |
436+
var.length << 24)
437+
else:
438+
self.map_array[subindex].raw = (var.index << 16 |
439+
var.subindex << 8 |
440+
var.length)
441+
except SdoAbortedError as e:
442+
if e.code != 0x06010002:
443+
raise
439444
subindex += 1
440445
try:
441446
self.map_array[0].raw = len(self.map)

0 commit comments

Comments
 (0)