SEQNET is used for application communication with the Sequencer.
An application is typically started by the Sequencer, and a "request"
is delivered. For most requests, the Sequencer is expecting a "reply".
(Seqnet communication uses the ACNET protocol, but SEQNET request/reply
terms have a different meaning than in the context of ACNET.)
An application connects to SEQNET with a call to seqnet_connection.
The application can specify a callback function at the time of the
connect. This function will be called whenever a request is present.
Requests will not be delivered until the program has finished its
inititialization. Otherwise, the application must periodically check
for requests with a call to seqnet_request_check.
The application uses either a call to
seqnet_reply_update or, for special cases, seqnet_reply_message
to send a reply to the Sequencer.
To disconnect from SEQNET, call seqnet_disconnect.
A request consists of:
"request ID" identifying the request
"command typecode" specifying the action to be done
"synchronous flag" specifying if the Sequencer is waiting on a reply
"request length" specifying the length of the request data
"request buffer" containing the actual request data
Replies are sent back to the Sequencer, informing it on the status
of the completion of a request. Replies have two forms:
"reply", which is an ACNET status code
"reply message", which is an ASCII string
The "reply message" type of reply is used for special forms of
client communication to the Sequencer. Both types of replies
identify the original request by its ID.
Requests can be synchronous (The Sequencer is waiting for a reply.)
or asynchronous (The Sequencer expects a reply later, or it will
send a request for the completion status). So, some Sequencer
requests may be just asking for an update on (or an abort of) a
previously made request. See the "request_command" argument in
seqnet_request_check to identify the action required on a given
An application may need to do special processing if started by SEQNET.
This can be discovered by a call to seqnet_started.
seqnet_connection, seqnet_request_check, seqnet_reply_update,
seqnet_reply_message, seqnet_disconnect, seqnet_started,