/*-------------------------------------------------------------------------------*/ /* MessageCoorDispatcher.cpp 7-Oct-99 28-Oct-99 Coor Command Parsing split onto separate files */ /*-------------------------------------------------------------------------------*/ #include "stdafx.h" #include "GlobalConstants.h" #include "CustomDataTypes.h" #include "MessageCommand.h" #include "MessageCoorDispatcher.h" #include "MessageKeywordsCoorL1FW.h" #include "MessageKeywordsCoorL1CT.h" #include "HandleConsole.h" #include "UtilsStrings.h" /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ ECoorMessageStatus CMessageCoorDispatcher::MessageDispatch ( CMessageCommandLine* _poCoorCommandLine, CMessageCoorExecuterInterface* _pxCoorExecute ) { ECoorMessageStatus eReturnStatus = Reply_Ok ; TBinomialEntry < CMessageCommand, unsigned int >* poCoorCommandEntry ; CMessageCommand* poCoorCommand ; //\\// //Get at the first command poCoorCommandEntry = _poCoorCommandLine->m_lCommandList.FirstEntry( ) ; if ( poCoorCommandEntry != NULL ) { poCoorCommand = poCoorCommandEntry ->GetAtKey( ) ; if ( poCoorCommand->m_uiCoorCmdCode <= Ki_CoorCmd_MaxID_L1FW ) eReturnStatus = MessageDispatch_CoorL1FW ( _poCoorCommandLine, _pxCoorExecute ) ; else eReturnStatus = MessageDispatch_CoorL1CT ( _poCoorCommandLine, _pxCoorExecute ) ; } return eReturnStatus ; } /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ ECoorMessageStatus CMessageCoorDispatcher::MessageDispatch_CoorL1FW ( CMessageCommandLine* _poCoorCommandLine, CMessageCoorExecuterInterface* _pxCoorExecute ) { ECoorMessageStatus eReturnStatus = Reply_Ok ; ECoorMessageStatus eRememberStatus = Reply_Ok ; char sReplyText[KiMaxLengthReplyTextToCoor] ; TBinomialEntry < CMessageCommand, unsigned int >* poCoorCommandEntry ; CMessageCommand* poCoorCommand ; EDisableEnable eNewEnableState ; EIgnoreObey eNewObeyState ; //\\// //Get at the first command // find the next command in the list poCoorCommandEntry = _poCoorCommandLine->m_lCommandList.FirstEntry( ) ; if ( poCoorCommandEntry != NULL ) poCoorCommand = poCoorCommandEntry ->GetAtKey( ) ; else poCoorCommand = NULL ; while ( poCoorCommand != NULL ) { switch ( poCoorCommand->m_uiCoorCmdCode ) { ///////////////////////////////////////////////////////////////////// /// Configure Command /////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_L1FW_Configure : { eReturnStatus = _pxCoorExecute->L1FW_Configure ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_L1FW_Configure ///////////////////////////////////////////////////////////////////// /// Initialize Command ////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_Init : { eReturnStatus = _pxCoorExecute->Initialize ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_Init ///////////////////////////////////////////////////////////////////// /// SCL Initialize Command ////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_SCL_Initialize : { eReturnStatus = _pxCoorExecute->SCL_Initialize ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_SCL_Initialize ///////////////////////////////////////////////////////////////////// /// Start/Stop Run Commands //////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_Start_run : { eReturnStatus = _pxCoorExecute->StartRun ( poCoorCommand->m_uiValue, &poCoorCommand->m_aubItemPolarity[0], _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_Start_run case Ki_CoorCmd_Stop_run : { eReturnStatus = _pxCoorExecute->StopRun ( poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_Stop_run ///////////////////////////////////////////////////////////////////// /// Commands for system using batch command processing ////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_Configure : { eReturnStatus = Reply_Ok ; // Nothing to do but answer needed } break ; // case Ki_CoorCmd_Configure case Ki_CoorCmd_Begin_block : case Ki_CoorCmd_End_block : case Ki_CoorCmd_Abort : { eReturnStatus = Reply_None ; // Nothing to do and no answer needed } break ; // case Ki_CoorCmd_Abort ///////////////////////////////////////////////////////////////////// /// Pause/Resume Run Commands ////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_Pause_Run : { eReturnStatus = _pxCoorExecute->PauseRun ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_PauseRun case Ki_CoorCmd_Resume_Run : { eReturnStatus = _pxCoorExecute->ResumeRun ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_ResumeRun ///////////////////////////////////////////////////////////////////// /// L1FW Pause/Resume Commands ///////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_L1FW_Pause : { eReturnStatus = _pxCoorExecute->L1fwPause ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_L1fwPause case Ki_CoorCmd_L1FW_Resume : { eReturnStatus = _pxCoorExecute->L1fwResume ( _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_L1fwResume ///////////////////////////////////////////////////////////////////// /// Begin/End Store Command ///////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_Begin_store : { eReturnStatus = _pxCoorExecute->BeginStore ( poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_Begin_store case Ki_CoorCmd_End_store : { eReturnStatus = _pxCoorExecute->EndStore ( poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } break ; // case Ki_CoorCmd_End_store ///////////////////////////////////////////////////////////////////// /// Exposure Groups Commands //////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_L1FW_Expo_Group : { switch ( poCoorCommand->m_uiCoorSubCmdCode ) { ///////////////////////////////////////////////////////////// /// Exposure Groups And/Or Term Requirements /////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_And_Or_List : { eReturnStatus = _pxCoorExecute->ExpoGroupAndOrList ( poCoorCommand->m_uiObjectIndex, &poCoorCommand->m_aubItemPolarity[0], _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_And_Or_List ///////////////////////////////////////////////////////////// /// Exposure Groups Geographic Section Requirements /////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Geo_Sect_List : { eReturnStatus = _pxCoorExecute->ExpoGroupGeoSectList ( poCoorCommand->m_uiObjectIndex, &poCoorCommand->m_aubItemPolarity[0], _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Geo_Sect_List ///////////////////////////////////////////////////////////// /// Exposure Groups Coor Deallocate //////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Deallocate : { eReturnStatus = _pxCoorExecute->ExpoGroupDeallocate ( poCoorCommand->m_uiObjectIndex, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Deallocate ///////////////////////////////////////////////////////////// // All commands that have been parsed should have been displatched here // but this catches omissions ///////////////////////////////////////////////////////////// default: { strcpy ( sReplyText, "m_uiCoorSubCmdCode ) ) ; strcat ( sReplyText, ">" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } } break ; // case Ki_CoorCmd_L1FW_Expo_Group ///////////////////////////////////////////////////////////////////// /// Specific Trigger Commands /////////////////////////////////////// ///////////////////////////////////////////////////////////////////// case Ki_CoorCmd_L1FW_Spec_Trig : { switch ( poCoorCommand->m_uiCoorSubCmdCode ) { ///////////////////////////////////////////////////////////// /// Specific Trigger And/Or Term Requirements /////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_And_Or_List : { eReturnStatus = _pxCoorExecute->SpecTrigAndOrList ( poCoorCommand->m_uiObjectIndex, &poCoorCommand->m_aubItemPolarity[0], _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_And_Or_List ///////////////////////////////////////////////////////////// /// Specific Trigger Exposure Group Alegiance /////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Expo_Group : { eReturnStatus = _pxCoorExecute->SpecTrigExpoGroup ( poCoorCommand->m_uiObjectIndex, poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Expo_Group ///////////////////////////////////////////////////////////// /// Specific Trigger L1 Qualifier List ////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_L1_Qualifier : { eReturnStatus = _pxCoorExecute->SpecTrigL1Qualifier ( poCoorCommand->m_uiObjectIndex, &poCoorCommand->m_aubItemPolarity[0], _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_L1_Qualifier ///////////////////////////////////////////////////////////// /// Specific Trigger Listen to Front-End Busy /////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Obey_FE_Busy : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewObeyState = Obey ; break ; case ItemNegated : eNewObeyState = Ignore ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigObeyFeBusy ( poCoorCommand->m_uiObjectIndex, eNewObeyState , _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Obey_FE_Busy ///////////////////////////////////////////////////////////// /// Specific Trigger Listen to Correlated and DeCorrelated Disable ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Obey_Correlated_Disable : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewObeyState = Obey ; break ; case ItemNegated : eNewObeyState = Ignore ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigObeyCorrDis ( poCoorCommand->m_uiObjectIndex, eNewObeyState , poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Obey_Correlated_Disable case Ki_CoorSubCmd_Obey_DeCorrelated_Disable : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewObeyState = Obey ; break ; case ItemNegated : eNewObeyState = Ignore ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigObeyDeCorrDis ( poCoorCommand->m_uiObjectIndex, eNewObeyState , poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Obey_DeCorrelated_Disable ///////////////////////////////////////////////////////////// /// Specific Trigger Listen to Individual Spec Trig Disable ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Obey_Individual_Disable : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewObeyState = Obey ; break ; case ItemNegated : eNewObeyState = Ignore ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigObeyIndivDis ( poCoorCommand->m_uiObjectIndex, eNewObeyState , poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Obey_Indiv_Disable ///////////////////////////////////////////////////////////// /// Specific Trigger Auto-Disable /////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Auto_Disabled : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewObeyState = Obey ; break ; case ItemNegated : eNewObeyState = Ignore ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigAutoDisable ( poCoorCommand->m_uiObjectIndex, eNewObeyState , _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Auto_Disabled ///////////////////////////////////////////////////////////// /// Specific Trigger Re-Enable the Auto-Disable ///////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Re_Enable : { eReturnStatus = _pxCoorExecute->SpecTrigReEnable ( poCoorCommand->m_uiObjectIndex, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Re_Enable ///////////////////////////////////////////////////////////// /// Specific Trigger Global Enable ////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Coor_Enable : { switch ( poCoorCommand->m_eObjectPolarity ) { case ItemAsserted : eNewEnableState = Enable ; break ; case ItemNegated : eNewEnableState = Disable ; break ; } eReturnStatus = _pxCoorExecute->SpecTrigCoorEnable ( poCoorCommand->m_uiObjectIndex, eNewEnableState , _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Coor_Enable ///////////////////////////////////////////////////////////// /// Specific Trigger Prescaler Ratio //////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Prescale : { eReturnStatus = _pxCoorExecute->SpecTrigPrescale ( poCoorCommand->m_uiObjectIndex, poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Prescale ///////////////////////////////////////////////////////////// /// Specific Trigger Coor Deallocate //////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Deallocate : { eReturnStatus = _pxCoorExecute->SpecTrigDeallocate ( poCoorCommand->m_uiObjectIndex, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Deallocate ///////////////////////////////////////////////////////////// // All commands that have been parsed should have been displatched here // but this catches omissions ///////////////////////////////////////////////////////////// default: { strcpy ( sReplyText, "m_uiCoorSubCmdCode ) ) ; strcat ( sReplyText, ">" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } } break ; // case Ki_CoorCmd_L1FW_Spec_Trig // All commands that have been parsed should have been displatched here // but this catches omissions default: { strcpy ( sReplyText, "" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } ; // find the next command in the list, if any // but remember individual errors to tag the whole message as an error if ( eReturnStatus == Reply_Bad ) eRememberStatus = Reply_Bad ; poCoorCommandEntry = _poCoorCommandLine->m_lCommandList.NextEntry( poCoorCommandEntry ) ; if ( poCoorCommandEntry != NULL ) poCoorCommand = poCoorCommandEntry ->GetAtKey( ) ; else poCoorCommand = NULL ; } ; if ( eRememberStatus == Reply_Bad ) eReturnStatus = Reply_Bad ; return eReturnStatus ; } /*-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ ECoorMessageStatus CMessageCoorDispatcher::MessageDispatch_CoorL1CT ( CMessageCommandLine* _poCoorCommandLine, CMessageCoorExecuterInterface* _pxCoorExecute ) { ECoorMessageStatus eReturnStatus = Reply_Ok ; ECoorMessageStatus eRememberStatus = Reply_Ok ; char sReplyText[KiMaxLengthReplyTextToCoor] ; TBinomialEntry < CMessageCommand, unsigned int >* poCoorCommandEntry ; CMessageCommand* poCoorCommand ; //\\// //Get at the first command // find the next command in the list poCoorCommandEntry = _poCoorCommandLine->m_lCommandList.FirstEntry( ) ; if ( poCoorCommandEntry != NULL ) poCoorCommand = poCoorCommandEntry ->GetAtKey( ) ; else poCoorCommand = NULL ; while ( poCoorCommand != NULL ) { switch ( poCoorCommand->m_uiCoorCmdCode ) { ///////////////////////////////////////////////////////////////////// /// Reference Set Commands ////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// //[L1CT_Ref_Set EM_Et_Ref_Set 0 TT_Eta(-20:20) TT_Phi(1:32) Value 10.0] //[L1CT_Ref_Set HD_Veto_Ref_Set 0 TT_Eta(-20:20) TT_Phi(1:32) Value 10.0] //[L1CT_Ref_Set TOT_Et_Ref_Set 0 TT_Eta(-20:20) Value 10.0] //[L1CT_Ref_Set Large_Tile_Ref_Set 0 TT_Eta(-20:-13) Value 1000.0] case Ki_CoorCmd_L1CT_Ref_Set : { switch ( poCoorCommand->m_uiCoorSubCmdCode ) { ///////////////////////////////////////////////////////////// /// EM Et Reference Set ///////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_EM_Et_Ref_Set : { eReturnStatus = _pxCoorExecute->RefSetEMEt ( poCoorCommand->m_uiRefSetNum, &poCoorCommand->m_xTT, poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_EM_Et_Ref_Set case Ki_CoorSubCmd_EM_Et_Ref_Set_Deallocate : { eReturnStatus = _pxCoorExecute->RefSetEMEtDeallocate ( poCoorCommand->m_uiRefSetNum, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_EM_Et_Ref_Set_Deallocate ///////////////////////////////////////////////////////////// /// HD Veto Reference Set /////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_HD_Veto_Ref_Set : { eReturnStatus = _pxCoorExecute->RefSetHDVeto ( poCoorCommand->m_uiRefSetNum, &poCoorCommand->m_xTT, poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_HD_Veto_Ref_Set case Ki_CoorSubCmd_HD_Veto_Ref_Set_Deallocate : { eReturnStatus = _pxCoorExecute->RefSetHDVetoDeallocate ( poCoorCommand->m_uiRefSetNum, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_HD_Veto_Ref_Set_Deallocate ///////////////////////////////////////////////////////////// /// TOT Et Reference Set //////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_TOT_Et_Ref_Set : { eReturnStatus = _pxCoorExecute->RefSetTOTEt ( poCoorCommand->m_uiRefSetNum, &poCoorCommand->m_xTT, poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_TOT_Et_Ref_Set case Ki_CoorSubCmd_TOT_Et_Ref_Set_Deallocate : { eReturnStatus = _pxCoorExecute->RefSetTOTEtDeallocate ( poCoorCommand->m_uiRefSetNum, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_TOT_Et_Ref_Set_Deallocate ///////////////////////////////////////////////////////////// /// Larege Tile Reference Set /////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Large_Tile_Ref_Set : { eReturnStatus = _pxCoorExecute->RefSetLgTile ( poCoorCommand->m_uiRefSetNum, &poCoorCommand->m_xTT, poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Large_Tile_Ref_Set case Ki_CoorSubCmd_Large_Tile_Ref_Set_Deallocate : { eReturnStatus = _pxCoorExecute->RefSetLgTileDeallocate ( poCoorCommand->m_uiRefSetNum, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Large_Tile_Ref_Set_Deallocate ///////////////////////////////////////////////////////////// // All commands that have been parsed should have been displatched here // but this catches omissions ///////////////////////////////////////////////////////////// default: { strcpy ( sReplyText, "m_uiCoorSubCmdCode ) ) ; strcat ( sReplyText, ">" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } } break ; // case Ki_CoorCmd_L1CT_Ref_Set ///////////////////////////////////////////////////////////////////// /// Global Count Threshold Commands ///////////////////////////////// ///////////////////////////////////////////////////////////////////// //[L1CT_Count_Threshold EM_Et_Towers Ref_Set 0 Comparator 1 Value 1] //[L1CT_Count_Threshold TOT_Et_Towers Ref_Set 0 Comparator 1 Value 1] case Ki_CoorCmd_L1CT_Count_Threshold : { switch ( poCoorCommand->m_uiCoorSubCmdCode ) { ///////////////////////////////////////////////////////////// /// EM Et Reference Set ///////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_EM_Et_Towers : { eReturnStatus = _pxCoorExecute->ThresholdCountEMEt ( poCoorCommand->m_uiRefSetNum, poCoorCommand->m_uiObjectIndex , poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_EM_Et_Towers ///////////////////////////////////////////////////////////// /// TOT Et Reference Set //////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_TOT_Et_Towers : { eReturnStatus = _pxCoorExecute->ThresholdCountTOTEt ( poCoorCommand->m_uiRefSetNum, poCoorCommand->m_uiObjectIndex , poCoorCommand->m_uiValue, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_TOT_Et_Towers ///////////////////////////////////////////////////////////// // All commands that have been parsed should have been displatched here // but this catches omissions ///////////////////////////////////////////////////////////// default: { strcpy ( sReplyText, "m_uiCoorSubCmdCode ) ) ; strcat ( sReplyText, ">" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } } break ; // Ki_CoorCmd_L1CT_Count_Threshold ///////////////////////////////////////////////////////////////////// /// Global Energy Threshold Commands //////////////////////////////// ///////////////////////////////////////////////////////////////////// //[L1CT_Energy_Threshold EM_Et Comparator 0 Value 55.5] //[L1CT_Energy_Threshold HD_Et Comparator 0 Value 55.5] //[L1CT_Energy_Threshold TOT_Et Comparator 0 Value 55.5] //[L1CT_Energy_Threshold Miss_Pt Comparator 0 Value 40.0] case Ki_CoorCmd_L1CT_Energy_Threshold : { switch ( poCoorCommand->m_uiCoorSubCmdCode ) { ///////////////////////////////////////////////////////////// /// EM Et Energy //////////////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_EM_Et : { eReturnStatus = _pxCoorExecute->ThresholdEnergyEMEt ( poCoorCommand->m_uiObjectIndex , poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_EM_Et ///////////////////////////////////////////////////////////// /// HD Et Energy //////////////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_HD_Et : { eReturnStatus = _pxCoorExecute->ThresholdEnergyHDEt ( poCoorCommand->m_uiObjectIndex , poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_HD_Et ///////////////////////////////////////////////////////////// /// TOT Et Energy /////////////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_TOT_Et : { eReturnStatus = _pxCoorExecute->ThresholdEnergyTOTEt ( poCoorCommand->m_uiObjectIndex , poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_TOT_Et ///////////////////////////////////////////////////////////// /// EM Et Energy //////////////////////////////////////////// ///////////////////////////////////////////////////////////// case Ki_CoorSubCmd_Miss_Pt : { eReturnStatus = _pxCoorExecute->ThresholdEnergyMissPt ( poCoorCommand->m_uiObjectIndex , poCoorCommand->m_fdThreshold, _poCoorCommandLine ) ; } ; break ; // case Ki_CoorSubCmd_Miss_Pt ///////////////////////////////////////////////////////////// // All commands that have been parsed should have been displatched here // but this catches omissions ///////////////////////////////////////////////////////////// default: { strcpy ( sReplyText, "m_uiCoorSubCmdCode ) ) ; strcat ( sReplyText, ">" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } } break ; // case Ks_CoorCmd_L1CT_Energy_Threshold // All commands that have been parsed should have been displatched here // but this catches omissions default: { strcpy ( sReplyText, "" ) ; CConsoleAccess::ErrorLine ( sReplyText ) ; _poCoorCommandLine->CopyReplyText ( sReplyText ) ; eReturnStatus = Reply_Bad ; } ; break ; } ; // find the next command in the list, if any // but remember individual errors to tag the whole message as an error if ( eReturnStatus == Reply_Bad ) eRememberStatus = Reply_Bad ; poCoorCommandEntry = _poCoorCommandLine->m_lCommandList.NextEntry( poCoorCommandEntry ) ; if ( poCoorCommandEntry != NULL ) poCoorCommand = poCoorCommandEntry ->GetAtKey( ) ; else poCoorCommand = NULL ; } ; if ( eRememberStatus == Reply_Bad ) eReturnStatus = Reply_Bad ; return eReturnStatus ; }