flippeddatax for jungfrau server

This commit is contained in:
2021-08-05 12:39:04 +02:00
parent acd12bf2fa
commit c5d6dd0dd4
15 changed files with 174 additions and 60 deletions

View File

@ -190,7 +190,7 @@
#define CONFIG_TDMA_TIMESLOT_OFST (25) // 1ms
#define CONFIG_TDMA_TIMESLOT_MSK (0x0000001F << CONFIG_TDMA_TIMESLOT_OFST)
#define CONFIG_BOTTOM_INVERT_STREAM_OFST (30)
#define CONFIG_BOTTOM_INVERT_STREAM_MSK (0x0000001F << CONFIG_BOTTOM_INVERT_STREAM_OFST)
#define CONFIG_BOTTOM_INVERT_STREAM_MSK (0x00000001 << CONFIG_BOTTOM_INVERT_STREAM_OFST)
#define CONFIG_ETHRNT_FLW_CNTRL_OFST (31)
#define CONFIG_ETHRNT_FLW_CNTRL_MSK (0x00000001 << CONFIG_ETHRNT_FLW_CNTRL_OFST)

View File

@ -474,6 +474,7 @@ void setupDetector() {
// temp threshold and reset event
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
setTemperatureEvent(0);
setFlippedDataAcrossXAxis(0);
}
int resetToDefaultDacs(int hardReset) {
@ -2002,6 +2003,25 @@ void alignDeserializer() {
bus_r(ADC_DSRLZR_3_REG) & (~(ADC_DSRLZR_3_RFRSH_ALGNMNT_MSK)));
}
int getFlippedDataAcrossXAxis() {
return ((bus_r(CONFIG_REG) & CONFIG_BOTTOM_INVERT_STREAM_MSK) >>
CONFIG_BOTTOM_INVERT_STREAM_OFST);
}
void setFlippedDataAcrossXAxis(int arg) {
if (arg >= 0) {
if (arg == 0) {
LOG(logINFO, ("Switching off bottom flipping\n"));
bus_w(CONFIG_REG,
bus_r(CONFIG_REG) & ~CONFIG_BOTTOM_INVERT_STREAM_MSK);
} else {
LOG(logINFO, ("Switching on bottom flipping\n"));
bus_w(CONFIG_REG,
bus_r(CONFIG_REG) | CONFIG_BOTTOM_INVERT_STREAM_MSK);
}
}
}
int getTenGigaFlowControl() {
return ((bus_r(CONFIG_REG) & CONFIG_ETHRNT_FLW_CNTRL_MSK) >>
CONFIG_ETHRNT_FLW_CNTRL_OFST);

View File

@ -460,6 +460,8 @@ int setThresholdTemperature(int val);
int setTemperatureControl(int val);
int setTemperatureEvent(int val);
void alignDeserializer();
int getFlippedDataAcrossXAxis();
void setFlippedDataAcrossXAxis(int arg);
// eiger specific - iodelay, pulse, rate, temp, activate, delay nw parameter
#elif EIGERD

View File

@ -260,4 +260,6 @@ int set_default_dac(int);
int get_gain_mode(int);
int set_gain_mode(int);
int get_comp_disable_time(int);
int set_comp_disable_time(int);
int set_comp_disable_time(int);
int get_flipped_data_x(int);
int set_flipped_data_x(int);

View File

@ -386,6 +386,8 @@ void function_table() {
flist[F_SET_GAIN_MODE] = &set_gain_mode;
flist[F_GET_COMP_DISABLE_TIME] = &get_comp_disable_time;
flist[F_SET_COMP_DISABLE_TIME] = &set_comp_disable_time;
flist[F_GET_FLIPPED_DATA_X] = &get_flipped_data_x;
flist[F_SET_FLIPPED_DATA_X] = &set_flipped_data_x;
// check
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
@ -8675,4 +8677,65 @@ int set_comp_disable_time(int file_des) {
}
#endif
return Server_SendResult(file_des, INT64, NULL, 0);
}
}
int get_flipped_data_x(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
int retval = -1;
LOG(logDEBUG1, ("Getting flipped data x\n"));
#ifndef JUNGFRAUD
functionNotImplemented();
#else
// get only
retval = getFlippedDataAcrossXAxis();
LOG(logDEBUG1, ("flippeddatax retval: %u\n", retval));
#endif
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
}
int set_flipped_data_x(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
int arg = -1;
if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
return printSocketReadError();
LOG(logINFO, ("Setting flipped data x: %u\n", (int)arg));
#ifndef JUNGFRAUD
functionNotImplemented();
#else
// only set
if (Server_VerifyLock() == OK) {
if (arg != 0 && arg != 1) {
ret = FAIL;
sprintf(mess,
"Could not set flipped data x. Invalid argument %d.\n",
arg);
LOG(logERROR, (mess));
}
// only for HW 2.0 (version = 3)
else if (isHardwareVersion2()) {
ret = FAIL;
strcpy(mess, "Could not set flipped data x. Only available for "
"Hardware Board version 2.0.\n");
LOG(logERROR, (mess));
} else if (getNumberofUDPInterfaces() == 1) {
ret = FAIL;
strcpy(mess, "Could not set flipped data x. Number of udp "
"interfaces is still 1.\n");
LOG(logERROR, (mess));
} else {
setFlippedDataAcrossXAxis(arg);
int retval = getFlippedDataAcrossXAxis();
LOG(logDEBUG1, ("flippeddatax retval: %u\n", retval));
validate(&ret, mess, arg, retval, "set flipped data x", DEC);
}
}
#endif
return Server_SendResult(file_des, INT32, NULL, 0);
}