Skip to content
This repository was archived by the owner on Mar 12, 2019. It is now read-only.

Commit 823633a

Browse files
author
kakwok
authored
Merge pull request #416 from HCALRunControl/fixTAstopping
New stopping scheme.
2 parents 3d1e0b5 + 62b97bd commit 823633a

File tree

2 files changed

+22
-65
lines changed

2 files changed

+22
-65
lines changed

src/rcms/fm/app/level1/HCALEventHandler.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -766,9 +766,12 @@ protected void initXDAQinfospace() {
766766
try{
767767
if (functionManager.FMrole.equals("EvmTrig")){
768768
XDAQParameter pam = xdaqApp.getXDAQParameter();
769-
pam.select(new String[] {"SessionID"});
769+
pam.select(new String[] {"SessionID","IgnoreTriggerForEnable"});
770770
pam.setValue("SessionID" ,sid.toString());
771771
logger.info("[HCAL " + functionManager.FMname + "] Sent SID to supervisor: " + Sid);
772+
// IgnoreTriggerForEnable = false
773+
pam.setValue("IgnoreTriggerForEnable" ,"false");
774+
logger.info("[HCAL " + functionManager.FMname + "] Sent IgnoreTriggerForEnable=false to supervisor: " );
772775

773776
pam.send();
774777
}
@@ -2057,16 +2060,18 @@ public void run() {
20572060
}
20582061
XDAQParameter pam = null;
20592062
String status = "undefined";
2063+
String TriggerTaskState = "undefined";
20602064
Double NextEventNumber = -1.0;
20612065

20622066
// ask for the status of the TriggerAdapter and wait until it is Ready, Failed
20632067
for (QualifiedResource qr : functionManager.containerTriggerAdapter.getApplications() ){
20642068
try {
20652069
pam =((XdaqApplication)qr).getXDAQParameter();
20662070

2067-
pam.select(new String[] {"stateName", "NextEventNumber"});
2071+
pam.select(new String[] {"stateName", "NextEventNumber","TriggerTaskState"});
20682072
pam.get();
20692073
status = pam.getValue("stateName");
2074+
TriggerTaskState = pam.getValue("TriggerTaskState");
20702075
if (status==null) {
20712076
String errMessage = "[HCAL " + functionManager.FMname + "] Error! Asking the TA for the stateName when Running resulted in a NULL pointer - this is bad!";
20722077
functionManager.goToError(errMessage);
@@ -2108,8 +2113,8 @@ public void run() {
21082113
functionManager.goToError(errMessage);
21092114
}
21102115

2111-
if (status.equals("Ready")) {
2112-
logger.info("[HCAL " + functionManager.FMname + "] The Trigger adapter reports: " + status + " , which means that all Triggers were sent ...");
2116+
if (status.equals("Ready") || TriggerTaskState.equals("IDLE")) {
2117+
logger.info("[HCAL " + functionManager.FMname + "] The Trigger adapter has status= " + status + " and triggerTaskState= "+TriggerTaskState+", which means that all Triggers were sent ...");
21132118
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("STATE",new StringT("")));
21142119
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("ACTION_MSG",new StringT("Stopping the TA ...")));
21152120

src/rcms/fm/app/level1/HCALlevelTwoEventHandler.java

Lines changed: 13 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -943,53 +943,12 @@ public void runningAction(Object obj) throws UserActionException {
943943
// reset the non-async error state handling
944944
functionManager.ErrorState = false;
945945

946-
// only in local runs when all triggers were sent the run is stopped with 60 sec timeout
947-
if (functionManager.FMrole.equals("EvmTrig")) {
948-
949-
// finally start the TriggerAdapters
950-
if (functionManager.containerTriggerAdapter!=null) {
951-
if (!functionManager.containerTriggerAdapter.isEmpty() && !functionManager.FMWasInPausedState) {
952-
try {
953-
//logger.info("[JohnLog4] [HCAL LVL2 " + functionManager.FMname + "] Issuing the L1As i.e. sending Enable to the TriggerAdapter ...");
954-
logger.info("[HCAL LVL2 " + functionManager.FMname + "] Issuing the L1As i.e. sending Enable to the TriggerAdapter ...");
955-
functionManager.containerTriggerAdapter.execute(HCALInputs.HCALSTART);
956-
}
957-
catch (QualifiedResourceContainerException e) {
958-
String errMessage = "[HCAL LVL2 " + functionManager.FMname + "] Error! QualifiedResourceContainerException: starting (TriggerAdapter=Enable) failed ...";
959-
functionManager.goToError(errMessage,e);
960-
}
961-
}
962-
}
963-
964-
// set actions for local runs
965-
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("STATE",new StringT(functionManager.getState().getStateString())));
966-
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("ACTION_MSG",new StringT("waiting for run to finish ...")));
967-
968-
logger.debug("[HCAL LVL2 " + functionManager.FMname + "] runningAction executed ...");
969946

970-
}
971-
else {
972-
// set actions for gloabl runs
973-
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("STATE",new StringT(functionManager.getState().getStateString())));
974-
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("ACTION_MSG",new StringT("running like hell ...")));
975-
}
976-
//XdaqApplicationContainer lpmContainer = new XdaqApplicationContainer(functionManager.containerXdaqApplication.getApplicationsOfClass("tcds::lpm::LPMController"));
977-
//if (!lpmContainer.isEmpty()) {
978-
// logger.info("[JohnLog4] " + functionManager.FMname + ": Sending Enable to the LPMController.");
979-
// try {
980-
// lpmContainer.execute(HCALInputs.HCALSTART);
981-
// }
982-
// catch (QualifiedResourceContainerException e) {
983-
// String errMessage = "[HCAL LVL2 " + functionManager.FMname + "] Error! QualifiedResourceContainerException: starting (LPMController=Enable) failed ... Message: " + e.getMessage();
984-
// logger.error(errMessage,e);
985-
// functionManager.sendCMSError(errMessage);
986-
// functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("STATE",new StringT("Error")));
987-
// functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("ACTION_MSG",new StringT("oops - technical difficulties ...")));
988-
// if (TestMode.equals("off")) { functionManager.firePriorityEvent(HCALInputs.SETERROR); functionManager.ErrorState = true; return;}
989-
// }
990-
//}
991-
// patch for pause-resume behavior
947+
// set actions for gloabl runs
948+
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("STATE",new StringT(functionManager.getState().getStateString())));
949+
functionManager.getHCALparameterSet().put(new FunctionManagerParameter<StringT>("ACTION_MSG",new StringT("running like hell ...")));
992950
functionManager.FMWasInPausedState = false;
951+
logger.info("[HCAL LVL2 " + functionManager.FMname + "] runningAction executed ...");
993952
}
994953
}
995954

