Cat
Public Member Functions | Private Attributes | List of all members
SpecsMaster Class Reference

#include <SpecsMaster.h>

Inheritance diagram for SpecsMaster:
Element Hierarchy Object Attrib

Public Member Functions

 SpecsMaster ()
 
 ~SpecsMaster ()
 
void setPciDevID (unsigned char pciDevID)
 
unsigned char pciDevID ()
 
void setMasterDevID (unsigned char masterDevID)
 
unsigned char masterDevID ()
 
SpecsMasterspecsMaster ()
 
SPECSMASTER * specsMasterDevice ()
 
void help ()
 
StatusCode init ()
 
void reset ()
 
void setSpeed (unsigned char)
 
unsigned char speed ()
 
void update ()
 
- Public Member Functions inherited from Element
 Element ()
 Standard constructor. More...
 
virtual ~Element ()
 Destructor. More...
 
void recursiveInitElement ()
 
void recursiveInitCommunications ()
 
StatusCode setConnection (Hierarchy *)
 
Hierarchyconnection ()
 
- Public Member Functions inherited from Hierarchy
 Hierarchy ()
 Standard constructor. More...
 
virtual ~Hierarchy ()
 Destructor. More...
 
void clear ()
 
void setParent (Hierarchy *parent)
 
Hierarchyparent ()
 
Hierarchyparent (std::string)
 
Hierarchyorigin ()
 
virtual void addChild (Hierarchy *element)
 
std::vector< Hierarchy * > children ()
 
Hierarchychild (std::string)
 
HierarchychildTyped (std::string)
 
unsigned long numberOfChildren ()
 
bool hasChildren ()
 
void delChild (Hierarchy *)
 
void delChild (std::string)
 
std::string path (std::string=std::string(""))
 
std::string pathTyped (std::string=std::string(""))
 
void tree (std::string indent=std::string(""))
 
void tree ()
 
- 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 ()
 

Private Attributes

unsigned char m_pciDevID
 
unsigned char m_masterDevID
 
unsigned char m_speed
 
bool m_specsMasterOpen
 
SPECSMASTER m_specsMaster
 

Additional Inherited Members

- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 
- Protected Attributes inherited from Element
Hierarchym_connection
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Detailed Description

Definition at line 25 of file SpecsMaster.h.

Constructor & Destructor Documentation

◆ SpecsMaster()

SpecsMaster::SpecsMaster ( )

Definition at line 21 of file SpecsMaster.cpp.

References Attrib::add(), Object::debug(), Attrib::ELEMENT, Attrib::HARDWARE, m_specsMasterOpen, m_speed, Object::setId(), setMasterDevID(), Object::setName(), setPciDevID(), and Object::setType().

21  {
22  setPciDevID(1);
23  setMasterDevID(1);
24  setName("SpecsMaster");
25  setType("SpecsMaster");
26  setId(0);
27  m_speed=0;
28  m_specsMasterOpen = false;
30  debug("SpecsMaster built.","SpecsMaster::SpecsMaster");
31 }
unsigned char m_speed
Definition: SpecsMaster.h:71
void add(int attribut)
Definition: Attrib.h:67
void setName(std::string name)
Definition: Object.h:51
void setType(std::string type)
Definition: Object.h:52
bool m_specsMasterOpen
Definition: SpecsMaster.h:72
void setId(unsigned char id)
Definition: Object.h:53
void debug(std::string mymsg)
Definition: Object.h:37
void setMasterDevID(unsigned char masterDevID)
Definition: SpecsMaster.h:38
void setPciDevID(unsigned char pciDevID)
Definition: SpecsMaster.h:30

◆ ~SpecsMaster()

SpecsMaster::~SpecsMaster ( )

Definition at line 36 of file SpecsMaster.cpp.

References m_specsMaster, and m_specsMasterOpen.

36  {
37 #ifndef _NODEVICE_
38  if (m_specsMasterOpen) specs_master_close ( &m_specsMaster );
39  m_specsMasterOpen = false;
40 #endif
41 }
bool m_specsMasterOpen
Definition: SpecsMaster.h:72
SPECSMASTER m_specsMaster
Definition: SpecsMaster.h:74

Member Function Documentation

◆ help()

void SpecsMaster::help ( )
virtual

printout help for the element

Implements Element.

Definition at line 62 of file SpecsMaster.cpp.

References Object::info().

Referenced by BOOST_PYTHON_MODULE(), and masterDevID().

62  {
63  info("Specs Slave SpecsElement help","SpecsMaster::help");
64 }
void info(std::string mymsg)
Definition: Object.h:38

◆ init()

