Utilities
Running a Vector SIL Kit system is supported by several utilities. The Registry is a mandatory part of the SIL Kit integrated middleware. It is needed to establish the connections between simulation participants at the start of a simulation. The System Controller implements a simulation-wide state handling. It allows to provide the participant names that are required for the simulation to start via command-line arguments. The Monitor is provided for convenience. It implements a simulation-wide state tracking and prints this information to the console. The System Controller and the Monitor serve as reference implementations for their respective usage scenarios. Users are free to implement their own versions of these utilities.
sil-kit-registry
- Abstract
The
sil-kit-registryenables discovery between SIL Kit participants. It is needed for Vector SIL Kit simulations.- Source location
Utilities/SilKitRegistry- Requirements
None
- Parameters
-v, --versionGet version info.-h, --helpShow the help of the SIL Kit Registry.-u, --listen-uri <silkitUri>Thesilkit://URI the registry should listen on. Defaults tosilkit://localhost:8500.-g, --generate-configuration <path>Generate a configuration file which includes the URI the registry listens on.-d, --dashboard-uri <uri>Thehttp://URI of the SIL Kit Dashboard to which data is sent.-l, --log <level>Log to stdout with leveloff,critical,error,warn,info,debug, ortrace. Defaults toinfo.-c, --registry-configuration <filePath>The configuration read from this file overrides the values specified on the command line.-s, --use-signal-handlerTerminate when an OS signal is received. Deprecated: Since v4.0.53, this is the default behavior.
- Usage Example
# Start the SIL Kit Registry sil-kit-registry
- Notes
The SIL Kit Registry is packaged in the
SilKit/bindirectory.The SIL Kit Registry must be started before other SIL Kit participants, either with this process or using the
StartListening()API.When the port
0is specified in the URI (--listen-uri) the operating system will choose a random port for the registry. This port is used in the generated configuration file (--generate-configuration) for use in CI environments.When the file specified by
--generate-configurationwas created by the registry, it is guaranteed that the registry process has completed initialization and is ready to accept incoming connections of SIL Kit participants.The registry will run if either binding to the TCP socket, or the Domain socket, or both succeeds. If only TCP or Domain sockets are used, because one of the bindings failed for some reason, a warning will be logged. It will exit with an error if neither is available.
The SIL Kit Dashboard is experimental and might be changed or removed in future versions of the SIL Kit.
sil-kit-system-controller
- Abstract
The
sil-kit-system-controllerdefines which participants are required for a simulation. Coordinated participants will wait until all required participants joined a simulation before they progress their state. Autonomous participants progress their state without any dependencies to other participants.- Source location
Utilities/SilKitSystemController- Requirements
The
sil-kit-system-controllerneeds a runningsil-kit-registryto connect to. Furthermore, it requires a list of participant names that are needed to start the simulation as input.- Parameters
-v, --versionGet version info.-h, --helpShow the help of the SIL Kit System Controller.-u, --connect-uri <silkitUri>The registry URI to connect to. Defaults tosilkit://localhost:8500.-n, --name <participantName>The participant name used to take part in the simulation. Defaults toSystemController.-c, --configuration <filePath>Path to the Participant configuration YAML or JSON file. Note that the format was changed in v3.6.11. Cannot be used together with the--logoption.-l, --log <level>Log to stdout with leveltrace,debug,warn,info,error,criticaloroff. Defaults toinfoif the--configurationoption is not specified. Cannot be used together with the--configurationoption.-ni, --non-interactiveNever prompt the user. Deprecated: Since v4.0.53, this is the default behavior.<participantName1>, <participantName2> ...Names of participants to wait for before starting the simulation.
- Usage Example
# Start the SIL Kit System Controller and wait for 'Participant1' and 'Participant2': sil-kit-system-controller Participant1 Participant2
- Notes
The distribution package contains the
sil-kit-system-controllerin theSilKit/bin/directory.
sil-kit-monitor
- Abstract
The
sil-kit-monitorvisualizes the states of the participants of a SIL Kit simulation.- Source location
Utilities/SilKitMonitor- Requirements
Requires a running
sil-kit-registryto connect to.- Parameters
-v, --versionGet version info.-h, --helpShow the help of the SIL Kit Monitor.-u, --connect-uri <silkitUri>The registry URI to connect to. Defaults tosilkit://localhost:8500.-n, --name <participantName>The participant name used to take part in the simulation. Defaults toSystemMonitor.-c, --configuration <filePath>Path to the Participant configuration YAML or JSON file.-a, --autonomousRun with an autonomous lifecycle.-r, --coordinatedRun with a coordinated lifecycle.-s, --syncRun with virtual time synchronization.
- Usage Example
# Start the SIL Kit Monitor sil-kit-monitor
- Notes
The distribution package contains the
sil-kit-monitorin theSilKit/bin/directory.The
sil-kit-monitorrepresents a passive participant in a SIL Kit system. It can therefore be (re)started at any time.