@@ -1397,14 +1356,14 @@ public void stoppingAction(Object obj) throws UserActionException {
13971356
logger.info("[HCAL LVL2 " + functionManager.FMname + "] EvmTrig FM: TriggerAdapter is already in READY, not sending disable.");
13981357
}
13991358
else{
1400-
logger.info("[HCAL LVL2 " + functionManager.FMname + "] EvmTrig FM: TriggerAdapter is in the state="+status+", send HCALASYNCDISABLE to TriggerAdapter");
1401-
functionManager.containerTriggerAdapter.execute(HCALInputs.HCALASYNCDISABLE);
1359+
//logger.info("[HCAL LVL2 " + functionManager.FMname + "] EvmTrig FM: TriggerAdapter is in the state="+status+", not sending HCALASYNCDISABLE to TriggerAdapter");
1360+
//functionManager.containerTriggerAdapter.execute(HCALInputs.HCALASYNCDISABLE);
14021361
}
14031362
}
1404-
catch (QualifiedResourceContainerException e) {
1405-
String errMessage = "[HCAL LVL2 " + functionManager.FMname + "] Error! QualifiedResourceContainerException: step 1/2 (TriggerAdapter Disable) failed ...";
1406-
functionManager.goToError(errMessage,e);
1407-
}
1363+
//catch (QualifiedResourceContainerException e) {
1364+
// String errMessage = "[HCAL LVL2 " + functionManager.FMname + "] Error! QualifiedResourceContainerException: step 1/2 (TriggerAdapter Disable) failed ...";
1365+
// functionManager.goToError(errMessage,e);
1366+
//}
14081367
catch (XDAQTimeoutException e) {
14091368
String errMessage = "[HCAL " + functionManager.FMname + "] Error! XDAQTimeoutException: Asking TA status during stopping action";
14101369
functionManager.goToError(errMessage,e);
@@ -1416,8 +1375,8 @@ public void stoppingAction(Object obj) throws UserActionException {
14161375
}
14171376

14181377
// waits for the TriggerAdapter to be in the Ready or Failed state, the timeout is 10s
1419-
logger.info("[HCAL LVL2 " + functionManager.FMname + "] EvmTrig FM: waitForTriggerAdapter to be in state \"Ready\" for up to 10s");
1420-
waitforTriggerAdapter(10);
1378+
//logger.info("[HCAL LVL2 " + functionManager.FMname + "] EvmTrig FM: waitForTriggerAdapter to be in state \"Ready\" for up to 10s");
1379+
//waitforTriggerAdapter(10);
14211380

14221381
}
14231382
else {
@@ -1431,18 +1390,11 @@ public void stoppingAction(Object obj) throws UserActionException {
14311390

14321391
// stop HCAL
14331392
if (!functionManager.containerhcalSupervisor.isEmpty()) {
1434-
1435-
{
1436-
String debugMessage = "[HCAL LVL2 " + functionManager.FMname + "] HCAL supervisor for stopRunning found- good!";
1437-
logger.debug(debugMessage);
1438-
}
1439-
14401393
try {
1441-
14421394
// define stop time
14431395
StopTime = new Date();
14441396

1445-
logger.info("[HCAL LVL2 " + functionManager.FMname + "] Sending AsyncDisable to supervisor");
1397+
logger.info("[HCAL LVL2 " + functionManager.FMname + "] Sending AsyncDisable to supervisor");
14461398
functionManager.containerhcalSupervisor.execute(HCALInputs.HCALASYNCDISABLE);
14471399
}
14481400
catch (QualifiedResourceContainerException e) {

0 commit comments

Comments
 (0)