Ensure values which are written by NCMD are later published by an NDATA, if the new value is accepted.
This is 'by-design' if we implement them accordingly.
1) If a user application 'setpoint' is changed (written), the change is reflected to the Host.
2) If a sparkplug Host writes this same 'setpoint' via a NCMD, the user application 'setpoint' is changed and reflected to the Host.
On writing;
3) Writing (changing the setpoint value) should always occur in a 'triggered' fashion and never continuously. Both the user application and via NCMD should follow the 'trigger/write once' principle.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Implemented in the library.
Works with the current mqttsparkplugb-example.project, but strings are always overwritten by the application code.
todo:
[ ] currently the NCMD payload is limited to 255 bytes. this should be another variable length array for the user to build.
[x] adjust mqttsparkplugb-example.project to point to new library.
[x] adjust mqttsparkplugb-example.project. Modify strings so they can demonstrate NCMD
[x] update https://forge.codesys.com/prj/mqttsparkplugb/home/Add%20SparkplugB%20to%20existing%20CODESYS%20project/ to describe how to set up read tags, write tags and read write tags. (Task moved to example-project issue)
[x] create a similar issue for implementing DCMD in a similar fashion.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ensure values which are written by NCMD are later published by an NDATA, if the new value is accepted.
This is 'by-design' if we implement them accordingly.
1) If a user application 'setpoint' is changed (written), the change is reflected to the Host.
2) If a sparkplug Host writes this same 'setpoint' via a NCMD, the user application 'setpoint' is changed and reflected to the Host.
On writing;
3) Writing (changing the setpoint value) should always occur in a 'triggered' fashion and never continuously. Both the user application and via NCMD should follow the 'trigger/write once' principle.
Implemented in the library.
Works with the current mqttsparkplugb-example.project, but strings are always overwritten by the application code.
todo:
[ ] currently the NCMD payload is limited to 255 bytes. this should be another variable length array for the user to build.
[x] adjust mqttsparkplugb-example.project to point to new library.
[x] adjust mqttsparkplugb-example.project. Modify strings so they can demonstrate NCMD
[x] update https://forge.codesys.com/prj/mqttsparkplugb/home/Add%20SparkplugB%20to%20existing%20CODESYS%20project/ to describe how to set up read tags, write tags and read write tags. (Task moved to example-project issue)
[x] create a similar issue for implementing DCMD in a similar fashion.