DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
WIBBase.hh
Go to the documentation of this file.
1#ifndef __WIBBASE_HH__
2#define __WIBBASE_HH__
3
4#include <string>
5#include <stdint.h>
6
8
9#define FEMB_COUNT 4
10
11class WIBBase {
12public:
13 WIBBase(std::string const & address, std::string const & WIBAddressTable, std::string const & FEMBAddressTable);
14 ~WIBBase();
15
16 std::string GetAddress();
17
18 uint32_t Read(uint16_t address);
19 uint32_t ReadWithRetry(uint16_t address);
20 uint32_t Read(std::string const & address);
21 uint32_t ReadWithRetry(std::string const & address);
22 void Write(uint16_t address,uint32_t value);
23 void WriteWithRetry(uint16_t address,uint32_t value);
24 void Write(std::string const & address,uint32_t value);
25 void WriteWithRetry(std::string const & address,uint32_t value);
26 void Write(uint16_t address,std::vector<uint32_t> const & values);
27 void Write(std::string const & address,std::vector<uint32_t> const & values);
28 void Write(uint16_t address,uint32_t const * values,size_t word_count);
29 void Write(std::string const & address,uint32_t const * values,size_t word_count);
30
31
32 uint32_t ReadI2C(std::string const & base_address,uint16_t I2C_aaddress, uint8_t byte_count=4);
33 void WriteI2C(std::string const & base_address,uint16_t I2C_address, uint32_t data, uint8_t byte_count=4,bool ignore_error = false);
34
35 std::vector<std::string> GetNames(std::string const & regex){
36 return wib->GetNames(regex);
37 }
38 std::vector<std::string> GetFEMBNames(std::string const & regex){
39 return FEMB[0]->GetNames(regex);
40 }
41 std::vector<std::string> GetAddresses(uint16_t lower,uint16_t upper){
42 return wib->GetAddresses(lower,upper);
43 }
44 std::vector<std::string> GetFEMBAddresses(uint16_t lower,uint16_t upper){
45 return FEMB[0]->GetAddresses(lower,upper);
46 }
47 std::vector<std::string> GetTableNames(std::string const & regex){
48 return wib->GetTables(regex);
49 }
50
51 std::vector<Item const *> GetTagged(std::string const & tag) {
52 return wib->GetTagged(tag);
53 }
54
55 std::vector<Item const *> GetFEMBTagged(std::string const & tag) {
56 return FEMB[0]->GetTagged(tag);
57 }
58
59
60 uint32_t ReadFEMB(int iFEMB, uint16_t address);
61 uint32_t ReadFEMB(int iFEMB, std::string const & address);
62 void WriteFEMB(int iFEMB, uint16_t address, uint32_t value);
63 void WriteFEMB(int iFEMB, std::string const & address, uint32_t value);
64 void WriteFEMBBits(int iFEMB, uint16_t address, uint32_t pos, uint32_t mask, uint32_t value);
65 void EnableADC(uint64_t iFEMB, uint64_t enable);
66
67 Item const * GetItem(std::string const &);
68 Item const * GetFEMBItem(int iFEMB,std::string const &);
69
70 int GetSVNVersion(){return Version;}
71private:
72 WIBBase(); //disallow the default constructor
73 // Prevent copying of WIB objects
74 WIBBase( const WIBBase& other) ; // prevents construction-copy
75 WIBBase& operator=( const WIBBase&) ; // prevents copying
76
79 static const int Version; //SVN version
80 const float FEMBReadSleepTime;
81 const float FEMBWriteSleepTime;
82};
83#endif
#define FEMB_COUNT
Definition WIBBase.hh:9
std::vector< std::string > GetAddresses(uint16_t lower, uint16_t upper)
std::vector< std::string > GetNames()
std::vector< Item const * > GetTagged(std::string const &tag)
WIBBase(const WIBBase &other)
~WIBBase()
Definition WIBBase.cpp:20
AddressTable * wib
Definition WIBBase.hh:77
int GetSVNVersion()
Definition WIBBase.hh:70
std::string GetAddress()
Definition WIBBase.cpp:34
std::vector< std::string > GetAddresses(uint16_t lower, uint16_t upper)
Definition WIBBase.hh:41
static const int Version
Definition WIBBase.hh:79
AddressTable * FEMB[FEMB_COUNT]
Definition WIBBase.hh:78
void WriteWithRetry(uint16_t address, uint32_t value)
Definition WIBBase.cpp:129
void WriteFEMBBits(int iFEMB, uint16_t address, uint32_t pos, uint32_t mask, uint32_t value)
Definition WIBBase.cpp:193
uint32_t ReadWithRetry(uint16_t address)
Definition WIBBase.cpp:116
Item const * GetItem(std::string const &)
Definition WIBBase.cpp:103
std::vector< std::string > GetFEMBNames(std::string const &regex)
Definition WIBBase.hh:38
std::vector< std::string > GetTableNames(std::string const &regex)
Definition WIBBase.hh:47
void WriteI2C(std::string const &base_address, uint16_t I2C_address, uint32_t data, uint8_t byte_count=4, bool ignore_error=false)
Definition WIBBase.cpp:69
std::vector< std::string > GetFEMBAddresses(uint16_t lower, uint16_t upper)
Definition WIBBase.hh:44
const float FEMBWriteSleepTime
Definition WIBBase.hh:81
void WriteFEMB(int iFEMB, uint16_t address, uint32_t value)
Definition WIBBase.cpp:174
Item const * GetFEMBItem(int iFEMB, std::string const &)
Definition WIBBase.cpp:107
uint32_t Read(uint16_t address)
Definition WIBBase.cpp:119
uint32_t ReadI2C(std::string const &base_address, uint16_t I2C_aaddress, uint8_t byte_count=4)
Definition WIBBase.cpp:39
void Write(uint16_t address, uint32_t value)
Definition WIBBase.cpp:132
std::vector< Item const * > GetFEMBTagged(std::string const &tag)
Definition WIBBase.hh:55
uint32_t ReadFEMB(int iFEMB, uint16_t address)
Definition WIBBase.cpp:155
std::vector< Item const * > GetTagged(std::string const &tag)
Definition WIBBase.hh:51
std::vector< std::string > GetNames(std::string const &regex)
Definition WIBBase.hh:35
void EnableADC(uint64_t iFEMB, uint64_t enable)
Definition WIBBase.cpp:209
const float FEMBReadSleepTime
Definition WIBBase.hh:80
WIBBase & operator=(const WIBBase &)
Definition wib.pb.cc:23