StatusCode SpecsMaster::init ( )
virtual

init the component

Returns
void

Implements Element.

Definition at line 69 of file SpecsMaster.cpp.

References Object::debug(), Object::error(), StatusCode::FAILURE, Object::info(), itos(), m_masterDevID, m_pciDevID, m_specsMaster, m_specsMasterOpen, Object::name(), reset(), and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), and masterDevID().

69  {
70 #ifndef _NODEVICE_
71  DEVICE_INVENT DeviceList[MAX_CARD];
72  U8 DevIndex;
73  // List all cards connected to the PC
74  DevIndex = specs_master_card_select(DeviceList);
75  info("Number of devices connected : " + itos (DevIndex),"SpecsMaster::initSpecs");
76 
77  if (m_pciDevID > DevIndex){
78  error("The requested device [" + itos(m_pciDevID) +
79  "] doesn't exist.\n" + itos(DevIndex) + " boards are seen.",
80  "SpecsMaster::initSpecs");
81  return StatusCode::FAILURE;
82  }
83 
84  if (specs_master_open(DeviceList[m_pciDevID-1],
86  &m_specsMaster) == SpecsSuccess) {
87  info("Init SpecsMaster ["+itos(m_masterDevID)+"] on device "+itos(m_pciDevID),
88  "SpecsMaster::initSpecs"
89  );
90  m_specsMasterOpen = true;
91  reset();
92  }
93  else {
94  error("Cannot Initialize correctly the SpecsMaster "+name()+
95  " - Abort execution",
96  "SpecsMaster::initSpecs");
97  return StatusCode::FAILURE;
98  }
99 
100 #else
101  debug("PciDevID = "+itos(m_pciDevID),"SpecsMaster::initSpecs");
102  debug("MasterDevID = "+itos(m_masterDevID),"SpecsMaster::initSpecs");
103  debug("Compilation in the _NODEVICE_ mode. ","SpecsMaster::initSpecs");
104 #endif
105 
106  reset();
107  return StatusCode::SUCCESS;
108 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
bool m_specsMasterOpen
Definition: SpecsMaster.h:72
unsigned char U8
Definition: ICECALv3.h:55
void error(std::string mymsg)
Definition: Object.h:40
void debug(std::string mymsg)
Definition: Object.h:37
SPECSMASTER m_specsMaster
Definition: SpecsMaster.h:74
unsigned char m_pciDevID
Definition: SpecsMaster.h:69
std::string name() const
Definition: Object.h:28
unsigned char m_masterDevID
Definition: SpecsMaster.h:70

◆ masterDevID()

unsigned char SpecsMaster::masterDevID ( )
inline

Definition at line 42 of file SpecsMaster.h.

References help(), init(), m_masterDevID, reset(), setSpeed(), specsMaster(), and specsMasterDevice().

Referenced by BOOST_PYTHON_MODULE(), and setMasterDevID().

42  {
43  return m_masterDevID;
44  }
unsigned char m_masterDevID
Definition: SpecsMaster.h:70

◆ pciDevID()

unsigned char SpecsMaster::pciDevID ( )
inline

Definition at line 34 of file SpecsMaster.h.

References m_pciDevID.

Referenced by BOOST_PYTHON_MODULE(), and setPciDevID().

34  {
35  return m_pciDevID;
36  }
unsigned char m_pciDevID
Definition: SpecsMaster.h:69

◆ reset()

void SpecsMaster::reset ( )
virtual

Resets the Element so that is is in a standard and safe situation. Different from Element::init which configure the Element. Element::reset() is more an Emergency pull. It is often/usually called by the recursiveInitElement method at the start of the program.

Implements Element.

Definition at line 130 of file SpecsMaster.cpp.

References Object::debug(), Object::info(), itos(), m_specsMaster, m_speed, Object::name(), setSpeed(), and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), SpecsSlave::detect(), init(), and masterDevID().

