Repository navigation
tedge-dot 0.0.16
Two interchangeable packages, one binary: tedge-dot-rs (Rust, the default) and
tedge-dot-c (C, for small or old devices: glibc 2.17 floor, adds PROFIBUS-DP). Install one
of them from the thin-edge.io community repository:
sudo apt-get install -y tedge-dot-rs # or tedge-dot-cInstall & upgrade guide
· README
· Changelog
· SHA256SUMS covers every asset below.
This release also delivers 0.0.15, which was tagged but never published.
Highlights
OPC UA method calls
A point can now be an OPC UA method: access = "call_method" with
address = { object_id, method_id, inputs = [...] }. The new call-method command takes
arguments and returns the method's outputs. Both packages support it, with identical failure
reasons.
[[device.point]]
id = "multiply"
access = "call_method"
address = { object_id = "ns=2;s=Machine", method_id = "ns=2;s=Machine.Multiply", inputs = ["int32", "int32"] }ot-registrationannounces a device's methods as the retainedot_call_methodcommand
capability, andot-command-forwardroutes anot_call_methodcommand to the connector. The
outputs come back on the command.- A method call is never retried. A call that times out may still have run on the server.
- Method ids follow the device's namespace table (below).
- Breaking,
tedge-dot-rsonly: a write-only point (access = "write") is no longer polled and so no longer
publishes samples, as the contract always required (tedge-dot-calready behaved this way).
Declare itread_writeto keep its samples. - See
doc/connectors/opcua-connector-spec.md§3.10 and contract §6.6.
OPC UA namespace tables
An OPC UA node id such as ns=3;i=1234 names its namespace by position in the server's
namespace array. A firmware update, or another instance of the same device type, can number the
namespaces differently, and the id then reads a different node, or none. A device
(protocol_address.namespaces) or a point library ([library] namespaces) can now record the
array its ids were written against. On every connect the connector maps each index through
that table to the server's current one, and logs a namespace that moved.
- Node ids stay numeric, as copied from UaExpert. Without a table nothing changes.
- A namespace the server does not list fails only its own points (
namespace not found: <uri>)
and is tried again, so one the server adds later is picked up. - Both packages support it. An older package ignores a device's table and reads the configured
index. It rejects a library that carries one. - See
doc/connectors/opcua-connector-spec.md§3.9.