This section describes the sending of commands and the recieving of results within the LICS. Commands are bit sequences sent down to the front end electronics (register reads, register writes and dataless commands ). Every command generates a result within the LICS – register writes and dataless commands generate a simple "command successfully transmitted" result, while register read commands return the register value as a result.
Some definitions used with in this section[1]
A single command sent to the front end electronics.
An ordered list of command items containing one or more command items.
A single result from the LCB in reply to a command item.
An ordered list of result items from the LCB in reply to a command list.
An indivisable unit of work consisting of a command list and its associated result list.
The LCB has the capability of bundling several command items together and sending them sequentially as a command list. After all the commands are processed the LCB sends a notification message to the driver. This arrangement allows for asynchronous commanding, i.e. a user can queue a command list to the LCB, continue to do other work and then be notified asynchronously that the queued commands are completely processed.
For the case when a user only wants to send a single command it is purposed to also offer a synchronous interface to the LICS. With this interface a user would queue a single command to the LCB and wait for the command to complete. At this time it appears straight forward to build the synchronous interface on top of the asynchronous interface.
| [1] | All definitions, package names, function names and terminology are subject to change at the whim of the author. |