130  {
131 #ifndef _NODEVICE_
132  SpecsError status = specs_master_reset ( &m_specsMaster );
133  if (0!=status){
134  warning("SpecsMaster " + name() + " : reset failed [code=" + itos(status) + "]","reset");
135  }
136  else {
137  info("Reset SpecsMaster "+name()+".","SpecsMaster::reset");
138  }
139 #else
140  debug("Compilation in the _NODEVICE_ mode.","SpecsMaster::reset");
141 #endif
142  setSpeed(m_speed);
143 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
unsigned char m_speed
Definition: SpecsMaster.h:71
void debug(std::string mymsg)
Definition: Object.h:37
void setSpeed(unsigned char)
SPECSMASTER m_specsMaster
Definition: SpecsMaster.h:74
std::string name() const
Definition: Object.h:28
void warning(std::string mymsg)
Definition: Object.h:39

◆ setMasterDevID()

void SpecsMaster::setMasterDevID ( unsigned char  masterDevID)
inline

Definition at line 38 of file SpecsMaster.h.

References m_masterDevID, and masterDevID().

Referenced by BOOST_PYTHON_MODULE(), and SpecsMaster().

38  {
40  }
unsigned char masterDevID()
Definition: SpecsMaster.h:42
unsigned char m_masterDevID
Definition: SpecsMaster.h:70

◆ setPciDevID()

void SpecsMaster::setPciDevID ( unsigned char  pciDevID)
inline

Definition at line 30 of file SpecsMaster.h.

References m_pciDevID, and pciDevID().

Referenced by BOOST_PYTHON_MODULE(), and SpecsMaster().

30  {
32  }
unsigned char m_pciDevID
Definition: SpecsMaster.h:69
unsigned char pciDevID()
Definition: SpecsMaster.h:34

◆ setSpeed()

void SpecsMaster::setSpeed ( unsigned char  speed)

Definition at line 149 of file SpecsMaster.cpp.

References Object::debug(), itos(), m_specsMaster, m_speed, Object::name(), speed(), and Object::warning().

Referenced by BOOST_PYTHON_MODULE(), masterDevID(), and reset().

149  {
150  m_speed=speed;
151  if ( 3 != speed ){
152  warning("Having a speed higher than 3 may cause problem.",
153  "SpecsMaster::setSpeed");
154  }
155  debug("SpecsMaster "+name()+" : Speed Reduction -> 2^"+itos(m_speed),"SpecsMaster::setSpeed");
156 #ifndef _NODEVICE_
157  // unsigned int value ;
158  // value = ( ( m_speed ) & 0x7 ) ;
159  SpecsmasterCtrlWrite(&m_specsMaster,m_speed);
160 #endif
161 }
std::string itos(int)
Definition: Tools.cpp:46
unsigned char m_speed
Definition: SpecsMaster.h:71
void debug(std::string mymsg)
Definition: Object.h:37
SPECSMASTER m_specsMaster
Definition: SpecsMaster.h:74
unsigned char speed()
Definition: SpecsMaster.h:64
std::string name() const
Definition: Object.h:28
void warning(std::string mymsg)
Definition: Object.h:39

◆ specsMaster()

SpecsMaster * SpecsMaster::specsMaster ( )

Definition at line 46 of file SpecsMaster.cpp.

Referenced by masterDevID().

46  {
47  return this;
48 }

◆ specsMasterDevice()

SPECSMASTER * SpecsMaster::specsMasterDevice ( )

Definition at line 54 of file SpecsMaster.cpp.

References m_specsMaster.

Referenced by masterDevID().

54  {
55  return &m_specsMaster;
56 }
SPECSMASTER m_specsMaster
Definition: SpecsMaster.h:74

◆ speed()

unsigned char SpecsMaster::speed ( )
inline

Definition at line 64 of file SpecsMaster.h.

References m_speed.

Referenced by BOOST_PYTHON_MODULE(), and setSpeed().

64 { return m_speed; }
unsigned char m_speed
Definition: SpecsMaster.h:71

◆ update()

void SpecsMaster::update ( )
inlinevirtual

Update the Element configuration from the actual hardware

Implements Element.

Definition at line 66 of file SpecsMaster.h.

Referenced by BOOST_PYTHON_MODULE().

66 { }

Member Data Documentation

◆ m_masterDevID

unsigned char SpecsMaster::m_masterDevID
private

Definition at line 70 of file SpecsMaster.h.

Referenced by init(), masterDevID(), and setMasterDevID().

◆ m_pciDevID

unsigned char SpecsMaster::m_pciDevID
private

Definition at line 69 of file SpecsMaster.h.

Referenced by init(), pciDevID(), and setPciDevID().

◆ m_specsMaster

SPECSMASTER SpecsMaster::m_specsMaster
private

Definition at line 74 of file SpecsMaster.h.

Referenced by init(), reset(), setSpeed(), specsMasterDevice(), and ~SpecsMaster().

◆ m_specsMasterOpen

bool SpecsMaster::m_specsMasterOpen
private

Definition at line 72 of file SpecsMaster.h.

Referenced by init(), SpecsMaster(), and ~SpecsMaster().

◆ m_speed

unsigned char SpecsMaster::m_speed
private

Definition at line 71 of file SpecsMaster.h.

Referenced by reset(), setSpeed(), SpecsMaster(), and speed().


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