Bugfix: Node.set_value() does not work with enumerations #888
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.
If a client tries to set a enum variable without explicitly force the data type it becomes implicit converted to a ua.Variant.Int64. The server expects an Int32 for an enum value. This is why set_value() crashes if you try to set an enum value using a integer literal like "set_value(2)".
The enumeration seems to need a special treadment at this point. See ua_utils.py def data_type_to_variant_type().
If no data type was given in method set_value(), this change checks the data type of the node object and automatically converts the value argument to the correct target data type of the server.