Non XML SAL Topics#

Non XML Fields#

private_sndStamp (TAI, unix seconds)#

Time at which the sample was sent.

private_rcvStamp (TAI, unix seconds)#

Time at which sample was received.


For a CSC this has the form <SAL component name>[:index] e.g. “Script:5” or “ATDome”. For a user this has the form username@host. This field is used for authorization. New in ts_sal 4.2.


The process ID of the writer.


The host address of the writer. This is deprecated, and due to be removed in ts_sal 5.


For commands this uniquely identifies the command (within a reasonable timespan, since the value must eventually wrap around). For other kinds of topics this may be incremented for each sample, though that is optional.

<SAL component name>ID (i.e. ATDomeID)#

Only present for indexed SAL components. The SAL index of the writer.


Only present in event topics. Contains the value of the priority that the writer specified.

Non XML Topics#



The private_seqNum of the command being acknowledged.


The acknowledgement code, one of CMD_ constants, such as CMD_COMPLETE = 303 or CMD_FAILED = -302.


The error code. Set to a nonzero value if ack=CMD_FAILED.


Salobj sets this to an error message if ack=CMD_FAILED.


The private_identity of the command being acknowledged.


The private_host of the command being acknowledged. private_host is deprecated, so this field is also deprecated, and both should be gone in ts_sal 5.


The private_origin of the command being acknowledged, which is a process ID.


The name of the command being acknowledged, as the index of the name in an alphabetized list of all commands supported by the CSC.


The approximate expected duration of the command. Only set if ack=CMD_INPROGRESS.

Acknowledgement Sequence#

The initial ack code is CMD_ACK when the command is read. If the command will take a long time to run then the CSC should respond with a CMD_INPROGRESS ack that includes an estimate of the command duration. This should only happen after the command has been approved Usually the next ack is the final one for this command and is typically one of:

  • CMD_COMPLETE if the command finishes successfully.

  • CMD_FAILED if the commands fails.

  • CMD_NOPERM if the command issuer is not authorized to send the command

  • CMD_ABORTED if the command is superseded

CMD_TIMEOUT is returned if the command issuer times out waiting for command completion. Note that it is the issuer, not the CSC, that returns this. If the command times out inside the CSC then the ack code is CMD_FAILED. In particular note that if the issuer gives up waiting for command completion and then the command finishes, the user will only see the CMD_TIMEOUT ack, but the DDS system will see the final ack from the CSC. There are at least two other CMD_ codes as well:

  • CMD_NOACK: ts_salobj sets the ackcmd filed of AckTimeoutError to this value if no CMD_ACK was seen for the command before the command timed out.

  • CMD_STALLED: Indicates a command has slowed down unexpectedly but is still working on it.