mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-11 23:20:03 +02:00
commit
5a3caf22d4
@ -26,6 +26,7 @@ This document describes the differences between v6.1.0 and v6.0.0.
|
||||
- refactoring (rxr)
|
||||
- fixed patsetbit and patsetmask for moench
|
||||
- changed default vref of adc9257 to 2V for moench (from 1.33V)
|
||||
- moench and ctb - can set the starting frame number of next acquisition
|
||||
- mythen server kernel check incompatible (cet timezone)
|
||||
|
||||
|
||||
|
@ -594,7 +594,7 @@ class Detector(CppDetectorApi):
|
||||
@property
|
||||
@element
|
||||
def nextframenumber(self):
|
||||
"""[Eiger][Jungfrau] Next frame number. Stopping acquisition might result in different frame numbers for different modules. """
|
||||
"""[Eiger][Jungfrau][Moench][CTB] Next frame number. Stopping acquisition might result in different frame numbers for different modules. """
|
||||
return self.getNextFrameNumber()
|
||||
|
||||
@nextframenumber.setter
|
||||
|
@ -165,11 +165,9 @@
|
||||
#define PATTERN_OUT_LSB_REG (0x20 << MEM_MAP_SHIFT)
|
||||
#define PATTERN_OUT_MSB_REG (0x21 << MEM_MAP_SHIFT)
|
||||
|
||||
/* Frames From Start 64 bit RO register TODO */
|
||||
//#define FRAMES_FROM_START_LSB_REG (0x22 << MEM_MAP_SHIFT) // Not
|
||||
// used in FW #define FRAMES_FROM_START_MSB_REG (0x23 <<
|
||||
// MEM_MAP_SHIFT)
|
||||
//// Not used in FW
|
||||
/* Frame number of next acquisition register (64 bit register) */
|
||||
#define NEXT_FRAME_NUMB_LOCAL_LSB_REG (0x22 << MEM_MAP_SHIFT)
|
||||
#define NEXT_FRAME_NUMB_LOCAL_MSB_REG (0x23 << MEM_MAP_SHIFT)
|
||||
|
||||
/* Frames From Start PG 64 bit RO register. Reset using CONTROL_CRST. TODO */
|
||||
#define FRAMES_FROM_START_PG_LSB_REG (0x24 << MEM_MAP_SHIFT)
|
||||
|
Binary file not shown.
@ -45,7 +45,6 @@ char initErrorMessage[MAX_STR_LENGTH];
|
||||
|
||||
#ifdef VIRTUAL
|
||||
pthread_t pthread_virtual_tid;
|
||||
int64_t virtual_currentFrameNumber = 2;
|
||||
#endif
|
||||
|
||||
// 1g readout
|
||||
@ -581,6 +580,7 @@ void setupDetector() {
|
||||
LOG(logERROR, ("%s\n\n", initErrorMessage));
|
||||
initError = FAIL;
|
||||
}
|
||||
setNextFrameNumber(DEFAULT_STARTING_FRAME_NUMBER);
|
||||
}
|
||||
|
||||
int updateDatabytesandAllocateRAM() {
|
||||
@ -898,6 +898,24 @@ int getReadoutMode() {
|
||||
}
|
||||
|
||||
/* parameters - timer */
|
||||
int setNextFrameNumber(uint64_t value) {
|
||||
LOG(logINFO,
|
||||
("Setting next frame number: %llu\n", (long long unsigned int)value));
|
||||
setU64BitReg(value, NEXT_FRAME_NUMB_LOCAL_LSB_REG,
|
||||
NEXT_FRAME_NUMB_LOCAL_MSB_REG);
|
||||
#ifndef VIRTUAL
|
||||
// for 1g udp interface
|
||||
setUDPFrameNumber(value);
|
||||
#endif
|
||||
return OK;
|
||||
}
|
||||
|
||||
int getNextFrameNumber(uint64_t *retval) {
|
||||
*retval = getU64BitReg(NEXT_FRAME_NUMB_LOCAL_LSB_REG,
|
||||
NEXT_FRAME_NUMB_LOCAL_MSB_REG);
|
||||
return OK;
|
||||
}
|
||||
|
||||
void setNumFrames(int64_t val) {
|
||||
if (val > 0) {
|
||||
LOG(logINFO, ("Setting number of frames %lld\n", (long long int)val));
|
||||
@ -2000,11 +2018,14 @@ void *start_timer(void *arg) {
|
||||
}
|
||||
|
||||
// Send data
|
||||
uint64_t frameNr = 0;
|
||||
getNextFrameNumber(&frameNr);
|
||||
// loop over number of frames
|
||||
for (int frameNr = 0; frameNr != numFrames; ++frameNr) {
|
||||
for (int iframes = 0; iframes != numFrames; ++iframes) {
|
||||
|
||||
// check if manual stop
|
||||
if (sharedMemory_getStop() == 1) {
|
||||
setNextFrameNumber(frameNr + iframes + 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2023,7 +2044,7 @@ void *start_timer(void *arg) {
|
||||
sls_detector_header *header = (sls_detector_header *)(packetData);
|
||||
header->detType = (uint16_t)myDetectorType;
|
||||
header->version = SLS_DETECTOR_HEADER_VERSION - 1;
|
||||
header->frameNumber = virtual_currentFrameNumber;
|
||||
header->frameNumber = frameNr + iframes;
|
||||
header->packetNumber = i;
|
||||
header->modId = 0;
|
||||
header->row = detPos[X];
|
||||
@ -2036,19 +2057,18 @@ void *start_timer(void *arg) {
|
||||
|
||||
sendUDPPacket(0, 0, packetData, packetSize);
|
||||
}
|
||||
LOG(logINFO, ("Sent frame: %d [%lld]\n", frameNr,
|
||||
(long long unsigned int)virtual_currentFrameNumber));
|
||||
LOG(logINFO, ("Sent frame: %d [%lld]\n", iframes, frameNr + iframes));
|
||||
clock_gettime(CLOCK_REALTIME, &end);
|
||||
int64_t timeNs =
|
||||
((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec));
|
||||
|
||||
// sleep for (period - exptime)
|
||||
if (frameNr < numFrames) { // if there is a next frame
|
||||
if (iframes < numFrames) { // if there is a next frame
|
||||
if (periodNs > timeNs) {
|
||||
usleep((periodNs - timeNs) / 1000);
|
||||
}
|
||||
}
|
||||
++virtual_currentFrameNumber;
|
||||
setNextFrameNumber(frameNr + numFrames);
|
||||
}
|
||||
|
||||
closeUDPSocket(0);
|
||||
|
@ -108,21 +108,24 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS };
|
||||
#define I2C_SHUNT_RESISTER_OHMS (0.005)
|
||||
|
||||
/** Default Parameters */
|
||||
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
|
||||
#define DEFAULT_NUM_SAMPLES (1)
|
||||
#define DEFAULT_NUM_FRAMES (1)
|
||||
#define DEFAULT_EXPTIME (0)
|
||||
#define DEFAULT_NUM_CYCLES (1)
|
||||
#define DEFAULT_PERIOD (1 * 1000 * 1000) // ns
|
||||
#define DEFAULT_DELAY (0)
|
||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
||||
#define DEFAULT_VLIMIT (-100)
|
||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||
#define DEFAULT_TX_UDP_PORT (0x7e9a)
|
||||
#define DEFAULT_RUN_CLK (200) // 40
|
||||
#define DEFAULT_ADC_CLK (40) // 20
|
||||
#define DEFAULT_SYNC_CLK (40) // 20
|
||||
#define DEFAULT_DBIT_CLK (200)
|
||||
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
|
||||
#define DEFAULT_STARTING_FRAME_NUMBER (1)
|
||||
#define DEFAULT_NUM_SAMPLES (1)
|
||||
#define DEFAULT_NUM_FRAMES (1)
|
||||
#define DEFAULT_EXPTIME (0)
|
||||
#define DEFAULT_NUM_CYCLES (1)
|
||||
#define DEFAULT_PERIOD (1 * 1000 * 1000) // ns
|
||||
#define DEFAULT_DELAY (0)
|
||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
||||
#define DEFAULT_VLIMIT (-100)
|
||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||
#define DEFAULT_TX_UDP_PORT (0x7e9a)
|
||||
#define DEFAULT_RUN_CLK (200) // 40
|
||||
#define DEFAULT_ADC_CLK (40) // 20
|
||||
#define DEFAULT_SYNC_CLK (40) // 20
|
||||
#define DEFAULT_DBIT_CLK (200)
|
||||
|
||||
#define UDP_HEADER_MAX_FRAME_VALUE (0xFFFFFFFFFFFF)
|
||||
|
||||
#define HIGHVOLTAGE_MIN (60)
|
||||
#define HIGHVOLTAGE_MAX (200) // min dac val
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -165,11 +165,9 @@
|
||||
#define PATTERN_OUT_LSB_REG (0x20 << MEM_MAP_SHIFT)
|
||||
#define PATTERN_OUT_MSB_REG (0x21 << MEM_MAP_SHIFT)
|
||||
|
||||
/* Frames From Start 64 bit RO register TODO */
|
||||
//#define FRAMES_FROM_START_LSB_REG (0x22 << MEM_MAP_SHIFT) // Not
|
||||
// used in FW #define FRAMES_FROM_START_MSB_REG (0x23 <<
|
||||
// MEM_MAP_SHIFT)
|
||||
//// Not used in FW
|
||||
/* Frame number of next acquisition register (64 bit register) */
|
||||
#define NEXT_FRAME_NUMB_LOCAL_LSB_REG (0x22 << MEM_MAP_SHIFT)
|
||||
#define NEXT_FRAME_NUMB_LOCAL_MSB_REG (0x23 << MEM_MAP_SHIFT)
|
||||
|
||||
/* Frames From Start PG 64 bit RO register. Reset using CONTROL_CRST. TODO */
|
||||
#define FRAMES_FROM_START_PG_LSB_REG (0x24 << MEM_MAP_SHIFT)
|
||||
|
Binary file not shown.
@ -43,7 +43,6 @@ char initErrorMessage[MAX_STR_LENGTH];
|
||||
|
||||
#ifdef VIRTUAL
|
||||
pthread_t pthread_virtual_tid;
|
||||
int64_t virtual_currentFrameNumber = 2;
|
||||
#endif
|
||||
|
||||
// 1g readout
|
||||
@ -569,6 +568,7 @@ void setupDetector() {
|
||||
setFrequency(ADC_CLK, DEFAULT_ADC_CLK);
|
||||
setFrequency(DBIT_CLK, DEFAULT_DBIT_CLK);
|
||||
setPhase(ADC_CLK, DEFAULT_ADC_PHASE_DEG, 1);
|
||||
setNextFrameNumber(DEFAULT_STARTING_FRAME_NUMBER);
|
||||
}
|
||||
|
||||
int updateDatabytesandAllocateRAM() {
|
||||
@ -800,6 +800,24 @@ uint32_t getADCInvertRegister() {
|
||||
}
|
||||
|
||||
/* parameters - timer */
|
||||
int setNextFrameNumber(uint64_t value) {
|
||||
LOG(logINFO,
|
||||
("Setting next frame number: %llu\n", (long long unsigned int)value));
|
||||
setU64BitReg(value, NEXT_FRAME_NUMB_LOCAL_LSB_REG,
|
||||
NEXT_FRAME_NUMB_LOCAL_MSB_REG);
|
||||
#ifndef VIRTUAL
|
||||
// for 1g udp interface
|
||||
setUDPFrameNumber(value);
|
||||
#endif
|
||||
return OK;
|
||||
}
|
||||
|
||||
int getNextFrameNumber(uint64_t *retval) {
|
||||
*retval = getU64BitReg(NEXT_FRAME_NUMB_LOCAL_LSB_REG,
|
||||
NEXT_FRAME_NUMB_LOCAL_MSB_REG);
|
||||
return OK;
|
||||
}
|
||||
|
||||
void setNumFrames(int64_t val) {
|
||||
if (val > 0) {
|
||||
LOG(logINFO, ("Setting number of frames %lld\n", (long long int)val));
|
||||
@ -1664,11 +1682,14 @@ void *start_timer(void *arg) {
|
||||
}
|
||||
|
||||
// Send data
|
||||
uint64_t frameNr = 0;
|
||||
getNextFrameNumber(&frameNr);
|
||||
// loop over number of frames
|
||||
for (int frameNr = 0; frameNr != numFrames; ++frameNr) {
|
||||
for (int iframes = 0; iframes != numFrames; ++iframes) {
|
||||
|
||||
// check if manual stop
|
||||
if (sharedMemory_getStop() == 1) {
|
||||
setNextFrameNumber(frameNr + iframes + 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1686,7 +1707,7 @@ void *start_timer(void *arg) {
|
||||
sls_detector_header *header = (sls_detector_header *)(packetData);
|
||||
header->detType = (uint16_t)myDetectorType;
|
||||
header->version = SLS_DETECTOR_HEADER_VERSION - 1;
|
||||
header->frameNumber = virtual_currentFrameNumber;
|
||||
header->frameNumber = frameNr + iframes;
|
||||
header->packetNumber = i;
|
||||
header->modId = 0;
|
||||
header->row = detPos[X];
|
||||
@ -1699,19 +1720,18 @@ void *start_timer(void *arg) {
|
||||
|
||||
sendUDPPacket(0, 0, packetData, packetSize);
|
||||
}
|
||||
LOG(logINFO, ("Sent frame: %d [%lld]\n", frameNr,
|
||||
(long long unsigned int)virtual_currentFrameNumber));
|
||||
LOG(logINFO, ("Sent frame: %d [%lld]\n", iframes, frameNr + iframes));
|
||||
clock_gettime(CLOCK_REALTIME, &end);
|
||||
int64_t timeNs =
|
||||
((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec));
|
||||
|
||||
// sleep for (period - exptime)
|
||||
if (frameNr < numFrames) { // if there is a next frame
|
||||
if (iframes < numFrames) { // if there is a next frame
|
||||
if (periodNs > timeNs) {
|
||||
usleep((periodNs - timeNs) / 1000);
|
||||
}
|
||||
}
|
||||
++virtual_currentFrameNumber;
|
||||
setNextFrameNumber(frameNr + numFrames);
|
||||
}
|
||||
|
||||
closeUDPSocket(0);
|
||||
|
@ -78,18 +78,19 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS };
|
||||
#define NCHANS_PER_ADC (25)
|
||||
|
||||
/** Default Parameters */
|
||||
#define DEFAULT_PATTERN_FILE ("DefaultPattern_moench.txt")
|
||||
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
|
||||
#define DEFAULT_NUM_SAMPLES (5000)
|
||||
#define DEFAULT_EXPTIME (0)
|
||||
#define DEFAULT_NUM_FRAMES (1)
|
||||
#define DEFAULT_NUM_CYCLES (1)
|
||||
#define DEFAULT_PERIOD (1 * 1000 * 1000) // ns
|
||||
#define DEFAULT_DELAY (0)
|
||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
||||
#define DEFAULT_VLIMIT (-100)
|
||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||
#define DEFAULT_TX_UDP_PORT (0x7e9a)
|
||||
#define DEFAULT_PATTERN_FILE ("DefaultPattern_moench.txt")
|
||||
#define DEFAULT_STARTING_FRAME_NUMBER (1)
|
||||
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
|
||||
#define DEFAULT_NUM_SAMPLES (5000)
|
||||
#define DEFAULT_EXPTIME (0)
|
||||
#define DEFAULT_NUM_FRAMES (1)
|
||||
#define DEFAULT_NUM_CYCLES (1)
|
||||
#define DEFAULT_PERIOD (1 * 1000 * 1000) // ns
|
||||
#define DEFAULT_DELAY (0)
|
||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
||||
#define DEFAULT_VLIMIT (-100)
|
||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||
#define DEFAULT_TX_UDP_PORT (0x7e9a)
|
||||
|
||||
#define DEFAULT_RUN_CLK_AT_STARTUP (200) // 40
|
||||
#define DEFAULT_ADC_CLK_AT_STARTUP (40) // 20
|
||||
@ -104,6 +105,8 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS };
|
||||
#define DEFAULT_PIPELINE (15)
|
||||
#define DEFAULT_SETTINGS (G4_HIGHGAIN)
|
||||
|
||||
#define UDP_HEADER_MAX_FRAME_VALUE (0xFFFFFFFFFFFF)
|
||||
|
||||
// settings
|
||||
#define DEFAULT_PATMASK (0x00000C800000800AULL)
|
||||
#define G1_HIGHGAIN_PATSETBIT (0x00000C0000008008ULL)
|
||||
|
Binary file not shown.
@ -4,25 +4,11 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
/**
|
||||
* Get current udp packet number
|
||||
*/
|
||||
uint32_t getUDPPacketNumber();
|
||||
|
||||
/**
|
||||
* Get current udp frame number
|
||||
*/
|
||||
uint64_t getUDPFrameNumber();
|
||||
|
||||
void setUDPFrameNumber(uint64_t fnum);
|
||||
/**
|
||||
* Called for each UDP packet header creation
|
||||
* @param buffer pointer to header
|
||||
* @param id module id
|
||||
*/
|
||||
void createUDPPacketHeader(char *buffer, uint16_t id);
|
||||
|
||||
/**
|
||||
* fill up the udp packet with data till its full
|
||||
* @param buffer pointer to memory
|
||||
*/
|
||||
int fillUDPPacket(char *buffer);
|
||||
|
@ -213,7 +213,8 @@ int getReadoutMode();
|
||||
int selectStoragecellStart(int pos);
|
||||
int getMaxStoragecellStart();
|
||||
#endif
|
||||
#if defined(JUNGFRAUD) || defined(EIGERD)
|
||||
#if defined(JUNGFRAUD) || defined(EIGERD) || defined(MOENCHD) || \
|
||||
defined(CHIPTESTBOARDD)
|
||||
int setNextFrameNumber(uint64_t value);
|
||||
int getNextFrameNumber(uint64_t *value);
|
||||
#endif
|
||||
|
@ -32,6 +32,11 @@ uint64_t udpFrameNumber = 0;
|
||||
uint32_t getUDPPacketNumber() { return udpPacketNumber; }
|
||||
|
||||
uint64_t getUDPFrameNumber() { return udpFrameNumber; }
|
||||
void setUDPFrameNumber(uint64_t fnum) {
|
||||
LOG(logINFO, ("Setting next frame number also for 1g to %lld\n", fnum));
|
||||
// this gets incremented before setting it
|
||||
udpFrameNumber = fnum - 1;
|
||||
}
|
||||
|
||||
void createUDPPacketHeader(char *buffer, uint16_t id) {
|
||||
memset(buffer, 0, sizeof(sls_detector_header));
|
||||
|
@ -4411,9 +4411,10 @@ int set_next_frame_number(int file_des) {
|
||||
|
||||
if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0)
|
||||
return printSocketReadError();
|
||||
LOG(logINFO, ("Setting next frame number to %llu\n", arg));
|
||||
LOG(logDEBUG1, ("Setting next frame number to %llu\n", arg));
|
||||
|
||||
#if (!defined(EIGERD)) && (!defined(JUNGFRAUD))
|
||||
#if (!defined(EIGERD)) && (!defined(JUNGFRAUD)) && (!defined(MOENCHD)) && \
|
||||
(!defined(CHIPTESTBOARDD))
|
||||
functionNotImplemented();
|
||||
#else
|
||||
// only set
|
||||
@ -4423,7 +4424,7 @@ int set_next_frame_number(int file_des) {
|
||||
sprintf(mess, "Could not set next frame number. Cannot be 0.\n");
|
||||
LOG(logERROR, (mess));
|
||||
}
|
||||
#ifdef EIGERD
|
||||
#if (defined(EIGERD)) || (defined(MOENCHD)) || (defined(CHIPTESTBOARDD))
|
||||
else if (arg > UDP_HEADER_MAX_FRAME_VALUE) {
|
||||
ret = FAIL;
|
||||
#ifdef VIRTUAL
|
||||
@ -4443,16 +4444,18 @@ int set_next_frame_number(int file_des) {
|
||||
else {
|
||||
ret = setNextFrameNumber(arg);
|
||||
if (ret == FAIL) {
|
||||
sprintf(mess, "Could not set next frame number. Failed to "
|
||||
"map address.\n");
|
||||
sprintf(
|
||||
mess, "Could not set next frame number. %s\n",
|
||||
(myDetectorType == EIGER ? "Failed to map address" : ""));
|
||||
LOG(logERROR, (mess));
|
||||
}
|
||||
if (ret == OK) {
|
||||
uint64_t retval = 0;
|
||||
ret = getNextFrameNumber(&retval);
|
||||
if (ret == FAIL) {
|
||||
sprintf(mess, "Could not get next frame number. Failed "
|
||||
"to map address.\n");
|
||||
sprintf(mess, "Could not set next frame number. %s\n",
|
||||
(myDetectorType == EIGER ? "Failed to map address"
|
||||
: ""));
|
||||
LOG(logERROR, (mess));
|
||||
} else if (ret == -2) {
|
||||
sprintf(mess, "Inconsistent next frame number from "
|
||||
@ -4489,14 +4492,15 @@ int get_next_frame_number(int file_des) {
|
||||
|
||||
LOG(logDEBUG1, ("Getting next frame number \n"));
|
||||
|
||||
#if (!defined(EIGERD)) && (!defined(JUNGFRAUD))
|
||||
#if (!defined(EIGERD)) && (!defined(JUNGFRAUD)) && (!defined(MOENCHD)) && \
|
||||
(!defined(CHIPTESTBOARDD))
|
||||
functionNotImplemented();
|
||||
#else
|
||||
// get
|
||||
ret = getNextFrameNumber(&retval);
|
||||
if (ret == FAIL) {
|
||||
sprintf(mess, "Could not get next frame number. Failed to map "
|
||||
"address.\n");
|
||||
sprintf(mess, "Could not set next frame number. %s\n",
|
||||
(myDetectorType == EIGER ? "Failed to map address" : ""));
|
||||
LOG(logERROR, (mess));
|
||||
} else if (ret == -2) {
|
||||
sprintf(mess, "Inconsistent next frame number from left and right "
|
||||
|
@ -594,11 +594,11 @@ class Detector {
|
||||
Result<std::vector<uint64_t>>
|
||||
getNumMissingPackets(Positions pos = {}) const;
|
||||
|
||||
/** [Eiger][Jungfrau] */
|
||||
/** [Eiger][Jungfrau][Moench][CTB] */
|
||||
Result<uint64_t> getNextFrameNumber(Positions pos = {}) const;
|
||||
|
||||
/** [Eiger][Jungfrau] Stopping acquisition might result in different frame
|
||||
* numbers for different modules.*/
|
||||
/** [Eiger][Jungfrau][Moench][CTB] Stopping acquisition might result in
|
||||
* different frame numbers for different modules.*/
|
||||
void setNextFrameNumber(uint64_t value, Positions pos = {});
|
||||
|
||||
/** [Eiger][Mythen3] Sends an internal software trigger to the detector
|
||||
|
@ -1537,11 +1537,12 @@ class CmdProxy {
|
||||
GET_COMMAND(rx_missingpackets, getNumMissingPackets,
|
||||
"\n\tNumber of missing packets for each port in receiver.");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(nextframenumber, getNextFrameNumber,
|
||||
setNextFrameNumber, StringTo<uint64_t>,
|
||||
"[n_value]\n\t[Eiger][Jungfrau] Next frame number. "
|
||||
"Stopping acquisition might result in "
|
||||
"different frame numbers for different modules.");
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
nextframenumber, getNextFrameNumber, setNextFrameNumber,
|
||||
StringTo<uint64_t>,
|
||||
"[n_value]\n\t[Eiger][Jungfrau][Moench][CTB] Next frame number. "
|
||||
"Stopping acquisition might result in different frame numbers for "
|
||||
"different modules.");
|
||||
|
||||
GET_COMMAND(scanerrmsg, getScanErrorMessage,
|
||||
"\n\tGets Scan error message if scan ended in error for non "
|
||||
|
@ -6,10 +6,10 @@
|
||||
#define APIRECEIVER 0x211124
|
||||
#define APIGUI 0x211124
|
||||
|
||||
#define APIEIGER 0x220128
|
||||
#define APICTB 0x220128
|
||||
#define APIGOTTHARD 0x220128
|
||||
#define APIGOTTHARD2 0x220128
|
||||
#define APIJUNGFRAU 0x220128
|
||||
#define APIMYTHEN3 0x220128
|
||||
#define APIMOENCH 0x220128
|
||||
#define APIEIGER 0x220128
|
||||
|
Loading…
x
Reference in New Issue
Block a user