$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #include "otsdaq-core/DataProcessorPlugins/RawDataVisualizerConsumer.h" 00002 00003 #include "otsdaq-core/Macros/CoutMacros.h" 00004 #include "otsdaq-core/Macros/ProcessorPluginMacros.h" 00005 #include "otsdaq-core/MessageFacility/MessageFacility.h" 00006 00007 using namespace ots; 00008 00009 //======================================================================================================================== 00010 RawDataVisualizerConsumer::RawDataVisualizerConsumer( 00011 std::string supervisorApplicationUID, 00012 std::string bufferUID, 00013 std::string processorUID, 00014 const ConfigurationTree& theXDAQContextConfigTree, 00015 const std::string& configurationPath) 00016 : WorkLoop(processorUID) 00017 , DataConsumer(supervisorApplicationUID, bufferUID, processorUID, LowConsumerPriority) 00018 , Configurable(theXDAQContextConfigTree, configurationPath) 00019 { 00020 } 00021 00022 //======================================================================================================================== 00023 RawDataVisualizerConsumer::~RawDataVisualizerConsumer(void) {} 00024 00025 //======================================================================================================================== 00026 void RawDataVisualizerConsumer::startProcessingData(std::string runNumber) 00027 { 00028 DataConsumer::startProcessingData(runNumber); 00029 } 00030 00031 //======================================================================================================================== 00032 void RawDataVisualizerConsumer::stopProcessingData(void) 00033 { 00034 DataConsumer::stopProcessingData(); 00035 } 00036 00037 //======================================================================================================================== 00038 bool RawDataVisualizerConsumer::workLoopThread(toolbox::task::WorkLoop* workLoop) 00039 { 00040 __COUT__ << DataProcessor::processorUID_ 00041 << " running, because workloop: " << WorkLoop::continueWorkLoop_ 00042 << std::endl; 00043 slowRead(); // fastRead(); 00044 return WorkLoop::continueWorkLoop_; 00045 } 00046 00047 //======================================================================================================================== 00048 void RawDataVisualizerConsumer::fastRead(void) 00049 { 00050 //__COUT__ << processorUID_ << " running!" << std::endl; 00051 // This is making a copy!!! 00052 if(DataConsumer::read(dataP_, headerP_) < 0) 00053 { 00054 usleep(100); 00055 return; 00056 } 00057 __COUT__ << DataProcessor::processorUID_ << " UID: " << supervisorApplicationUID_ 00058 << std::endl; 00059 00060 // //HW emulator 00061 // // Burst Type | Sequence | 8B data 00062 // __COUT__ << "Size fill: " << dataP_->length() << std::endl; 00063 // dqmHistos_->fill(*dataP_,*headerP_); 00064 00065 DataConsumer::setReadSubBuffer<std::string, std::map<std::string, std::string>>(); 00066 } 00067 00068 //======================================================================================================================== 00069 void RawDataVisualizerConsumer::slowRead(void) 00070 { 00071 // This is making a copy!!! 00072 if(DataConsumer::read(data_, header_) < 0) 00073 { 00074 usleep(1000); 00075 return; 00076 } 00077 __MOUT__ << DataProcessor::processorUID_ << " UID: " << supervisorApplicationUID_ 00078 << std::endl; 00079 } 00080 00081 DEFINE_OTS_PROCESSOR(RawDataVisualizerConsumer)