Some fixes for the CTB

This commit is contained in:
2014-10-14 17:43:25 +02:00
parent 74ef04e726
commit 327c2106df
9 changed files with 44 additions and 46 deletions

View File

@ -2619,7 +2619,7 @@ uint64_t writePatternWord(int addr, uint64_t word) {
if (addr>=MAX_PATTERN_LENGTH) if (addr>=MAX_PATTERN_LENGTH)
return -1; return -1;
if (word>=0) { if (word=!-1){
set64BitReg(word,PATTERN_IN_REG_LSB,PATTERN_IN_REG_MSB); set64BitReg(word,PATTERN_IN_REG_LSB,PATTERN_IN_REG_MSB);
cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET; cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET;
bus_w(PATTERN_CNTRL_REG, cntrl); bus_w(PATTERN_CNTRL_REG, cntrl);

View File

@ -254,38 +254,38 @@
#define ROI_REG 0x35<<11 #define ROI_REG 0 // 0x35<<11
#define OVERSAMPLING_REG 0x36<<11 #define OVERSAMPLING_REG 0 // 0x36<<11
#define MOENCH_CNTR_REG 0x31<<11 #define MOENCH_CNTR_REG 0 // 0x31<<11
#define MOENCH_CNTR_OUT_REG 0x33<<11 #define MOENCH_CNTR_OUT_REG 0 // 0x33<<11
#define MOENCH_CNTR_CONF_REG 0x32<<11 #define MOENCH_CNTR_CONF_REG 0 // 0x32<<11
//image //image
#define DARK_IMAGE_REG 0x81<<11 #define DARK_IMAGE_REG 0 // 0x81<<11
#define GAIN_IMAGE_REG 0x82<<11 #define GAIN_IMAGE_REG 0 // 0x82<<11
//counter block memory //counter block memory
#define COUNTER_MEMORY_REG 0x85<<11 #define COUNTER_MEMORY_REG 0 // 0x85<<11
#define GET_MEASUREMENT_TIME_LSB_REG 0x023000 #define GET_MEASUREMENT_TIME_LSB_REG 0 // 0x023000
#define GET_MEASUREMENT_TIME_MSB_REG 0x024000 #define GET_MEASUREMENT_TIME_MSB_REG 0 // 0x024000
//#define GET_ACTUAL_TIME_LSB_REG 0x025000 //#define GET_ACTUAL_TIME_LSB_REG 0 // 0x025000
//#define GET_ACTUAL_TIME_MSB_REG 0x026000 //#define GET_ACTUAL_TIME_MSB_REG 0 // 0x026000
//not used //not used
//#define MCB_DOUT_REG_OFF 0x200000 //#define MCB_DOUT_REG_OFF 0 // 0x200000
//#define FIFO_CNTRL_REG_OFF 0x300000 //#define FIFO_CNTRL_REG_OFF 0 // 0x300000
//#define FIFO_COUNTR_REG_OFF 0x400000 //#define FIFO_COUNTR_REG_OFF 0 // 0x400000
//not used so far //not used so far
//#define SPEED_REG 0x006000 //#define SPEED_REG 0 // 0x006000
//#define SET_NBITS_REG 0x008000 //#define SET_NBITS_REG 0 // 0x008000
//not used //not used
//#define GET_SHIFT_IN_REG 0x022000 //#define GET_SHIFT_IN_REG 0 // 0x022000

View File

@ -4839,7 +4839,7 @@ int multiSlsDetector::enableTenGigabitEthernet(int i){
@param fname pattern file to open @param fname pattern file to open
@returns OK/FAIL @returns OK/FAIL
*/ */
int setCTBPattern(string fname) { int multiSlsDetector::setCTBPattern(string fname) {
@ -4853,7 +4853,7 @@ int setCTBPattern(string fname) {
@param word 64bit word to be written, -1 gets @param word 64bit word to be written, -1 gets
@returns actual value @returns actual value
*/ */
uint64_t setCTBWord(int addr,uint64_t word) { uint64_t multiSlsDetector::setCTBWord(int addr,uint64_t word) {
uint64_t ret=-100,ret1; uint64_t ret=-100,ret1;
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++) for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++)
if (detectors[idet]){ if (detectors[idet]){
@ -4878,7 +4878,7 @@ uint64_t setCTBWord(int addr,uint64_t word) {
@param n number of loops (if level >=0) @param n number of loops (if level >=0)
@returns OK/FAIL @returns OK/FAIL
*/ */
int setCTBPatLoops(int level,int &start, int &stop, int &n) { int multiSlsDetector::setCTBPatLoops(int level,int &start, int &stop, int &n) {
int ret=-100,ret1; int ret=-100,ret1;
@ -4903,7 +4903,7 @@ int setCTBPatLoops(int level,int &start, int &stop, int &n) {
@param addr wait address, -1 gets @param addr wait address, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBPatWaitAddr(int level, int addr) { int multiSlsDetector::setCTBPatWaitAddr(int level, int addr) {
@ -4929,7 +4929,7 @@ int setCTBPatWaitAddr(int level, int addr) {
@param t wait time, -1 gets @param t wait time, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBPatWaitTime(int level, uint64_t t=-1) { int multiSlsDetector::setCTBPatWaitTime(int level, uint64_t t) {

View File

@ -1254,7 +1254,7 @@ class multiSlsDetector : public slsDetectorUtils {
@param word 64bit word to be written, -1 gets @param word 64bit word to be written, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBWord(int addr,uint64_t word=-1); uint64_t setCTBWord(int addr,uint64_t word=-1);
/** Sets the pattern or loop limits in the CTB /** Sets the pattern or loop limits in the CTB
@param level -1 complete pattern, 0,1,2, loop level @param level -1 complete pattern, 0,1,2, loop level

View File

@ -6801,23 +6801,23 @@ int slsDetector::enableTenGigabitEthernet(int i){
@param fname pattern file to open @param fname pattern file to open
@returns OK/FAIL @returns OK/FAIL
*/ */
int setCTBPattern(string fname) { int slsDetector::setCTBPattern(string fname) {
int fnum=F_SEND_RECEIVER_DETHOSTNAME; int fnum=F_SET_CTB_PATTERN;
int ret = FAIL; int ret = FAIL;
char retval[MAX_STR_LENGTH]=""; char retval[MAX_STR_LENGTH]="";
if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ // if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){
#ifdef VERBOSE // #ifdef VERBOSE
std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; // std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl;
#endif // #endif
if (connectData() == OK) // if (connectData() == OK)
ret=thisReceiver->sendString(fnum,retval,thisDetector->hostname); // ret=thisReceiver->sendString(fnum,retval,thisDetector->hostname);
if((ret==FAIL) || (strcmp(retval,thisDetector->hostname))) // if((ret==FAIL) || (strcmp(retval,thisDetector->hostname)))
setErrorMask((getErrorMask())|(RECEIVER_DET_HOSTNAME_NOT_SET)); // setErrorMask((getErrorMask())|(RECEIVER_DET_HOSTNAME_NOT_SET));
} // }
return ret; return ret;
@ -6830,9 +6830,9 @@ int setCTBPattern(string fname) {
@param word 64bit word to be written, -1 gets @param word 64bit word to be written, -1 gets
@returns actual value @returns actual value
*/ */
uint64_t setCTBWord(int addr,uint64_t word) { uint64_t slsDetector::setCTBWord(int addr,uint64_t word) {
uint64_t ret; //uint64_t ret;
int ret=FAIL; int ret=FAIL;
uint64_t retval=-1; uint64_t retval=-1;
@ -6876,7 +6876,7 @@ uint64_t setCTBWord(int addr,uint64_t word) {
@param n number of loops (if level >=0) @param n number of loops (if level >=0)
@returns OK/FAIL @returns OK/FAIL
*/ */
int setCTBPatLoops(int level,int &start, int &stop, int &n) { int slsDetector::setCTBPatLoops(int level,int &start, int &stop, int &n) {
int retval[3], args[4]; int retval[3], args[4];
@ -6888,7 +6888,6 @@ int setCTBPatLoops(int level,int &start, int &stop, int &n) {
int ret=FAIL; int ret=FAIL;
uint64_t retval=-1;
int fnum=F_SET_CTB_PATTERN; int fnum=F_SET_CTB_PATTERN;
int mode=1; //sets loop int mode=1; //sets loop
@ -6930,7 +6929,7 @@ int setCTBPatLoops(int level,int &start, int &stop, int &n) {
@param addr wait address, -1 gets @param addr wait address, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBPatWaitAddr(int level, int addr=-1) { int slsDetector::setCTBPatWaitAddr(int level, int addr) {
@ -6939,7 +6938,6 @@ int setCTBPatWaitAddr(int level, int addr=-1) {
int ret=FAIL; int ret=FAIL;
uint64_t retval=-1;
int fnum=F_SET_CTB_PATTERN; int fnum=F_SET_CTB_PATTERN;
int mode=3; //sets loop int mode=3; //sets loop
@ -6979,7 +6977,7 @@ int setCTBPatWaitAddr(int level, int addr=-1) {
@param t wait time, -1 gets @param t wait time, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBPatWaitTime(int level, uint64_t t=-1) { int slsDetector::setCTBPatWaitTime(int level, uint64_t t) {
@ -6989,7 +6987,7 @@ int setCTBPatWaitTime(int level, uint64_t t=-1) {
int ret=FAIL; int ret=FAIL;
uint64_t retval=-1; // uint64_t retval=-1;
int fnum=F_SET_CTB_PATTERN; int fnum=F_SET_CTB_PATTERN;
int mode=4; //sets loop int mode=4; //sets loop

View File

@ -1665,7 +1665,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
@param word 64bit word to be written, -1 gets @param word 64bit word to be written, -1 gets
@returns actual value @returns actual value
*/ */
int setCTBWord(int addr,uint64_t word=-1); uint64_t setCTBWord(int addr,uint64_t word=-1);
/** Sets the pattern or loop limits in the CTB /** Sets the pattern or loop limits in the CTB
@param level -1 complete pattern, 0,1,2, loop level @param level -1 complete pattern, 0,1,2, loop level

View File

@ -4322,7 +4322,7 @@ string slsDetectorCommand::cmdPattern(int narg, char *args[], int action) {
**********/ **********/
ostringstream os; ostringstream os;
if (cmd=="pattern") if (cmd=="pattern") ;
else if (cmd=="patword") ; else if (cmd=="patword") ;
else if (cmd=="patioctrl") ; else if (cmd=="patioctrl") ;
else if (cmd=="patclkctrl") ; else if (cmd=="patclkctrl") ;