Server and Commands

The reference server ifwSlm exposes two CII/MAL services on the req_endpoint: the standard StdCmds service and the SLM-specific SecondaryLoopManagerCmds service.

Lifecycle

The typical sequence to bring the SLM into operation:

  1. InitNotReadyReady.

  2. EnableReadyOperational (Idle).

  3. RunSlmIdleRunning; loops start in the OPEN state.

  4. CloseLoop <n> — start cycling loop n on its timer.

To wind down: OpenLoop/StopSlm to stop cycling, then Disable / Stop. StopSlm opens all loops automatically.

Standard commands (StdCmds)

Init, Enable, Disable, Reset, Stop, GetState, GetStatus. GetStatus returns the concise "State:Substate" summary (e.g. Operational:Running); GetState returns the full state-machine path.

Loop commands (SecondaryLoopManagerCmds)

Command

Effect

RunSlm

start managing loops (IdleRunning)

StopSlm

stop managing loops and open all loops

CloseLoop

close (start cycling) the given loop(s)

OpenLoop

open (stop cycling) the given loop(s)

SuspendLoop

pause cycling of the given closed loop(s)

ResumeLoop

resume cycling of the given suspended loop(s)

The four loop commands take a fixed-size vector of 9 integers; a non-zero entry at position i selects loop i+1. The Command-Line Tool (slmcli) and the Graphical User Interface build this vector for you.

Note

Loop commands are only handled while the SLM is in Running. Issued in any other state they are rejected. The GUI therefore enables the per-loop command buttons only when the published substate is Running.