otsdaq_components  v2_04_01
FSSRPurdueFirmware.h
1 #ifndef _ots_FSSRPurdueFirmware_h_
2 #define _ots_FSSRPurdueFirmware_h_
3 
4 #include <string>
5 #include "otsdaq-components/DAQHardware/FSSRFirmwareBase.h"
6 //#include "otsdaq-components/DAQHardware/FirmwareSequence.h"
7 //#include "otsdaq-components/DetectorConfiguration/ROCStream.h"
8 //#include "otsdaq-components/DAQHardware/OtsUDPFirmwareCore.h"
9 
10 namespace ots
11 {
12 class FrontEndFirmwareBase;
13 
15 {
16  public:
17  FSSRPurdueFirmware(std::string communicationFirmwareType,
18  unsigned int communicationFirmwareVersion = -1,
19  unsigned int applicationFirmwareVersion = -1);
20  virtual ~FSSRPurdueFirmware(void);
21  virtual void init(void);
22 
23  protected:
24  /*
25  //FEW specific methods
26  std::string configureClocks(std::string source, double frequency);
27  std::string resetDetector (int channel=-1);
28  std::string enableTrigger (void);
29 
30  void readBurstDestinationIP(std::string& buffer);
31  void readBurstDestinationMAC(std::string& buffer);
32  void readBurstDestinationPort(std::string& buffer);
33 
34  void writeBurstDestinationIP (std::string& buffer, const uint64_t value);
35  void writeBurstDestinationMAC (std::string& buffer, const uint64_t value);
36  void writeBurstDestinationPort(std::string& buffer, const uint64_t value);
37 
38 
39  void makeDACSequence (FirmwareSequence<uint64_t>& sequence, unsigned
40 int channel, const ROCStream& rocStream); void makeMaskSequence
41 (FirmwareSequence<uint64_t>& sequence, unsigned int channel, const ROCStream& rocStream);
42  void makeDACSequence (FirmwareSequence<uint32_t>& sequence, unsigned
43 int channel, const ROCStream& rocStream); void makeDACBuffer (std::string&
44 buffer, unsigned int channel, const ROCStream& rocStream); void makeDACBuffer
45 (std::vector<std::string>& buffer, unsigned int channel, const ROCStream& rocStream); void
46 makeMaskSequence (FirmwareSequence<uint32_t>& sequence, unsigned int
47 channel, const ROCStream& rocStream);
48  void makeMaskBuffer (std::string& buffer, unsigned int channel, const
49 ROCStream& rocStream); void setFrequencyFromClockState (std::string& buffer,
50 double frequency); bool isClockStateExternal (void);
51 
52  //FER specific methods
53  std::string resetBCO (void);
54  std::string startStream (bool channel0, bool channel1, bool channel2, bool
55 channel3, bool channel4, bool channel5); std::string stopStream (void);
56 
57 //protected:
58  void makeMaskSequence(FirmwareSequence<uint64_t>& sequence, unsigned int channel,
59 const ROCStream& rocStream, const std::string& registerName); void
60 makeMaskSequence(FirmwareSequence<uint32_t>& sequence, unsigned int channel, const
61 ROCStream& rocStream, const std::string& registerName); void makeMaskBuffer (std::string&
62 buffer, unsigned int channel, const ROCStream& rocStream, const std::string&
63 registerName);
64 
65  void setCSRRegister (uint32_t total);
66  void writeCSRRegister (std::string& buffer);
67 
68  uint32_t stripCSRRegisterValue_;
69  //Set values for register STRIP_CSR (Strip Control Register)
70  void setPacketSizeStripCSR (uint32_t size);
71  void enableChannelsStripCSR (bool channel0, bool channel1, bool channel2,
72 bool channel3, bool channel4, bool channel5); void
73 setExternalBCOClockSourceStripCSR(std::string clockSource); void setHaltStripCSR
74 (bool set); void enableBCOStripCSR (bool enable); void flushBuffersStripCSR
75 (void); void resetTriggerCounterStripCSR (std::string& buffer); void
76 resetBCOCounterStripCSR (void); void enableTriggerStripCSR (bool
77 enable); void sendTriggerDataStripCSR (bool send); void sendTriggerNumberStripCSR
78 (bool send); void sendBCOStripCSR (bool send); void enableStreamStripCSR
79 (bool enable); void resetDCMStripCSR (bool clear); uint32_t
80 waitDCMResetStripCSR (void); std::string readCSRRegister (void);
81 
82  uint32_t stripResetRegisterValue_;
83  //Set values for register STRIP_RESET (Strip Reset)
84  void resetStripResetRegisterValue(void)
85  {
86  stripResetRegisterValue_ = 0;
87  }
88  void resetDAC (void);
89  void resetLink (bool channel0, bool channel1, bool channel2, bool
90 channel3, bool channel4, bool channel5); void clearErrors (bool channel0,
91 bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); void clearFIFO
92 (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool
93 channel5); void resetChip (bool channel0, bool channel1, bool channel2,
94 bool channel3, bool channel4, bool channel5);
95 
96  uint32_t stripBCODCMRegisterValue_;
97  void setFrequencyRatio (std::string& buffer, int numerator, int
98 denominator);
99 
100  void configureStripTriggerUnbiased (std::string& buffer);
101  void configureTriggerInputs (std::string& buffer);
102 
103  uint32_t stripTriggerCSRRegisterValue_;
104  //Registers setters
105  void BCOOffset(uint32_t offset);
106  void selectSpyFIFO(uint32_t input);
107  void halt(bool halt);
108 
109 
110  std::string resetSlaveBCO(void);
111  */
112 };
113 }
114 
115 #endif