interface test_coffee
# Test coffee task
action mocha1
obey
endobey
endaction
action mocha2
obey
endobey
endaction
action mocha3
obey
endobey
endaction
action mocha4
obey
endobey
endaction
action mocha5
obey
endobey
endaction
endinterface
SUBROUTINE TEST_COFFEE (STATUS)
* Test D-task that is run from a rescheduling control task
IMPLICIT NONE
INTEGER STATUS ! Modified STATUS
INCLUDE 'SAE_PAR'
INCLUDE 'ACT_ERR'
INTEGER SEQ ! Action sequence number
INTEGER DELAY ! Delay between initial and final entries
CHARACTER NAME*24 ! Action name
IF (STATUS .NE. SAI__OK) RETURN
* Pick up required "ACT parameters"
CALL TASK_GET_NAME (NAME,STATUS)
CALL TASK_GET_SEQ (SEQ,STATUS)
* Loop through possible OBEYs
IF (NAME(1:5) .EQ. 'MOCHA') THEN
IF (SEQ .EQ. 0) THEN
CALL MSG_SETC ('NAME',NAME)
CALL MSG_OUT (' ','COFFEE: Starting ^NAME action',STATUS)
DELAY = 1000 * (ICHAR(NAME(6:6)) - ICHAR('0'))
CALL TASK_PUT_DELAY (DELAY,STATUS)
CALL TASK_PUT_REQUEST ( ACT__WAIT, STATUS )
ELSE
CALL MSG_SETC ('NAME',NAME)
CALL MSG_OUT (' ','COFFEE: Finishing ^NAME action',STATUS)
CALL TASK_PUT_VALUE ('Mocha''s ready!',STATUS)
ENDIF
ENDIF
END
ADAM Guide to Writing Instrumentation Tasks