Skip to content

Conversation

acolomb
Copy link
Member

@acolomb acolomb commented Aug 5, 2025

The PdoBase mapping uses an enumeration starting from one for the individual PDOs. Requesting index 0 (zero) accidentally will return the first PdoVariable in the first PDO. This is coincidental, because the PDOs are tried in turn and with a PDO, the numeric index lookup is zero-based.

To avoid hard-to-debug errors, simply forbid the value zero completely in the lookup, which does not make sense for any of the supported lookup methods.

Copy link

codecov bot commented Aug 5, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@acolomb acolomb added this to the v3.0.0 milestone Aug 5, 2025
@acolomb acolomb added the pdo label Aug 5, 2025
@acolomb acolomb linked an issue Aug 18, 2025 that may be closed by this pull request
@acolomb acolomb changed the title PdoBase: Forbid getting item with zero index (fixes #581) PdoBase: Forbid getting item with zero index (fixes #581, #607) Aug 18, 2025
@acolomb acolomb linked an issue Aug 18, 2025 that may be closed by this pull request
@acolomb acolomb marked this pull request as draft August 18, 2025 22:17
@acolomb acolomb marked this pull request as ready for review August 19, 2025 11:09
@acolomb acolomb removed a link to an issue Sep 4, 2025
@acolomb acolomb changed the title PdoBase: Forbid getting item with zero index (fixes #581, #607) PdoBase: Forbid getting item with zero index (fixes #581) Sep 4, 2025
@acolomb
Copy link
Member Author

acolomb commented Sep 4, 2025

I just reverted some of the changes in this branch, which should better live in their own PR (#613). Mostly fixes and extensions to cover different types of PDO access patterns, but not really related to the original subject issues here.

@acolomb acolomb merged commit 593f062 into canopen-python:master Sep 22, 2025
4 of 5 checks passed
@acolomb acolomb deleted the pdo-getitem-zero branch September 22, 2025 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PDO getitem unexpected returns PdoVariable on value 0

1 participant