seqnet_an_introduction

	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
	request.

	An application may need to do special processing if started by SEQNET.
	This can be discovered by a call to seqnet_started.

	Related functions:

	seqnet_connection, seqnet_request_check, seqnet_reply_update,
	seqnet_reply_message, seqnet_disconnect, seqnet_started,
	seqnet_requester_info_c, seqnet_send_status_message