Cat
TestI2C.cpp
Go to the documentation of this file.
1 // $Id: TestI2C.cpp,v 1.4 2006/03/16 17:08:23 fmachefe Exp $
2 
3 // Include files
4 #include <ctime>
5 
6 // ROOT include files
7 #include "TRandom.h"
8 #include "TH2D.h"
9 #include "TH1D.h"
10 
11 // local
12 #include "TestI2C.h"
13 
14 //-----------------------------------------------------------------------------
15 // Implementation file for class : TestI2C
16 //
17 // 2004-07-23 : Fr�d�ric Machefert
18 //-----------------------------------------------------------------------------
19 
20 //=============================================================================
21 // Standard constructor, initializes variables
22 //=============================================================================
24 {
25  setName ( "TestI2C" );
26  setType ( "FEB_v1" );
27  setTitle( "I2C interface test" );
28 }
29 
30 //=========================================================================
31 // virtual function intialize
32 //=========================================================================
34  m_board=dynamic_cast<FEB_v1*>( element() );
35 
36  if (!m_board){
37  warning("TestI2C","No FEB_v1 board found. Interrupt." );
38  return false;
39  }
40 
41  m_seqPga = m_board->seqPga();
42  if (!m_seqPga){
43  warning("TestI2C","No SeqPga found. Interrupt." );
44  return false;
45  }
46 
47  m_seqPga->setupReg();
48  m_rnd =new TRandom();
49 
51 
52  addDataStream("Input","Input value");
53  addDataStream("Output","Output value");
54  addDataStream("Errors","Error input value");
55  addDataStream("EventErr","Event Error");
56  return StatusCode::SUCCESS;
57 }
58 
59 //=========================================================================
60 // Virtual function execute
61 //=========================================================================
63  int value = (0xFF)*m_rnd->Uniform();
64  dataFill(0, value);
65  m_seqPga->i2cWrite(m_subadd, value);
66  int tmp = m_seqPga->i2cRead(m_subadd);
67  dataFill(1, tmp);
68  if (tmp!=value){
69  dataFill(2, value);
70  dataFill(3, application()->options()->nEvt());
71  }
72  return StatusCode::SUCCESS;
73 }
74 
75 //=========================================================================
76 // Virtual function finalize
77 //=========================================================================
79  return StatusCode::SUCCESS;
80 }
81 
82 //=========================================================================
83 //
84 //=========================================================================
86  m_add = add;
87 }
88 
89 void TestI2C::setSubAddress(int subadd){
90  m_subadd = subadd;
91 }
TRandom * m_rnd
Definition: TestI2C.h:42
void setAddress(int)
Definition: TestI2C.cpp:85
void add(int attribut)
Definition: Attrib.h:67
virtual StatusCode execute()
Definition: TestI2C.cpp:62
void setName(std::string name)
Definition: Object.h:51
void addDataStream(std::string name, std::string title)
Definition: Processus.h:153
FEB_v1 * m_board
Definition: TestI2C.h:37
Application * application()
Definition: Tools.cpp:42
void setType(std::string type)
Definition: Object.h:52
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
Definition: FEB_v1.h:21
virtual StatusCode initialize()
Destructor.
Definition: TestI2C.cpp:33
StatusCode setI2cAdd(unsigned long int)
Definition: SeqPGA.cpp:482
SeqPGA * m_seqPga
Definition: TestI2C.h:41
int m_add
Definition: TestI2C.h:43
void setTitle(std::string title)
Definition: Object.h:54
int m_subadd
Definition: TestI2C.h:44
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
Register * setupReg()
Definition: SeqPGA.h:91
SeqPGA * seqPga()
Definition: FEB_v1.h:63
void setSubAddress(int)
Definition: TestI2C.cpp:89
Element * element()
Definition: Processus.h:231
StatusCode dataFill(int i, double val)
Definition: Processus.h:175
TestI2C()
Standard constructor.
Definition: TestI2C.cpp:23
void warning(std::string mymsg)
Definition: Object.h:39
virtual StatusCode finalize()
Definition: TestI2C.cpp:78