with TEXT_IO; use TEXT_IO; with INTEGER_TEXT_IO; use INTEGER_TEXT_IO; with UATL_DATA_TYPES; use UATL_DATA_TYPES; with UATL_STIM_RESPONSE_TYPES; use UATL_STIM_RESPONSE_TYPES; with UATL_BUILDER_DATA; use UATL_BUILDER_DATA; with UATL_PROCEDURE_BUILDER_DATA; use UATL_PROCEDURE_BUILDER_DATA; with UATL_MACRO_PROCESSING; use UATL_MACRO_PROCESSING; with UATL_INTERACTIVE_IO; use UATL_INTERACTIVE_IO; with TEST_MANAGER_SCREEN_DISPLAY; use TEST_MANAGER_SCREEN_DISPLAY; package body UATL_STIM_RESPONSE_BUILDER is MENU_SR : LIST(1..8) := (new STRING'("Stimulus"), new STRING'("Response"), new STRING'("Trigger"), new STRING'("Activate"), new STRING'("Deactivate"), new STRING'("Begin Event Execution"), new STRING'("Block Wait"), new STRING'("Exit Event Selection")); package DURATION_IO is new FIXED_IO(DURATION); use DURATION_IO; procedure GET is new GET_ENUMERATED(BOOLEAN); procedure GET is new GET_ENUMERATED(INTERFACE_DEVICE); procedure GET is new GET_ENUMERATED(UATL_TRIGGER_MODES); procedure GET is new GET_ENUMERATED(UATL_EVENT_TYPES); procedure GET is new GET_ENUMERATED(UATL_EVENT_ACTION); procedure GET is new GET_ENUMERATED(UATL_BLOCK_WAIT_TYPE); procedure GET is new GET_FIXED (DURATION); procedure GETP is new GET_INTEGER (POSITIVE); procedure GETN is new GET_INTEGER (NATURAL); IS_BLOCK : STRING(1..1); IS_MOD : STRING(1..1); IS_COMP : STRING(1..1); BLOCK_TEXT : STRING(1..80); END_BLOCK_TEXT : NATURAL; EVENT_TEXT : STRING(1..80); END_EVENT_TEXT : NATURAL; IN_EVENT_NAME : STRING(1..80); END_IN_EVENT : NATURAL; IN_EVENT_TYPE : UATL_EVENT_TYPES; TTG : DURATION; CYC : NATURAL; TRIG : UATL_TRIGGER_MODES; procedure CREATE_STIMULUS_EVENT is STIM_LINE : STRING(1..80); END_STIM_LINE : NATURAL; MOD_LINE : STRING(1..80); END_MOD_LINE : NATURAL; MSG_COUNT : POSITIVE; CIRC : NATURAL; MSGRATE : DURATION; begin CLEAR_SCREEN; PUT_STRING(4,1," ******** Stimulus Event Creation ********"); NEW_LINE; NEW_LINE; PUT (" Is this event part of a block? (y/n): "); GET(IS_BLOCK); SKIP_LINE; if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT(" Enter Block name (string): "); GET_LINE(BLOCK_TEXT,END_BLOCK_TEXT); end if; NEW_LINE; NEW_LINE; PUT(" Enter Event name (string): "); GET_LINE(EVENT_TEXT,END_EVENT_TEXT); NEW_LINE; NEW_LINE; PUT_LINE(" Enter Interface Device "); GET(" (I1553B,IEEE488,INTERNAL,LOCAL) : ",INTERFACE_DEV); NEW_LINE; GETP(" How many messages in the STIM_LIST?: ",MSG_COUNT); NEW_LINE(TEST_FILE); PUT_LINE(TEST_FILE,DECLARE_BLOCK); PUT(" Enter first message name: "); PUT_LINE(TEST_FILE,STIM_INTRO); for I in 1..MSG_COUNT loop STIM_LINE := BLANK_LINE; GET_LINE(STIM_LINE,END_STIM_LINE); NEW_LINE; PUT(TEST_FILE,AT_STIM_LIST & STIM_LINE(1..END_STIM_LINE) ); STIM_LINE := BLANK_LINE; PUT(" Enter message type: "); GET_LINE(STIM_LINE,END_STIM_LINE); NEW_LINE; PUT_LINE(TEST_FILE, ONE_SPACE & COMMA & STIM_LINE(1..END_STIM_LINE) ); if I < MSG_COUNT then PUT(" Enter next message name: "); end if; end loop; END_STIM_LINE := USER_STIMS'length; STIM_LINE(1..END_STIM_LINE) := USER_STIMS; PUT_LINE(TEST_FILE,SEPARATOR); NEW_LINE; GETN(" Enter Circulate count [1]: ",CIRC); NEW_LINE; GET(" Enter Message Rate [0.0] : ",MSGRATE); NEW_LINE; GET(" Enter Time-to-Go [0.0]: ",TTG); NEW_LINE; PUT (" Shall the stim msgs be modified? (y/n): "); GET(IS_MOD); SKIP_LINE; NEW_LINE; if IS_MOD = "Y" or IS_MOD = "y" then PUT(" Enter first Modifier Task name [null]: "); PUT_LINE(TEST_FILE,MOD_INTRO); for I in 1..MSG_COUNT loop MOD_LINE := BLANK_LINE; GET_LINE(MOD_LINE,END_MOD_LINE); NEW_LINE; PUT_LINE(TEST_FILE,AT_MODIFIER & MOD_LINE(1..END_MOD_LINE)); if I < MSG_COUNT then PUT(" Enter next Modifier Task name [null]: "); end if; end loop; END_MOD_LINE := USER_MODS'length; MOD_LINE(1..END_MOD_LINE) := USER_MODS; PUT_LINE(TEST_FILE,SEPARATOR); else MOD_LINE(1..5) := "null "; END_MOD_LINE := 4; end if; NEW_LINE; GETN(" Enter event Cycle count [1]: ",CYC); NEW_LINE; GET(" Enter event Trigger mode [RUN]: ",TRIG); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,STIMULUS_CALL); if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT_LINE(TEST_FILE,BLOCK_PARM & DOUBLE_Q & GET_BLOCK(BLOCK_TEXT(1..END_BLOCK_TEXT)) & DOUBLE_Q & COMMA); end if; PUT_LINE(TEST_FILE,EVENT_PARM & DOUBLE_Q & GET_EVENT(EVENT_TEXT(1..END_EVENT_TEXT)) & DOUBLE_Q & COMMA); PUT_LINE(TEST_FILE,INTF_PARM & INTERFACE_DEVICE'image(INTERFACE_DEV) & COMMA); PUT_LINE(TEST_FILE,STIM_LIST_PARM & STIM_LINE(1..END_STIM_LINE) & COMMA); PUT_LINE(TEST_FILE,CIRCULATE_PARM & INTEGER'image(CIRC) & COMMA); PUT(DURATION_TEXT,MSGRATE); PUT_LINE(TEST_FILE,MSG_RATE_PARM & DURATION_TEXT & COMMA); PUT(DURATION_TEXT,TTG); PUT_LINE(TEST_FILE,TIME_TO_GO_PARM & DURATION_TEXT & COMMA); PUT_LINE(TEST_FILE,MODIFIER_PARM & MOD_LINE(1..END_MOD_LINE) & COMMA); PUT_LINE(TEST_FILE,CYCLE_PARM & INTEGER'image(CYC) & COMMA); PUT_LINE(TEST_FILE,TRIG_MODE_PARM & UATL_TRIGGER_MODES'image(TRIG) & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_STIMULUS_EVENT; procedure CREATE_RESPONSE_EVENT is RESP_LINE : STRING(1..80); END_RESP_LINE : NATURAL; READ_LINE : STRING(1..80); END_READ_LINE : NATURAL; TYPE_LINE : STRING(1..80); END_TYPE_LINE : NATURAL; ERR_LINE : STRING(1..80); END_ERR_LINE : NATURAL; ERRC_LINE : STRING(1..80) := (others => ' '); END_ERRC_LINE : NATURAL; COMP_LINE : STRING(1..80); END_COMP_LINE : NATURAL; RESP_COUNT : NATURAL; ERR_COUNT : NATURAL; READ_COUNT : NATURAL; COMP_COUNT : NATURAL; BUF_SIZ : POSITIVE; RESPRATE : DURATION; MAXTIME : DURATION; RESPDELAY : DURATION := 0.0; DECLARE_WRITTEN : BOOLEAN := FALSE; NEW_VAR : BOOLEAN := TRUE; begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Response Event Creation ********"); NEW_LINE; NEW_LINE; PUT (" Is this event part of a block? (y/n): "); GET(IS_BLOCK); SKIP_LINE; if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT(" Enter Block name (string): "); GET_LINE(BLOCK_TEXT,END_BLOCK_TEXT); end if; NEW_LINE; NEW_LINE; PUT(" Enter Event name (string): "); GET_LINE(EVENT_TEXT,END_EVENT_TEXT); NEW_LINE; NEW_LINE; PUT_LINE(" Enter Interface Device "); GET(" (I1553B,IEEE488,INTERNAL,LOCAL) : ",INTERFACE_DEV); NEW_LINE; GETN(" How many entries in the RESP_LIST?: ",RESP_COUNT); if RESP_COUNT > 0 then if not(DECLARE_WRITTEN) then PUT_LINE(TEST_FILE,DECLARE_BLOCK); DECLARE_WRITTEN := TRUE; end if; PUT_LINE(TEST_FILE,RESP_INTRO); PUT(" Enter first buffer name: "); for I in 1..RESP_COUNT loop RESP_LINE := BLANK_LINE; GET_LINE(RESP_LINE,END_RESP_LINE); GETP(" Enter buffer size, in bytes: ",BUF_SIZ); PUT_LINE(TEST_FILE,AT_RESP_LIST & RESP_LINE(1..END_RESP_LINE) & ONE_SPACE & COMMA & INTEGER'image(BUF_SIZ)); if I < RESP_COUNT then PUT(" Enter next buffer name: "); end if; end loop; END_RESP_LINE := USER_RESPS'length; RESP_LINE(1..END_RESP_LINE) := USER_RESPS; PUT_LINE(TEST_FILE,SEPARATOR); else RESP_LINE(1..5) := "null "; END_RESP_LINE := 4; end if; NEW_LINE; GETN(" How many entries in the ERR_LIST?: ",ERR_COUNT); if ERR_COUNT > 0 then if not(DECLARE_WRITTEN) then PUT_LINE(TEST_FILE,DECLARE_BLOCK); DECLARE_WRITTEN := TRUE; end if; PUT_LINE(TEST_FILE,ERR_INTRO); PUT(" Enter first buffer name: "); for I in 1..ERR_COUNT loop ERR_LINE := BLANK_LINE; GET_LINE(ERR_LINE,END_ERR_LINE); NEW_LINE; PUT_LINE(TEST_FILE,AT_ERR_LIST & ERR_LINE(1..END_ERR_LINE) ); if I < ERR_COUNT then PUT(" Enter next buffer name: "); end if; end loop; END_ERR_LINE := USER_ERRS'length; ERR_LINE(1..END_ERR_LINE) := USER_ERRS; PUT_LINE(TEST_FILE,SEPARATOR); else ERR_LINE(1..5) := "null "; END_ERR_LINE := 4; end if; NEW_LINE; PUT(" Enter ERR_COUNT buffer name: "); GET_LINE(ERRC_LINE,END_ERRC_LINE); if not(THIS_IS_NULL(ERRC_LINE(1..END_ERRC_LINE))) then for I in 1..CNT_NUMBER loop if ERRC_LINE(1..END_ERRC_LINE) = CNT_NAMES(I)(1..CNT_LENGTHS(I)) then NEW_VAR := FALSE; exit; end if; end loop; if NEW_VAR then CNT_NUMBER := CNT_NUMBER + 1; CNT_NAMES(CNT_NUMBER)(1..END_ERRC_LINE) := ERRC_LINE(1..END_ERRC_LINE); CNT_LENGTHS(CNT_NUMBER) := END_ERRC_LINE; PUT_LINE(DECL_FILE,FIRST_INDENT & ERRC_LINE(1..END_ERRC_LINE) & COUNT_PTR_BUF); end if; end if; NEW_LINE; NEW_LINE; GET(" Enter Response Rate [0.0]: ",RESPRATE); NEW_LINE; GET(" Enter MAX_TIME value [86400.0]: ",MAXTIME); NEW_LINE; GET(" Enter Time-to-Go [0.0]: ",TTG); NEW_LINE; GETN(" How many entries in the RESP_READ? [0]: ",READ_COUNT); if READ_COUNT > 0 then NEW_LINE; GET(" Enter Response Delay [0.0]: ",RESPDELAY); NEW_LINE; if not(DECLARE_WRITTEN) then PUT_LINE(TEST_FILE,DECLARE_BLOCK); DECLARE_WRITTEN := TRUE; end if; PUT_LINE(TEST_FILE,READ_INTRO); PUT(" Enter first response name: "); for I in 1..READ_COUNT loop READ_LINE := BLANK_LINE; GET_LINE(READ_LINE,END_READ_LINE); NEW_LINE; TYPE_LINE := BLANK_LINE; END_TYPE_LINE := 1; if not(THIS_IS_NULL(READ_LINE(1..4))) then PUT(" Enter response message type: "); GET_LINE(TYPE_LINE,END_TYPE_LINE); NEW_LINE; end if; PUT_LINE(TEST_FILE,AT_RESP_READ & READ_LINE(1..END_READ_LINE) & ONE_SPACE & COMMA & TYPE_LINE(1..END_TYPE_LINE) ); if I < READ_COUNT then PUT(" Enter next response name: "); end if; end loop; END_READ_LINE := USER_READS'length; READ_LINE(1..END_READ_LINE) := USER_READS; PUT_LINE(TEST_FILE,SEPARATOR); else READ_LINE(1..5) := "null "; END_READ_LINE := 4; end if; NEW_LINE; GETN(" How many entries in the COMPARATOR? [0]: ",COMP_COUNT); if COMP_COUNT > 0 then PUT_LINE(TEST_FILE,COMP_INTRO); PUT(" Enter first Comparator Task name [null]: "); for I in 1..COMP_COUNT loop COMP_LINE := BLANK_LINE; GET_LINE(COMP_LINE,END_COMP_LINE); NEW_LINE; PUT_LINE(TEST_FILE,AT_COMPARATOR & COMP_LINE(1..END_COMP_LINE)); if I < COMP_COUNT then PUT(" Enter next Comparator Task name [null]: "); end if; end loop; END_COMP_LINE := USER_COMPS'length; COMP_LINE(1..END_COMP_LINE) := USER_COMPS; PUT_LINE(TEST_FILE,SEPARATOR); else COMP_LINE(1..5) := "null "; END_COMP_LINE := 4; end if; NEW_LINE; GETN(" Enter event Cycle count [1]: ",CYC); NEW_LINE; GET(" Enter event Trigger mode [RUN]: ",TRIG); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,RESPONSE_CALL); if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT_LINE(TEST_FILE,BLOCK_PARM & DOUBLE_Q & GET_BLOCK(BLOCK_TEXT(1..END_BLOCK_TEXT)) & DOUBLE_Q & COMMA); end if; PUT_LINE(TEST_FILE,EVENT_PARM & DOUBLE_Q & GET_EVENT(EVENT_TEXT(1..END_EVENT_TEXT)) & DOUBLE_Q & COMMA); PUT_LINE(TEST_FILE,INTF_PARM & INTERFACE_DEVICE'image(INTERFACE_DEV) & COMMA); PUT_LINE(TEST_FILE,RESP_LIST_PARM & RESP_LINE(1..END_RESP_LINE) & COMMA); PUT_LINE(TEST_FILE,ERR_LIST_PARM & ERR_LINE(1..END_ERR_LINE) & COMMA); PUT_LINE(TEST_FILE,ERR_COUNT_PARM & ERRC_LINE(1..END_ERRC_LINE) & COMMA); PUT(DURATION_TEXT,RESPRATE); PUT_LINE(TEST_FILE,RESP_RATE_PARM & DURATION_TEXT & COMMA); PUT(DURATION_TEXT,MAXTIME); PUT_LINE(TEST_FILE,MAX_TIME_PARM & DURATION_TEXT & COMMA); PUT(DURATION_TEXT,TTG); PUT_LINE(TEST_FILE,TIME_TO_GO_PARM & DURATION_TEXT & COMMA); PUT(DURATION_TEXT,RESPDELAY); PUT_LINE(TEST_FILE,RESP_DELAY_PARM & DURATION_TEXT & COMMA); PUT_LINE(TEST_FILE,RESP_READ_PARM & READ_LINE(1..END_READ_LINE) & COMMA); PUT_LINE(TEST_FILE,COMPARATOR_PARM & COMP_LINE(1..END_COMP_LINE) & COMMA); PUT_LINE(TEST_FILE,CYCLE_PARM & INTEGER'image(CYC) & COMMA); PUT_LINE(TEST_FILE,TRIG_MODE_PARM & UATL_TRIGGER_MODES'image(TRIG) & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_RESPONSE_EVENT; procedure CREATE_TRIGGER_EVENT is IN_ON_OFF : UATL_EVENT_ACTION; COMP_LINE : STRING(1..80); END_COMP_LINE : NATURAL; TRIG_COUNT : POSITIVE; EVENT_COUNT : POSITIVE; begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Trigger Event Creation ********"); NEW_LINE; NEW_LINE; PUT (" Is this event part of a block? (y/n): "); GET(IS_BLOCK); SKIP_LINE; if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT(" Enter Block name (string): "); GET_LINE(BLOCK_TEXT,END_BLOCK_TEXT); end if; NEW_LINE; NEW_LINE; PUT(" Enter Event name (string): "); GET_LINE(EVENT_TEXT,END_EVENT_TEXT); NEW_LINE; NEW_LINE; PUT_LINE(" Enter Interface Device "); GET(" (I1553B,IEEE488,INTERNAL,LOCAL) : ",INTERFACE_DEV); PUT_LINE(TEST_FILE,DECLARE_BLOCK); PUT_LINE(TEST_FILE,TRIG_INTRO); NEW_LINE; GETP(" How many triggers in the EVENT_LIST?: ",TRIG_COUNT); for I in 1..TRIG_COUNT loop NEW_LINE; GETP(" How many event actions in this trigger?: ",EVENT_COUNT); NEW_LINE; PUT_LINE(" First Trigger action description =>"); for J in 1..EVENT_COUNT loop PUT(" Enter UATL event name: "); GET_LINE(IN_EVENT_NAME,END_IN_EVENT); GET(" Enter UATL event type: ",IN_EVENT_TYPE); GET(" Enter UATL event action: ",IN_ON_OFF); PUT_LINE(TEST_FILE,AT_EVENT_LIST & IN_EVENT_NAME(1..END_IN_EVENT) & ONE_SPACE & COMMA & UATL_EVENT_TYPES'image(IN_EVENT_TYPE) & ONE_SPACE & COMMA & UATL_EVENT_ACTION'image(IN_ON_OFF) ); if J < EVENT_COUNT then NEW_LINE; PUT_LINE(" Next Trigger action description =>"); end if; end loop; if I < TRIG_COUNT then PUT_LINE(TEST_FILE,TRIG_SEP); else PUT_LINE(TEST_FILE,SEPARATOR); end if; end loop; NEW_LINE; PUT (" Are there to be Comparators? (y/n): "); GET(IS_COMP); SKIP_LINE; NEW_LINE; if IS_COMP = "Y" or IS_COMP = "y" then PUT_LINE(TEST_FILE,COMP_INTRO); PUT(" Enter first Comparator Task name [null]: "); for I in 1..TRIG_COUNT loop COMP_LINE := BLANK_LINE; GET_LINE(COMP_LINE,END_COMP_LINE); NEW_LINE; PUT_LINE(TEST_FILE,AT_COMPARATOR & COMP_LINE(1..END_COMP_LINE)); if I < TRIG_COUNT then PUT(" Enter next Comparator Task name [null]: "); end if; end loop; END_COMP_LINE := USER_COMPS'length; COMP_LINE(1..END_COMP_LINE) := USER_COMPS; PUT_LINE(TEST_FILE,SEPARATOR); else COMP_LINE(1..5) := "null "; END_COMP_LINE := 4; end if; NEW_LINE; GETN(" Enter event Cycle count [1]: ",CYC); NEW_LINE; GET(" Enter event Trigger mode [RUN]: ",TRIG); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,TRIGGER_CALL); if IS_BLOCK = "Y" or IS_BLOCK = "y" then PUT_LINE(TEST_FILE,BLOCK_PARM & DOUBLE_Q & GET_BLOCK(BLOCK_TEXT(1..END_BLOCK_TEXT)) & DOUBLE_Q & COMMA); end if; PUT_LINE(TEST_FILE,EVENT_PARM & DOUBLE_Q & GET_EVENT(EVENT_TEXT(1..END_EVENT_TEXT)) & DOUBLE_Q & COMMA); PUT_LINE(TEST_FILE,INTF_PARM & INTERFACE_DEVICE'image(INTERFACE_DEV) & COMMA); PUT_LINE(TEST_FILE,EVENT_LIST_PARM & USER_TRIGS & COMMA); PUT_LINE(TEST_FILE,COMPARATOR_PARM & COMP_LINE(1..END_COMP_LINE) & COMMA); PUT_LINE(TEST_FILE,CYCLE_PARM & INTEGER'image(CYC) & COMMA); PUT_LINE(TEST_FILE,TRIG_MODE_PARM & UATL_TRIGGER_MODES'image(TRIG) & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_TRIGGER_EVENT; procedure CREATE_ACTIVATE_EVENT is ACT_COUNT : POSITIVE; begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Activate Call Creation ********"); NEW_LINE; NEW_LINE; GETP(" How many events are to be activated?: ",ACT_COUNT); PUT_LINE(TEST_FILE,DECLARE_BLOCK); PUT_LINE(TEST_FILE,ACT_INTRO); NEW_LINE; PUT(" Enter first event name (string): "); for I in 1..ACT_COUNT loop GET_LINE(IN_EVENT_NAME,END_IN_EVENT); NEW_LINE; GET(" Enter the UATL event type: ",IN_EVENT_TYPE); PUT_LINE(TEST_FILE,AT_ACT_LIST & IN_EVENT_NAME(1..END_IN_EVENT) & ONE_SPACE & COMMA & UATL_EVENT_TYPES'image(IN_EVENT_TYPE) ); if I < ACT_COUNT then NEW_LINE; PUT(" Enter next event name (string): "); end if; end loop; PUT_LINE(TEST_FILE,SEPARATOR); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,ACTIVATE_CALL); PUT_LINE(TEST_FILE,ACT_LIST_PARM & USER_ACTS & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_ACTIVATE_EVENT; procedure CREATE_DEACTIVATE_EVENT is DEACT_COUNT : POSITIVE; begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Deactivate Call Creation ********"); NEW_LINE; NEW_LINE; GETP(" How many events are to be deactivated?: ",DEACT_COUNT); PUT_LINE(TEST_FILE,DECLARE_BLOCK); PUT_LINE(TEST_FILE,DEACT_INTRO); NEW_LINE; PUT(" Enter first event name (string): "); for I in 1..DEACT_COUNT loop GET_LINE(IN_EVENT_NAME,END_IN_EVENT); NEW_LINE; GET(" Enter the UATL event type: ",IN_EVENT_TYPE); PUT_LINE(TEST_FILE,AT_DEACT_LIST & IN_EVENT_NAME(1..END_IN_EVENT) & ONE_SPACE & COMMA & UATL_EVENT_TYPES'image(IN_EVENT_TYPE) ); if I < DEACT_COUNT then NEW_LINE; PUT(" Enter next event name (string): "); end if; end loop; PUT_LINE(TEST_FILE,SEPARATOR); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,DEACTIVATE_CALL); PUT_LINE(TEST_FILE,DEACT_LIST_PARM & USER_DEACTS & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_DEACTIVATE_EVENT; procedure CREATE_BEGIN_EVENT_EXECUTION is begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Begin Event Execution Creation ********"); NEW_LINE; NEW_LINE; PUT(" Enter Block name []: "); GET_LINE(BLOCK_TEXT,END_BLOCK_TEXT); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,BEGIN_EVENT_CALL); PUT_LINE(TEST_FILE,BLOCK_PARM & DOUBLE_Q & GET_BLOCK(BLOCK_TEXT(1..END_BLOCK_TEXT)) & DOUBLE_Q & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_BEGIN_EVENT_EXECUTION; procedure CREATE_BLOCK_WAIT_EVENT is IN_WAIT_TYPE : UATL_BLOCK_WAIT_TYPE; begin NEW_LINE(TEST_FILE); CLEAR_SCREEN; PUT_STRING(4,1," ******** Block Wait Event Creation ********"); NEW_LINE; NEW_LINE; PUT(" Enter Block name (string): "); GET_LINE(BLOCK_TEXT,END_BLOCK_TEXT); NEW_LINE; NEW_LINE; GET(" Enter Wait type (FIRST_TERMINATE,LAST_TERMINATE): ", IN_WAIT_TYPE); PUT_LINE(TEST_FILE,DECLARE_BEGIN); PUT_LINE(TEST_FILE,BLOCK_WAIT_CALL); PUT_LINE(TEST_FILE,BLOCK_PARM & DOUBLE_Q & GET_BLOCK(BLOCK_TEXT(1..END_BLOCK_TEXT)) & DOUBLE_Q & COMMA); PUT_LINE(TEST_FILE,WAIT_TYPE_PARM & UATL_BLOCK_WAIT_TYPE'image(IN_WAIT_TYPE) & PAREN_SEMI); PUT_LINE(TEST_FILE,DECLARE_END); NEW_LINE(TEST_FILE); end CREATE_BLOCK_WAIT_EVENT; procedure CREATE_STIMULUS_RESPONSE_TEST_EVENT is CHOICE : POSITIVE; begin loop CHOICE := DISPLAY_MENU_AND_GET_SELECTION( "STIMULUS/RESPONSE EVENTS",MENU_SR); -- Case on selection made case CHOICE is when 1 => CREATE_STIMULUS_EVENT; when 2 => CREATE_RESPONSE_EVENT; when 3 => CREATE_TRIGGER_EVENT; when 4 => CREATE_ACTIVATE_EVENT; when 5 => CREATE_DEACTIVATE_EVENT; when 6 => CREATE_BEGIN_EVENT_EXECUTION; when 7 => CREATE_BLOCK_WAIT_EVENT; when 8 => exit; when others => null; end case; end loop; end CREATE_STIMULUS_RESPONSE_TEST_EVENT; end UATL_STIM_RESPONSE_BUILDER;