mikakaraila / node-red-contrib-opcua

A Node-RED node to communicate OPC UA. Uses node-opcua library.
Other
212 stars 196 forks source link

Ugly Variant Array support #696

Closed IW3IJQ closed 4 months ago

IW3IJQ commented 4 months ago

Ugly code to fix #680

Injecting this object the upc-ua node write values into opc-ua server as expected:

{
   "_msgid":"64b2b4972106c468",
   "payload":{
      "value":[
         {
            "dataType":"Variant",
            "arrayType":"Array",
            "value":[
               {
                  "dataType":"UInt16",
                  "arrayType":"Scalar",
                  "value":1
               },
               {
                  "dataType":"UInt32",
                  "arrayType":"Scalar",
                  "value":123
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Order Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Program Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Mould Name NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Material Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"08/05/2024"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Item NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Item Description NR"
               }
            ]
         },
         {
            "dataType":"Variant",
            "arrayType":"Array",
            "value":[
               {
                  "dataType":"UInt16",
                  "arrayType":"Scalar",
                  "value":2
               },
               {
                  "dataType":"UInt32",
                  "arrayType":"Scalar",
                  "value":789
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Order Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Program Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Mould Name NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Material Des NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"08/05/2024"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Item NR"
               },
               {
                  "dataType":"String",
                  "arrayType":"Scalar",
                  "value":"Item Description NR"
               }
            ]
         }
      ]
   },
   "topic":"ns=2;i=115682",
   "datatype":"VariantArray",
   "browseName":"f078-Value"
}