Build, Run and Troubleshooting
Building
The project uses waf; no --prefix is required:
waf configure
waf build
waf install
Dependencies (RAD, CII, config-ng, ifw-slmif) are resolved through wdep
and are listed in the top-level wscript. Re-run waf configure after
adding a new module (a new wscript).
Testing
waf test
This runs the framework unit tests (gtest) and the Python checks. Integration
tests live under test/slm/ and are driven by etr/Robot Framework.
Building the documentation
This manual is built by waf build (declared with declare_sphinx). It can
also be built directly with Sphinx:
sphinx-build -b html doc/manual/src /tmp/slm-doc
Running
Start the reference server with its configuration, then drive it with the Command-Line Tool (slmcli) or the Graphical User Interface:
ifwSlm # uses the configured req/pub endpoints
slmcli --uri zpb.rr://127.0.0.1:12091 init
slmcli --uri zpb.rr://127.0.0.1:12091 enable
slmcli --uri zpb.rr://127.0.0.1:12091 run
slmcli --uri zpb.rr://127.0.0.1:12091 close 1
Troubleshooting
A loop command returns an error. Loop commands (
Close/Open/Suspend/Resume) are only accepted while the SLM isRunning. SendRunSlmfirst. The GUI disables these buttons until the substate isRunning.A loop shows CLOSED after stopping. Fixed:
StopSlmand any exit fromRunningnow reset all loops toOPEN. If you still see a stale value, confirm the OLDB prefix matches the configuration.A loop keeps failing / auto-opens. Check
cycle_last_errorfor the reason (e.g. an unreachable subsystem endpoint). The loop opens aftermax_errorsconsecutive failures; raisemax_errorsor fix the cause.The Supervisor shows the SLM as Idle while it is running. Expected: the Supervisor vocabulary has no
Runningsubstate, so a running SLM is reported asOperational;Idleon the status topic. TheGetStatuscommand and the OLDB still reportRunning.The GUI shows “NOT connected”. Verify the server URI/name and that the server is running and reachable on the request endpoint.