mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-06 01:50:40 +02:00
eiger server: added overflow, noverflow to the flags to show/not show saturation when there is overflow in any of the single subframes in 32 bit mode
This commit is contained in:
parent
0ed82d4ef7
commit
cb635d800a
@ -490,6 +490,8 @@ enum readOutFlags {
|
|||||||
DIGITAL_ONLY=0x80000, /** chiptest board read only digital bits (not adc values)*/
|
DIGITAL_ONLY=0x80000, /** chiptest board read only digital bits (not adc values)*/
|
||||||
ANALOG_AND_DIGITAL=0x100000, /** chiptest board read adc values and digital bits digital bits */
|
ANALOG_AND_DIGITAL=0x100000, /** chiptest board read adc values and digital bits digital bits */
|
||||||
DUT_CLK=0x200000, /** chiptest board fifo clock comes from device under test */
|
DUT_CLK=0x200000, /** chiptest board fifo clock comes from device under test */
|
||||||
|
SHOW_OVERFLOW=0x400000, /** eiger 32 bit mode, show saturated for overflow of single subframes */
|
||||||
|
NOOVERFLOW=0x800000 /** eiger 32 bit mode, do not show saturated for overflow of single subframes */
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
trimming modes
|
trimming modes
|
||||||
|
@ -415,6 +415,43 @@ int Beb_Activate(int enable){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int Beb_Set32bitOverflow(int val) {
|
||||||
|
if(!Beb_activated)
|
||||||
|
return val;
|
||||||
|
|
||||||
|
//mapping new memory
|
||||||
|
u_int32_t* csp0base=0;
|
||||||
|
u_int32_t valueread = 0;
|
||||||
|
u_int32_t offset = FLOW_REG_OFFSET;
|
||||||
|
if(val>0) val = 1;
|
||||||
|
|
||||||
|
//open file pointer
|
||||||
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
|
if(fd < 0){
|
||||||
|
cprintf(BG_RED,"Could not read register to set overflow flag in 32 bit mode. FAIL\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(val > -1){
|
||||||
|
// reset bit
|
||||||
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
|
Beb_Write32(csp0base, offset,valueread & ~FLOW_REG_OVERFLOW_32_BIT_MSK);
|
||||||
|
|
||||||
|
// set bit
|
||||||
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
|
Beb_Write32(csp0base, offset,valueread |
|
||||||
|
((val << FLOW_REG_OVERFLOW_32_BIT_OFST) & FLOW_REG_OVERFLOW_32_BIT_MSK));
|
||||||
|
}
|
||||||
|
|
||||||
|
valueread = (Beb_Read32(csp0base, offset) & FLOW_REG_OVERFLOW_32_BIT_MSK) >> FLOW_REG_OVERFLOW_32_BIT_OFST;
|
||||||
|
}
|
||||||
|
//close file pointer
|
||||||
|
if(fd > 0)
|
||||||
|
Beb_close(fd,csp0base);
|
||||||
|
|
||||||
|
return valueread;
|
||||||
|
}
|
||||||
|
|
||||||
int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val){
|
int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val){
|
||||||
|
|
||||||
if(!Beb_activated)
|
if(!Beb_activated)
|
||||||
@ -441,7 +478,7 @@ int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val){
|
|||||||
strcpy(modename,"Transmission Delay Frame");
|
strcpy(modename,"Transmission Delay Frame");
|
||||||
break;
|
break;
|
||||||
case FLOWCTRL_10G:
|
case FLOWCTRL_10G:
|
||||||
offset = TXM_FLOW_CONTROL_10G;
|
offset = FLOW_REG_OFFSET;
|
||||||
strcpy(modename,"Flow Control for 10G");
|
strcpy(modename,"Flow Control for 10G");
|
||||||
if(val>0) val = 1;
|
if(val>0) val = 1;
|
||||||
break;
|
break;
|
||||||
@ -455,14 +492,29 @@ int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val){
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(val > -1){
|
if(val > -1){
|
||||||
valueread = Beb_Read32(csp0base, offset);
|
if (mode != FLOWCTRL_10G) {
|
||||||
//cprintf(BLUE, "%s value before:%d\n",modename,valueread);
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
Beb_Write32(csp0base, offset,val);
|
Beb_Write32(csp0base, offset,val);
|
||||||
cprintf(BLUE,"%s value:%d\n", modename,valueread);
|
}
|
||||||
|
// flow control reg has other bits for other control
|
||||||
|
else {
|
||||||
|
// reset bit
|
||||||
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
|
Beb_Write32(csp0base, offset,valueread & ~FLOW_REG_TXM_FLOW_CNTRL_10G_MSK);
|
||||||
|
|
||||||
|
// set bit
|
||||||
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
|
Beb_Write32(csp0base, offset,valueread |
|
||||||
|
((val << FLOW_REG_TXM_FLOW_CNTRL_10G_OFST) & FLOW_REG_TXM_FLOW_CNTRL_10G_MSK));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
valueread = Beb_Read32(csp0base, offset);
|
valueread = Beb_Read32(csp0base, offset);
|
||||||
//cprintf(BLUE,"%s value:%d\n", modename,valueread);
|
if (mode == FLOWCTRL_10G)
|
||||||
|
valueread = (valueread & FLOW_REG_TXM_FLOW_CNTRL_10G_MSK) >> FLOW_REG_TXM_FLOW_CNTRL_10G_OFST;
|
||||||
|
|
||||||
}
|
}
|
||||||
//close file pointer
|
//close file pointer
|
||||||
if(fd > 0)
|
if(fd > 0)
|
||||||
|
@ -51,6 +51,7 @@ struct BebInfo{
|
|||||||
int Beb_SetMasterViaSoftware();
|
int Beb_SetMasterViaSoftware();
|
||||||
int Beb_SetSlaveViaSoftware();
|
int Beb_SetSlaveViaSoftware();
|
||||||
int Beb_Activate(int enable);
|
int Beb_Activate(int enable);
|
||||||
|
int Beb_Set32bitOverflow(int val);
|
||||||
int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val);
|
int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val);
|
||||||
int Beb_ResetToHardwareSettings();
|
int Beb_ResetToHardwareSettings();
|
||||||
u_int32_t Beb_GetFirmwareRevision();
|
u_int32_t Beb_GetFirmwareRevision();
|
||||||
|
@ -139,7 +139,12 @@
|
|||||||
#define TXM_DELAY_LEFT_OFFSET 0x180
|
#define TXM_DELAY_LEFT_OFFSET 0x180
|
||||||
#define TXM_DELAY_RIGHT_OFFSET 0x1A0
|
#define TXM_DELAY_RIGHT_OFFSET 0x1A0
|
||||||
#define TXM_DELAY_FRAME_OFFSET 0x1C0
|
#define TXM_DELAY_FRAME_OFFSET 0x1C0
|
||||||
#define TXM_FLOW_CONTROL_10G 0x140
|
#define FLOW_REG_OFFSET 0x140
|
||||||
|
|
||||||
|
#define FLOW_REG_TXM_FLOW_CNTRL_10G_OFST (0)
|
||||||
|
#define FLOW_REG_TXM_FLOW_CNTRL_10G_MSK (0x1 << FLOW_REG_TXM_FLOW_CNTRL_10G_OFST)
|
||||||
|
#define FLOW_REG_OVERFLOW_32_BIT_OFST (2)
|
||||||
|
#define FLOW_REG_OVERFLOW_32_BIT_MSK (0x1 << FLOW_REG_OVERFLOW_32_BIT_OFST)
|
||||||
|
|
||||||
//command memory
|
//command memory
|
||||||
#define LEFT_OFFSET 0x0
|
#define LEFT_OFFSET 0x0
|
||||||
|
Binary file not shown.
@ -1,9 +1,9 @@
|
|||||||
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
||||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repsitory UUID: 23d73ae5aee55e52d1d05452c633073ac1c6ad1a
|
Repsitory UUID: 0ed82d4ef7a10d8a935b5d075a990509da288e32
|
||||||
Revision: 334
|
Revision: 338
|
||||||
Branch: developer
|
Branch: 32bitoverflow
|
||||||
Last Changed Author: Dhanya_Thattil
|
Last Changed Author: Dhanya_Thattil
|
||||||
Last Changed Rev: 3817
|
Last Changed Rev: 3831
|
||||||
Last Changed Date: 2018-05-15 16:16:15.000000002 +0200 ./FebRegisterDefs.h
|
Last Changed Date: 2018-05-22 18:04:57.000000002 +0200 ./Beb.c
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||||
#define GITREPUUID "23d73ae5aee55e52d1d05452c633073ac1c6ad1a"
|
#define GITREPUUID "0ed82d4ef7a10d8a935b5d075a990509da288e32"
|
||||||
#define GITAUTH "Dhanya_Thattil"
|
#define GITAUTH "Dhanya_Thattil"
|
||||||
#define GITREV 0x3817
|
#define GITREV 0x3831
|
||||||
#define GITDATE 0x20180515
|
#define GITDATE 0x20180522
|
||||||
#define GITBRANCH "developer"
|
#define GITBRANCH "32bitoverflow"
|
||||||
|
@ -36,6 +36,7 @@ int eiger_photonenergy = 0;
|
|||||||
int eiger_dynamicrange = 0;
|
int eiger_dynamicrange = 0;
|
||||||
int eiger_readoutmode = 0;
|
int eiger_readoutmode = 0;
|
||||||
int eiger_storeinmem = 0;
|
int eiger_storeinmem = 0;
|
||||||
|
int eiger_overflow32 = 0;
|
||||||
int eiger_readoutspeed = 0;
|
int eiger_readoutspeed = 0;
|
||||||
int eiger_triggermode = 0;
|
int eiger_triggermode = 0;
|
||||||
int eiger_extgating = 0;
|
int eiger_extgating = 0;
|
||||||
@ -333,7 +334,9 @@ void setupDetector() {
|
|||||||
setTimer(FRAME_PERIOD, DEFAULT_PERIOD);
|
setTimer(FRAME_PERIOD, DEFAULT_PERIOD);
|
||||||
setDynamicRange(DEFAULT_DYNAMIC_RANGE);
|
setDynamicRange(DEFAULT_DYNAMIC_RANGE);
|
||||||
eiger_photonenergy = DEFAULT_PHOTON_ENERGY;
|
eiger_photonenergy = DEFAULT_PHOTON_ENERGY;
|
||||||
setReadOutFlags(DEFAULT_READOUT_FLAG);
|
setReadOutFlags(DEFAULT_READOUT_MODE);
|
||||||
|
setReadOutFlags(DEFAULT_READOUT_STOREINRAM_MODE);
|
||||||
|
setReadOutFlags(DEFAULT_READOUT_OVERFLOW32_MODE);
|
||||||
setSpeed(CLOCK_DIVIDER, DEFAULT_CLK_SPEED);//clk_devider,half speed
|
setSpeed(CLOCK_DIVIDER, DEFAULT_CLK_SPEED);//clk_devider,half speed
|
||||||
setIODelay(DEFAULT_IO_DELAY, DEFAULT_MOD_INDEX);
|
setIODelay(DEFAULT_IO_DELAY, DEFAULT_MOD_INDEX);
|
||||||
setTiming(DEFAULT_TIMING_MODE);
|
setTiming(DEFAULT_TIMING_MODE);
|
||||||
@ -430,7 +433,24 @@ enum readOutFlags setReadOutFlags(enum readOutFlags val){
|
|||||||
eiger_readoutmode = val;
|
eiger_readoutmode = val;
|
||||||
else return -1;
|
else return -1;
|
||||||
|
|
||||||
}else{
|
}
|
||||||
|
|
||||||
|
else if (val&0xF00000) {
|
||||||
|
switch(val){
|
||||||
|
case SHOW_OVERFLOW: val=1; printf(" Setting Read out Flag: Overflow in 32 bit mode\n"); break;
|
||||||
|
case NOOVERFLOW: val=0; printf(" Setting Read out Flag: No overflow in 32 bit mode\n"); break;
|
||||||
|
default:
|
||||||
|
cprintf(RED,"Cannot set unknown readout flag. 0x%x\n", val);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
printf(" Setting Read out Flag: %d\n",val);
|
||||||
|
if(Beb_Set32bitOverflow(val) != -1)
|
||||||
|
eiger_overflow32 = val;
|
||||||
|
else return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
else{
|
||||||
switch(val){
|
switch(val){
|
||||||
case STORE_IN_RAM: val=1; printf(" Setting Read out Flag: Store in Ram\n"); break;
|
case STORE_IN_RAM: val=1; printf(" Setting Read out Flag: Store in Ram\n"); break;
|
||||||
case CONTINOUS_RO: val=0; printf(" Setting Read out Flag: Continuous Readout\n"); break;
|
case CONTINOUS_RO: val=0; printf(" Setting Read out Flag: Continuous Readout\n"); break;
|
||||||
@ -451,10 +471,19 @@ enum readOutFlags setReadOutFlags(enum readOutFlags val){
|
|||||||
case E_SAFE: retval=SAFE; break;
|
case E_SAFE: retval=SAFE; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch(eiger_overflow32){
|
||||||
|
case 1: retval|=SHOW_OVERFLOW; break;
|
||||||
|
case 0: retval|=NOOVERFLOW; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
switch(eiger_storeinmem){
|
switch(eiger_storeinmem){
|
||||||
case 0: retval|=CONTINOUS_RO; break;
|
case 0: retval|=CONTINOUS_RO; break;
|
||||||
case 1: retval|=STORE_IN_RAM; break;
|
case 1: retval|=STORE_IN_RAM; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
printf("Read out Flag: 0x%x\n",retval);
|
printf("Read out Flag: 0x%x\n",retval);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,10 @@ enum NETWORKINDEX {TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G};
|
|||||||
#define DEFAULT_SUBFRAME_EXPOSURE (2621440) // 2.6ms
|
#define DEFAULT_SUBFRAME_EXPOSURE (2621440) // 2.6ms
|
||||||
#define DEFAULT_SUBFRAME_PERIOD (0)
|
#define DEFAULT_SUBFRAME_PERIOD (0)
|
||||||
#define DEFAULT_DYNAMIC_RANGE (16)
|
#define DEFAULT_DYNAMIC_RANGE (16)
|
||||||
#define DEFAULT_READOUT_FLAG (NONPARALLEL)
|
|
||||||
|
#define DEFAULT_READOUT_MODE (NONPARALLEL)
|
||||||
|
#define DEFAULT_READOUT_STOREINRAM_MODE (CONTINOUS_RO)
|
||||||
|
#define DEFAULT_READOUT_OVERFLOW32_MODE (NOOVERFLOW)
|
||||||
#define DEFAULT_CLK_SPEED (HALF_SPEED)
|
#define DEFAULT_CLK_SPEED (HALF_SPEED)
|
||||||
#define DEFAULT_IO_DELAY (650)
|
#define DEFAULT_IO_DELAY (650)
|
||||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||||
|
@ -5440,17 +5440,7 @@ int slsDetector::sendROI(int n,ROI roiLimits[]){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
enum readOutFlags {
|
|
||||||
NORMAL_READOUT,
|
|
||||||
setReadOutFlags(STORE_IN_RAM,
|
|
||||||
READ_HITS,
|
|
||||||
ZERO_COMPRESSION,
|
|
||||||
BACKGROUND_CORRECTION
|
|
||||||
}{};
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
int slsDetector::setReadOutFlags(readOutFlags flag){
|
int slsDetector::setReadOutFlags(readOutFlags flag){
|
||||||
|
|
||||||
|
@ -407,6 +407,15 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
|
|||||||
} \
|
} \
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void setOverflowMode(int value){ \
|
||||||
|
if(value>=0){ \
|
||||||
|
switch(value){ \
|
||||||
|
case 1: setReadOutFlags(SHOW_OVERFLOW);break; \
|
||||||
|
case 0: setReadOutFlags(NOOVERFLOW);break; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
get readout mode of detector (eiger specific)
|
get readout mode of detector (eiger specific)
|
||||||
\returns 0 for nonparallel, 1 for parallel, 2 for safe
|
\returns 0 for nonparallel, 1 for parallel, 2 for safe
|
||||||
@ -417,6 +426,18 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
|
|||||||
if (ret&PARALLEL) return 1; \
|
if (ret&PARALLEL) return 1; \
|
||||||
if (ret&SAFE) return 2; \
|
if (ret&SAFE) return 2; \
|
||||||
return -1; \
|
return -1; \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
get readout overflow mode of detector (eiger specific)
|
||||||
|
\returns 1 for show overflow, 0 for do not show overflow
|
||||||
|
*/
|
||||||
|
int getOverflowMode(){ \
|
||||||
|
int ret = setReadOutFlags(); \
|
||||||
|
if (ret&SHOW_OVERFLOW) return 1; \
|
||||||
|
if (ret&NOOVERFLOW) return 0; \
|
||||||
|
return -1; \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -414,7 +414,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \page config
|
/*! \page config
|
||||||
- <b>flags [flag]</b> sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, unknown. Used for MYTHEN and EIGER only. \c Returns \c (string). put takes one string and \c returns concatenation of all active flags separated by spaces.
|
- <b>flags [flag]</b> sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overflow, nooverflow, unknown. Used for MYTHEN and EIGER only. \c Returns \c (string). put takes one string and \c returns concatenation of all active flags separated by spaces.
|
||||||
*/
|
*/
|
||||||
descrToFuncMap[i].m_pFuncName="flags";
|
descrToFuncMap[i].m_pFuncName="flags";
|
||||||
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced;
|
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced;
|
||||||
@ -6016,6 +6016,10 @@ string slsDetectorCommand::cmdAdvanced(int narg, char *args[], int action) {
|
|||||||
flag=DIGITAL_ONLY;
|
flag=DIGITAL_ONLY;
|
||||||
else if (sval=="analog_digital")
|
else if (sval=="analog_digital")
|
||||||
flag=ANALOG_AND_DIGITAL;
|
flag=ANALOG_AND_DIGITAL;
|
||||||
|
else if (sval=="overflow")
|
||||||
|
flag=SHOW_OVERFLOW;
|
||||||
|
else if (sval=="nooverflow")
|
||||||
|
flag=NOOVERFLOW;
|
||||||
else
|
else
|
||||||
return string("could not scan flag ")+string(args[1]);
|
return string("could not scan flag ")+string(args[1]);
|
||||||
}
|
}
|
||||||
@ -6044,6 +6048,10 @@ string slsDetectorCommand::cmdAdvanced(int narg, char *args[], int action) {
|
|||||||
strcat(answer,"digital " );
|
strcat(answer,"digital " );
|
||||||
if (retval & ANALOG_AND_DIGITAL)
|
if (retval & ANALOG_AND_DIGITAL)
|
||||||
strcat(answer,"analog_digital ");
|
strcat(answer,"analog_digital ");
|
||||||
|
if (retval & SHOW_OVERFLOW)
|
||||||
|
strcat(answer,"overflow ");
|
||||||
|
if (retval & NOOVERFLOW)
|
||||||
|
strcat(answer,"nooverflow ");
|
||||||
if(strlen(answer))
|
if(strlen(answer))
|
||||||
return string(answer);
|
return string(answer);
|
||||||
|
|
||||||
@ -6148,7 +6156,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) {
|
|||||||
if (action==PUT_ACTION || action==HELP_ACTION) {
|
if (action==PUT_ACTION || action==HELP_ACTION) {
|
||||||
|
|
||||||
os << "extsig:i mode \t sets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl;
|
os << "extsig:i mode \t sets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl;
|
||||||
os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, unknown" << std::endl;
|
os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overlow, nooverflow, unknown." << std::endl;
|
||||||
|
|
||||||
os << "programfpga f \t programs the fpga with file f (with .pof extension)." << std::endl;
|
os << "programfpga f \t programs the fpga with file f (with .pof extension)." << std::endl;
|
||||||
os << "resetfpga f \t resets fpga, f can be any value" << std::endl;
|
os << "resetfpga f \t resets fpga, f can be any value" << std::endl;
|
||||||
@ -6161,9 +6169,8 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) {
|
|||||||
|
|
||||||
os << "extsig:i \t gets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl;
|
os << "extsig:i \t gets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl;
|
||||||
|
|
||||||
os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, unknown" << std::endl;
|
os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overflow, nooverflow, unknown" << std::endl;
|
||||||
os << "led \t returns led status (0 off, 1 on)" << std::endl;
|
os << "led \t returns led status (0 off, 1 on)" << std::endl;
|
||||||
os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, unknown" << std::endl;
|
|
||||||
os << "powerchip \t gets if the chip has been powered on or off" << std::endl;
|
os << "powerchip \t gets if the chip has been powered on or off" << std::endl;
|
||||||
os << "auto_comp_disable \t Currently not implemented. gets if the automatic comparator diable mode is enabled/disabled" << std::endl;
|
os << "auto_comp_disable \t Currently not implemented. gets if the automatic comparator diable mode is enabled/disabled" << std::endl;
|
||||||
|
|
||||||
|
@ -343,6 +343,12 @@ int slsDetectorUsers::setParallelMode(int value) {
|
|||||||
return myDetector->getParallelMode();
|
return myDetector->getParallelMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int slsDetectorUsers::setOverflowMode(int value) {
|
||||||
|
if(value >= 0)
|
||||||
|
myDetector->setOverflowMode(value);
|
||||||
|
return myDetector->getOverflowMode();
|
||||||
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::setAllTrimbits(int val, int id) {
|
int slsDetectorUsers::setAllTrimbits(int val, int id) {
|
||||||
return myDetector->setAllTrimbits(val, id);
|
return myDetector->setAllTrimbits(val, id);
|
||||||
}
|
}
|
||||||
|
@ -612,6 +612,13 @@ class slsDetectorUsers
|
|||||||
*/
|
*/
|
||||||
int setParallelMode(int value);
|
int setParallelMode(int value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @short show saturated for overflow in subframes in 32 bit mode (eiger only)
|
||||||
|
* \param value 0 for do not show saturatd, 1 for show saturated (-1 gets)
|
||||||
|
* \returns overflow mode enable in 32 bit mode
|
||||||
|
*/
|
||||||
|
int setOverflowMode(int value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@short sets all trimbits to value (only available for eiger)
|
@short sets all trimbits to value (only available for eiger)
|
||||||
\param val value to be set (-1 gets)
|
\param val value to be set (-1 gets)
|
||||||
|
@ -3102,6 +3102,8 @@ int set_readout_flags(int file_des) {
|
|||||||
case PARALLEL:
|
case PARALLEL:
|
||||||
case NONPARALLEL:
|
case NONPARALLEL:
|
||||||
case SAFE:
|
case SAFE:
|
||||||
|
case SHOW_OVERFLOW:
|
||||||
|
case NOOVERFLOW:
|
||||||
#endif
|
#endif
|
||||||
retval=setReadOutFlags(arg);
|
retval=setReadOutFlags(arg);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user