trying changes

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@470 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-02-26 08:34:35 +00:00
parent aae7c68f65
commit 460ffe0549
6 changed files with 79 additions and 97 deletions

View File

@ -1,13 +1,14 @@
CC = powerpc-4xx-softfloat-gcc
CC = powerpc-4xx-softfloat-g++
CLAGS += -Wall -DDACS_INT -DSLS_DETECTOR_FUNCTION_LIST -DEIGERD #-DVIRTUAL
LDLIBS += -lm
LDLIBS += -lm -lstdc++
PROGS = eigerDetectorServer
DESTDIR ?= bin
INSTMODE = 0777
SRC_CLNT = slsDetectorServer.c slsDetectorServer_funcs.c communication_funcs.c slsDetector_firmware.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.cpp=.o)
SRC_CLNT = slsDetectorServer.cpp
SRC_CLNTC = slsDetectorServer_funcs.c communication_funcs.c slsDetector_firmware.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.cpp=.o) $(SRC_CLNTC:%.c=%.o)
@ -18,7 +19,7 @@ boot: $(OBJS)
$(PROGS):
echo $(OBJS)
mkdir -p $(DESTDIR)
$(CC) $(SRC_CLNT) $(CLAGS) $(LDLIBS) -o $@
$(CC) $(CLAGS) $(SRC_CLNT) $(SRC_CLNTC) $(LDLIBS) -o $@
mv $(PROGS) $(DESTDIR)

View File

