我正在使用<table id="tbl" class="table" cellspacing="0" width="100%" style="word-wrap:break-word;
table-layout: fixed;">
<thead>
<tr>
<th>Column Name</th>
</tr>
</thead>
</table>
浏览服务器的功能。
这还涉及解码Milo
(这对ExtensionObjects
很好)。
在UnifiedAutomationReadCustomDataTypeExample
和milo服务器上,它无法正常运行,因为无法将open62541
强制转换为ExtensionObjects
-请注意以下例外情况中的“ [L]”:
ExtensionObjects
这是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
中的错误吗?还是我错过了什么?
我正在使用最新的Eclipse来编译服务器和客户端。
我正在使用Milo
中的Milo 0.2.3
。
答案 0 :(得分:0)
此问题是通过将Object[]
强制转换为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);
}
}