{ *************************************************************************** } MODULE mod_coor_dispatch ; { Created 26-APR-1989 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE } { *************************************************************************** } INCLUDE mod_common_soft_conn, mod_common_parse, mod_parse_global, mod_parse_detail, mod_coor_global_execute, mod_coor_geosec_execute, mod_coor_sptrg_execute, mod_coor_caltrg_execute ; { *************************************************************************** } EXPORT coor_disp ; {PROCEDURE dispatching coor types of messages } { *************************************************************************** } IMPORT reqstmsg, {from module MOD_COMMON_SOFT_CONN } con_served, {from module MOD_COMMON_SOFT_CONN } parsed_command, {from module MOD_COMMON_PARSE } command_count, {from module MOD_COMMON_PARSE } parse_status, {from module MOD_COMMON_PARSE } {parse_code, Parse_success,}Parse_failure,{Parse_asserted, Parse_negated, Parse_par_still_empty,Parse_par_found_empty, Parse_no_par_found,} {from module MOD_COMMON_PARSE } proced_parse_string, {from module MOD_PARSE_GLOBAL } bad_format,{bad_param,} {from module MOD_PARSE_DETAIL } unknown_msg, {from module MOD_PARSE_DETAIL } inline_check_noaction, {from module MOD_PARSE_DETAIL } coor_initialize, {from module MOD_COOR_GLOBAL_EXECUTE } coor_stop, {from module MOD_COOR_GLOBAL_EXECUTE } coor_pause, {from module MOD_COOR_GLOBAL_EXECUTE } coor_resume, {from module MOD_COOR_GLOBAL_EXECUTE } coor_load_acqbandw, {from module MOD_COOR_GLOBAL_EXECUTE } coor_wrt_host_file, {from module MOD_COOR_GLOBAL_EXECUTE } coor_wrt_synchro, {from module MOD_COOR_GLOBAL_EXECUTE } coor_l1_obey_l15, {from module MOD_COOR_GLOBAL_EXECUTE } coor_l1_ignore_l15, {from module MOD_COOR_GLOBAL_EXECUTE } coor_geos_dgtzoff, {from module MOD_COOR_GEOSEC_EXECUTE } coor_show_geosec, {from module MOD_COOR_GEOSEC_EXECUTE } coor_free_geosec, {from module MOD_COOR_GEOSEC_EXECUTE } coor_sptrg_enable, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_obeybz, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_obeyl2, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_obeybeam, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_autods, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_reenab, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_aoreq, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_presc, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_stdigt, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_wtchbz, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_rdtime, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_autotn, {from module MOD_COOR_SPTRG_EXECUTE } coor_free_sptrg, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_zerscl, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_l15type, {from module MOD_COOR_SPTRG_EXECUTE } coor_sptrg_l15term, {from module MOD_COOR_SPTRG_EXECUTE } coor_show_sptrg, {from module MOD_COOR_SPTRG_EXECUTE } coor_init_trgtwr, {from module MOD_COOR_CALTRG_EXECUTE } coor_refset_emet, {from module MOD_COOR_CALTRG_EXECUTE } coor_refset_hdveto, {from module MOD_COOR_CALTRG_EXECUTE } coor_refset_totet, {from module MOD_COOR_CALTRG_EXECUTE } coor_refset_lgtile, {from module MOD_COOR_CALTRG_EXECUTE } coor_exclude_emtwr, {from module MOD_COOR_CALTRG_EXECUTE } coor_exclude_hdtwr, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_emet_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_hdet_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_totet_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_eml2_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_hdl2_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_totl2_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_mispt_sum, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_emet_cnt, {from module MOD_COOR_CALTRG_EXECUTE } coor_thr_totet_cnt, {from module MOD_COOR_CALTRG_EXECUTE } coor_st_vs_em_rs, {from module MOD_COOR_CALTRG_EXECUTE } coor_st_vs_tot_rs, {from module MOD_COOR_CALTRG_EXECUTE } coor_st_vs_lt_rs, {from module MOD_COOR_CALTRG_EXECUTE } coor_find_dac_byte, {from module MOD_COOR_CALTRG_EXECUTE } coor_read_dac_byte, {from module MOD_COOR_CALTRG_EXECUTE } coor_twr_range ; {from module MOD_COOR_CALTRG_EXECUTE } { *************************************************************************** } { *************************************************************************** } PROCEDURE coor_disp ; BEGIN { some messages cannot be parsed for an item list **** } IF ( (reqstmsg[con_served]^.objecttype = 'DAC_BYTE') AND (reqstmsg[con_served]^.actiontype = 'READ&LOA') ) THEN GOTO skip_parse ; IF ( (reqstmsg[con_served]^.objecttype = 'WRT_HOST') AND ( (reqstmsg[con_served]^.actiontype = ' BEG_RUN') OR (reqstmsg[con_served]^.actiontype = ' END_RUN') OR (reqstmsg[con_served]^.actiontype = 'PAUS_RUN') OR (reqstmsg[con_served]^.actiontype = 'RESU_RUN') OR (reqstmsg[con_served]^.actiontype = 'BEG_STOR') OR (reqstmsg[con_served]^.actiontype = 'END_STOR') ) ) THEN GOTO skip_parse ; { parse item list **** } proced_parse_string ( ADDRESS(reqstmsg[con_served]^.itemlist), parsed_command, command_count, PARSE_STATUS := parse_status ) ; IF ( parse_status = parse_failure ) THEN BEGIN bad_format ( TAGEXT := 'C' + SUBSTR(reqstmsg[con_served]^.reqstid,7,2) ) ; GOTO quit_coor_dispatch ; END ; skip_parse: { now dispatch by message type ***** } IF (reqstmsg[con_served]^.objecttype= 'SPECTRIG' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' ENABLE') THEN coor_sptrg_enable ELSE IF (reqstmsg[con_served]^.actiontype='OBEYBUSY') THEN coor_sptrg_obeybz ELSE IF (reqstmsg[con_served]^.actiontype='OBEYLEV2') THEN coor_sptrg_obeyl2 ELSE IF (reqstmsg[con_served]^.actiontype='OBEYBEAM') THEN coor_sptrg_obeybeam ELSE IF (reqstmsg[con_served]^.actiontype=' AUTODIS') THEN coor_sptrg_autods ELSE IF (reqstmsg[con_served]^.actiontype='REENABLE') THEN coor_sptrg_reenab ELSE IF (reqstmsg[con_served]^.actiontype='ANDORREQ') THEN coor_sptrg_aoreq ELSE IF (reqstmsg[con_served]^.actiontype='PRESCALE') THEN coor_sptrg_presc ELSE IF (reqstmsg[con_served]^.actiontype='STARTDGT') THEN coor_sptrg_stdigt ELSE IF (reqstmsg[con_served]^.actiontype=' FEBZDIS') THEN coor_sptrg_wtchbz ELSE IF (reqstmsg[con_served]^.actiontype=' RD_TIME') THEN coor_sptrg_rdtime ELSE IF (reqstmsg[con_served]^.actiontype='AUTOTUNE') THEN coor_sptrg_autotn ELSE IF (reqstmsg[con_served]^.actiontype=' FREE') THEN coor_free_sptrg ELSE IF (reqstmsg[con_served]^.actiontype='RESETSCL') THEN coor_sptrg_zerscl ELSE IF (reqstmsg[con_served]^.actiontype='L15_TYPE') THEN coor_sptrg_l15type ELSE IF (reqstmsg[con_served]^.actiontype='L15_TERM') THEN coor_sptrg_l15term ELSE IF (reqstmsg[con_served]^.actiontype='SHOWSPTR') THEN coor_show_sptrg ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF ( reqstmsg[con_served]^.objecttype = 'GEO_SECT' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype='DGTZ_OFF') THEN coor_geos_dgtzoff ELSE IF (reqstmsg[con_served]^.actiontype=' FREE') THEN coor_free_geosec ELSE IF (reqstmsg[con_served]^.actiontype='SHOWGEOS') THEN coor_show_geosec ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF (reqstmsg[con_served]^.objecttype= ' INITIAL' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype= ' RESTORE' ) THEN coor_initialize ( RESTORE := TRUE ) ELSE IF (reqstmsg[con_served]^.actiontype= ' TRGTWR' ) THEN coor_init_trgtwr ELSE BEGIN inline_check_noaction ; IF ( parse_status = parse_failure ) THEN GOTO quit_coor_dispatch ; coor_initialize ( RESTORE := FALSE ) ; END END ELSE IF (reqstmsg[con_served]^.objecttype= ' STOP' ) THEN BEGIN inline_check_noaction ; IF ( parse_status = parse_failure ) THEN GOTO quit_coor_dispatch ; coor_stop ; END ELSE IF (reqstmsg[con_served]^.objecttype= ' PAUSE' ) THEN BEGIN inline_check_noaction ; IF ( parse_status = parse_failure ) THEN GOTO quit_coor_dispatch ; coor_pause ; END ELSE IF (reqstmsg[con_served]^.objecttype= ' RESUME' ) THEN BEGIN inline_check_noaction ; IF ( parse_status = parse_failure ) THEN GOTO quit_coor_dispatch ; coor_resume ; END ELSE IF (reqstmsg[con_served]^.objecttype= 'WRT_HOST' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' BEG_RUN') THEN coor_wrt_host_file( NAME :='Begin Run', RCP_TYPE :='BEGIN_RUN' ) ELSE IF (reqstmsg[con_served]^.actiontype=' END_RUN') THEN coor_wrt_host_file( NAME :='End Run', RCP_TYPE :='END_RUN' ) ELSE IF (reqstmsg[con_served]^.actiontype='PAUS_RUN') THEN coor_wrt_host_file( NAME :='Pause Run', RCP_TYPE :='PAUSE_RUN' ) ELSE IF (reqstmsg[con_served]^.actiontype='RESU_RUN') THEN coor_wrt_host_file( NAME :='Resume Run', RCP_TYPE :='RESUME_RUN' ) ELSE IF (reqstmsg[con_served]^.actiontype='BEG_STOR') THEN coor_wrt_host_file( NAME :='Begin Store', RCP_TYPE :='BEGIN_STORE' ) ELSE IF (reqstmsg[con_served]^.actiontype='END_STOR') THEN coor_wrt_host_file( NAME :='End Store', RCP_TYPE :='END_STORE' ) ELSE IF (reqstmsg[con_served]^.actiontype=' SYNCHRO') THEN coor_wrt_synchro ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) ; END ELSE IF (reqstmsg[con_served]^.objecttype= 'AUTOTUNE' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype='ACQBANDW') THEN coor_load_acqbandw ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) ; END ELSE IF ( reqstmsg[con_served]^.objecttype = ' REFSET' ) THEN BEGIN IF ( parse_status = parse_failure ) THEN GOTO quit_coor_dispatch ; IF (reqstmsg[con_served]^.actiontype=' EMET') THEN coor_refset_emet ELSE IF (reqstmsg[con_served]^.actiontype=' HDVETO') THEN coor_refset_hdveto ELSE IF (reqstmsg[con_served]^.actiontype=' TOTET') THEN coor_refset_totet ELSE IF (reqstmsg[con_served]^.actiontype='LRG_TILE') THEN coor_refset_lgtile ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF ( reqstmsg[con_served]^.objecttype = ' EXCLUDE' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' EMTOWER') THEN coor_exclude_emtwr ELSE IF (reqstmsg[con_served]^.actiontype=' HDTOWER') THEN coor_exclude_hdtwr ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF ( reqstmsg[con_served]^.objecttype = 'THRESHLD' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' EMETSUM') THEN coor_thr_emet_sum ELSE IF (reqstmsg[con_served]^.actiontype=' HDETSUM') THEN coor_thr_hdet_sum ELSE IF (reqstmsg[con_served]^.actiontype='TOTETSUM') THEN coor_thr_totet_sum ELSE IF (reqstmsg[con_served]^.actiontype=' EML2SUM') THEN coor_thr_eml2_sum ELSE IF (reqstmsg[con_served]^.actiontype=' HDL2SUM') THEN coor_thr_hdl2_sum ELSE IF (reqstmsg[con_served]^.actiontype='TOTL2SUM') THEN coor_thr_totl2_sum ELSE IF (reqstmsg[con_served]^.actiontype='MISPTSUM') THEN coor_thr_mispt_sum ELSE IF (reqstmsg[con_served]^.actiontype=' EMETCNT') THEN coor_thr_emet_cnt ELSE IF (reqstmsg[con_served]^.actiontype='TOTETCNT') THEN coor_thr_totet_cnt ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF ( reqstmsg[con_served]^.objecttype = 'DAC_BYTE' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype='FIND&SAV') THEN coor_find_dac_byte ELSE IF (reqstmsg[con_served]^.actiontype='READ&LOA') THEN coor_read_dac_byte ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF ( reqstmsg[con_served]^.objecttype = 'ST_VS_RS' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' EM_LIST') THEN coor_st_vs_em_rs ELSE IF (reqstmsg[con_served]^.actiontype='TOT_LIST') THEN coor_st_vs_tot_rs ELSE IF (reqstmsg[con_served]^.actiontype='LRG_TILE') THEN coor_st_vs_lt_rs ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF (reqstmsg[con_served]^.objecttype= 'LEVEL_15' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' OBEY') THEN coor_l1_obey_l15 ELSE IF (reqstmsg[con_served]^.actiontype=' IGNORE') THEN coor_l1_ignore_l15 ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE IF (reqstmsg[con_served]^.objecttype= 'TRIG_TWR' ) THEN BEGIN IF (reqstmsg[con_served]^.actiontype=' RANGE') THEN coor_twr_range ELSE unknown_msg (TAGEXT:='C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)) END ELSE unknown_msg ( TAGEXT := 'C'+SUBSTR(reqstmsg[con_served]^.reqstid,7,2)); quit_coor_dispatch: END ; { *************************************************************************** } { *************************************************************************** } PROCEDURE no_action ; BEGIN END ; { *************************************************************************** } { *************************************************************************** } END .