set clock divider, phase and get clock freq for gotthard2, priliminary

This commit is contained in:
2019-10-17 16:39:41 +02:00
parent 0a3905802f
commit be50344b45
21 changed files with 1119 additions and 54 deletions

View File

@ -141,7 +141,11 @@ class CmdProxy {
{"rx_udpport", &CmdProxy::rx_udpport},
{"rx_udpport2", &CmdProxy::rx_udpport2},
{"numinterfaces", &CmdProxy::numinterfaces},
{"selinterface", &CmdProxy::selinterface}};
{"selinterface", &CmdProxy::selinterface},
{"clkfreq", &CmdProxy::ClockFrequency},
{"clkphase", &CmdProxy::ClockPhase},
{"maxclkphaseshift", &CmdProxy::MaxClockPhaseShift},
{"clkdiv", &CmdProxy::ClockDivider}};
StringMap depreciated_functions{{"r_readfreq", "rx_readfreq"},
{"r_padding", "rx_padding"},
@ -171,6 +175,10 @@ class CmdProxy {
std::string Period(int action);
std::string Exptime(int action);
std::string SubExptime(int action);
std::string ClockFrequency(int action);
std::string ClockPhase(int action);
std::string MaxClockPhaseShift(int action);
std::string ClockDivider(int action);
INTEGER_COMMAND(
rx_fifodepth, getRxFifoDepth, setRxFifoDepth, std::stoi,

View File

@ -1196,6 +1196,33 @@ class Detector {
Result<uint64_t> getRxCurrentFrameIndex(Positions pos = {}) const;
/** [Gotthard2] Hz */
Result<int> getClockFrequency(int clkIndex, Positions pos = {});
/** [unknown] Hz */
void setClockFrequency(int clkIndex, int value, Positions pos = {});
/** [Gotthard2] */
Result<int> getClockPhase(int clkIndex, Positions pos = {});
/** [Gotthard2] */
void setClockPhase(int clkIndex, int value, Positions pos = {});
/** [Gotthard2] */
Result<int> getMaxClockPhaseShift(int clkIndex, Positions pos = {});
/** [Gotthard2] */
Result<int> getClockPhaseinDegrees(int clkIndex, Positions pos = {});
/** [Gotthard2] */
void setClockPhaseinDegrees(int clkIndex, int value, Positions pos = {});
/** [Gotthard2] */
Result<int> getClockDivider(int clkIndex, Positions pos = {});
/** [Gotthard2] */
void setClockDivider(int clkIndex, int value, Positions pos = {});
private:
std::vector<int> getPortNumbers(int start_port);
};

View File

@ -1679,6 +1679,27 @@ class slsDetector : public virtual slsDetectorDefs {
*/
void setDigitalIODelay(uint64_t pinMask, int delay);
/** [Gotthard2] */
int getClockFrequency(int clkIndex);
/** [Gotthard2] */
void setClockFrequency(int clkIndex, int value);
/** [Gotthard2] */
int getClockPhase(int clkIndex, bool inDegrees);
/** [Gotthard2] */
void setClockPhase(int clkIndex, int value, bool inDegrees);
/** [Gotthard2] */
int getMaxClockPhaseShift(int clkIndex);
/** [Gotthard2] */
int getClockDivider(int clkIndex);
/** [Gotthard2] */
void setClockDivider(int clkIndex, int value);
private:
/**
* Send function parameters to detector (control server)