@ -407,7 +407,7 @@ int receiveChip(int file_des, sls_detector_chip* myChip) {
if (chdiff<=0)
ts+=receiveDataOnly(file_des,myChip->chanregs, sizeof(int)*nChans);
else {
ptr=malloc(chdiff*sizeof(int));
ptr=(int *)malloc(chdiff*sizeof(int));
myChip->nchan=nchanold;
ts+=receiveDataOnly(file_des,myChip->chanregs, sizeof(int)*nchanold);
ts+=receiveDataOnly(file_des,ptr, sizeof(int)*chdiff);
@ -491,7 +491,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
#endif
} else {
dacptr=malloc(ndacdiff*sizeof(dacs_t));
dacptr=(dacs_t *)malloc(ndacdiff*sizeof(dacs_t));
myMod->ndac=ndold;
ts+=receiveDataOnly(file_des,myMod->dacs, sizeof(dacs_t)*ndold);
ts+=receiveDataOnly(file_des,dacptr, sizeof(dacs_t)*ndacdiff);
@ -505,7 +505,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
printf("adcs received\n");
#endif
} else {
adcptr=malloc(nadcdiff*sizeof(dacs_t));
adcptr=(dacs_t *)malloc(nadcdiff*sizeof(dacs_t));
myMod->nadc=naold;
ts+=receiveDataOnly(file_des,myMod->adcs, sizeof(dacs_t)*naold);
ts+=receiveDataOnly(file_des,adcptr, sizeof(dacs_t)*nadcdiff);
@ -519,7 +519,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
printf("chips received\n");
#endif
} else {
chipptr=malloc(nchipdiff*sizeof(int));
chipptr=(int *)malloc(nchipdiff*sizeof(int));
myMod->nchip=nchipold;
ts+=receiveDataOnly(file_des,myMod->chipregs, sizeof(int)*nchipold);
ts+=receiveDataOnly(file_des,chipptr, sizeof(int)*nchipdiff);
@ -533,7 +533,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
printf("chans received\n");
#endif
} else {
chanptr=malloc(nchandiff*sizeof(int));
chanptr=(int *)malloc(nchandiff*sizeof(int));
myMod->nchan=nchanold;
ts+=receiveDataOnly(file_des,myMod->chanregs, sizeof(int)*nchanold);
ts+=receiveDataOnly(file_des,chanptr, sizeof(int)*nchandiff);

View File

@ -41,11 +41,11 @@ int initializeDetector(){
#ifdef VERBOSE
printf("Board is for %d modules\n",n);
#endif
detectorModules=malloc(n*sizeof(sls_detector_module));
detectorChips=malloc(n*NCHIP*sizeof(int));
detectorChans=malloc(n*NCHIP*NCHAN*sizeof(int));
detectorDacs=malloc(n*NDAC*sizeof(int));
detectorAdcs=malloc(n*NADC*sizeof(int));
detectorModules=(sls_detector_module *)malloc(n*sizeof(sls_detector_module));
detectorChips=(int *)malloc(n*NCHIP*sizeof(int));
detectorChans=(int *)malloc(n*NCHIP*NCHAN*sizeof(int));
detectorDacs=(dacs_t *)malloc(n*NDAC*sizeof(int));
detectorAdcs=(dacs_t *)malloc(n*NADC*sizeof(int));
#ifdef VERBOSE
printf("modules from 0x%x to 0x%x\n",(unsigned int)(detectorModules), (unsigned int)(detectorModules+n));
printf("chips from 0x%x to 0x%x\n",(unsigned int)(detectorChips), (unsigned int)(detectorChips+n*NCHIP));
@ -221,7 +221,7 @@ enum detectorSettings setSettings(enum detectorSettings sett, int imod){
//template setSettings() from mcb_funcs.c
//reads the dac registers from fpga to confirm which settings, if weird, undefined
return OK;
return GET_SETTINGS;
}
int startStateMachine(){
@ -324,7 +324,7 @@ int setSpeed(enum speedVariable arg, int val){
enum readOutFlags setReadOutFlags(enum readOutFlags val){
//template setStoreInRAM from firmware_funcs.c
return -1;
return GET_READOUT_FLAGS;
}
@ -380,7 +380,7 @@ int getNumberOfADCsPerModule(){return 0;}
enum externalSignalFlag getExtSignal(int signalindex){
//template getExtSignal from firmware_funcs.c
//return signals[signalindex];
return -1;
return GET_EXTERNAL_SIGNAL_FLAG;
}
@ -448,7 +448,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
//if( flag=SIGNAL_OFF and signals[signalindex]==MASTER_SLAVE_SYNCHRONIZATION), return -1, (ensures masterslaveflag !=off now)
//else return flag
int ret=GET_EXTERNAL_COMMUNICATION_MODE;
//int ret=(externalCommunicationMode)GET_EXTERNAL_COMMUNICATION_MODE;
//sets timingmode variable
//ensures that the signals are in acceptance with timing mode and according sets the timing mode
/*
@ -551,7 +551,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
}
*/
return ret;
return GET_EXTERNAL_COMMUNICATION_MODE;
}

View File

@ -120,7 +120,7 @@ int decode_function(int file_des) {
printf("size of data received %d\n",n);
#endif
//#ifdef VERBOSE
printf( "calling function fnum = %d %x\n",fnum,flist[fnum]);
printf( "calling function fnum = %d %x\n",fnum,(unsigned int)flist[fnum]);
//#endif
if (fnum<0 || fnum>255)
fnum=255;
@ -289,7 +289,7 @@ int get_detector_type(int file_des) {
n += sendDataOnly(file_des,&retval,sizeof(retval));
if (retval!=FAIL) {
/* send return argument */
ret=swap_int32(ret);
ret=(detectorType)swap_int32(ret);
n += sendDataOnly(file_des,&ret,sizeof(ret));
} else {
n += sendDataOnly(file_des,mess,sizeof(mess));
@ -317,7 +317,7 @@ int set_number_of_modules(int file_des) {
retval=GOODBYE;
}
if (retval==OK) {
dim=arg[0];
dim=(dimension)arg[0];
nm=arg[1];
/* execute action */
@ -428,7 +428,7 @@ int set_external_signal_flag(int file_des) {
retval=SIGNAL_OFF;
if (ret==OK) {
signalindex=arg[0];
flag=arg[1];
flag=(externalSignalFlag)arg[1];
/* execute action */
switch (flag) {
case GET_EXTERNAL_SIGNAL_FLAG:
@ -527,7 +527,7 @@ enum externalCommunicationMode{
printf("Setting external communication mode to %d\n", arg);
#endif
} else
ret=FAIL;
ret=(externalCommunicationMode)FAIL;
/* send answer */
/* send OK/failed */
@ -846,7 +846,7 @@ int set_dac(int file_des) {
sprintf(mess,"Error reading from socket\n");
ret=FAIL;
}
ind=arg[0];
ind=(dacIndex)arg[0];
imod=arg[1];
n = receiveDataOnly(file_des,&val,sizeof(val));
@ -949,7 +949,7 @@ int get_adc(int file_des) {
sprintf(mess,"Error reading from socket\n");
ret=FAIL;
}
ind=arg[0];
ind=(dacIndex)arg[0];
imod=arg[1];
@ -1166,7 +1166,7 @@ int set_chip(int file_des) {
myChip.nchan=getNumberOfChannelsPerChip();
ch=malloc((myChip.nchan)*sizeof(int));
ch=(int *)malloc((myChip.nchan)*sizeof(int));
myChip.chanregs=ch;
@ -1236,7 +1236,7 @@ int get_chip(int file_des) {
retval.nchan=getNumberOfChannelsPerChip();
ch=malloc((retval.nchan)*sizeof(int));
ch=(int *)malloc((retval.nchan)*sizeof(int));
retval.chanregs=ch;
@ -1291,10 +1291,10 @@ int get_chip(int file_des) {
}
int set_module(int file_des) {
sls_detector_module myModule;
int *myChip=malloc(getNumberOfChipsPerModule()*sizeof(int));
int *myChan=malloc(getNumberOfChannelsPerModule()*sizeof(int));
int *myDac=malloc(getNumberOfDACsPerModule()*sizeof(int));
int *myAdc=malloc(getNumberOfADCsPerModule()*sizeof(int));
int *myChip=(int *)malloc(getNumberOfChipsPerModule()*sizeof(int));
int *myChan=(int *)malloc(getNumberOfChannelsPerModule()*sizeof(int));
int *myDac=(int *)malloc(getNumberOfDACsPerModule()*sizeof(int));
int *myAdc=(int *)malloc(getNumberOfADCsPerModule()*sizeof(int));
int retval, n;
int ret=OK;
@ -1395,10 +1395,10 @@ int get_module(int file_des) {
sls_detector_module myModule;
int *myChip=malloc(getNumberOfChipsPerModule()*sizeof(int));
int *myChan=malloc(getNumberOfChannelsPerModule()*sizeof(int));
int *myDac=malloc(getNumberOfDACsPerModule()*sizeof(int));
int *myAdc=malloc(getNumberOfADCsPerModule()*sizeof(int));
int *myChip=(int *)malloc(getNumberOfChipsPerModule()*sizeof(int));
int *myChan=(int *)malloc(getNumberOfChannelsPerModule()*sizeof(int));
int *myDac=(int *)malloc(getNumberOfDACsPerModule()*sizeof(int));
int *myAdc=(int *)malloc(getNumberOfADCsPerModule()*sizeof(int));
if (myDac)
@ -1551,7 +1551,7 @@ int set_threshold_energy(int file_des) {
}
ethr=arg[0];
imod=arg[1];
isett=arg[2];
isett=(detectorSettings)arg[2];
if (imod>=getTotalNumberOfModules()) {
ret=FAIL;
@ -1614,7 +1614,7 @@ int set_settings(int file_des) {
ret=FAIL;
}
imod=arg[1];
isett=arg[0];
isett=(detectorSettings)arg[0];
if (imod>=getTotalNumberOfModules()) {
@ -1630,7 +1630,7 @@ int set_settings(int file_des) {
ret=FAIL;
sprintf(mess,"Detector locked by %s\n",lastClientIP);
} else {
retval=setSettings(arg[0], imod);
retval=setSettings((detectorSettings)arg[0], imod);
#ifdef VERBOSE
printf("Settings changed to %d\n", isett);
#endif
@ -1885,7 +1885,7 @@ int set_timer(int file_des) {
sprintf(mess,"can't set timer\n");
n = receiveDataOnly(file_des,&ind,sizeof(ind));
ind=swap_int32(ind);
ind=(timerIndex)swap_int32(ind);
if (n < 0) {
sprintf(mess,"Error reading from socket\n");
ret=FAIL;
@ -2430,11 +2430,10 @@ int set_port(int file_des) {
int get_last_client_ip(int file_des) {
int ret=OK;
int n;
if (differentClients )
ret=FORCE_UPDATE;
n = sendDataOnly(file_des,&ret,sizeof(ret));
n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP));
sendDataOnly(file_des,&ret,sizeof(ret));
sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP));
return ret;
@ -2451,34 +2450,34 @@ int send_update(int file_des) {
int nm;
n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP));
sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP));
nm=setNMod(-1,X);
n = sendDataOnly(file_des,&nm,sizeof(nm));
sendDataOnly(file_des,&nm,sizeof(nm));
nm=setNMod(-1,Y);
n = sendDataOnly(file_des,&nm,sizeof(nm));
sendDataOnly(file_des,&nm,sizeof(nm));
nm=setDynamicRange(-1);
n = sendDataOnly(file_des,&nm,sizeof(nm));
sendDataOnly(file_des,&nm,sizeof(nm));
n = sendDataOnly(file_des,&dataBytes,sizeof(dataBytes));
sendDataOnly(file_des,&dataBytes,sizeof(dataBytes));
t=setSettings(GET_SETTINGS, -1);
n = sendDataOnly(file_des,&t,sizeof(t));
sendDataOnly(file_des,&t,sizeof(t));
thr=getThresholdEnergy(-1);
n = sendDataOnly(file_des,&thr,sizeof(thr));
sendDataOnly(file_des,&thr,sizeof(thr));
/*retval=setFrames(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setExposureTime(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setPeriod(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setDelay(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setGates(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setProbes(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
/*retval=setTrains(tns);*/
n = sendDataOnly(file_des,&retval,sizeof(int64_t));
sendDataOnly(file_des,&retval,sizeof(int64_t));
if (lockStatus==0) {
strcpy(lastClientIP,thisClientIP);
@ -2524,7 +2523,7 @@ int set_master(int file_des) {
printf("setting master flags to %d\n",arg);
#endif
if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) {
if (differentClients==1 && lockStatus==1 && (int)arg!=(int)GET_READOUT_FLAGS) {
ret=FAIL;
sprintf(mess,"Detector locked by %s\n",lastClientIP);
} else {
@ -2550,7 +2549,7 @@ int set_master(int file_des) {
int set_synchronization(int file_des) {
enum synchronizationMode retval=GET_MASTER;
enum synchronizationMode retval=GET_SYNCHRONIZATION_MODE;
enum synchronizationMode arg;
int n;
int ret=OK;
@ -2569,7 +2568,7 @@ int set_synchronization(int file_des) {
printf("setting master flags to %d\n",arg);
#endif
if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) {
if (differentClients==1 && lockStatus==1 && (int)arg!=(int)GET_READOUT_FLAGS) {
ret=FAIL;
sprintf(mess,"Detector locked by %s\n",lastClientIP);
} else {

View File

@ -329,11 +329,11 @@ int64_t getFrames(){//return dummy;
int64_t setExposureTime(int64_t value){
/* time is in ns */
if (value!=-1)
value*=(1E-9*CLK_FREQ);
return set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-9*CLK_FREQ);
value*=(int64_t)(1E-9*CLK_FREQ);
return (int64_t)(set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-9*CLK_FREQ));
}
int64_t getExposureTime(){
return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-9*CLK_FREQ);
return (int64_t)(get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-9*CLK_FREQ));
}
@ -348,23 +348,23 @@ int64_t getGates(){
int64_t setPeriod(int64_t value){
/* time is in ns */
if (value!=-1)
value*=(1E-9*CLK_FREQ);
return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-9*CLK_FREQ);
value*=(int64_t)(1E-9*CLK_FREQ);
return (int64_t)(set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-9*CLK_FREQ));
}
int64_t getPeriod(){
return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-9*CLK_FREQ);
return (int64_t)(get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-9*CLK_FREQ));
}
int64_t setDelay(int64_t value){
/* time is in ns */
if (value!=-1) {
value*=(1E-9*CLK_FREQ);
value*=(int64_t)(1E-9*CLK_FREQ);
}
return set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-9*CLK_FREQ);
return (int64_t)(set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-9*CLK_FREQ));
}
int64_t getDelay(){
return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-9*CLK_FREQ);
return (int64_t)(get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-9*CLK_FREQ));
}

View File

@ -1,6 +1,7 @@
#ifndef SLS_DETECTOR_DEFS_H
#define SLS_DETECTOR_DEFS_H
#ifdef __CINT__
#define MYROOT
#define __cplusplus
@ -19,6 +20,9 @@
/** header length for data :gotthard*/
#define HEADERLENGTH 12
/** maximum rois */
#define MAX_ROIS 100
typedef double double32_t;
typedef float float32_t;
typedef int int32_t;
@ -35,6 +39,9 @@ typedef float dacs_t;
#define DEFAULT_DET_MAC "00:aa:bb:cc:dd:ee"
#define DEFAULT_DET_IP "129.129.202.46"
#define MAX_FRAMES_PER_FILE 20000
#define SHORT_MAX_FRAMES_PER_FILE 100000
/**
\file sls_detector_defs.h
This file contains all the basic definitions common to the slsDetector class
@ -45,7 +52,7 @@ and to the server programs running on the detector
* @version 0.1alpha (any string)
* @see slsDetector
$Revision: 434 $
$Revision: 464 $
*/
@ -53,16 +60,6 @@ $Revision: 434 $
/** get flag form most functions */
#define GET_FLAG -1
#ifdef __cplusplus
/** @short class containing all the structures, constants and enum definitions */
class slsDetectorDefs {
public:
slsDetectorDefs(){};
#endif
enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript, enCalLog, angCalLog, MAX_ACTIONS};
@ -517,13 +514,6 @@ enum angleConversionParameter {
/** Error flags */
#define NUM_ERROR_FLAGS=32
#define CANNOT_CONNECT_TO_DETECTOR 0x80000000
#define CANNOT_CONNECT_TO_RECEIVER 0x40000000
#define COULD_NOT_CONFIGURE_MAC 0x00008000 //cant seem to get this error
//typedef struct {
//float center; /**< center of the module (channel at which the radius is perpendicular to the module surface) */
//float ecenter; /**< error in the center determination */
@ -536,19 +526,11 @@ enum angleConversionParameter {
//} angleConversionConstant;
#ifdef __cplusplus
protected:
#endif
#ifndef MYROOT
#include "sls_detector_funcs.h"
#endif
#ifdef __cplusplus
};
#endif
;
#endif
;