11:58, EET
November 20, 2019
Hi,
I generated the Java Classes from the Information Model of PackML (https://opcfoundation.org/UA/schemas/PackML/1.00/Opc.Ua.PackML.NodeSet2.xml)
using the prosys-opc-ua-sdk-client-server-evaluation-4.0.2-808.jar. The Java Classes are generated but have compile errors.
1. In TypeImplBase the method
@Mandatory
@Override
public Float getValue() {
UaVariable node = getValueNode();
if (node == null) {
return null;
}
Object value = node.getValue().getValue().getValue();
return (Float) value;
}
The compiler says: The return type is incompatible with UaVariableImpl.getValue()
It expects a DataValue.
I think the Version of the SDK is not compatible with the NodeSet.
14:06, EET
November 20, 2019
10:30, EET
April 3, 2012
Hi,
Thanks for the report.
This falls into Known Issues (2.2. of the Codegen manual) the “Additionally same kind of conflict can happen if a model defines names used by the SDK base API which the generated classes extend.” part. The codegen is not yet smart enough to detect this automatically.
Currently possible workarounds is to fix the model or exclude that node for the purposes of code generation. Personally I would say the model is … interesting… , if it defines sub-nodes that would have the same name as the Attributes. I wouldn’t recommend doing that, as in this case the said value should be set as the Variable’s Value Attribute. If that is different, then the sub-node should be named so that it has semantical meaning (“what Value?”). But since the model is already released this probably is not an option in practice. Additionally I have not looked at the model, so I guess there can be some special cases.
To exclude the node, see the Codegen manual section “4.5.4. Excluding sub-nodes under a Type node from generation”.
Rest is copied from that section:
“
Some models might result in generated code that conflicts the base API the SDK provides with UaNodes or name clashes because of one or more models, and thus might not compile. Currently the only workaround (outside of editing the model itself) is to exclude those nodes when generating get/set/getXXXNode methods for the type. An excluded sub-node behaves in the context of the generation as-if it were never present in the Type under which it is.
In the both versions they can be excluded: (ADDED NOTE, both here means both the cli + maven plugin)
<instanceDeclarations>
<instanceDeclaration>namespace_uri:name_part_of_BrowseName</instanceDeclaration>
</instanceDeclarations>
</excludes>
For example, in order to exclude the PowerInput subnode (that is used in ValveObjectType in the SampleTypes model), you would use the following configuration:
(ADDED NOTE this seems to be a bit hard to get to display correctly in the forum, so please see the manual)
<instanceDeclarations>
<instanceDeclaration>http://ua.prosysopc.com/Sample…..on>
</instanceDeclarations>
</excludes>
INFO:
Excluding a component does not remove it from the AddressSpace of the server, it just means that the generated accessor for it wont be available. The equivalent operation can be done “manually” by getting the component node (UaNode.getComponent) and reading/writing values to that directly. Excluded Methods do not create the handling logic, and must be done via a listener (see MyMethodManagerListener in the samples).
INFO:
Currently the exclude excludes it from all types, as the main use case is to avoid name clashes with the SDK core API.
“
And the excludes xml block goes directly below the root element (i.e. under ‘codegenConfiguration’ for cli and ‘configuration’ for the maven plugin)
Most Users Ever Online: 1919
Currently Online:
10 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 736
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6450
Newest Members:
kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley, ThomassnismModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1