Fix: cast ctypes scalars to int before enum conversion in xa_shared_t… #87
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a bug in xa_shared_types.py where enums were being constructed directly from
ctypes
scalers likec_int16
. This caused errors such as:ValueError: c_ushort(2) is not a valid TLMC_HardLimitOperatingModes
when calling something like:
KDC101.get_limit_switch_params(...)
as the code tried to do:
TLMC_HardLimitOperatingModes(c_uint16(...)).value
This caused an issue as enum classes only accept standard integer values, not ctypes.
Fix:
Updated xa_shared_types.py within the zip folder so that the enums are constructed from
int(...)
, e.g., inside theLimitSwitchParams
class we now have:I've made the change to other similar classes in the xa_shared_types.py file where I think they are appropriate, but I haven't been able to test every single one as I only have a KDC101 on hand.