Cat
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
CurrentMeasurement Class Reference

#include <include/CurrentMeasurement.h>

Inheritance diagram for CurrentMeasurement:
Processus Object Attrib

Classes

class  CurrentMeasurement
 

Public Member Functions

 CurrentMeasurement ()
 Standard constructor. More...
 
virtual ~CurrentMeasurement ()
 
virtual StatusCode initialize ()
 Destructor. More...
 
virtual StatusCode execute ()
 
virtual StatusCode finalize ()
 
int numberOfDevices ()
 
StatusCode setFrequency (unsigned int frequency)
 
unsigned int frequency ()
 
- Public Member Functions inherited from Processus
 Processus ()
 Standard constructor. More...
 
virtual ~Processus ()
 Destructor. More...
 
StatusCode startProcessing ()
 
StatusCode endProcessing ()
 
void clean ()
 
void setStorage (std::string storage)
 
Datadata ()
 
std::vector< double > data (unsigned int row)
 
std::vector< double > data (std::string name)
 
Histo1Dhist1d (unsigned int row)
 
Histo2Dhist2d (unsigned int row)
 
void addDataStream (std::string name, std::string title)
 
void addHisto1d (TH1D *h)
 
void addHisto2d (TH2D *h)
 
StatusCode dataFill (int i, double val)
 
StatusCode dataFill (std::string name, double val)
 
std::string storage ()
 
void setElement (Element *element)
 
Elementelement ()
 
void incNErrors ()
 
void setNErrors (unsigned int)
 
unsigned int nErrors ()
 
TFile * rootFile ()
 
void openRootFile ()
 
void closeRootFile ()
 
void startChrono ()
 
void setLogMsg (std::string logMsg)
 
std::string logMsg ()
 
void setState (int state)
 
double elapsedTime ()
 
double elapsedTime (time_t start)
 
- Public Member Functions inherited from Object
 Object ()
 Standard constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string name () const
 
std::string type ()
 
unsigned char id ()
 
std::string title ()
 
void msgSvc (int level, std::string msg, std::string name)
 
void msg (std::string mymsg)
 
void verbose (std::string mymsg)
 
void debug (std::string mymsg)
 
void info (std::string mymsg)
 
void warning (std::string mymsg)
 
void error (std::string mymsg)
 
void fatal (std::string mymsg)
 
void msg (std::string mymsg, std::string name)
 
void verbose (std::string mymsg, std::string name)
 
void debug (std::string mymsg, std::string name)
 
void info (std::string mymsg, std::string name)
 
void warning (std::string mymsg, std::string name)
 
void error (std::string mymsg, std::string name)
 
void fatal (std::string mymsg, std::string name)
 
void setName (std::string name)
 
void setType (std::string type)
 
void setId (unsigned char id)
 
void setTitle (std::string title)
 
void setDllName (std::string dllName)
 
std::string dllName ()
 
- Public Member Functions inherited from Attrib
 Attrib ()
 Standard constructor. More...
 
virtual ~Attrib ()
 Destructor. More...
 
bool is (int attribut)
 
void add (int attribut)
 
void remove (int attribut)
 
std::string attributs ()
 

Protected Member Functions

CurrentMeasurementclone ()
 

Private Attributes

TRandom * m_rnd
 
unsigned int m_frequency
 
NI6008m_device
 
unsigned int m_numberOfDevices
 
TTree * m_tree
 
Int_t m_runNumber
 
Int_t m_evtNumber
 
Int_t m_timestamp [4]
 
Int_t m_duration [4]
 
time_t m_startTime
 
double m_ai0 [4]
 
double m_ai1 [4]
 
double m_ai2 [4]
 
double m_ai3 [4]
 

Additional Inherited Members

- Public Types inherited from Processus
enum  states { ERR =-1, NOT_OK, OK }
 
- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 
- Protected Attributes inherited from Processus
Elementm_element
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Detailed Description

Author
Frederic Machefert
Date
2010-01-07

Definition at line 23 of file CurrentMeasurement.h.

Constructor & Destructor Documentation

◆ CurrentMeasurement()

Standard constructor.

Definition at line 26 of file CurrentMeasurement.cpp.

References m_device, Object::setName(), Object::setTitle(), and Object::setType().

Referenced by clone().

26  {
27  setName ( "CurrentMeasurement" );
28  setType ( "NI6008" );
29  setTitle( "NI6008 current measurement" );
30  m_device = 0;
31 }
void setName(std::string name)
Definition: Object.h:51
void setType(std::string type)
Definition: Object.h:52
void setTitle(std::string title)
Definition: Object.h:54

◆ ~CurrentMeasurement()

virtual CurrentMeasurement::~CurrentMeasurement ( )
inlinevirtual

