Conceptual Design
Under LabVIEW the SVE client will be implemented as a SML device, lvSVE. This device will receive commands via the standard SML command interface. For example, to publish a variable the application would send a SML message to the lvSVE device:
lvSVE publish
The lvSVE device uses the PML-LabVIEW interface software consisting of the TOPML and FROMPML VIs and the associated python scripts, fromSML_toPML.py and fromPML_toSML.py, to communicate with another python script, lvSVEClient.py, that implements a regular SVE client and communicates with the SVE via PML.
The lvSVEClient.py script will be run for every LabVIEW application that uses the SVE system.
The lvSVEClient.py receives the commands from the fromSML_toPML.py script, parses the message and makes the appropriate code to the SVE. It also receives updates from the SVE. These updates are forwarded via the FROMPML device to the lvSVE device of the LabView application.
The lvSVE devices implements the following commands:
| SML type | Name | Arguments |
| Question | publish | variable name, group name |
| Question | subscribe | variable name, group name |
| Set | write | variable name, group name, value |
| Get | read | variable name, group name, value |
| Get | isUpdatd | variable name, group name |
| Question | update | variable name, group name, value |
"isUpdated" checks if updated flag is set [this is per variable. We will also have a global isUpdated flag to simplify polling]
When lvSVE receives an update it modifies the entry in the SML database and sets the isUpdated flag for the variable (and the global flag if implemented). If a variable is read the isUpdated flags are cleared again.
We want to use the SML database to manage (local) shared variables. We will use a naming scheme like
...
to handle multiple quantities per shared variable.
No comments:
Post a Comment