00001 //#ifndef _ots_PSI46DigFirmware_h_ 00002 //#define _ots_PSI46DigFirmware_h_ 00003 // 00004 //#include "otsdaq-components/DAQHardware/FrontEndFirmwareBase.h" 00005 //#include "otsdaq-components/DAQHardware/PurdueFirmwareCore.h" 00006 // 00007 //#include <string> 00008 // 00009 //namespace ots 00010 //{ 00011 // 00012 //class PSI46DigFirmware : public FrontEndFirmwareBase/*, public PurdueFirmwareCore*/ 00013 //{ 00014 // 00015 //public: 00016 // PSI46DigFirmware (unsigned int version,std::string type); 00017 // virtual ~PSI46DigFirmware(void); 00018 // int init(void); 00019 // //FEW specific methods 00020 // std::string configureClocks(std::string source, double frequency); 00021 // std::string resetDetector (int channel=-1); 00022 // std::string enableTrigger (void); 00023 // 00024 // void makeDACSequence (FirmwareSequence<uint64_t>& sequence, unsigned int channel, const ROCStream& rocStream); 00025 // void makeMaskSequence (FirmwareSequence<uint64_t>& sequence, unsigned int channel, const ROCStream& rocStream); 00026 // void makeDACSequence (FirmwareSequence<uint32_t>& sequence, unsigned int channel, const ROCStream& rocStream); 00027 // void makeDACBuffer (std::string& buffer, unsigned int channel, const ROCStream& rocStream); 00028 // void makeDACBuffer (std::vector<std::string>& buffer, unsigned int channel, const ROCStream& rocStream); 00029 // void makeMaskSequence (FirmwareSequence<uint32_t>& sequence, unsigned int channel, const ROCStream& rocStream); 00030 // void makeMaskBuffer (std::string& buffer, unsigned int channel, const ROCStream& rocStream); 00031 // void setFrequencyFromClockState (std::string& buffer, double frequency); 00032 // bool isClockStateExternal (void); 00033 // 00034 // //FER specific methods 00035 // std::string resetBCO (void); 00036 // std::string startStream (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00037 // std::string stopStream (void); 00038 // 00039 //protected: 00040 // FrontEndFirmwareBase* protocolInstance_; 00041 // void makeMaskSequence(FirmwareSequence<uint64_t>& sequence, unsigned int channel, const ROCStream& rocStream, const std::string& registerName); 00042 // void makeMaskSequence(FirmwareSequence<uint32_t>& sequence, unsigned int channel, const ROCStream& rocStream, const std::string& registerName); 00043 // void makeMaskBuffer (std::string& buffer, unsigned int channel, const ROCStream& rocStream, const std::string& registerName); 00044 // 00045 // void setCSRRegister (uint32_t total); 00046 // 00047 // uint32_t stripCSRRegisterValue_; 00048 // //Set values for register STRIP_CSR (Strip Control Register) 00049 // void setPacketSizeStripCSR (uint32_t size); 00050 // void enableChannelsStripCSR (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00051 // void setExternalBCOClockSourceStripCSR(std::string clockSource); 00052 // void setHaltStripCSR (bool set); 00053 // void enableBCOStripCSR (bool enable); 00054 // void flushBuffersStripCSR (void); 00055 // void resetTriggerCounterStripCSR (std::string& buffer); 00056 // void resetBCOCounterStripCSR (void); 00057 // void enableTriggerStripCSR (bool enable); 00058 // void sendTriggerDataStripCSR (bool send); 00059 // void sendTriggerNumberStripCSR (bool send); 00060 // void sendBCOStripCSR (bool send); 00061 // void enableStreamStripCSR (bool enable); 00062 // void resetDCMStripCSR (bool clear); 00063 // uint32_t waitDCMResetStripCSR (void); 00064 // std::string readCSRRegister (void); 00065 // 00066 // uint32_t stripResetRegisterValue_; 00067 // //Set values for register STRIP_RESET (Strip Reset) 00068 // void resetStripResetRegisterValue(void) 00069 // { 00070 // stripResetRegisterValue_ = 0; 00071 // } 00072 // void resetDAC (void); 00073 // void resetLink (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00074 // void clearErrors (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00075 // void clearFIFO (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00076 // void resetChip (bool channel0, bool channel1, bool channel2, bool channel3, bool channel4, bool channel5); 00077 // 00078 // uint32_t stripBCODCMRegisterValue_; 00079 // void setFrequencyRatio (std::string& buffer, int numerator, int denominator); 00080 // 00081 // void configureStripTriggerUnbiased (std::string& buffer); 00082 // void configureTriggerInputs (std::string& buffer); 00083 // 00084 // uint32_t stripTriggerCSRRegisterValue_; 00085 // //Registers setters 00086 // void BCOOffset(uint32_t offset); 00087 // void selectSpyFIFO(uint32_t input); 00088 // void halt(bool halt); 00089 // 00090 //}; 00091 // 00092 //} 00093 // 00094 //#endif 00095 // 00096 // 00097 // 00098 // 00099 //