otsdaq_components  v2_04_02
PSI46DigROCDefinitions.h
1 #ifndef _ots_PSI46DigROCDEfinitions_h_
2 #define _ots_PSI46DigROCDEfinitions_h_
3 
4 #include "otsdaq-components/DetectorHardware/VROCDefinitions.h"
5 //#include "otsdaq/BitManipulator/BitManipulator.h"
6 //#include "otsdaq/DAQHardware/PSI46DigFirmwareDefinitions.h"
7 //#include "otsdaq/DAQHardware/PSI46DigFirmware.h"
8 //#include "otsdaq/DataTypes/DataTypes.h"
9 //#include "otsdaq/ConfigurationInterface/ROCStream.h"
10 
11 #include <stdint.h>
12 #include <string>
13 
14 namespace ots
15 {
17 {
18  public:
20  virtual ~PSI46DigROCDefinitions(void);
21 
22  static uint64_t makeDACWriteHeader(
23  int chipId,
24  const std::string& registerName); // Does not work for SendData and RejectHits
25  static uint64_t makeDACSetHeader(
26  int chipId,
27  const std::string& registerName); // Only works for SendData and RejectHits
28  static uint64_t makeDACResetHeader(
29  int chipId,
30  const std::string& registerName); // Only works for SendData and RejectHits
31  static uint64_t makeDACReadHeader(
32  int chipId,
33  const std::string& registerName); // Does not work for SendData and RejectHits
34  static uint64_t makeDACWriteCommand(int chipId,
35  const std::string& registerName,
36  unsigned int valueToWrite);
37  static uint64_t makeDACReadCommand(int chipId, const std::string& registerName);
38  static std::string makeMaskWriteCommand(int chipId,
39  const std::string& registerName,
40  std::string valueToWrite);
41  static uint64_t makeMaskReadCommand(int chipId, const std::string& registerName);
42 
43  uint64_t setSendData(int chipId);
44  uint64_t resetSendData(int chipId);
45  uint64_t setRejectHits(int chipId);
46  uint64_t resetRejectHits(int chipId);
47 
48  private:
49  static uint64_t makeDACHeader(int chipId,
50  const std::string& registerName,
51  unsigned int instruction);
52  static unsigned int getDACRegisterAddress(const std::string& registerName);
53  enum
54  {
55  write = 1,
56  set = 2,
57  read = 4,
58  reset = 5,
59  setDefault = 6
60  };
61 };
62 }
63 
64 #endif