CIGAL Reference Manual===== rtjunk – =====
The format for the list of operations (OPLIST) is:
long exec_time - scheduled time to start execution
byte opcode - operation code
byte epochflags - user-defined epoch toggle
integer interval - time between repeated operations
long nrepeats - # of repeats (omitted if interval is 0)
[ opdatawords ] - operation specific data words (eg., i/o
channels, flags, data addresses, counts
etc.); list is padded to whole longwords.
During execution, REALTIME takes care of the overhead involved in converting variable
names to memory addresses and resolves indexing issues that arise from repeated operations
accessing the same data buffers. It also allocates memory for the RUNLOG output variable
and opens any files that will be accessed during the RT program.
Finally, execution involves repeatedly traversing the following loop:
1) find the next operation for each timer
2) perform set-up overhead for next operation (if possible)
3) set the TIME_TO_EXECUTE and OP_TO_EXECUTE flags and load the
address of the PROC_TO_EXCUTE for each timer
4) sample the clock until the time reaches TIME_TO_EXECUTE (if
necessary also sample external event channels if waiting for
an external event) and then call the PROC_TO_EXECUTE procedure.
5) record the operation's execution in RUNLOG
Note on 2 timers: REALTIME keeps track of two independent timers to
provide added flexibility. Although the two timers are functionally
identical, the first timer is intended to be used for events occurring
at predetermined times while the second is intended for operations
which the time of execution cannot be predetermined because of a
dependence upon the occurring external events.
OPCODES:
The operations that REALTIME can perform are listed below. The OPCODE
values given are for events on timer 1 with exec_time in absolute units;
for most operations the following flags can be added to the OPCODE:
FLAG (octal) MEANING
1 use timer 2 (see note on 2 timers above)
2 log operation in RUNLOG
See Also:**