第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Eclipse Milo OpcUa 服務器上正確編寫

如何在 Eclipse Milo OpcUa 服務器上正確編寫

森林海 2021-10-13 16:31:27
我正在嘗試在 Eclipse Milo OpcUa 服務器上編寫一個 ExtensionObject 數(shù)組。我在 Java 8 和 Milo 0.2.3 上做所有這些。我測試我寫到我的服務器的方法是統(tǒng)一自動化 UaExpert 客戶端和一個小的 Python 客戶端。兩者都顯示相同的結(jié)果。我有以下結(jié)構(gòu)(我在這個場景中將它命名為 MyStructure)。它已經(jīng)作為一個數(shù)組存在,我想將它寫入相應的節(jié)點。@Getter@Setter@AllArgsConstructorpublic class MyStructure implements UaStructure {    private String name;    private Integer dataType;    private String stringValue;    private Integer intValue;    private Float floatValue;    public static final String Description = "MyStructure ";    public static NodeId getNodeId() {        return new NodeId(2, 3081);    }    @Override    public NodeId getTypeId() {        return getNodeId();    }    @Override    public NodeId getBinaryEncodingId() {        return getNodeId();    }    @Override    public NodeId getXmlEncodingId() {        return getNodeId();    }    public static class Codec extends GenericDataTypeCodec<MyStructure > {        @Override        public Class<MyStructure > getType() {            return MyStructure .class;        }        @Override        public MyStructure decode(SerializationContext context, UaDecoder reader) {            return new MyStructure (                reader.readString("Name"),                reader.readInt32("DataType"),                reader.readString("StringValue"),                reader.readInt32("IntValue"),                reader.readFloat("FloatValue")            );        }每當我設置節(jié)點時,服務器都不會抱怨。它實際上設置了一些東西,準確地說它設置了 42 個擴展對象。在 UaExpert 中,我看到值(包括其時間戳)發(fā)生了變化,但我看不到實際值。該值只是 ExtensionObject 的 Array 類型,我無法讀取任何嵌套值。但這是我在其他項目中看到的。它們具有自定義結(jié)構(gòu),并且嵌套字段在 UaExpert 中是人類可讀的。如果我在沒有 Array 的情況下執(zhí)行此操作并只編寫一個 MyStructure,問題不會改變。你有什么想法,我做錯了什么或根本沒有做什么?
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

現(xiàn)在 Milo 中的自定義結(jié)構(gòu)只有在讀取/寫入它們的客戶端事先知道結(jié)構(gòu)時才有效。

您所缺少的(并且尚未由 Milo 實現(xiàn))是圍繞創(chuàng)建 DataTypeDictionary、在地址空間中注冊它以及通過 DataTypeEncoding 將您的編解碼器鏈接到該字典中的條目的所有復雜性。

如果您要使用 UaModeler 之類的工具并在其中創(chuàng)建自定義結(jié)構(gòu),然后查看生成的 XML,您會發(fā)現(xiàn)還有一大堆其他支持節(jié)點與之配套。

當這些東西到位時,客戶可以學習如何解碼自定義結(jié)構(gòu),而無需事先了解它們。Milo 的客戶端也包含此功能。

另外,fwiw,您應該通過制作一個 來編碼您的結(jié)構(gòu)數(shù)組ExtensionObject[],每個都包含ExtensionObject一個標量結(jié)構(gòu)值。


查看完整回答
反對 回復 2021-10-13
  • 1 回答
  • 0 關(guān)注
  • 459 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號