The ``action keyword'' is the name by which a task's action is known in the world outside that task. The ``action name'' is the name by which the action is known to the application code inside that task. These names are defined in the interface file. The action keyword defaults to the action name if it is not otherwise specified.
There is a similar distinction between parameter keywords and parameter names.
ACTKEY=CHARACTER*(PAR__SZNAM) | action keyword |
ACTNAME=CHARACTER*(PAR__SZNAM) | action name |
CONTEXT=INTEGER | symbol for GET, SET, OBEY |
or CANCEL | |
CONTEXTNAME=CHARACTER*(*) | string for 'GET', 'SET' etc. |
DELAY=INTEGER | requested delay time in millisecond |
EVENT=INTEGER | received message status |
INVAL=CHARACTER*(MSG_VAL_LEN) | a received value string |
LENGTH=INTEGER | number of bytes in VALUE |
MAXVALS=INTEGER | maximum number of values |
MESSID=INTEGER | transaction number |
NAMECODE=INTEGER | parameter system code-number for the |
action | |
NVALS=INTEGER | actual number of values |
OUTVAL=CHARACTER*(MSG_VAL_LEN) | a sent value string |
PARKEY=CHARACTER*(PAR__SZNAM) | parameter keyword |
PATH=INTEGER | path identifier to another task |
REASON=INTEGER | symbol giving reason for reschedule |
REQUEST=INTEGER | symbol requesting reschedules |
RESULT=LOGICAL | .TRUE. implies an AST has occurred |
SEQ=INTEGER | sequence number |
STATUS=INTEGER | status |
STRINGS(*)=CHARACTER*(*) | array of character strings |
TASK_NAME=CHARACTER*(PAR__SZNAM) | name of another task |
TIMEOUT=INTEGER | timeout in milliseconds, -1 = infinite |
VALUE=CHARACTER*(MSG_VAL_LEN) | value string |
* Add to the list of active subsidiary actions for an action CALL TASK_ADD_MESSINFO ( PATH, MESSID, STATUS ) Given : PATH, MESSID Given and returned : STATUS * Used in application AST routine to signal to main-line code CALL TASK_ASTMSG ( ACTNAME, LENGTH, VALUE, STATUS ) Given : ACTNAME, LENGTH, VALUE Given and returned : STATUS * Used in application AST routine to signal to main-line code CALL TASK_ASTSIGNAL ( ACTNAME, STATUS ) Given : ACTNAME Given and returned : STATUS
* Request a task to cancel an action CALL TASK_CANCEL ( TASK_NAME, ACTKEY, INVAL, OUTVAL, STATUS ) Given : TASK_NAME, ACTKEY, INVAL Given and returned : STATUS Returned : OUTVAL * Concatenate an array of strings into an argument list CALL TASK_CNCAT ( NVALS, STRINGS, VALUE, STATUS ) Given : NVALS, STRINGS Given and returned : STATUS Returned : VALUE * Wait for final acknowledgement from task CALL TASK_DONE ( TIMEOUT, PATH, MESSID, OUTVAL, STATUS ) Given : TIMEOUT, PATH, MESSID Given and returned : STATUS (Returns the status associated with the final acknowledgement message from the task.) Returned : OUTVAL * Get a parameter value from a task CALL TASK_GET ( TASK_NAME, PARKEY, OUTVAL, STATUS ) Given : TASK_NAME, PARKEY Given and returned : STATUS Returned : OUTVAL * Get current action context CALL TASK_GET_CONTEXT ( CONTEXT, STATUS) Given and returned : STATUS Returned : CONTEXT * Get current action context name CALL TASK_GET_CONTEXTNAME ( CONTEXTNAME, STATUS) Given and returned : STATUS Returned : CONTEXTNAME * Get details of message which forced reschedule CALL TASK_GET_MESSINFO ( PATH, CONTEXT, ACTKEY, VALUE, MESSID, EVENT, STATUS) Given and returned STATUS Returned : PATH, CONTEXT, ACTKEY, VALUE, MESSID, EVENT * Get current action name CALL TASK_GET_NAME ( ACTNAME, STATUS) Given and returned : STATUS Returned : ACTNAME
* Get parameter system code for current action name CALL TASK_GET_NAMECODE ( NAMECODE, STATUS) Given and returned : STATUS Returned : NAMECODE * Get reason for current reschedule CALL TASK_GET_REASON ( REASON, STATUS ) Given and returned : STATUS Returned : REASON * Get current action sequence number CALL TASK_GET_SEQ ( SEQ, STATUS) Given and returned : STATUS Returned : SEQ * Get value string for current action CALL TASK_GET_VALUE ( VALUE, STATUS ) Given and returned : STATUS Returned : VALUE * Signal another action to reschedule CALL TASK_KICK ( ACTNAME, LENGTH, VALUE, STATUS ) Given : ACTNAME, LENGTH, VALUE Given and returned : STATUS * Send an OBEY to a task CALL TASK_OBEY ( TASK_NAME, ACTKEY, INVAL, OUTVAL, PATH, MESSID, STATUS ) Given : TASK_NAME, ACTKEY, INVAL Given and returned : STATUS (Returns the status associated with the initial acknowledgement message from the task.) Returned : OUTVAL, PATH, MESSID * Set delay before next entry for current action CALL TASK_PUT_DELAY ( DELAY, STATUS ) Given : DELAY Given and returned : STATUS * Request the action to be rescheduled on certain events CALL TASK_PUT_REQUEST ( REQUEST, STATUS ) Given : REQUEST Given and returned : STATUS * Set current action sequence number CALL TASK_PUT_SEQ ( SEQ, STATUS ) Given : SEQ Given and returned : STATUS
* Set value string for current action CALL TASK_PUT_VALUE ( VALUE, STATUS ) Given : VALUE Given and returned : STATUS * Set a parameter value in a task CALL TASK_SET (TASK_NAME, PARKEY, INVAL, STATUS ) Given : TASK_NAME, PARKEY, INVAL Given and returned : STATUS * Split an argument list into an array of strings CALL TASK_SPLIT ( VALUE, MAXVALS, NVALS, STRINGS, STATUS ) Given : VALUE, MAXVALS Given and returned : STATUS Returned : NVALS, STRINGS * Return a triggering message to the controlling task CALL TASK_TRIGGER ( ACTNAME, VALUE, STATUS ) Given : ACTNAME, VALUE Given and returned : STATUS * Test interrupt flag CALL TASK_TSTINTFLG ( RESULT, STATUS ) Given and returned : STATUS Returned : RESULT
The following generic string-handling routines are provided to help in building or interpreting VALUE strings. Each TASK_xxx<T> routine represents the set of calls TASK_xxxC, TASK_xxxD, TASK_xxxI, TASK_xxxL, and TASK_xxxR.
NDIMS=INTEGER | number of dimensions |
DIMS(*)=INTEGER | sizes of dimensions |
NMAXDIMS=INTEGER | maximum number of dimensions |
MAXDIMS(*)=INTEGER | maximum sizes of dimensions |
STRING=CHARACTER*(*) | string being built or interpreted |
<T>VAL=<TYPE> | value being converted |
<T>VALS()=<TYPE> | array being converted |
STATUS=INTEGER | status |
* Decode a character string as a value CALL TASK_DEC0<T> ( STRING, <T>VAL, STATUS ) Given : STRING Given and returned : STATUS Returned : <T>VAL
* Decode a character string as a vector CALL TASK_DEC1<T> ( STRING, MAXVALS, NVALS, <T>VALS, STATUS ) Given : STRING, MAXVALS Given and returned : STATUS Returned : NVALS, <T>VALS * Decode a character string as an array CALL TASK_DECN<T> ( STRING, NMAXDIMS, MAXDIMS, NDIMS, DIMS, <T>VALS, STATUS ) Given : STRING, NMAXDIMS, MAXDIMS Given and returned : STATUS Returned : NDIMS, DIMS, <T>VALS * Encode a value as a character string CALL TASK_ENC0<T> ( <T>VAL, STRING, STATUS ) Given : <T>VAL Given and returned : STATUS Returned : STRING * Encode a vector as a character string CALL TASK_ENC1<T> ( NVALS, <T>VALS, STRING, STATUS ) Given : NVALS, <T>VALS Given and returned : STATUS Returned : STRING * Encode an array as a character string CALL TASK_ENCN<T> ( NDIMS, DIMS, <T>VALS, STRING, STATUS ) Given : NDIMS, DIMS, <T>VALS Given and returned : STATUS Returned : STRING
The following three generic routines are provided for compatibility with earlier ADAM releases. New applications should use the TASK_ENC calls instead.
CALL TASK_VAL0<T> ( <T>VAL, STRING, STATUS ) CALL TASK_VAL1<T> ( NVALS, <T>VALS, STRING, STATUS ) CALL TASK_VALN<T> ( NDIMS, DIMS, <T>VALS, STRING, STATUS )
ADAM Guide to Writing Instrumentation Tasks