small changes with trimbits

This commit is contained in:
Maliakal Dhanya 2014-07-18 17:38:39 +02:00
parent c4f8c4a2aa
commit e15d6077df
2 changed files with 52 additions and 5 deletions

View File

@ -162,6 +162,35 @@ int EigerSetTrimbits(const int *data){
} }
int EigerSetAllTrimbits(unsigned int value){
eiger_ret_val=0;
char tt[263681];
tt[263680]='\0';
int ip=0, ich=0;
int iy, ix;
int ichip;
// convert the trimbits from int32 to chars and add border pixels.
for(iy=0;iy<256;y++) {
for (ichip=0; ichip<4; ichip++) {
for(ix=0;ix<256;ix++) {
tt[ip++]=value&0x3f;
}
if (ichip<3) {
tt[ip++]=0;
tt[ip++]=0;
}
}
}
eiger_message_length = sprintf(eiger_message,"settrimbits %s", tt);
memcpy(saved_trimbits,data,256*256*4*sizeof(int));
return EigerSendCMD();
}
/* int EigerGetTrimbits(const int *data){ */ /* int EigerGetTrimbits(const int *data){ */
/* eiger_ret_val=0; */ /* eiger_ret_val=0; */
/* char tt[263681]; */ /* char tt[263681]; */
@ -178,6 +207,20 @@ int EigerSetTrimbits(const int *data){
int EigerGetTrimbits(const int *data){
eiger_ret_val=0;
char tt[263681];
tt[263680]='\0';
int ip=0, ich=0;
int iy, ix;
int ichip;
eiger_message_length = sprintf(eiger_message,"gettrimbits ");
memcpy(data,saved_trimbits,256*256*4*sizeof(int));
return EigerSendCMD();
}

View File

@ -30,6 +30,7 @@ enum cmd_string {evNotFound,
evSetDACValue,evGetDACValue,evSetDACVoltage,evGetDACVoltage,evSetHighVoltage,//evGetHighVoltage, evSetDACValue,evGetDACValue,evSetDACVoltage,evGetDACVoltage,evSetHighVoltage,//evGetHighVoltage,
evSetTrimBits, evSetTrimBits,
evGetTrimBits,
//evLoadTrimBitFile, //evLoadTrimBitFile,
evSetBitMode, evSetBitMode,
@ -63,6 +64,7 @@ void init(){
enum_map["getdacvoltage"] = evGetDACVoltage; enum_map["getdacvoltage"] = evGetDACVoltage;
enum_map["sethighvoltage"] = evSetHighVoltage; enum_map["sethighvoltage"] = evSetHighVoltage;
enum_map["settrimbits"] = evSetTrimBits; enum_map["settrimbits"] = evSetTrimBits;
enum_map["gettrimbits"] = evGetTrimBits;
// enum_map["loadtrimbitfile"] = evLoadTrimBitFile; // enum_map["loadtrimbitfile"] = evLoadTrimBitFile;
enum_map["setbitmode"] = evSetBitMode; enum_map["setbitmode"] = evSetBitMode;
enum_map["setphotonenergy"] = evSetPhotonEnergy; enum_map["setphotonenergy"] = evSetPhotonEnergy;
@ -257,16 +259,18 @@ int main(int argc, char* argv[]){
break; break;
case evSetTrimBits : case evSetTrimBits :
/*if(tmp_str[0].length()>0&&feb_controler->SetDynamicRange(n[0])){*/
feb_controler->SetTrimbits(0,(unsigned char*)data); feb_controler->SetTrimbits(0,(unsigned char*)data);
return_message.append("\tExecuted: SetTrimBits "); AddNumber(return_message,n[0]); return_message.append("\n"); return_message.append("\tExecuted: SetTrimBits "); AddNumber(return_message,n[0]); return_message.append("\n");
ret_val = 0; ret_val = 0;
/*}else{
return_message.append("\tError executing: SetTrimBits \n");
ret_val = 1;
} */
break; break;
case evGetTrimBits :
/*strcpy(ret_parameter, feb_controler->GetTrimbits()); parameter to pass string*/
return_message.append("\tExecuted: GetTrimBits "); AddNumber(return_message,n[0]); return_message.append("\n");
ret_val = 0;
break;
// case evLoadTrimBitFile : // case evLoadTrimBitFile :
case evSetBitMode : case evSetBitMode :