mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-07 18:40:42 +02:00
eiger round robin
This commit is contained in:
parent
4e0b2fe657
commit
b75b9fa3b7
@ -45,6 +45,7 @@ int Beb_deactivated_transmission_delay_left = 0;
|
|||||||
int Beb_deactivated_transmission_delay_right = 0;
|
int Beb_deactivated_transmission_delay_right = 0;
|
||||||
int Beb_deactivated_left_datastream = 1;
|
int Beb_deactivated_left_datastream = 1;
|
||||||
int Beb_deactivated_right_datastream = 1;
|
int Beb_deactivated_right_datastream = 1;
|
||||||
|
int Beb_deactivated_num_destinations = 1;
|
||||||
|
|
||||||
void BebInfo_BebInfo(struct BebInfo *bebInfo, unsigned int beb_num) {
|
void BebInfo_BebInfo(struct BebInfo *bebInfo, unsigned int beb_num) {
|
||||||
bebInfo->beb_number = beb_num;
|
bebInfo->beb_number = beb_num;
|
||||||
@ -1199,9 +1200,7 @@ int Beb_StopAcquisition() {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Beb_RequestNImages(unsigned int beb_number, int ten_gig,
|
int Beb_RequestNImages(int ten_gig, unsigned int nimages, int test_just_send_out_packets_no_wait) {
|
||||||
unsigned int dst_number, unsigned int nimages,
|
|
||||||
int test_just_send_out_packets_no_wait) {
|
|
||||||
if (!Beb_activated)
|
if (!Beb_activated)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
@ -1225,10 +1224,10 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig,
|
|||||||
unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets
|
unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets
|
||||||
|
|
||||||
LOG(logDEBUG1, ("----Beb_RequestNImages Start----\n"));
|
LOG(logDEBUG1, ("----Beb_RequestNImages Start----\n"));
|
||||||
LOG(logINFO, ("beb_number:%d, ten_gig:%d,dst_number:%d, npackets:%d, "
|
LOG(logINFO, ("ten_gig:%d, npackets:%d, "
|
||||||
"Beb_bit_mode:%d, header_size:%d, nimages:%d, "
|
"Beb_bit_mode:%d, header_size:%d, nimages:%d, "
|
||||||
"test_just_send_out_packets_no_wait:%d\n",
|
"test_just_send_out_packets_no_wait:%d\n",
|
||||||
beb_number, ten_gig, dst_number, npackets, Beb_bit_mode,
|
ten_gig, npackets, Beb_bit_mode,
|
||||||
header_size, nimages, test_just_send_out_packets_no_wait));
|
header_size, nimages, test_just_send_out_packets_no_wait));
|
||||||
|
|
||||||
u_int32_t right_port_value = 0x2000;
|
u_int32_t right_port_value = 0x2000;
|
||||||
@ -1610,6 +1609,62 @@ int Beb_GetNextFrameNumber(uint64_t *retval, int tengigaEnable) {
|
|||||||
|
|
||||||
void Beb_SetPartialReadout(int value) { Beb_partialReadout = value; }
|
void Beb_SetPartialReadout(int value) { Beb_partialReadout = value; }
|
||||||
|
|
||||||
|
int Beb_GetNumberofDestinations(int *retval) {
|
||||||
|
if (!Beb_activated) {
|
||||||
|
*retval = Beb_deactivated_num_destinations;
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
u_int32_t offset[2] = {LEFT_OFFSET + NUM_UDP_DEST_OFFSET,
|
||||||
|
RIGHT_OFFSET + NUM_UDP_DEST_OFFSET};
|
||||||
|
u_int32_t *csp0base = 0;
|
||||||
|
int fd = Beb_open(&csp0base, XPAR_CMD_GENERATOR);
|
||||||
|
if (fd <= 0) {
|
||||||
|
LOG(logERROR, ("Could not read register to get number of udp "
|
||||||
|
"destinations. FAIL\n"));
|
||||||
|
return FAIL;
|
||||||
|
} else {
|
||||||
|
int retval1[2] = {0, 0};
|
||||||
|
retval1[0] = Beb_Read32(csp0base, offset[0]);
|
||||||
|
retval1[1] = Beb_Read32(csp0base, offset[1]);
|
||||||
|
Beb_close(fd, csp0base);
|
||||||
|
if (retval1[0] != retval1[1]) {
|
||||||
|
LOG(logERROR, ("Inconsistent values on left (%d) and right (%d) "
|
||||||
|
"fpga for number of destinations. FAIL\n",
|
||||||
|
retval1[0], retval1[1]));
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
*retval = retval1[0];
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int Beb_SetNumberofDestinations(int value) {
|
||||||
|
LOG(logINFO, ("Setting number of destinations to %d\n", value));
|
||||||
|
if (value < 0 || value >= MAX_UDP_DESTINATION) {
|
||||||
|
LOG(logERROR, ("Invalid number of destinations %d\n", value));
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
if (!Beb_activated) {
|
||||||
|
Beb_deactivated_num_destinations = value;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
u_int32_t offset[2] = {LEFT_OFFSET + NUM_UDP_DEST_OFFSET,
|
||||||
|
RIGHT_OFFSET + NUM_UDP_DEST_OFFSET};
|
||||||
|
u_int32_t *csp0base = 0;
|
||||||
|
int fd = Beb_open(&csp0base, XPAR_CMD_GENERATOR);
|
||||||
|
if (fd <= 0) {
|
||||||
|
LOG(logERROR, ("Could not read register to set number of udp "
|
||||||
|
"destinations. FAIL\n"));
|
||||||
|
return FAIL;
|
||||||
|
} else {
|
||||||
|
Beb_Write32(csp0base, offset[0], value);
|
||||||
|
Beb_Write32(csp0base, offset[1], value);
|
||||||
|
Beb_deactivated_num_destinations = value;
|
||||||
|
Beb_close(fd, csp0base);
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t Beb_swap_uint16(uint16_t val) { return (val << 8) | (val >> 8); }
|
uint16_t Beb_swap_uint16(uint16_t val) { return (val << 8) | (val >> 8); }
|
||||||
|
|
||||||
int Beb_open(u_int32_t **csp0base, u_int32_t offset) {
|
int Beb_open(u_int32_t **csp0base, u_int32_t offset) {
|
||||||
|
@ -92,8 +92,7 @@ int Beb_SetUpTransferParameters(short the_bit_mode);
|
|||||||
* ten_gig, unsigned int dst_number, unsigned int nimages, int
|
* ten_gig, unsigned int dst_number, unsigned int nimages, int
|
||||||
* test_just_send_out_packets_no_wait=0); //all images go to the same
|
* test_just_send_out_packets_no_wait=0); //all images go to the same
|
||||||
* destination!*/
|
* destination!*/
|
||||||
int Beb_RequestNImages(unsigned int beb_number, int ten_gig,
|
int Beb_RequestNImages(int ten_gig, unsigned int nimages,
|
||||||
unsigned int dst_number, unsigned int nimages,
|
|
||||||
int test_just_send_out_packets_no_wait);
|
int test_just_send_out_packets_no_wait);
|
||||||
|
|
||||||
int Beb_Test(unsigned int beb_number);
|
int Beb_Test(unsigned int beb_number);
|
||||||
@ -110,6 +109,9 @@ int Beb_GetNextFrameNumber(uint64_t *retval, int tengigaEnable);
|
|||||||
|
|
||||||
void Beb_SetPartialReadout(int value);
|
void Beb_SetPartialReadout(int value);
|
||||||
|
|
||||||
|
int Beb_GetNumberofDestinations(int *retval);
|
||||||
|
int Beb_SetNumberofDestinations(int value);
|
||||||
|
|
||||||
uint16_t Beb_swap_uint16(uint16_t val);
|
uint16_t Beb_swap_uint16(uint16_t val);
|
||||||
int Beb_open(u_int32_t **csp0base, u_int32_t offset);
|
int Beb_open(u_int32_t **csp0base, u_int32_t offset);
|
||||||
u_int32_t Beb_Read32(u_int32_t *baseaddr, u_int32_t offset);
|
u_int32_t Beb_Read32(u_int32_t *baseaddr, u_int32_t offset);
|
||||||
|
@ -208,6 +208,7 @@
|
|||||||
#define STOP_ACQ_BIT 0x40000000
|
#define STOP_ACQ_BIT 0x40000000
|
||||||
#define TWO_REQUESTS_OFFSET 0x1c
|
#define TWO_REQUESTS_OFFSET 0x1c
|
||||||
#define TWO_REQUESTS_BIT 0x80000000
|
#define TWO_REQUESTS_BIT 0x80000000
|
||||||
|
#define NUM_UDP_DEST_OFFSET 0x20
|
||||||
|
|
||||||
// version
|
// version
|
||||||
#define FIRMWARE_VERSION_OFFSET 0x4
|
#define FIRMWARE_VERSION_OFFSET 0x4
|
||||||
|
@ -41,11 +41,7 @@ int *detectorChans = NULL;
|
|||||||
int *detectorDacs = NULL;
|
int *detectorDacs = NULL;
|
||||||
|
|
||||||
int send_to_ten_gig = 0;
|
int send_to_ten_gig = 0;
|
||||||
int ndsts_in_use = 32;
|
|
||||||
unsigned int nimages_per_request = 1;
|
unsigned int nimages_per_request = 1;
|
||||||
int on_dst = 0;
|
|
||||||
int dst_requested[32] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
||||||
|
|
||||||
int top = 0;
|
int top = 0;
|
||||||
int master = 0;
|
int master = 0;
|
||||||
@ -837,9 +833,6 @@ int setDynamicRange(int dr) {
|
|||||||
#ifndef VIRTUAL
|
#ifndef VIRTUAL
|
||||||
sharedMemory_lockLocalLink();
|
sharedMemory_lockLocalLink();
|
||||||
if (Feb_Control_SetDynamicRange(dr)) {
|
if (Feb_Control_SetDynamicRange(dr)) {
|
||||||
on_dst = 0;
|
|
||||||
for (int i = 0; i < 32; ++i)
|
|
||||||
dst_requested[i] = 0; // clear dst requested
|
|
||||||
if (!Beb_SetUpTransferParameters(dr)) {
|
if (!Beb_SetUpTransferParameters(dr)) {
|
||||||
LOG(logERROR, ("Could not set bit mode in the back end\n"));
|
LOG(logERROR, ("Could not set bit mode in the back end\n"));
|
||||||
sharedMemory_unlockLocalLink();
|
sharedMemory_unlockLocalLink();
|
||||||
@ -917,10 +910,6 @@ void setNumFrames(int64_t val) {
|
|||||||
sharedMemory_lockLocalLink();
|
sharedMemory_lockLocalLink();
|
||||||
if (Feb_Control_SetNExposures((unsigned int)val * eiger_ntriggers)) {
|
if (Feb_Control_SetNExposures((unsigned int)val * eiger_ntriggers)) {
|
||||||
eiger_nexposures = val;
|
eiger_nexposures = val;
|
||||||
on_dst = 0;
|
|
||||||
for (int i = 0; i < 32; ++i)
|
|
||||||
dst_requested[i] = 0; // clear dst requested
|
|
||||||
ndsts_in_use = 1;
|
|
||||||
nimages_per_request = eiger_nexposures * eiger_ntriggers;
|
nimages_per_request = eiger_nexposures * eiger_ntriggers;
|
||||||
}
|
}
|
||||||
sharedMemory_unlockLocalLink();
|
sharedMemory_unlockLocalLink();
|
||||||
@ -940,9 +929,6 @@ void setNumTriggers(int64_t val) {
|
|||||||
sharedMemory_lockLocalLink();
|
sharedMemory_lockLocalLink();
|
||||||
if (Feb_Control_SetNExposures((unsigned int)val * eiger_nexposures)) {
|
if (Feb_Control_SetNExposures((unsigned int)val * eiger_nexposures)) {
|
||||||
eiger_ntriggers = val;
|
eiger_ntriggers = val;
|
||||||
on_dst = 0;
|
|
||||||
for (int i = 0; i < 32; ++i)
|
|
||||||
dst_requested[i] = 0; // clear dst requested
|
|
||||||
nimages_per_request = eiger_nexposures * eiger_ntriggers;
|
nimages_per_request = eiger_nexposures * eiger_ntriggers;
|
||||||
}
|
}
|
||||||
sharedMemory_unlockLocalLink();
|
sharedMemory_unlockLocalLink();
|
||||||
@ -1521,6 +1507,24 @@ enum timingMode getTiming() {
|
|||||||
|
|
||||||
/* configure mac */
|
/* configure mac */
|
||||||
|
|
||||||
|
int getNumberofDestinations(int *retval) {
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
*retval = numUdpDestinations;
|
||||||
|
return OK;
|
||||||
|
#else
|
||||||
|
return Beb_GetNumberofDestinations(retval);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int setNumberofDestinations(int value) {
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
// already set in funcs.c
|
||||||
|
return OK;
|
||||||
|
#else
|
||||||
|
return Beb_SetNumberofDestinations(value);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
int configureMAC() {
|
int configureMAC() {
|
||||||
|
|
||||||
LOG(logINFOBLUE, ("Configuring MAC\n"));
|
LOG(logINFOBLUE, ("Configuring MAC\n"));
|
||||||
@ -1595,12 +1599,6 @@ int configureMAC() {
|
|||||||
} else {
|
} else {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
on_dst = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < 32; ++i)
|
|
||||||
dst_requested[i] = 0; // clear dst requested
|
|
||||||
nimages_per_request = eiger_nexposures * eiger_ntriggers;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return OK;
|
return OK;
|
||||||
@ -2594,30 +2592,13 @@ int softwareTrigger(int block) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int startReadOut() {
|
int startReadOut() {
|
||||||
|
|
||||||
LOG(logINFO, ("Requesting images...\n"));
|
LOG(logINFO, ("Requesting images...\n"));
|
||||||
#ifdef VIRTUAL
|
#ifndef VIRTUAL
|
||||||
return OK;
|
if (!Beb_RequestNImages(send_to_ten_gig, nimages_per_request, 0)) {
|
||||||
#else
|
|
||||||
// RequestImages();
|
|
||||||
int ret_val = 0;
|
|
||||||
dst_requested[0] = 1;
|
|
||||||
while (dst_requested[on_dst]) {
|
|
||||||
// waits on data
|
|
||||||
int beb_num = detid;
|
|
||||||
if ((ret_val = (!Beb_RequestNImages(beb_num, send_to_ten_gig, on_dst,
|
|
||||||
nimages_per_request, 0))))
|
|
||||||
break;
|
|
||||||
|
|
||||||
dst_requested[on_dst++] = 0;
|
|
||||||
on_dst %= ndsts_in_use;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret_val)
|
|
||||||
return FAIL;
|
return FAIL;
|
||||||
else
|
}
|
||||||
return OK;
|
|
||||||
#endif
|
#endif
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum runStatus getRunStatus() {
|
enum runStatus getRunStatus() {
|
||||||
|
@ -1331,14 +1331,18 @@ int getNumberofUDPInterfaces() {
|
|||||||
return ((bus_r(CONFIG_REG) & CONFIG_OPRTN_MDE_2_X_10GbE_MSK) ? 2 : 1);
|
return ((bus_r(CONFIG_REG) & CONFIG_OPRTN_MDE_2_X_10GbE_MSK) ? 2 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int getNumberofDestinations() {
|
int getNumberofDestinations(int *retval) {
|
||||||
return (((bus_r(CONTROL_REG) & CONTROL_RX_ADDTNL_ENDPTS_NUM_MSK) >> CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST) + 1);
|
retval = (((bus_r(CONTROL_REG) & CONTROL_RX_ADDTNL_ENDPTS_NUM_MSK) >>
|
||||||
|
CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST) +
|
||||||
|
1);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setNumberofDestinations(int value) {
|
int setNumberofDestinations(int value) {
|
||||||
LOG(logINFO, ("Setting number of entries to %d\n", value));
|
LOG(logINFO, ("Setting number of entries to %d\n", value));
|
||||||
--value;
|
--value;
|
||||||
bus_w(CONTROL_REG, bus_r(CONTROL_REG) | ((value << CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST) & CONTROL_RX_ADDTNL_ENDPTS_NUM_MSK));
|
bus_w(CONTROL_REG, bus_r(CONTROL_REG) | ((value << CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST) & CONTROL_RX_ADDTNL_ENDPTS_NUM_MSK));
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getFirstUDPDestination() {
|
int getFirstUDPDestination() {
|
||||||
@ -1544,7 +1548,6 @@ int configureMAC() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setNumberofDestinations(numUdpDestinations);
|
|
||||||
setNumberofUDPInterfaces(numInterfaces);
|
setNumberofUDPInterfaces(numInterfaces);
|
||||||
selectPrimaryInterface(selInterface);
|
selectPrimaryInterface(selInterface);
|
||||||
|
|
||||||
|
@ -385,9 +385,12 @@ void calcChecksum(mac_conf *mac, int sourceip, int destip);
|
|||||||
void setNumberofUDPInterfaces(int val);
|
void setNumberofUDPInterfaces(int val);
|
||||||
int getNumberofUDPInterfaces();
|
int getNumberofUDPInterfaces();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(JUNGFRAUD) || defined(EIGERD)
|
||||||
|
int getNumberofDestinations(int *retval);
|
||||||
|
int setNumberofDestinations(int value);
|
||||||
|
#endif
|
||||||
#ifdef JUNGFRAUD
|
#ifdef JUNGFRAUD
|
||||||
int getNumberofDestinations();
|
|
||||||
void setNumberofDestinations(int value);
|
|
||||||
int getFirstUDPDestination();
|
int getFirstUDPDestination();
|
||||||
void setFirstUDPDestination(int value);
|
void setFirstUDPDestination(int value);
|
||||||
void selectPrimaryInterface(int val);
|
void selectPrimaryInterface(int val);
|
||||||
|
@ -9156,15 +9156,14 @@ int get_num_dest_list(int file_des) {
|
|||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
retval = numUdpDestinations;
|
retval = numUdpDestinations;
|
||||||
#ifdef JUNGFRAUD
|
int retval1 = 0;
|
||||||
if (getNumberofDestinations() != retval) {
|
if (getNumberofDestinations(&retval1) == FAIL || retval1 != retval) {
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
sprintf(
|
sprintf(
|
||||||
mess,
|
mess,
|
||||||
"Could not get number of udp destinations. (server reads %d, fpga reads %d).\n", getNumberofDestinations(), retval);
|
"Could not get number of udp destinations. (server reads %d, fpga reads %d).\n", retval1, retval);
|
||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
LOG(logDEBUG1, ("numUdpDestinations retval: 0x%x\n", retval));
|
LOG(logDEBUG1, ("numUdpDestinations retval: 0x%x\n", retval));
|
||||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||||
@ -9190,8 +9189,15 @@ int set_num_dest_list(int file_des) {
|
|||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
} else {
|
} else {
|
||||||
if (check_detector_idle("set number of udp destinations") == OK) {
|
if (check_detector_idle("set number of udp destinations") == OK) {
|
||||||
numUdpDestinations = arg;
|
if (setNumberofDestinations(arg) == FAIL) {
|
||||||
configure_mac();
|
ret = FAIL;
|
||||||
|
strcpy(mess,
|
||||||
|
"Could not set number of udp destinations.\n");
|
||||||
|
LOG(logERROR, (mess));
|
||||||
|
} else {
|
||||||
|
numUdpDestinations = arg;
|
||||||
|
configure_mac();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -9202,11 +9208,10 @@ int get_udp_first_dest(int file_des) {
|
|||||||
ret = OK;
|
ret = OK;
|
||||||
memset(mess, 0, sizeof(mess));
|
memset(mess, 0, sizeof(mess));
|
||||||
int retval = -1;
|
int retval = -1;
|
||||||
#if !defined(JUNGFRAUD) && !defined(EIGERD)
|
#ifndef JUNGFRAUD
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
retval = firstUDPDestination;
|
retval = firstUDPDestination;
|
||||||
#ifdef JUNGFRAUD
|
|
||||||
if (getFirstUDPDestination() != retval) {
|
if (getFirstUDPDestination() != retval) {
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
sprintf(mess,
|
sprintf(mess,
|
||||||
@ -9215,7 +9220,6 @@ int get_udp_first_dest(int file_des) {
|
|||||||
getFirstUDPDestination(), retval);
|
getFirstUDPDestination(), retval);
|
||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
LOG(logDEBUG1, ("first udp destination retval: 0x%x\n", retval));
|
LOG(logDEBUG1, ("first udp destination retval: 0x%x\n", retval));
|
||||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||||
@ -9230,7 +9234,7 @@ int set_udp_first_dest(int file_des) {
|
|||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
LOG(logDEBUG1, ("Setting first udp destination to %d\n", arg));
|
LOG(logDEBUG1, ("Setting first udp destination to %d\n", arg));
|
||||||
|
|
||||||
#if !defined(JUNGFRAUD) && !defined(EIGERD)
|
#ifndef JUNGFRAUD
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
if (arg < 0 || arg >= MAX_UDP_DESTINATION) {
|
if (arg < 0 || arg >= MAX_UDP_DESTINATION) {
|
||||||
@ -9240,8 +9244,13 @@ int set_udp_first_dest(int file_des) {
|
|||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
} else {
|
} else {
|
||||||
if (check_detector_idle("set first udp destination") == OK) {
|
if (check_detector_idle("set first udp destination") == OK) {
|
||||||
firstUDPDestination = arg;
|
setFirstUDPDestination(arg);
|
||||||
configure_mac();
|
int retval = getFirstUDPDestination();
|
||||||
|
validate(&ret, mess, arg, retval, "set udp first destination", DEC);
|
||||||
|
if (ret == OK) {
|
||||||
|
firstUDPDestination = arg;
|
||||||
|
configure_mac();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -677,10 +677,10 @@ class Detector {
|
|||||||
/**[Jungfrau][Eiger] Options 1-32 */
|
/**[Jungfrau][Eiger] Options 1-32 */
|
||||||
void setNumberofUDPDestinations(const int value, Positions pos = {});
|
void setNumberofUDPDestinations(const int value, Positions pos = {});
|
||||||
|
|
||||||
/** [Jungfrau][Eiger] */
|
/** [Jungfrau] */
|
||||||
Result<int> getFirstUDPDestination(Positions pos = {}) const;
|
Result<int> getFirstUDPDestination(Positions pos = {}) const;
|
||||||
|
|
||||||
/**[Jungfrau][Eiger] Options 0-31 */
|
/**[Jungfrau] Options 0-31 */
|
||||||
void setFirstUDPDestination(const int value, Positions pos = {});
|
void setFirstUDPDestination(const int value, Positions pos = {});
|
||||||
|
|
||||||
Result<IpAddr> getDestinationUDPIP(Positions pos = {}) const;
|
Result<IpAddr> getDestinationUDPIP(Positions pos = {}) const;
|
||||||
|
@ -1543,7 +1543,7 @@ class CmdProxy {
|
|||||||
INTEGER_COMMAND_VEC_ID(
|
INTEGER_COMMAND_VEC_ID(
|
||||||
udp_firstdst, getFirstUDPDestination, setFirstUDPDestination,
|
udp_firstdst, getFirstUDPDestination, setFirstUDPDestination,
|
||||||
StringTo<int>,
|
StringTo<int>,
|
||||||
"[0 - 31]\n\t[Jungfrau][Eiger] One can set which is the first "
|
"[0 - 31]\n\t[Jungfrau] One can set which is the first "
|
||||||
"destination that the detector will stream images "
|
"destination that the detector will stream images "
|
||||||
"out from in a round robin fashion. The entry must not have been "
|
"out from in a round robin fashion. The entry must not have been "
|
||||||
"empty. Default: 0");
|
"empty. Default: 0");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user