mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 10:07:59 +02:00
get/set timing, generate data for gotthard2, vref_rstore instead of restore for gotthard2
This commit is contained in:
Binary file not shown.
@ -1418,22 +1418,18 @@ int setHighVoltage(int val){
|
||||
|
||||
|
||||
void setTiming( enum timingMode arg){
|
||||
|
||||
if(arg != GET_TIMING_MODE){
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
return;
|
||||
}
|
||||
}
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
@ -1106,36 +1106,46 @@ int setHighVoltage(int val) {
|
||||
/* parameters - timing, extsig */
|
||||
|
||||
void setTiming( enum timingMode arg) {
|
||||
enum timingMode ret=GET_TIMING_MODE;
|
||||
if (arg != GET_TIMING_MODE) {
|
||||
switch(arg) {
|
||||
case AUTO_TIMING: ret = 0; break;
|
||||
case TRIGGER_EXPOSURE: ret = 2; break;
|
||||
case BURST_TRIGGER: ret = 1; break;
|
||||
case GATED: ret = 3; break;
|
||||
}
|
||||
FILE_LOG(logDEBUG1, ("Setting Triggering Mode: %d\n", (int)ret));
|
||||
#ifndef VIRTUAL
|
||||
if (Feb_Control_SetTriggerMode(ret,1))
|
||||
#endif
|
||||
eiger_triggermode = ret;
|
||||
int ret = 0;
|
||||
switch(arg) {
|
||||
case AUTO_TIMING:
|
||||
ret = 0;
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
ret = 2;
|
||||
break;
|
||||
case BURST_TRIGGER:
|
||||
ret = 1;
|
||||
break;
|
||||
case GATED:
|
||||
ret = 3;
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
return;
|
||||
}
|
||||
FILE_LOG(logDEBUG1, ("Setting Triggering Mode: %d\n", (int)ret));
|
||||
#ifndef VIRTUAL
|
||||
if (Feb_Control_SetTriggerMode(ret,1))
|
||||
#endif
|
||||
eiger_triggermode = ret;
|
||||
}
|
||||
|
||||
|
||||
enum timingMode getTiming() {
|
||||
enum timingMode ret = GET_TIMING_MODE;
|
||||
ret = eiger_triggermode;
|
||||
switch((int)ret) {
|
||||
case 0: ret = AUTO_TIMING; break;
|
||||
case 2: ret = TRIGGER_EXPOSURE; break;
|
||||
case 1: ret = BURST_TRIGGER; break;
|
||||
case 3: ret = GATED; break;
|
||||
switch(eiger_triggermode) {
|
||||
case 0:
|
||||
return AUTO_TIMING;
|
||||
case 2:
|
||||
return TRIGGER_EXPOSURE;
|
||||
case 1:
|
||||
return BURST_TRIGGER;
|
||||
case 3:
|
||||
return GATED;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown trigger mode found %d\n", ret));
|
||||
ret = 0;
|
||||
FILE_LOG(logERROR, ("Unknown trigger mode found %d\n", eiger_triggermode));
|
||||
return GET_TIMING_MODE;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
@ -11,7 +11,7 @@ vref_h_adc 2099
|
||||
vb_comp_fe 0
|
||||
vb_comp_adc 0
|
||||
vcom_cds 1400
|
||||
vref_restore 640
|
||||
vref_rstore 640
|
||||
vb_opa_1st 0
|
||||
vref_comp_fe 0
|
||||
vcom_adc1 1400
|
||||
|
@ -626,8 +626,8 @@ int readConfigFile() {
|
||||
idac = G2_VB_COMP_ADC;
|
||||
} else if (!strcasecmp(command,"vcom_cds")) {
|
||||
idac = G2_VCOM_CDS;
|
||||
} else if (!strcasecmp(command,"vref_restore")) {
|
||||
idac = G2_VREF_RESTORE;
|
||||
} else if (!strcasecmp(command,"vref_rstore")) {
|
||||
idac = G2_VREF_RSTORE;
|
||||
} else if (!strcasecmp(command,"vb_opa_1st")) {
|
||||
idac = G2_VB_OPA_1ST;
|
||||
} else if (!strcasecmp(command,"vref_comp_fe")) {
|
||||
@ -1091,21 +1091,18 @@ int setHighVoltage(int val){
|
||||
|
||||
/* parameters - timing */
|
||||
void setTiming( enum timingMode arg){
|
||||
if(arg != GET_TIMING_MODE){
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
return;
|
||||
}
|
||||
}
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
}
|
||||
}
|
||||
|
||||
enum timingMode getTiming() {
|
||||
@ -1945,9 +1942,19 @@ void* start_timer(void* arg) {
|
||||
int numFrames = (getNumFrames() *
|
||||
getNumTriggers() );
|
||||
int64_t exp_ns = getExpTime();
|
||||
int datasize = 2560;
|
||||
int imagesize = NCHAN * NCHIP * 2;
|
||||
int datasize = imagesize;
|
||||
int packetsize = datasize + sizeof(sls_detector_header);
|
||||
|
||||
// Generate data
|
||||
char imageData[imagesize];
|
||||
memset(imageData, 0, imagesize);
|
||||
{
|
||||
int i = 0;
|
||||
for (i = 0; i < imagesize; i += sizeof(uint8_t)) {
|
||||
*((uint8_t*)(imageData + i)) = i;
|
||||
}
|
||||
}
|
||||
|
||||
int frameNr = 0;
|
||||
// loop over number of frames
|
||||
@ -1974,7 +1981,10 @@ void* start_timer(void* arg) {
|
||||
header->row = detPos[X];
|
||||
header->column = detPos[Y];
|
||||
header->detType = (uint16_t)myDetectorType;
|
||||
header->version = SLS_DETECTOR_HEADER_VERSION - 1;
|
||||
header->version = SLS_DETECTOR_HEADER_VERSION - 1;
|
||||
|
||||
// fill data
|
||||
memcpy(packetData + sizeof(sls_detector_header), imageData, datasize);
|
||||
|
||||
// send 1 packet = 1 frame
|
||||
sendUDPPacket(0, packetData, packetsize);
|
||||
|
@ -61,7 +61,7 @@ enum DACINDEX {G2_VREF_H_ADC, /* 0 */ \
|
||||
G2_VB_COMP_FE, /* 2 */ \
|
||||
G2_VB_COMP_ADC, /* 3 */ \
|
||||
G2_VCOM_CDS, /* 4 */ \
|
||||
G2_VREF_RESTORE,/* 5 */ \
|
||||
G2_VREF_RSTORE,/* 5 */ \
|
||||
G2_VB_OPA_1ST, /* 6 */ \
|
||||
G2_VREF_COMP_FE,/* 7 */ \
|
||||
G2_VCOM_ADC1, /* 8 */ \
|
||||
@ -73,7 +73,7 @@ enum DACINDEX {G2_VREF_H_ADC, /* 0 */ \
|
||||
G2_DAC_UNUSED2, /* 14 */ \
|
||||
G2_VCOM_ADC2 /* 15*/ \
|
||||
};
|
||||
#define DAC_NAMES "vref_h_adc", "dac_unused", "vb_comp_fe", "vb_comp_adc", "vcom_cds", "vref_restore", "vb_opa_1st", "vref_comp_fe", "vcom_adc1", "vref_prech", "vref_l_adc", "vref_cds", "vb_cs", "vb_opa_fd", "dac_unused2", "vcom_adc2"
|
||||
#define DAC_NAMES "vref_h_adc", "dac_unused", "vb_comp_fe", "vb_comp_adc", "vcom_cds", "vref_rstore", "vb_opa_1st", "vref_comp_fe", "vcom_adc1", "vref_prech", "vref_l_adc", "vref_cds", "vb_cs", "vb_opa_fd", "dac_unused2", "vcom_adc2"
|
||||
|
||||
enum ONCHIP_DACINDEX {G2_VCHIP_COMP_FE, /* 0 */ \
|
||||
G2_VCHIP_OPA_1ST, /* 1 */ \
|
||||
|
Binary file not shown.
@ -1178,27 +1178,23 @@ int setHighVoltage(int val){
|
||||
|
||||
void setTiming( enum timingMode arg){
|
||||
u_int32_t addr = EXT_SIGNAL_REG;
|
||||
|
||||
if (arg != GET_TIMING_MODE){
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(addr, EXT_SIGNAL_OFF_VAL);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
if (signalMode == TRIGGER_IN_FALLING_EDGE) {
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger (Falling Edge)\n"));
|
||||
bus_w(addr, EXT_SIGNAL_TRGGR_IN_FLLNG_VAL);
|
||||
} else {
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger (Rising Edge)\n"));
|
||||
bus_w(addr, EXT_SIGNAL_TRGGR_IN_RSNG_VAL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d for this detector\n", (int)arg));
|
||||
return;
|
||||
}
|
||||
}
|
||||
switch(arg) {
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(addr, EXT_SIGNAL_OFF_VAL);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
if (signalMode == TRIGGER_IN_FALLING_EDGE) {
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger (Falling Edge)\n"));
|
||||
bus_w(addr, EXT_SIGNAL_TRGGR_IN_FLLNG_VAL);
|
||||
} else {
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger (Rising Edge)\n"));
|
||||
bus_w(addr, EXT_SIGNAL_TRGGR_IN_RSNG_VAL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d for this detector\n", (int)arg));
|
||||
}
|
||||
}
|
||||
|
||||
enum timingMode getTiming() {
|
||||
|
Binary file not shown.
@ -919,22 +919,18 @@ int setHighVoltage(int val){
|
||||
|
||||
|
||||
void setTiming( enum timingMode arg){
|
||||
|
||||
if(arg != GET_TIMING_MODE){
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
return;
|
||||
}
|
||||
}
|
||||
switch(arg){
|
||||
case AUTO_TIMING:
|
||||
FILE_LOG(logINFO, ("Set Timing: Auto\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
|
||||
break;
|
||||
case TRIGGER_EXPOSURE:
|
||||
FILE_LOG(logINFO, ("Set Timing: Trigger\n"));
|
||||
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Unknown timing mode %d\n", arg));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
@ -1383,13 +1383,7 @@ void* start_timer(void* arg) {
|
||||
getNumTriggers() );
|
||||
int64_t exp_ns = getExpTime();
|
||||
|
||||
int numCounters = __builtin_popcount(getCounterMask());
|
||||
int dr = setDynamicRange(-1);
|
||||
int imagesize = NCHAN_1_COUNTER * NCHIP * numCounters *
|
||||
((dr > 16) ? 4 : // 32 bit
|
||||
((dr > 8) ? 2 : // 16 bit
|
||||
((dr > 4) ? 0.5 : // 4 bit
|
||||
0.125))); // 1 bit
|
||||
int imagesize = calculateDataBytes();
|
||||
int datasize = imagesize / PACKETS_PER_FRAME;
|
||||
int packetsize = datasize + sizeof(sls_detector_header);
|
||||
|
||||
@ -1568,7 +1562,15 @@ u_int32_t runBusy() {
|
||||
/* common */
|
||||
|
||||
int calculateDataBytes() {
|
||||
return 0;
|
||||
int numCounters = __builtin_popcount(getCounterMask());
|
||||
int dr = setDynamicRange(-1);
|
||||
int databytes = NCHAN_1_COUNTER * NCHIP * numCounters *
|
||||
((dr > 16) ? 4 : // 32 bit
|
||||
((dr > 8) ? 2 : // 16 bit
|
||||
((dr > 4) ? 0.5 : // 4 bit
|
||||
0.125))); // 1 bit
|
||||
|
||||
return databytes;
|
||||
}
|
||||
|
||||
int getTotalNumberOfChannels() {return (getNumberOfChannelsPerChip() * getNumberOfChips());}
|
||||
|
@ -1000,8 +1000,8 @@ int set_dac(int file_des) {
|
||||
case VCOM_CDS:
|
||||
serverDacIndex = G2_VCOM_CDS;
|
||||
break;
|
||||
case VREF_RESTORE:
|
||||
serverDacIndex = G2_VREF_RESTORE;
|
||||
case VREF_RSTORE:
|
||||
serverDacIndex = G2_VREF_RSTORE;
|
||||
break;
|
||||
case VB_OPA_1ST:
|
||||
serverDacIndex = G2_VB_OPA_1ST;
|
||||
|
Reference in New Issue
Block a user