Author: [log in to unmask]
Date: Thu Mar 19 10:44:12 2015
New Revision: 2492
Log:
Work in progress in monitoring dev branch.
Added:
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/PreStartProcessor.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java
Modified:
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java Thu Mar 19 10:44:12 2015
@@ -16,8 +16,9 @@
import org.hps.monitoring.application.model.SteeringType;
import org.hps.monitoring.application.util.EtSystemUtil;
import org.hps.monitoring.application.util.PhysicsSyncEventStation;
-import org.hps.monitoring.application.util.PreStartEtStation;
+import org.hps.monitoring.application.util.PreStartProcessor;
import org.hps.monitoring.application.util.RunnableEtStation;
+import org.hps.monitoring.application.util.SyncEventProcessor;
import org.hps.monitoring.subsys.et.EtSystemMonitor;
import org.hps.monitoring.subsys.et.EtSystemStripCharts;
import org.hps.record.LCSimEventBuilder;
@@ -27,8 +28,9 @@
import org.hps.record.composite.EventProcessingThread;
import org.hps.record.enums.DataSourceType;
import org.hps.record.et.EtConnection;
+import org.hps.record.et.EtEventProcessor;
+import org.hps.record.et.EtStationThread;
import org.hps.record.evio.EvioDetectorConditionsProcessor;
-import org.jlab.coda.et.EtSystem;
import org.jlab.coda.et.exception.EtClosedException;
import org.jlab.coda.et.exception.EtException;
import org.lcsim.conditions.ConditionsListener;
@@ -44,6 +46,8 @@
*/
class EventProcessing {
+ // TODO: Move rest of variables to SessionState class.
+
MonitoringApplication application;
Logger logger;
SessionState sessionState;
@@ -557,6 +561,7 @@
/**
* Create the ET station that listens for GO events in order to initialize the conditions system.
*/
+ /*
private void createPreStartStation() {
logger.fine("creating PRESTART station ...");
String detectorName = this.application.configurationModel.getDetectorName();
@@ -572,6 +577,30 @@
new Thread(sessionState.stationThreadGroup, preStartStation).start();
logger.fine("PRESTART station created");
}
+ */
+
+ private void createSyncStation() {
+ createStationThread(
+ new SyncEventProcessor(),
+ "_SYNC",
+ 1);
+ }
+
+ private void createPreStartStation() {
+ createStationThread(
+ new PreStartProcessor(this.application.configurationModel.getDetectorName()),
+ "_PRESTART",
+ 1);
+ }
+
+ private void createStationThread(EtEventProcessor processor, String nameAppend, int stationPosition) {
+ EtStationThread thread = new EtStationThread(
+ processor,
+ sessionState.connection.getEtSystem(),
+ sessionState.connection.getEtStation().getName() + nameAppend,
+ stationPosition);
+ new Thread(sessionState.stationThreadGroup, thread).start();
+ }
/**
* Disconnect from the current ET session.
Added: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/PreStartProcessor.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/PreStartProcessor.java (added)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/PreStartProcessor.java Thu Mar 19 10:44:12 2015
@@ -0,0 +1,34 @@
+package org.hps.monitoring.application.util;
+
+import java.io.IOException;
+
+import org.hps.record.et.EtEventProcessor;
+import org.hps.record.evio.EvioDetectorConditionsProcessor;
+import org.jlab.coda.et.EtEvent;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.jlab.coda.jevio.EvioReader;
+
+/**
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class PreStartProcessor extends EtEventProcessor {
+
+ String detectorName;
+ EvioDetectorConditionsProcessor conditionsProcessor;
+
+ public PreStartProcessor(String detectorName) {
+ this.detectorName = detectorName;
+ this.conditionsProcessor = new EvioDetectorConditionsProcessor(detectorName);
+ }
+
+ public void process(EtEvent event) {
+ EvioEvent evioEvent = null;
+ try {
+ evioEvent = new EvioReader(event.getDataBuffer()).parseNextEvent();
+ conditionsProcessor.startRun(evioEvent);
+ } catch (IOException | EvioException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
Added: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java (added)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java Thu Mar 19 10:44:12 2015
@@ -0,0 +1,49 @@
+package org.hps.monitoring.application.util;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.hps.evio.TriggerConfigEvioReader;
+import org.hps.recon.ecal.daqconfig.ConfigurationManager;
+import org.hps.recon.ecal.daqconfig.EvioDAQParser;
+import org.hps.record.et.EtEventProcessor;
+import org.jlab.coda.et.EtEvent;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.jlab.coda.jevio.EvioReader;
+import org.lcsim.event.base.BaseLCSimEvent;
+
+/**
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class SyncEventProcessor extends EtEventProcessor {
+
+ private static final String TRIGGER_CONFIG = "TriggerConfig";
+ TriggerConfigEvioReader configReader = new TriggerConfigEvioReader();
+
+ public void process(EtEvent event) {
+ EvioEvent evioEvent = null;
+ try {
+ evioEvent = new EvioReader(event.getDataBuffer()).parseNextEvent();
+ } catch (IOException | EvioException e) {
+ throw new RuntimeException(e);
+ }
+ //System.out.println("dumping EVIO event ...");
+ //System.out.println(evioEvent.toXML());
+ try {
+ BaseLCSimEvent lcsimEvent = new BaseLCSimEvent(9999, 9999, "dummy", 0, false);
+ configReader.getDAQConfig(evioEvent, lcsimEvent);
+ if (lcsimEvent.hasCollection(EvioDAQParser.class, TRIGGER_CONFIG)) {
+ List<EvioDAQParser> configList = lcsimEvent.get(EvioDAQParser.class, TRIGGER_CONFIG);
+ if (!configList.isEmpty()) {
+ ConfigurationManager.updateConfiguration(configList.get(0));
+ }
+ }
+ } catch (Exception e) {
+ System.err.println("Failed to load DAQ config from sync event ...");
+ e.printStackTrace();
+ }
+ }
+
+}
|