otsdaq  v2_04_01
RawDataVisualizerConsumer_processor.cc
1 #include "otsdaq-core/DataProcessorPlugins/RawDataVisualizerConsumer.h"
2 
3 #include "otsdaq-core/Macros/CoutMacros.h"
4 #include "otsdaq-core/Macros/ProcessorPluginMacros.h"
5 #include "otsdaq-core/MessageFacility/MessageFacility.h"
6 
7 using namespace ots;
8 
9 //========================================================================================================================
10 RawDataVisualizerConsumer::RawDataVisualizerConsumer(
11  std::string supervisorApplicationUID,
12  std::string bufferUID,
13  std::string processorUID,
14  const ConfigurationTree& theXDAQContextConfigTree,
15  const std::string& configurationPath)
16  : WorkLoop(processorUID)
17  , DataConsumer(supervisorApplicationUID, bufferUID, processorUID, LowConsumerPriority)
18  , Configurable(theXDAQContextConfigTree, configurationPath)
19 {
20 }
21 
22 //========================================================================================================================
23 RawDataVisualizerConsumer::~RawDataVisualizerConsumer(void) {}
24 
25 //========================================================================================================================
26 void RawDataVisualizerConsumer::startProcessingData(std::string runNumber)
27 {
28  DataConsumer::startProcessingData(runNumber);
29 }
30 
31 //========================================================================================================================
32 void RawDataVisualizerConsumer::stopProcessingData(void)
33 {
34  DataConsumer::stopProcessingData();
35 }
36 
37 //========================================================================================================================
38 bool RawDataVisualizerConsumer::workLoopThread(toolbox::task::WorkLoop* workLoop)
39 {
40  __COUT__ << DataProcessor::processorUID_
41  << " running, because workloop: " << WorkLoop::continueWorkLoop_
42  << std::endl;
43  slowRead(); // fastRead();
44  return WorkLoop::continueWorkLoop_;
45 }
46 
47 //========================================================================================================================
48 void RawDataVisualizerConsumer::fastRead(void)
49 {
50  //__COUT__ << processorUID_ << " running!" << std::endl;
51  // This is making a copy!!!
52  if(DataConsumer::read(dataP_, headerP_) < 0)
53  {
54  usleep(100);
55  return;
56  }
57  __COUT__ << DataProcessor::processorUID_ << " UID: " << supervisorApplicationUID_
58  << std::endl;
59 
60  // //HW emulator
61  // // Burst Type | Sequence | 8B data
62  // __COUT__ << "Size fill: " << dataP_->length() << std::endl;
63  // dqmHistos_->fill(*dataP_,*headerP_);
64 
65  DataConsumer::setReadSubBuffer<std::string, std::map<std::string, std::string>>();
66 }
67 
68 //========================================================================================================================
69 void RawDataVisualizerConsumer::slowRead(void)
70 {
71  // This is making a copy!!!
72  if(DataConsumer::read(data_, header_) < 0)
73  {
74  usleep(1000);
75  return;
76  }
77  __MOUT__ << DataProcessor::processorUID_ << " UID: " << supervisorApplicationUID_
78  << std::endl;
79 }
80 
81 DEFINE_OTS_PROCESSOR(RawDataVisualizerConsumer)