0

Milo用来浏览服务器的功能。

这还涉及解码ExtensionObjects(这对UnifiedAutomationReadCustomDataTypeExample.

open62541和 milo 服务器上,它奇怪地失败了,因为ExtensionObjects无法强制转换ExtensionObjects- 请注意以下异常中的“[L”:

java.lang.ClassCastException: [Lorg.eclipse.milo.opcua.stack.core.types.builtin.ExtensionObject; cannot be cast to org.eclipse.milo.opcua.stack.core.types.builtin.ExtensionObject

这是一个错误Milo还是我错过了什么?

我正在使用最新的 Eclipse 来编译服务器和客户端。我正在使用Milo 0.2.3来自Maven.

4

1 回答 1

0

该问题是通过将 anObject[]转换为Object. 下面的代码现在可以正常工作。

if(rd.getDisplayName().getText().equals("OutputArguments")) {

    DataValue readServiceResult = client.readValue(100, TimestampsToReturn.Both, rd.getNodeId().local().get()).get();
    Variant args =readServiceResult.getValue();

    NodeId ni = args.getDataType().get();

    Object[] oVal = (Object[])args.getValue();
    Object val = oVal[0];
    if(val instanceof ExtensionObject) {
        ExtensionObject eo = (ExtensionObject)oVal[0];
        Object o = eo.decode();
        System.out.println(o);
    }
}
于 2018-08-30T13:43:01.593 回答