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 is Running. Send RunSlm first. The GUI disables these buttons until the substate is Running.

  • A loop shows CLOSED after stopping. Fixed: StopSlm and any exit from Running now reset all loops to OPEN. If you still see a stale value, confirm the OLDB prefix matches the configuration.

  • A loop keeps failing / auto-opens. Check cycle_last_error for the reason (e.g. an unreachable subsystem endpoint). The loop opens after max_errors consecutive failures; raise max_errors or fix the cause.

  • The Supervisor shows the SLM as Idle while it is running. Expected: the Supervisor vocabulary has no Running substate, so a running SLM is reported as Operational;Idle on the status topic. The GetStatus command and the OLDB still report Running.

  • The GUI shows “NOT connected”. Verify the server URI/name and that the server is running and reachable on the request endpoint.