My Project  v0.0.16
ClockingXENode.hpp
Go to the documentation of this file.
1 #ifndef _mp7_ClockingXENode_hpp_
2 #define _mp7_ClockingXENode_hpp_
3 
4 // MP7 Headers
5 #include "uhal/DerivedNode.hpp"
6 
7 // C++ Headers
8 #include <map>
9 
10 namespace mp7 {
11 
21 class ClockingXENode : public uhal::Node {
23 public:
24 
25  enum Clk40Select {
29  };
30 
31 // enum RefClkSelect {
32 // Oscillator,
33 // ClockCleaner
34 // };
35 
36  // PUBLIC METHODS
37  ClockingXENode(const uhal::Node&);
38  virtual ~ClockingXENode();
39 
41  void configure(const std::string aConfig) const;
42 
44  void configureXpoint(Clk40Select aClk40Src) const;
45 
47  void configureU36(uint SelForOut0, uint SelForOut1, uint SelForOut2, uint SelForOut3) const;
48 
50  void si5326TopReset() const;
51 
52  // Wait for SI5326 configuration to complete
53  void si5326TopWaitConfigured(bool aMustLock = true, uint32_t aMaxTries = 1000) const;
54 
56  bool si5326TopLossOfLock() const;
57 
59  bool si5326TopInterrupt() const;
60 
62  void si5326BottomReset() const;
63 
64  // Wait for SI5326 configuration to complete
65  void si5326BottomWaitConfigured(bool aMustLock = true, uint32_t aMaxTries = 1000) const;
66 
68  bool si5326BottomLossOfLock() const;
69 
71  bool si5326BottomInterrupt() const;
72 
73 protected:
74 
75  // PROTECTED METHODS
76  void configureUX(const std::string& chip, uint SelForOut0, uint SelForOut1, uint SelForOut2, uint SelForOut3) const;
77 
79  void si5326ChipReset(const std::string& aChip) const;
80 
81  // Wait for SI5326 configuration to complete
82  void si5326ChipWaitConfigured(const std::string& aChip, bool aMustLock = true, uint32_t aMaxTries = 1000) const;
83 
85  bool si5326ChipLossOfLock(const std::string& aChip) const;
86 
88  bool si5326ChipInterrupt(const std::string& aChip) const;
89 private:
90 
91  struct Config {
93  std::string si570Cfg;
94  std::string si5626TopCfg;
95  std::string si5626BotCfg;
96  };
97 
98  typedef boost::unordered_map<std::string, Config> ConfigMap;
99 
101  static const ConfigMap mConfigurations;
102 
104  static ConfigMap makeDefaultConfigs();
105 };
106 
107 
108 }
109 
110 
111 
112 #endif /* _mp7_ClockingXENode_hpp_ */
113 
114 
Definition: ClockingXENode.hpp:26
-test-ipbusaccess
Definition: AlignmentNode.hpp:15
void si5326ChipWaitConfigured(const std::string& aChip, bool aMustLock = true, uint32_t aMaxTries = 1000) const
Definition: ClockingXENode.cpp:201
void configure(const std::string aConfig) const
Configure the routing by logical states.
Definition: ClockingXENode.cpp:57
void si5326BottomReset() const
Reset the SI5326.
Definition: ClockingXENode.cpp:168
void si5326TopWaitConfigured(bool aMustLock = true, uint32_t aMaxTries = 1000) const
Definition: ClockingXENode.cpp:153
Clk40Select clk40
Definition: ClockingXENode.hpp:92
std::string si5626BotCfg
Definition: ClockingXENode.hpp:95
bool si5326BottomInterrupt() const
What is this?
Definition: ClockingXENode.cpp:183
void si5326BottomWaitConfigured(bool aMustLock = true, uint32_t aMaxTries = 1000) const
Definition: ClockingXENode.cpp:173
Clk40Select
Definition: ClockingXENode.hpp:25
static const ConfigMap mConfigurations
Map of the known configurations.
Definition: ClockingXENode.hpp:101
bool si5326TopInterrupt() const
What is this?
Definition: ClockingXENode.cpp:163
void configureUX(const std::string& chip, uint SelForOut0, uint SelForOut1, uint SelForOut2, uint SelForOut3) const
Definition: ClockingXENode.cpp:97
std::string si570Cfg
Definition: ClockingXENode.hpp:93
virtual ~ClockingXENode()
Definition: ClockingXENode.cpp:53
void si5326ChipReset(const std::string& aChip) const
Reset the SI5326.
Definition: ClockingXENode.cpp:188
bool si5326TopLossOfLock() const
Check the SI5326 loss of lock.
Definition: ClockingXENode.cpp:158
void si5326TopReset() const
Reset the SI5326.
Definition: ClockingXENode.cpp:148
bool si5326BottomLossOfLock() const
Check the SI5326 loss of lock.
Definition: ClockingXENode.cpp:178
UHAL_DERIVEDNODE(ClockingXENode)
void configureXpoint(Clk40Select aClk40Src) const
Configure the routing by logical states.
Definition: ClockingXENode.cpp:73
bool si5326ChipInterrupt(const std::string& aChip) const
What is this?
Definition: ClockingXENode.cpp:237
std::string si5626TopCfg
Definition: ClockingXENode.hpp:94
static ConfigMap makeDefaultConfigs()
Method to generate the default configurations.
Definition: ClockingXENode.cpp:24
boost::unordered_map<std::string, Config> ConfigMap
Definition: ClockingXENode.hpp:98
Definition: ClockingXENode.hpp:27
ClockingXENode(const uhal::Node&)
Definition: ClockingXENode.cpp:49
Definition: ClockingXENode.hpp:28
void configureU36(uint SelForOut0, uint SelForOut1, uint SelForOut2, uint SelForOut3) const
Configure the U36 switch.
Definition: ClockingXENode.cpp:134
bool si5326ChipLossOfLock(const std::string& aChip) const
Check the SI5326 loss of lock.
Definition: ClockingXENode.cpp:230