Skip to content

Commit fdf5724

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

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

canopen/pdo/base.py

+13-9
Original file line numberDiff line numberDiff line change
@@ -427,15 +427,19 @@ def save(self) -> None:
427427
for var in self.map:
428428
logger.info("Writing %s (0x%04X:%02X, %d bits) to PDO map",
429429
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)
430+
try:
431+
if getattr(self.pdo_node.node, "curtis_hack", False):
432+
# Curtis HACK: mixed up field order
433+
self.map_array[subindex].raw = (var.index |
434+
var.subindex << 16 |
435+
var.length << 24)
436+
else:
437+
self.map_array[subindex].raw = (var.index << 16 |
438+
var.subindex << 8 |
439+
var.length)
440+
except SdoAbortedError as e:
441+
if e.code != 0x06010002:
442+
raise
439443
subindex += 1
440444
try:
441445
self.map_array[0].raw = len(self.map)

0 commit comments

Comments
 (0)