diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 index 4519f8f12..5f58c87f9 100755 Binary files a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 differ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 0b186fd3e..9407c4cff 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -65,6 +65,7 @@ typedef struct ip_header_struct { struct timeval tss,tse,tsss; //for timing +int gpiopinsdefined = 0; @@ -1058,6 +1059,7 @@ int64_t setPeriod(int64_t value){ printf("\nSetting period to %lld\n",(long long int)value); value*=(1E-3*clockdivider); } + return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } @@ -1434,12 +1436,16 @@ int writeGbeReg(int ivar, uint32_t val, int addr, int interface) { int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport, uint32_t sourceport, int interface) { //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ - +/* + if(!gpiopinsdefined){ + defineGPIOpins(); + gpiopinsdefined = 1; + } //tell FPGA to not touch flash system("echo 0 > /sys/class/gpio/gpio9/value"); //tell FPGA to touch flash to program itself system("echo 1 > /sys/class/gpio/gpio9/value"); - +*/ volatile u_int32_t conf= bus_r(CONFIG_REG); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index e816e6459..7f14fd57d 100755 Binary files a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 and b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 differ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 51d0fd097..ba365149e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -97,9 +97,6 @@ int init_detector(int b) { ); - defineGPIOpins(); - - printf("Resetting PLL\n"); resetPLL(); bus_w16(CONTROL_REG, SYNC_RESET); @@ -172,6 +169,7 @@ int init_detector(int b) { setDelay(0); setGates(0); + setTiming(GET_EXTERNAL_COMMUNICATION_MODE); setMaster(GET_MASTER); setSynchronization(GET_SYNCHRONIZATION_MODE); @@ -2461,6 +2459,7 @@ int send_update(int file_des) { retval=setExposureTime(tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); retval=setPeriod(tns); + cprintf(RED,"updated frame period from %lld tns:%d\n", (long long int)retval, tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); retval=setDelay(tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 096506bde..62b680d9e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3560,7 +3560,6 @@ int slsDetector::updateDetectorNoWait() { //retval=setPeriod(tns); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[FRAME_PERIOD]=retval; - cprintf(RED,"updated frame period to %lld\n", (long long int)thisDetector->timerValue[FRAME_PERIOD]); //retval=setDelay(tns); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[DELAY_AFTER_TRIGGER]=retval; @@ -3986,9 +3985,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (index!=MEASUREMENTS_NUMBER) { -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "Setting timer "<< index << " to " << t << "ns/value" << std::endl; -//#endif +#endif if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -4026,9 +4025,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (t>=0) thisDetector->timerValue[index]=t; } -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; -//#endif +#endif if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { setDynamicRange(); @@ -4078,9 +4077,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } //set period else{ -//#ifdef VERBOSE +#ifdef VERBOSE std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; -//#endif +#endif //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period if(!args[1]) args[1] = timerValue[ACQUISITION_TIME]; @@ -5547,7 +5546,7 @@ char* slsDetector::setReceiver(string receiverIP){ strcpy(thisDetector->receiver_hostname,receiverIP.c_str()); if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ -//#ifdef VERBOSE +#ifdef VERBOSE std::cout << "Setting up receiver with" << endl; std::cout << "detector type:" << slsDetectorBase::getDetectorType(thisDetector->myDetectorType) << endl; std::cout << "detector hostname:" << thisDetector->hostname << endl; @@ -5565,7 +5564,7 @@ char* slsDetector::setReceiver(string receiverIP){ std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; //std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; /** enable compresison, */ -//#endif +#endif if(setDetectorType()!= GENERIC){ setDetectorHostname(); setFilePath(fileIO::getFilePath());