Definition at line 28 of file CurrentMeasurement.h.

References execute(), finalize(), and initialize().

28 {};

Member Function Documentation

◆ clone()

CurrentMeasurement* CurrentMeasurement::clone ( )
inlineprotectedvirtual

processus termination virtual function

Implements Processus.

Definition at line 67 of file CurrentMeasurement.h.

References CurrentMeasurement().

67  {
68  return new CurrentMeasurement (*this);
69  };
CurrentMeasurement()
Standard constructor.

◆ execute()

StatusCode CurrentMeasurement::execute ( )
virtual

processus execution virtual function

Implements Processus.

Definition at line 75 of file CurrentMeasurement.cpp.

References application(), NI6008::cmd(), Processus::dataFill(), NI6008::device(), m_ai0, m_ai1, m_ai2, m_ai3, m_device, m_duration, m_evtNumber, m_frequency, m_startTime, m_timestamp, m_tree, Options::nEvt(), NI6008::numberOfDevices(), Application::options(), StatusCode::SUCCESS, and wait().

Referenced by ~CurrentMeasurement().

75  {
76  for (int i = 0; i<m_device->numberOfDevices(); ++i){
77  std::string dev = m_device->device(i);
78  std::string val = m_device->cmd(dev, "ai");
79  std::istringstream splitval(val);
80  std::string v0, v1, v2, v3;
81  splitval >> v0;
82  splitval >> v1;
83  splitval >> v2;
84  splitval >> v3;
85  // m_ai0[i]=toDouble(v0);
86  // m_ai1[i]=toDouble(v1);
87  // m_ai2[i]=toDouble(v2);
88  // m_ai3[i]=toDouble(v3);
89  m_ai0[i]=atof(v0.c_str());
90  m_ai1[i]=atof(v1.c_str());
91  m_ai2[i]=atof(v2.c_str());
92  m_ai3[i]=atof(v3.c_str());
93  time_t t = time(0);
94  m_timestamp[i]=t;
95  m_duration[i]=difftime(t, m_startTime);
96  dataFill(0+5*i, m_duration[i]);
97  dataFill(1+5*i, m_ai0[i]);
98  dataFill(2+5*i, m_ai1[i]);
99  dataFill(3+5*i, m_ai2[i]);
100  dataFill(4+5*i, m_ai3[i]);
101  }
102  if (application()->options()->dataStorage()){
104  m_tree->Fill();
105  }
106  wait(m_frequency);
107  return StatusCode::SUCCESS;
108 }
unsigned long nEvt()
Definition: Options.h:317
unsigned int m_frequency
std::string device(unsigned int dev)
Definition: NI6008.h:120
Application * application()
Definition: Tools.cpp:42
Options * options()
Definition: Application.h:86
std::string cmd(std::string, std::string)
Definition: NI6008.cpp:38
unsigned int numberOfDevices()
Definition: NI6008.h:133
StatusCode dataFill(int i, double val)
Definition: Processus.h:175
void wait(int nbr_ms)
Definition: Tools.cpp:271

◆ finalize()

StatusCode CurrentMeasurement::finalize ( )
virtual

processus termination virtual function

Implements Processus.

Definition at line 113 of file CurrentMeasurement.cpp.

References StatusCode::SUCCESS.

Referenced by ~CurrentMeasurement().

113  {
114  // if (application()->options()->dataStorage()){
115  // m_tree->Print();
116  // }
117  return StatusCode::SUCCESS;
118 }

◆ frequency()

unsigned int CurrentMeasurement::frequency ( )
inline

Definition at line 62 of file CurrentMeasurement.h.

References m_frequency.

Referenced by BOOST_PYTHON_MODULE(), and setFrequency().

62  {
63  return m_frequency;
64  }
unsigned int m_frequency

◆ initialize()

StatusCode CurrentMeasurement::initialize ( )
virtual

Destructor.

Implements Processus.

Definition at line 36 of file CurrentMeasurement.cpp.

References Processus::addDataStream(), application(), NI6008::device(), Processus::element(), Object::info(), itos(), m_ai0, m_ai1, m_ai2, m_ai3, m_device, m_duration, m_evtNumber, m_numberOfDevices, m_runNumber, m_startTime, m_timestamp, m_tree, Object::name(), NI6008::numberOfDevices(), Application::options(), Options::runNumber(), StatusCode::SUCCESS, and Object::title().

Referenced by ~CurrentMeasurement().

