Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[milo-dev] Fw: How to call method which takes a complex DataType as argument?


Hi Kevin,

I have a question. I tried to call a Method Example "VectorAdd" which has two Argument from Vector complex type/structure. It is found at United Automation Test Server. How can I get or reach encodingId for a complex type Method Argument (in this case Vector) in order to use econdingId metadata when create ExtensionObject and to be passed as encoded Argument before method call. For example to use it here:

public static ExtensionObject encodeDefaultBinary(
        SerializationContext context,
        Object object,
        NodeId encodingId
    ) throws UaSerializationException {

        return encode(
            context,
            object,
            encodingId,
            OpcUaDefaultBinaryEncoding.getInstance()
        );
    }

I used the following SDK Classes:
UaMethodNode method = new UaMethodNode(opcUaClient, methodId);
        Argument[] inArg = method.getInputArguments().get();

And in this way I get DataType NodeId using f.e. inArg[0].getDataType(). But how can I reach its binary encodingId? So I would like to pass Vectors with own value structure based binary schema. I did not find really an easy way

Kevin, I found some answer from you here:


But it is too old. Now we have Milo 4.0 release..where we have huge changes in API..


I will be really appreciate of your input.

Thank you in advance,
Stoyan


Back to the top