Skip to content

Commit 9ce5aa4

Browse files
committed
Fix mixed up mapping parameter record index numbers in class PDO.
The access by this index number mixed up the two number ranges. The CiA 301 standard defines: * Object 1600h to 17FFh: RPDO mapping parameter * Object 1A00h to 1BFFh: TPDO mapping parameter The test was also wrong, because it added the two tested variables to the TPDO1, while testing the __getitem__ lookup with index 0x1600.
1 parent 120ae99 commit 9ce5aa4

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

canopen/pdo/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ def __init__(self, node, rpdo, tpdo):
3232
self.map = {}
3333
# the object 0x1A00 equals to key '1' so we remove 1 from the key
3434
for key, value in self.rx.items():
35-
self.map[0x1A00 + (key - 1)] = value
36-
for key, value in self.tx.items():
3735
self.map[0x1600 + (key - 1)] = value
36+
for key, value in self.tx.items():
37+
self.map[0x1A00 + (key - 1)] = value
3838

3939

4040
class RPDO(PdoBase):

test/test_pdo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ def test_pdo_getitem(self):
5050
self.assertEqual(node.tpdo[1]['BOOLEAN value 2'].raw, True)
5151

5252
# Test different types of access
53-
self.assertEqual(node.pdo[0x1600]['INTEGER16 value'].raw, -3)
53+
self.assertEqual(node.pdo[0x1A00]['INTEGER16 value'].raw, -3)
5454
self.assertEqual(node.pdo['INTEGER16 value'].raw, -3)
5555
self.assertEqual(node.pdo.tx[1]['INTEGER16 value'].raw, -3)
5656
self.assertEqual(node.pdo[0x2001].raw, -3)
5757
self.assertEqual(node.tpdo[0x2001].raw, -3)
5858
self.assertEqual(node.pdo[0x2002].raw, 0xf)
5959
self.assertEqual(node.pdo['0x2002'].raw, 0xf)
6060
self.assertEqual(node.tpdo[0x2002].raw, 0xf)
61-
self.assertEqual(node.pdo[0x1600][0x2002].raw, 0xf)
61+
self.assertEqual(node.pdo[0x1A00][0x2002].raw, 0xf)
6262

6363
def test_pdo_save(self):
6464
self.node.tpdo.save()

0 commit comments

Comments
 (0)