Exporting Device Data
The main purpose with an OPC-UA server is to provide access to real world objects. External information is stored in the address space in the form of variable nodes. Variable nodes have value attributes. The following section shows how to connect attributes with real world objects.
Value Callback
The value callback is a function and is used for both reading and writing.
- callback(nodeId[, value])
Writing Callback Parameters
Reading Callback Parameters
Error reporting
To report an error, the callback should raise a LUA error with a suitable OPC-UA status code.
Custom data source example
-- Callback that will be called for Read/Write operations
function callback(nodeId, newValue)
  if newValue ~= nil then
    -- writing data
    ua.Tools.printTable("newValue", newValue, trace)
    ua.Tools.printTable("deviceData", deviceData, trace)
    if newValue == nil then
      error(ua.StatusCode.BadInvalidArgument)
    end
    deviceData = newValue
  else
    -- reading data
    ua.Tools.printTable("read deviceData", deviceData, trace)
    return deviceData
  end
end
server:setVariableSource(dataNodeId, callback)