36  {
37  m_device = dynamic_cast <NI6008*> (element());
39  time(&m_startTime);
40  if (application()->options()->dataStorage()){
41  m_tree = new TTree(name().c_str(), title().c_str());
42  m_tree->Branch("Run",&m_runNumber,"Run/I");
43  m_tree->Branch("Event",&m_evtNumber,"Event/I");
44  m_tree->Branch("Time",m_timestamp,(std::string("Time[")+
46  std::string("]/I")).c_str());
47  m_tree->Branch("Duration",m_duration,(std::string("Duration[")+
49  std::string("]/I")).c_str());
50  m_tree->Branch("ai0",m_ai0,
51  (std::string("ai0[")+itos(m_device->numberOfDevices())+std::string("]/D")).c_str());
52  m_tree->Branch("ai1",m_ai1,
53  (std::string("ai1[")+itos(m_device->numberOfDevices())+std::string("]/D")).c_str());
54  m_tree->Branch("ai2",m_ai2,
55  (std::string("ai2[")+itos(m_device->numberOfDevices())+std::string("]/D")).c_str());
56  m_tree->Branch("ai3",m_ai3,
57  (std::string("ai3[")+itos(m_device->numberOfDevices())+std::string("]/D")).c_str());
58  }
59  for (int i = 0; i<m_device->numberOfDevices(); ++i){
60  std::string dev = m_device->device(i);
61  info("Preparing dataStream for device "+dev);
62  addDataStream((dev+std::string(":Duration")).c_str(),"Duration");
63  addDataStream((dev+std::string(":ai0")).c_str(),"Channel 0");
64  addDataStream((dev+std::string(":ai1")).c_str(),"Channel 1");
65  addDataStream((dev+std::string(":ai2")).c_str(),"Channel 2");
66  addDataStream((dev+std::string(":ai3")).c_str(),"Channel 3");
67  }
69  return StatusCode::SUCCESS;
70 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
std::string device(unsigned int dev)
Definition: NI6008.h:120
std::string title()
Definition: Object.h:31
void addDataStream(std::string name, std::string title)
Definition: Processus.h:153
unsigned long runNumber()
Definition: Options.h:107
Application * application()
Definition: Tools.cpp:42
Options * options()
Definition: Application.h:86
unsigned int m_numberOfDevices
unsigned int numberOfDevices()
Definition: NI6008.h:133
std::string name() const
Definition: Object.h:28
Element * element()
Definition: Processus.h:231
Definition: NI6008.h:26

◆ numberOfDevices()

int CurrentMeasurement::numberOfDevices ( )
inline

Definition at line 53 of file CurrentMeasurement.h.

References m_numberOfDevices.

Referenced by BOOST_PYTHON_MODULE(), createPlot(), and updatePlot().

53  {
54  return m_numberOfDevices;
55  }
unsigned int m_numberOfDevices

◆ setFrequency()

StatusCode CurrentMeasurement::setFrequency ( unsigned int  frequency)
inline

Definition at line 57 of file CurrentMeasurement.h.

References frequency(), m_frequency, and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE().

57  {
59  return StatusCode::SUCCESS;
60  }
unsigned int m_frequency
unsigned int frequency()

Member Data Documentation

◆ m_ai0

double CurrentMeasurement::m_ai0[4]
private

Definition at line 82 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_ai1

double CurrentMeasurement::m_ai1[4]
private

Definition at line 83 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_ai2

double CurrentMeasurement::m_ai2[4]
private

Definition at line 84 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_ai3

double CurrentMeasurement::m_ai3[4]
private

Definition at line 85 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_device

NI6008* CurrentMeasurement::m_device
private

Definition at line 74 of file CurrentMeasurement.h.

Referenced by CurrentMeasurement(), execute(), and initialize().

◆ m_duration

Int_t CurrentMeasurement::m_duration[4]
private

Definition at line 80 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_evtNumber

Int_t CurrentMeasurement::m_evtNumber
private

Definition at line 78 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_frequency

unsigned int CurrentMeasurement::m_frequency
private

Definition at line 73 of file CurrentMeasurement.h.

Referenced by execute(), frequency(), and setFrequency().

◆ m_numberOfDevices

unsigned int CurrentMeasurement::m_numberOfDevices
private

Definition at line 75 of file CurrentMeasurement.h.

Referenced by initialize(), and numberOfDevices().

◆ m_rnd

TRandom* CurrentMeasurement::m_rnd
private

Definition at line 69 of file CurrentMeasurement.h.

◆ m_runNumber

Int_t CurrentMeasurement::m_runNumber
private

Definition at line 77 of file CurrentMeasurement.h.

Referenced by initialize().

◆ m_startTime

time_t CurrentMeasurement::m_startTime
private

Definition at line 81 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_timestamp

Int_t CurrentMeasurement::m_timestamp[4]
private

Definition at line 79 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().

◆ m_tree

TTree* CurrentMeasurement::m_tree
private

Definition at line 76 of file CurrentMeasurement.h.

Referenced by execute(), and initialize().


The documentation for this class was generated from the following files: