included settting up of udpport from client and getting receiver mac from receiver and also listening to only one ethernet interface

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@371 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2012-12-06 14:27:52 +00:00
parent e4d477b53e
commit ac2c4211e2
11 changed files with 294 additions and 173 deletions

View File

@ -1129,11 +1129,11 @@ int setDACRegister(int idac, int val, int imod) {
int getTemperature(int tempSensor, int imod){
int val;
char cTempSensor[2][100]={"ADCs/ASICs","VRs/FPGAs"};
imod=0;//ignoring more than 1 mod for now
int i,j,repeats=6;
u_int32_t tempVal=0;
#ifdef VERBOSE
char cTempSensor[2][100]={"ADCs/ASICs","VRs/FPGAs"};
printf("Getting Temperature of module:%d for the %s for tempsensor:%d\n",imod,cTempSensor[tempSensor],tempSensor);
#endif
bus_w(TEMP_IN_REG,(T1_CLK_BIT)|(T1_CS_BIT)|(T2_CLK_BIT)|(T2_CS_BIT));//standby
@ -1250,7 +1250,7 @@ int initConfGain(int isettings,int val,int imod){
}
int configureMAC(int ipad,long long int macad,long long int servermacad,int ival, int adc){
int configureMAC(int ipad,long long int macad,long long int servermacad,int ival, int adc,int udpport){
//setting daqregister
setDAQRegister(adc);
//setting adc mask
@ -1409,7 +1409,7 @@ int configureMAC(int ipad,long long int macad,long long int servermacad,int ival
//#endif
mac_conf_regs->udp.udp_srcport = 0xE185;
mac_conf_regs->udp.udp_destport = 0xC351;
mac_conf_regs->udp.udp_destport = udpport;//0xC351;
mac_conf_regs->udp.udp_len = udpPacketSize;//0x050E; //was 0x0512;
mac_conf_regs->udp.udp_chksum = 0x0000;
@ -2231,7 +2231,6 @@ int readCounterBlock(int startACQ, short int CounterVals[]){
u_int32_t val;
volatile u_int16_t *ptr;
int i;
u_int32_t address = COUNTER_MEMORY_REG;
ptr=(u_int16_t*)(CSP0BASE+address*2);
@ -2254,6 +2253,7 @@ int readCounterBlock(int startACQ, short int CounterVals[]){
memcpy(CounterVals,ptr,dataBytes);
#ifdef VERBOSE
int i;
printf("Copied counter memory block with size of %d bytes..\n",dataBytes);
for(i=0;i<6;i++)
printf("%d: %d\t",i,CounterVals[i]);
@ -2293,7 +2293,6 @@ int resetCounterBlock(int startACQ){
int ret = OK;
u_int32_t val;
volatile u_int16_t *ptr;
int i;
u_int32_t address = COUNTER_MEMORY_REG;
@ -2324,6 +2323,7 @@ int resetCounterBlock(int startACQ){
memcpy(counterVals,ptr,dataBytes);
#ifdef VERBOSE
int i;
printf("Copied counter memory block with size of %d bytes..\n",(int)sizeof(counterVals));
for(i=0;i<6;i=i+2)
printf("%d: %d\t",i,*(counterVals+i));

View File

@ -62,7 +62,7 @@ int getTemperature(int tempSensor,int imod);
int initHighVoltage(int val,int imod);
int initConfGain(int isettings,int val,int imod);
int configureMAC(int ipad, long long int macad, long long int servermacad, int ival, int adc);
int configureMAC(int ipad, long long int macad, long long int servermacad, int ival, int adc,int udpport);
u_int64_t getDetectorNumber();
u_int32_t getFirmwareVersion();

View File

@ -550,7 +550,6 @@ int get_id(int file_des) {
// sends back 64 bits!
int64_t retval;
int ret=OK;
int imod=-1;
int n=0;
enum idMode arg;
@ -1892,7 +1891,7 @@ int get_run_status(int file_des) {
if (ret!=OK) {
printf("get status failed %04x\n");
printf("get status failed %04x\n",retval);
sprintf(mess, "get status failed %08x\n", retval);
} else if (differentClients)
@ -2749,13 +2748,14 @@ int update_client(int file_des) {
int configure_mac(int file_des) {
int ret=OK;
char arg[3][50];
int n,i;
char arg[4][50];
int n;
int imod=0;//should be in future sent from client as -1, arg[2]
int ipad;
long long int imacadd;
long long int iservermacadd;
int udpport;
int adc=-1;
sprintf(mess,"Can't configure MAC\n");
@ -2770,7 +2770,9 @@ int configure_mac(int file_des) {
sscanf(arg[0], "%x", &ipad);
sscanf(arg[1], "%llx", &imacadd);
sscanf(arg[2], "%llx", &iservermacadd);
sscanf(arg[3], "%x", &udpport);
#ifdef VERBOSE
int i;
printf("\ndigital_test_bit in server %d\t",digitalTestBit);
printf("\nipadd %x\t",ipad);
printf("destination ip is %d.%d.%d.%d = 0x%x \n",(ipad>>24)&0xff,(ipad>>16)&0xff,(ipad>>8)&0xff,(ipad)&0xff,ipad);
@ -2780,6 +2782,7 @@ int configure_mac(int file_des) {
printf("server macad:%llx\n",iservermacadd);
for (i=0;i<6;i++)
printf("server mac adress %d is 0x%x \n",6-i,(unsigned int)(((iservermacadd>>(8*i))&0xFF)));
printf("udp port:0x%x\n",udpport);
printf("\n");
#endif
@ -2796,11 +2799,11 @@ int configure_mac(int file_des) {
imod=ALLMOD;
//#ifdef VERBOSE
printf("Configuring MAC of module %d and adc %d\n", imod, adc);
printf("Configuring MAC of module %d and adc %d at port %x\n", imod, adc,udpport);
//#endif
#ifdef MCB_FUNCS
if (ret==OK)
configureMAC(ipad,imacadd,iservermacadd,digitalTestBit,adc);
configureMAC(ipad,imacadd,iservermacadd,digitalTestBit,adc,udpport);
#endif
if (ret==FAIL)
printf("configuring MAC of mod %d failed\n", imod);