mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-28 17:10:03 +02:00
eiger server compiles, client side of interface to do
This commit is contained in:
parent
dfad145e14
commit
261849d69c
@ -1,12 +1,8 @@
|
|||||||
|
#include "xfs_types.h"
|
||||||
/**
|
#include "xparameters.h"
|
||||||
* @author Ian Johnson
|
#include "FebRegisterDefs.h"
|
||||||
* @version 1.0
|
#include "logger.h"
|
||||||
*/
|
#include "Beb.h"
|
||||||
|
|
||||||
|
|
||||||
//return reversed 1 means good, 0 means failed
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -14,14 +10,8 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include "xfs_types.h"
|
|
||||||
#include "xparameters.h"
|
|
||||||
#include "FebRegisterDefs.h"
|
|
||||||
|
|
||||||
#include "Beb.h"
|
|
||||||
|
|
||||||
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
||||||
|
|
||||||
@ -88,19 +78,28 @@ unsigned int BebInfo_GetSrcPort(struct BebInfo* bebInfo, int ten_gig) {return te
|
|||||||
|
|
||||||
|
|
||||||
void BebInfo_Print(struct BebInfo* bebInfo) {
|
void BebInfo_Print(struct BebInfo* bebInfo) {
|
||||||
printf("\t%d) Beb Info.\n",bebInfo->beb_number);
|
FILE_LOG(logINFO, (
|
||||||
printf("\t\tSerial Add: 0x%x\n",bebInfo->serial_address);
|
"%d) Beb Info:\n"
|
||||||
printf("\t\tMAC 1GbE: %s\n",bebInfo->src_mac_1GbE);
|
"\tSerial Add: 0x%x\n"
|
||||||
printf("\t\tIP 1GbE: %s\n",bebInfo->src_ip_1GbE);
|
"\tMAC 1GbE: %s\n"
|
||||||
printf("\t\tport 1GbE: %d\n",bebInfo->src_port_1GbE);
|
"\tIP 1GbE: %s\n"
|
||||||
printf("\t\tMAC 10GbE: %s\n",bebInfo->src_mac_10GbE);
|
"\tPort 1GbE: %d\n"
|
||||||
printf("\t\tIP 10GbE: %s\n",bebInfo->src_ip_10GbE);
|
"\tMAC 10GbE: %s\n"
|
||||||
printf("\t\tport 10GbE: %d\n",bebInfo->src_port_10GbE);
|
"\tIP 10GbE: %s\n"
|
||||||
|
"\tPort 10GbE: %d\n",
|
||||||
|
bebInfo->beb_number,
|
||||||
|
bebInfo->serial_address,
|
||||||
|
bebInfo->src_mac_1GbE,
|
||||||
|
bebInfo->src_ip_1GbE,
|
||||||
|
bebInfo->src_port_1GbE,
|
||||||
|
bebInfo->src_mac_10GbE,
|
||||||
|
bebInfo->src_ip_10GbE,
|
||||||
|
bebInfo->src_port_10GbE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Beb_Beb(){
|
void Beb_Beb(int id) {
|
||||||
|
Beb_detid = id;
|
||||||
Beb_send_ndata = 0;
|
Beb_send_ndata = 0;
|
||||||
Beb_send_buffer_size = 1026;
|
Beb_send_buffer_size = 1026;
|
||||||
Beb_send_data_raw = malloc((Beb_send_buffer_size+1) * sizeof(unsigned int));
|
Beb_send_data_raw = malloc((Beb_send_buffer_size+1) * sizeof(unsigned int));
|
||||||
@ -135,10 +134,10 @@ void Beb_Beb(){
|
|||||||
|
|
||||||
if (!Beb_InitBebInfos()) exit(1);
|
if (!Beb_InitBebInfos()) exit(1);
|
||||||
|
|
||||||
printf("Printing Beb infos:\n");
|
FILE_LOG(logDEBUG5, ("Printing Beb infos:\n"));
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=1;i<bebInfoSize;i++) BebInfo_Print(&beb_infos[i]);
|
for(i=1;i<bebInfoSize;i++) BebInfo_Print(&beb_infos[i]);
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
Beb_bit_mode = 4;
|
Beb_bit_mode = 4;
|
||||||
|
|
||||||
@ -159,12 +158,12 @@ void Beb_GetModuleConfiguration(int* master, int* top, int* normal){
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Module Configuration FAIL\n");
|
FILE_LOG(logERROR, ("Module Configuration FAIL\n"));
|
||||||
} else {
|
} else {
|
||||||
//read data
|
//read data
|
||||||
ret = Beb_Read32(csp0base, MODULE_CONFIGURATION_MASK);
|
ret = Beb_Read32(csp0base, MODULE_CONFIGURATION_MASK);
|
||||||
printf("Module Configuration OK\n");
|
FILE_LOG(logDEBUG5, ("Module Configuration OK\n"));
|
||||||
printf("Beb: value =0x%x\n",ret);
|
FILE_LOG(logDEBUG5, ("Beb: value =0x%x\n",ret));
|
||||||
if (ret&TOP_BIT_MASK) {
|
if (ret&TOP_BIT_MASK) {
|
||||||
*top = 1;
|
*top = 1;
|
||||||
Beb_top = 1;
|
Beb_top = 1;
|
||||||
@ -217,7 +216,7 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Delay read counter fail\n");
|
FILE_LOG(logERROR, ("Delay read counter fail\n"));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
//read data first time
|
//read data first time
|
||||||
@ -229,8 +228,7 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
||||||
r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
||||||
r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
||||||
//#ifdef VERBOSE
|
FILE_LOG(logDEBUG5, ("\nLeft\n"
|
||||||
printf("\nLeft\n"
|
|
||||||
"FramepacketLsbcounter: %d\n"
|
"FramepacketLsbcounter: %d\n"
|
||||||
"FramepacketMsbcounter: %d\n"
|
"FramepacketMsbcounter: %d\n"
|
||||||
"Txndelaycounter:%d\n"
|
"Txndelaycounter:%d\n"
|
||||||
@ -241,15 +239,14 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
"Txndelaycounter:%d\n"
|
"Txndelaycounter:%d\n"
|
||||||
"Framedelaycounter:%d\n\n",
|
"Framedelaycounter:%d\n\n",
|
||||||
l_framepktLsbcounter,l_framepktMsbcounter,l_txndelaycounter,l_framedelaycounter,
|
l_framepktLsbcounter,l_framepktMsbcounter,l_txndelaycounter,l_framedelaycounter,
|
||||||
r_framepktLsbcounter,r_framepktMsbcounter,r_txndelaycounter,r_framedelaycounter);
|
r_framepktLsbcounter,r_framepktMsbcounter,r_txndelaycounter,r_framedelaycounter));
|
||||||
//#endif
|
|
||||||
|
|
||||||
//keep comparing with previous values
|
//keep comparing with previous values
|
||||||
int maxtimer;
|
int maxtimer;
|
||||||
while(1) {
|
while(1) {
|
||||||
maxtimer = MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter));
|
maxtimer = MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter));
|
||||||
maxtimer /= 100;
|
maxtimer /= 100;
|
||||||
printf("Will wait for %d us\n",maxtimer);
|
FILE_LOG(logINFO, ("Will wait for %d us\n",maxtimer));
|
||||||
usleep(maxtimer);
|
usleep(maxtimer);
|
||||||
|
|
||||||
//read new values
|
//read new values
|
||||||
@ -261,8 +258,7 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
r_framepktMsbcounter_new = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
r_framepktMsbcounter_new = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
||||||
r_txndelaycounter_new = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
r_txndelaycounter_new = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
||||||
r_framedelaycounter_new = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
r_framedelaycounter_new = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
||||||
//#ifdef VERBOSE
|
FILE_LOG(logDEBUG5, ("\nLeft\n"
|
||||||
printf("\nLeft\n"
|
|
||||||
"FramepacketLsbcounter: %d\n"
|
"FramepacketLsbcounter: %d\n"
|
||||||
"FramepacketMsbcounter: %d\n"
|
"FramepacketMsbcounter: %d\n"
|
||||||
"Txndelaycounter:%d\n"
|
"Txndelaycounter:%d\n"
|
||||||
@ -273,8 +269,7 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
"Txndelaycounter:%d\n"
|
"Txndelaycounter:%d\n"
|
||||||
"Framedelaycounter:%d\n\n",
|
"Framedelaycounter:%d\n\n",
|
||||||
l_framepktLsbcounter_new,l_framepktMsbcounter_new,l_txndelaycounter_new,l_framedelaycounter_new,
|
l_framepktLsbcounter_new,l_framepktMsbcounter_new,l_txndelaycounter_new,l_framedelaycounter_new,
|
||||||
r_framepktLsbcounter_new,r_framepktMsbcounter_new,r_txndelaycounter_new,r_framedelaycounter_new);
|
r_framepktLsbcounter_new,r_framepktMsbcounter_new,r_txndelaycounter_new,r_framedelaycounter_new));
|
||||||
//#endif
|
|
||||||
|
|
||||||
if ((l_framepktLsbcounter == l_framepktLsbcounter_new) &&
|
if ((l_framepktLsbcounter == l_framepktLsbcounter_new) &&
|
||||||
(l_framepktMsbcounter == l_framepktMsbcounter_new) &&
|
(l_framepktMsbcounter == l_framepktMsbcounter_new) &&
|
||||||
@ -294,7 +289,7 @@ void Beb_EndofDataSend(int tengiga){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Detector has send all data\n");
|
FILE_LOG(logINFO, ("Detector has send all data\n"));
|
||||||
//close file pointer
|
//close file pointer
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
@ -315,18 +310,19 @@ int Beb_SetMasterViaSoftware(){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Set Master FAIL\n");
|
FILE_LOG(logERROR, ("Set Master FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
||||||
value|=MASTER_BIT;
|
value|=MASTER_BIT;
|
||||||
value|=OVERWRITE_HARDWARE_BIT;
|
value|=OVERWRITE_HARDWARE_BIT;
|
||||||
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
||||||
if(newval!=value)
|
if (newval!=value) {
|
||||||
cprintf(BG_RED,"Could not set Master via Software\n");
|
FILE_LOG(logERROR, ("Could not set Master via Software\n"));
|
||||||
else
|
} else {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//close file pointer
|
//close file pointer
|
||||||
if (fd > 0)
|
if (fd > 0)
|
||||||
@ -347,18 +343,19 @@ int Beb_SetSlaveViaSoftware(){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Set Slave FAIL\n");
|
FILE_LOG(logERROR, ("Set Slave FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
||||||
value&=~MASTER_BIT;
|
value&=~MASTER_BIT;
|
||||||
value|=OVERWRITE_HARDWARE_BIT;
|
value|=OVERWRITE_HARDWARE_BIT;
|
||||||
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
||||||
if(newval!=value)
|
if (newval!=value) {
|
||||||
cprintf(BG_RED,"Could not set Slave via Software\n");
|
FILE_LOG(logERROR, ("Could not set Slave via Software\n"));
|
||||||
else
|
} else {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//close file pointer
|
//close file pointer
|
||||||
if (fd > 0)
|
if (fd > 0)
|
||||||
@ -374,12 +371,12 @@ int Beb_Activate(int enable){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Deactivate FAIL\n");
|
FILE_LOG(logERROR, ("Deactivate FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
if (enable > -1) {
|
if (enable > -1) {
|
||||||
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
value = Beb_Read32(csp0base, MASTERCONFIG_OFFSET);
|
||||||
printf("Deactivate register value before:%d\n",value);
|
FILE_LOG(logINFO, ("Deactivate register value before:%d\n",value));
|
||||||
if (enable)
|
if (enable)
|
||||||
value&=~DEACTIVATE_BIT;
|
value&=~DEACTIVATE_BIT;
|
||||||
else
|
else
|
||||||
@ -387,10 +384,11 @@ int Beb_Activate(int enable){
|
|||||||
|
|
||||||
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
int newval = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,value);
|
||||||
if (newval!=value) {
|
if (newval!=value) {
|
||||||
if(enable)
|
if (enable) {
|
||||||
cprintf(BG_RED,"Could not activate via Software\n");
|
FILE_LOG(logERROR, ("Could not activate via Software\n"));
|
||||||
else
|
} else {
|
||||||
cprintf(BG_RED,"Could not deactivate via Software\n");
|
FILE_LOG(logERROR, ("Could not deactivate via Software\n"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,10 +396,11 @@ int Beb_Activate(int enable){
|
|||||||
if (value&DEACTIVATE_BIT) ret = 0;
|
if (value&DEACTIVATE_BIT) ret = 0;
|
||||||
else ret = 1;
|
else ret = 1;
|
||||||
if (enable == -1) {
|
if (enable == -1) {
|
||||||
if(ret)
|
if (ret) {
|
||||||
cprintf(BLUE,"Detector is active. Register value:%d\n", value);
|
FILE_LOG(logINFOBLUE, ("Detector is active. Register value:%d\n", value));
|
||||||
else
|
} else {
|
||||||
cprintf(BG_RED,"Detector is deactivated! Register value:%d\n", value);
|
FILE_LOG(logERROR, ("Detector is deactivated! Register value:%d\n", value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -428,7 +427,7 @@ int Beb_Set32bitOverflow(int val) {
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Could not read register to set overflow flag in 32 bit mode. FAIL\n");
|
FILE_LOG(logERROR, ("Could not read register to set overflow flag in 32 bit mode. FAIL\n"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -482,12 +481,12 @@ int Beb_SetNetworkParameter(enum NETWORKINDEX mode, int val){
|
|||||||
strcpy(modename,"Flow Control for 10G");
|
strcpy(modename,"Flow Control for 10G");
|
||||||
if (val>0) val = 1;
|
if (val>0) val = 1;
|
||||||
break;
|
break;
|
||||||
default: cprintf(BG_RED,"Unrecognized mode in network parameter: %d\n",mode); return -1;
|
default: FILE_LOG(logERROR, ("Unrecognized mode in network parameter: %d\n",mode)); return -1;
|
||||||
}
|
}
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Could not read register to set network parameter. FAIL\n");
|
FILE_LOG(logERROR, ("Could not read register to set network parameter. FAIL\n"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -535,15 +534,16 @@ int Beb_ResetToHardwareSettings(){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Reset to Hardware Settings FAIL\n");
|
FILE_LOG(logERROR, ("Reset to Hardware Settings FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
value = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,0);
|
value = Beb_Write32(csp0base, MASTERCONFIG_OFFSET,0);
|
||||||
if(value)
|
if (value) {
|
||||||
cprintf(BG_RED,"Could not reset to hardware settings\n");
|
FILE_LOG(logERROR, ("Could not reset to hardware settings\n"));
|
||||||
else
|
} else {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//close file pointer
|
//close file pointer
|
||||||
if (fd > 0)
|
if (fd > 0)
|
||||||
@ -561,12 +561,13 @@ u_int32_t Beb_GetFirmwareRevision(){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_VERSION);
|
int fd = Beb_open(&csp0base,XPAR_VERSION);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Firmware Revision Read FAIL\n");
|
FILE_LOG(logERROR, ("Firmware Revision Read FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
value = Beb_Read32(csp0base, FIRMWARE_VERSION_OFFSET);
|
value = Beb_Read32(csp0base, FIRMWARE_VERSION_OFFSET);
|
||||||
if(!value)
|
if (!value) {
|
||||||
cprintf(BG_RED,"Firmware Revision Number does not exist in this version\n");
|
FILE_LOG(logERROR, ("Firmware Revision Number does not exist in this version\n"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//close file pointer
|
//close file pointer
|
||||||
@ -584,12 +585,13 @@ u_int32_t Beb_GetFirmwareSoftwareAPIVersion(){
|
|||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_VERSION);
|
int fd = Beb_open(&csp0base,XPAR_VERSION);
|
||||||
if(fd < 0)
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Firmware Software API Version Read FAIL\n");
|
FILE_LOG(logERROR, ("Firmware Software API Version Read FAIL\n"));
|
||||||
else{
|
} else {
|
||||||
value = Beb_Read32(csp0base, FIRMWARESOFTWARE_API_OFFSET);
|
value = Beb_Read32(csp0base, FIRMWARESOFTWARE_API_OFFSET);
|
||||||
if(!value)
|
if (!value) {
|
||||||
cprintf(BG_RED,"Firmware Software API Version does not exist in this version\n");
|
FILE_LOG(logERROR, ("Firmware Software API Version does not exist in this version\n"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//close file pointer
|
//close file pointer
|
||||||
@ -609,14 +611,14 @@ void Beb_ResetFrameNumber(){
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_SYS_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Reset Frame Number FAIL\n");
|
FILE_LOG(logERROR, ("Reset Frame Number FAIL\n"));
|
||||||
} else {
|
} else {
|
||||||
//write a 1
|
//write a 1
|
||||||
Beb_Write32(csp0base, FRAME_NUM_RESET_OFFSET, 1);
|
Beb_Write32(csp0base, FRAME_NUM_RESET_OFFSET, 1);
|
||||||
usleep(100000); //100ms
|
usleep(100000); //100ms
|
||||||
//write a 0
|
//write a 0
|
||||||
Beb_Write32(csp0base, FRAME_NUM_RESET_OFFSET, 0);
|
Beb_Write32(csp0base, FRAME_NUM_RESET_OFFSET, 0);
|
||||||
printf("Frame Number Reset OK\n");
|
FILE_LOG(logINFO, ("Frame Number Reset OK\n"));
|
||||||
//close file pointer
|
//close file pointer
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
@ -640,9 +642,9 @@ int Beb_InitBebInfos(){//file name at some point
|
|||||||
bebInfoSize++;
|
bebInfoSize++;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i0=34,i1=0;
|
int i0=Beb_detid,i1=0;
|
||||||
if (Beb_GetBebInfoIndex(i0)) {
|
if (Beb_GetBebInfoIndex(i0)) {
|
||||||
printf("Error adding beb 34(random), beb number %d already added.\n",i0);
|
FILE_LOG(logERROR, ("cant add beb. adding beb %d, beb number %d already added.\n",Beb_detid, i0));
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
struct BebInfo b1;
|
struct BebInfo b1;
|
||||||
@ -676,9 +678,8 @@ int Beb_SetBebSrcHeaderInfos(unsigned int beb_number, int ten_gig, char* src_mac
|
|||||||
/******* if (!i) return 0;****************************/ //i must be greater than 0, zero is the global send
|
/******* if (!i) return 0;****************************/ //i must be greater than 0, zero is the global send
|
||||||
BebInfo_SetHeaderInfo(&beb_infos[i],ten_gig,src_mac,src_ip,src_port);
|
BebInfo_SetHeaderInfo(&beb_infos[i],ten_gig,src_mac,src_ip,src_port);
|
||||||
|
|
||||||
printf("Printing Beb info number (%d) :\n",i);
|
FILE_LOG(logINFO, ("Printing Beb info number (%d) :\n",i));
|
||||||
BebInfo_Print(&beb_infos[i]);
|
BebInfo_Print(&beb_infos[i]);
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -689,8 +690,10 @@ int Beb_SetBebSrcHeaderInfos(unsigned int beb_number, int ten_gig, char* src_mac
|
|||||||
int Beb_CheckSourceStuffBebInfo() {
|
int Beb_CheckSourceStuffBebInfo() {
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=1;i<bebInfoSize;i++) { //header stuff always starts from 1
|
for(i=1;i<bebInfoSize;i++) { //header stuff always starts from 1
|
||||||
if(!Beb_SetHeaderData(BebInfo_GetBebNumber(&beb_infos[i]),0,"00:00:00:00:00:00","10.0.0.1",20000)||!Beb_SetHeaderData(BebInfo_GetBebNumber(&beb_infos[i]),1,"00:00:00:00:00:00","10.0.0.1",20000)){
|
if (!Beb_SetHeaderData(
|
||||||
printf("Error in BebInfo for module number %d.\n",BebInfo_GetBebNumber(&beb_infos[i]));
|
BebInfo_GetBebNumber(&beb_infos[i]),0,"00:00:00:00:00:00","10.0.0.1",20000)||
|
||||||
|
!Beb_SetHeaderData(BebInfo_GetBebNumber(&beb_infos[i]),1,"00:00:00:00:00:00","10.0.0.1",20000)) {
|
||||||
|
FILE_LOG(logINFO, ("Error in BebInfo for module number %d.\n",BebInfo_GetBebNumber(&beb_infos[i])));
|
||||||
BebInfo_Print(&beb_infos[i]);
|
BebInfo_Print(&beb_infos[i]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -703,10 +706,10 @@ unsigned int Beb_GetBebInfoIndex(unsigned int beb_numb){
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=1;i<bebInfoSize;i++)
|
for(i=1;i<bebInfoSize;i++)
|
||||||
if (beb_numb==BebInfo_GetBebNumber(&beb_infos[i])) {
|
if (beb_numb==BebInfo_GetBebNumber(&beb_infos[i])) {
|
||||||
printf("*****found beb index:%d, for beb number:%d\n",i,beb_numb);
|
FILE_LOG(logDEBUG5, ("*****found beb index:%d, for beb number:%d\n",i,beb_numb));
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
printf("*****Returning 0\n");
|
FILE_LOG(logDEBUG5, ("*****Returning 0\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,7 +721,7 @@ int Beb_WriteTo(unsigned int index){
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (index>=bebInfoSize) {
|
if (index>=bebInfoSize) {
|
||||||
printf("WriteTo index error.\n");
|
FILE_LOG(logERROR, ("WriteTo index error.\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -763,7 +766,7 @@ int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header
|
|||||||
|
|
||||||
int fd = Beb_open(&csp0base,bram_phy_addr);
|
int fd = Beb_open(&csp0base,bram_phy_addr);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Set up UDP Header FAIL\n");
|
FILE_LOG(logERROR, ("Set up UDP Header FAIL\n"));
|
||||||
} else {
|
} else {
|
||||||
//read data
|
//read data
|
||||||
memcpy(csp0base+header_number*16, &udp_header, sizeof(udp_header));
|
memcpy(csp0base+header_number*16, &udp_header, sizeof(udp_header));
|
||||||
@ -774,23 +777,6 @@ int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port){
|
|
||||||
// unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/
|
|
||||||
//
|
|
||||||
// /***********************************if(!i) return 0; *************************************///i must be greater than 0, zero is the global send
|
|
||||||
//
|
|
||||||
// Beb_send_ndata = 14;
|
|
||||||
// Beb_send_data[0] = ten_gig ? 0x00020000 : 0x00010000; //write to fanout numbers 1 or 2
|
|
||||||
// Beb_send_data[1] = ((header_number*8)<<16);
|
|
||||||
// if(!Beb_SetHeaderData(beb_number,ten_gig,dst_mac,dst_ip,dst_port)) return 0;
|
|
||||||
//
|
|
||||||
// Beb_SwapDataFun(1,12,&(Beb_send_data[2]));
|
|
||||||
//
|
|
||||||
// if(!Beb_WriteTo(i)) return 0;
|
|
||||||
// printf("beb dst_port:%d\n",dst_port);
|
|
||||||
// return 1;
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
int Beb_SetHeaderData(unsigned int beb_number, int ten_gig, char* dst_mac, char* dst_ip, unsigned int dst_port) {
|
int Beb_SetHeaderData(unsigned int beb_number, int ten_gig, char* dst_mac, char* dst_ip, unsigned int dst_port) {
|
||||||
unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/
|
unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/
|
||||||
@ -826,18 +812,18 @@ int Beb_SetHeaderData1(char* src_mac, char* src_ip, unsigned int src_port, char*
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (!Beb_SetMAC(src_mac,&(udp_header.src_mac[0]))) return 0;
|
if (!Beb_SetMAC(src_mac,&(udp_header.src_mac[0]))) return 0;
|
||||||
printf("Setting Source MAC to %s\n",src_mac);
|
FILE_LOG(logINFO, ("Setting Source MAC to %s\n",src_mac));
|
||||||
if (!Beb_SetIP(src_ip,&(udp_header.src_ip[0]))) return 0;
|
if (!Beb_SetIP(src_ip,&(udp_header.src_ip[0]))) return 0;
|
||||||
printf("Setting Source IP to %s\n",src_ip);
|
FILE_LOG(logINFO, ("Setting Source IP to %s\n",src_ip));
|
||||||
if (!Beb_SetPortNumber(src_port,&(udp_header.src_port[0]))) return 0;
|
if (!Beb_SetPortNumber(src_port,&(udp_header.src_port[0]))) return 0;
|
||||||
printf("Setting Source port to %d\n",src_port);
|
FILE_LOG(logINFO, ("Setting Source port to %d\n",src_port));
|
||||||
|
|
||||||
if (!Beb_SetMAC(dst_mac,&(udp_header.dst_mac[0]))) return 0;
|
if (!Beb_SetMAC(dst_mac,&(udp_header.dst_mac[0]))) return 0;
|
||||||
printf("Setting Destination MAC to %s\n",dst_mac);
|
FILE_LOG(logINFO, ("Setting Destination MAC to %s\n",dst_mac));
|
||||||
if (!Beb_SetIP(dst_ip,&(udp_header.dst_ip[0]))) return 0;
|
if (!Beb_SetIP(dst_ip,&(udp_header.dst_ip[0]))) return 0;
|
||||||
printf("Setting Destination IP to %s\n",dst_ip);
|
FILE_LOG(logINFO, ("Setting Destination IP to %s\n",dst_ip));
|
||||||
if (!Beb_SetPortNumber(dst_port,&(udp_header.dst_port[0]))) return 0;
|
if (!Beb_SetPortNumber(dst_port,&(udp_header.dst_port[0]))) return 0;
|
||||||
printf("Setting Destination port to %d\n",dst_port);
|
FILE_LOG(logINFO, ("Setting Destination port to %d\n",dst_port));
|
||||||
|
|
||||||
|
|
||||||
Beb_AdjustIPChecksum(&udp_header);
|
Beb_AdjustIPChecksum(&udp_header);
|
||||||
@ -862,7 +848,7 @@ int Beb_SetMAC(char* mac, uint8_t* dst_ptr){
|
|||||||
char *pch = strtok (macVal,":");
|
char *pch = strtok (macVal,":");
|
||||||
while (pch != NULL) {
|
while (pch != NULL) {
|
||||||
if (strlen(pch)!=2) {
|
if (strlen(pch)!=2) {
|
||||||
printf("Error: in mac address -> %s\n",macVal);
|
FILE_LOG(logERROR, ("Error: in mac address -> %s\n",macVal));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -881,7 +867,7 @@ int Beb_SetIP(char* ip, uint8_t* dst_ptr){
|
|||||||
char *pch = strtok (ipVal,".");
|
char *pch = strtok (ipVal,".");
|
||||||
while (pch != NULL) {
|
while (pch != NULL) {
|
||||||
if (((i!=3) && ((strlen(pch)>3) || (strlen(pch)<1))) || ((i==3)&&((strlen(pch)<1) || (strlen(pch) > 3)))) {
|
if (((i!=3) && ((strlen(pch)>3) || (strlen(pch)<1))) || ((i==3)&&((strlen(pch)<1) || (strlen(pch) > 3)))) {
|
||||||
printf("Error: in ip address -> %s\n",ipVal);
|
FILE_LOG(logERROR, ("Error: in ip address -> %s\n",ipVal));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -944,15 +930,11 @@ int Beb_SendMultiReadRequest(unsigned int beb_number, unsigned int left_right, i
|
|||||||
|
|
||||||
|
|
||||||
Beb_send_data[1] = 0x62000000 | (!stop_read_when_fifo_empty) << 27 | (ten_gig==1) << 24 | packet_size << 14 | dst_number << 8 | npackets;
|
Beb_send_data[1] = 0x62000000 | (!stop_read_when_fifo_empty) << 27 | (ten_gig==1) << 24 | packet_size << 14 | dst_number << 8 | npackets;
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("Beb_send_data[1]:%X\n",Beb_send_data[1]));
|
||||||
cprintf(GREEN, "Beb_send_data[1]:%X\n",Beb_send_data[1]);
|
|
||||||
#endif
|
|
||||||
Beb_send_data[2] = 0;
|
Beb_send_data[2] = 0;
|
||||||
|
|
||||||
Beb_SwapDataFun(0,2,&(Beb_send_data[1]));
|
Beb_SwapDataFun(0,2,&(Beb_send_data[1]));
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("Beb_send_data[1] Swapped:%X\n",Beb_send_data[1]));
|
||||||
cprintf(GREEN, "Beb_send_data[1] Swapped:%X\n",Beb_send_data[1]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (Beb_activated) {
|
if (Beb_activated) {
|
||||||
if (!Beb_WriteTo(i)) return 0;
|
if (!Beb_WriteTo(i)) return 0;
|
||||||
@ -983,7 +965,7 @@ int Beb_StopAcquisition()
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_CMD_GENERATOR);
|
int fd = Beb_open(&csp0base,XPAR_CMD_GENERATOR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Beb Stop Acquisition FAIL\n");
|
FILE_LOG(logERROR, ("Beb Stop Acquisition FAIL\n"));
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
//find value
|
//find value
|
||||||
@ -996,7 +978,7 @@ int Beb_StopAcquisition()
|
|||||||
Beb_Write32(csp0base, (LEFT_OFFSET + STOP_ACQ_OFFSET),(valuel&(~STOP_ACQ_BIT)));
|
Beb_Write32(csp0base, (LEFT_OFFSET + STOP_ACQ_OFFSET),(valuel&(~STOP_ACQ_BIT)));
|
||||||
Beb_Write32(csp0base, (RIGHT_OFFSET + STOP_ACQ_OFFSET),(valuer&(~STOP_ACQ_BIT)));
|
Beb_Write32(csp0base, (RIGHT_OFFSET + STOP_ACQ_OFFSET),(valuer&(~STOP_ACQ_BIT)));
|
||||||
|
|
||||||
printf("Beb Stop Acquisition OK\n");
|
FILE_LOG(logINFO, ("Beb Stop Acquisition OK\n"));
|
||||||
//close file pointer
|
//close file pointer
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
@ -1022,10 +1004,11 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
|
|||||||
|
|
||||||
if (in_two_requests) npackets/=2;
|
if (in_two_requests) npackets/=2;
|
||||||
|
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("----Beb_RequestNImages Start----\n"));
|
||||||
cprintf(RED, "----Beb_RequestNImages Start----\n");
|
FILE_LOG(logDEBUG5, ("beb_number:%X, ten_gig:%X,dst_number:%X, npackets:%X, "
|
||||||
cprintf(RED, "beb_number:%X, ten_gig:%X,dst_number:%X,npackets:%X,Beb_bit_mode:%X,header_size:%X,nimages:%d,test_just_send_out_packets_no_wait:%X\n",beb_number,ten_gig,dst_number,npackets,Beb_bit_mode,header_size,nimages,test_just_send_out_packets_no_wait);
|
"Beb_bit_mode:%X, header_size:%X, nimages:%d, test_just_send_out_packets_no_wait:%X\n",
|
||||||
#endif
|
beb_number, ten_gig, dst_number, npackets, Beb_bit_mode, header_size,
|
||||||
|
nimages, test_just_send_out_packets_no_wait));
|
||||||
|
|
||||||
// CMD_GEN core registers
|
// CMD_GEN core registers
|
||||||
//
|
//
|
||||||
@ -1062,25 +1045,23 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_CMD_GENERATOR);
|
int fd = Beb_open(&csp0base,XPAR_CMD_GENERATOR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Beb Request N Images FAIL\n");
|
FILE_LOG(logERROR, ("Beb Request N Images FAIL\n"));
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
{
|
||||||
#ifdef MARTIN
|
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i < 10; i++)
|
for (i=0; i < 10; i++)
|
||||||
printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4)));
|
FILE_LOG(logDEBUG5, ("%X\n",Beb_Read32(csp0base, (LEFT_OFFSET + i*4))));
|
||||||
#endif
|
}
|
||||||
// Generating commands
|
// Generating commands
|
||||||
send_header_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | header_size << 14 | 0;
|
send_header_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | header_size << 14 | 0;
|
||||||
send_frame_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | packet_size << 14 | (npackets-1);
|
send_frame_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | packet_size << 14 | (npackets-1);
|
||||||
|
{
|
||||||
#ifdef MARTIN
|
int i;
|
||||||
for (i=0; i < 10; i++)
|
for (i=0; i < 10; i++)
|
||||||
printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4)));
|
FILE_LOG(logDEBUG5, ("%X\n",Beb_Read32(csp0base, (LEFT_OFFSET + i*4))));
|
||||||
printf("%d\n",in_two_requests);
|
FILE_LOG(logDEBUG5, ("%d\n",in_two_requests));
|
||||||
#endif
|
}
|
||||||
|
|
||||||
//"0x20 << 8" is dst_number (0x00 for left, 0x20 for right)
|
//"0x20 << 8" is dst_number (0x00 for left, 0x20 for right)
|
||||||
//Left
|
//Left
|
||||||
Beb_Write32(csp0base, (LEFT_OFFSET + FIRST_CMD_PART1_OFFSET),0);
|
Beb_Write32(csp0base, (LEFT_OFFSET + FIRST_CMD_PART1_OFFSET),0);
|
||||||
@ -1104,18 +1085,15 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
|
|||||||
// Set number of frames
|
// Set number of frames
|
||||||
Beb_Write32(csp0base, (LEFT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests));
|
Beb_Write32(csp0base, (LEFT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests));
|
||||||
Beb_Write32(csp0base, (RIGHT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests));
|
Beb_Write32(csp0base, (RIGHT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests));
|
||||||
|
{
|
||||||
#ifdef MARTIN
|
int i;
|
||||||
for (i=0; i < 10; i++)
|
for (i=0; i < 10; i++)
|
||||||
printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4))); //*(ptrl+i));
|
FILE_LOG(logDEBUG5, ("%X\n",Beb_Read32(csp0base, (LEFT_OFFSET + i*4)))); //*(ptrl+i));
|
||||||
printf("%d\n",in_two_requests);
|
FILE_LOG(logDEBUG5, ("%d\n",in_two_requests));
|
||||||
#endif
|
}
|
||||||
|
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
|
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("----Beb_RequestNImages----\n"));
|
||||||
printf("----Beb_RequestNImages----\n");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -1123,7 +1101,7 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
|
|||||||
|
|
||||||
|
|
||||||
int Beb_Test(unsigned int beb_number) {
|
int Beb_Test(unsigned int beb_number) {
|
||||||
printf("Testing module number: %d\n",beb_number);
|
FILE_LOG(logINFO, ("Testing module number: %d\n",beb_number));
|
||||||
|
|
||||||
|
|
||||||
//int SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, string dst_mac, string dst_ip, unsigned int dst_port) {
|
//int SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, string dst_mac, string dst_ip, unsigned int dst_port) {
|
||||||
@ -1131,14 +1109,14 @@ int Beb_Test(unsigned int beb_number){
|
|||||||
|
|
||||||
unsigned int index = Beb_GetBebInfoIndex(beb_number);
|
unsigned int index = Beb_GetBebInfoIndex(beb_number);
|
||||||
if (!index) {
|
if (!index) {
|
||||||
printf("Error beb number (%d)not in list????\n",beb_number);
|
FILE_LOG(logERROR, ("Error beb number (%d)not in list????\n",beb_number));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=0;i<64;i++) {
|
for(i=0;i<64;i++) {
|
||||||
if (!Beb_SetUpUDPHeader(beb_number,0,i,"60:fb:42:f4:e3:d2","129.129.205.186",22000+i)) {
|
if (!Beb_SetUpUDPHeader(beb_number,0,i,"60:fb:42:f4:e3:d2","129.129.205.186",22000+i)) {
|
||||||
printf("Error setting up header table....\n");
|
FILE_LOG(logERROR, ("Error setting up header table....\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1146,7 +1124,7 @@ int Beb_Test(unsigned int beb_number){
|
|||||||
// SendMultiReadRequest(unsigned int beb_number, unsigned int left_right, int ten_gig, unsigned int dst_number, unsigned int npackets, unsigned int packet_size, int stop_read_when_fifo_empty=1);
|
// SendMultiReadRequest(unsigned int beb_number, unsigned int left_right, int ten_gig, unsigned int dst_number, unsigned int npackets, unsigned int packet_size, int stop_read_when_fifo_empty=1);
|
||||||
for(i=0;i<64;i++) {
|
for(i=0;i<64;i++) {
|
||||||
if (!Beb_SendMultiReadRequest(beb_number,i%3+1,0,i,1,0,1)) {
|
if (!Beb_SendMultiReadRequest(beb_number,i%3+1,0,i,1,0,1)) {
|
||||||
printf("Error requesting data....\n");
|
FILE_LOG(logERROR, ("Error requesting data....\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1166,7 +1144,7 @@ int Beb_GetBebFPGATemp()
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_SYSMON_0_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_SYSMON_0_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Module Configuration FAIL\n");
|
FILE_LOG(logERROR, ("Module Configuration FAIL\n"));
|
||||||
} else {
|
} else {
|
||||||
//read data
|
//read data
|
||||||
ret = Beb_Read32(csp0base, FPGA_TEMP_OFFSET);
|
ret = Beb_Read32(csp0base, FPGA_TEMP_OFFSET);
|
||||||
@ -1184,30 +1162,30 @@ void Beb_SetDetectorNumber(uint32_t detid) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
uint32_t swapid = Beb_swap_uint16(detid);
|
uint32_t swapid = Beb_swap_uint16(detid);
|
||||||
//cprintf(GREEN, "detector id %d swapped %d\n", detid, swapid);
|
//FILE_LOG(logINFO, "detector id %d swapped %d\n", detid, swapid));
|
||||||
u_int32_t* csp0base=0;
|
u_int32_t* csp0base=0;
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Set Detector ID FAIL\n");
|
FILE_LOG(logERROR, ("Set Detector ID FAIL\n"));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
uint32_t value = Beb_Read32(csp0base, UDP_HEADER_A_LEFT_OFST);
|
uint32_t value = Beb_Read32(csp0base, UDP_HEADER_A_LEFT_OFST);
|
||||||
value &= UDP_HEADER_X_MSK; // to keep previous x value
|
value &= UDP_HEADER_X_MSK; // to keep previous x value
|
||||||
Beb_Write32(csp0base, UDP_HEADER_A_LEFT_OFST, value | ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK));
|
Beb_Write32(csp0base, UDP_HEADER_A_LEFT_OFST, value | ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK));
|
||||||
value = Beb_Read32(csp0base, UDP_HEADER_A_LEFT_OFST);
|
value = Beb_Read32(csp0base, UDP_HEADER_A_LEFT_OFST);
|
||||||
if((value & UDP_HEADER_ID_MSK) != ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK))
|
if ((value & UDP_HEADER_ID_MSK) != ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK)) {
|
||||||
cprintf(BG_RED,"Set Detector ID FAIL\n");
|
FILE_LOG(logERROR, ("Set Detector ID FAIL\n"));
|
||||||
|
}
|
||||||
value = Beb_Read32(csp0base, UDP_HEADER_A_RIGHT_OFST);
|
value = Beb_Read32(csp0base, UDP_HEADER_A_RIGHT_OFST);
|
||||||
value &= UDP_HEADER_X_MSK; // to keep previous x value
|
value &= UDP_HEADER_X_MSK; // to keep previous x value
|
||||||
Beb_Write32(csp0base, UDP_HEADER_A_RIGHT_OFST, value | ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK));
|
Beb_Write32(csp0base, UDP_HEADER_A_RIGHT_OFST, value | ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK));
|
||||||
value = Beb_Read32(csp0base, UDP_HEADER_A_RIGHT_OFST);
|
value = Beb_Read32(csp0base, UDP_HEADER_A_RIGHT_OFST);
|
||||||
if((value & UDP_HEADER_ID_MSK) != ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK))
|
if ((value & UDP_HEADER_ID_MSK) != ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK)) {
|
||||||
cprintf(BG_RED,"Set Detector ID FAIL\n");
|
FILE_LOG(logERROR, ("Set Detector ID FAIL\n"));
|
||||||
|
}
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
printf("detector id %d has been set in udp header\n", detid);
|
FILE_LOG(logINFO, ("Detector id %d set in UDP Header\n\n", detid));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1215,7 +1193,7 @@ void Beb_SetDetectorNumber(uint32_t detid) {
|
|||||||
int Beb_SetDetectorPosition(int pos[]) {
|
int Beb_SetDetectorPosition(int pos[]) {
|
||||||
if (!Beb_activated)
|
if (!Beb_activated)
|
||||||
return OK;
|
return OK;
|
||||||
cprintf(BLUE,"Got Position values %d %d %d...\n", pos[0],pos[1], pos[2]);
|
FILE_LOG(logINFO, ("Got Position values %d %d %d...\n", pos[0],pos[1], pos[2]));
|
||||||
|
|
||||||
pos[0] = Beb_swap_uint16(pos[0]);
|
pos[0] = Beb_swap_uint16(pos[0]);
|
||||||
//pos[1] = Beb_swap_uint16(pos[1]);
|
//pos[1] = Beb_swap_uint16(pos[1]);
|
||||||
@ -1227,7 +1205,7 @@ int Beb_SetDetectorPosition(int pos[]) {
|
|||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
cprintf(BG_RED,"Set Detector Position FAIL\n");
|
FILE_LOG(logERROR, ("Set Detector Position FAIL\n"));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
} else {
|
} else {
|
||||||
uint32_t value = 0;
|
uint32_t value = 0;
|
||||||
@ -1289,11 +1267,11 @@ int Beb_SetDetectorPosition(int pos[]) {
|
|||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
cprintf(BLUE, "Position set to...\n"
|
FILE_LOG(logINFO, ("Position set to...\n"
|
||||||
"Left: [%d, %d, %d]\n"
|
"Left: [%d, %d, %d]\n"
|
||||||
"Right:[%d, %d, %d]\n",
|
"Right:[%d, %d, %d]\n",
|
||||||
Beb_swap_uint16(pos[0]), Beb_top ? pos[1] : (pos[1]+1), Beb_swap_uint16(pos[2]),
|
Beb_swap_uint16(pos[0]), Beb_top ? pos[1] : (pos[1]+1), Beb_swap_uint16(pos[2]),
|
||||||
Beb_swap_uint16(pos[0]), Beb_top ? (pos[1]+1) : pos[1], Beb_swap_uint16(pos[2]));
|
Beb_swap_uint16(pos[0]), Beb_top ? (pos[1]+1) : pos[1], Beb_swap_uint16(pos[2])));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -1307,20 +1285,16 @@ uint16_t Beb_swap_uint16( uint16_t val) {
|
|||||||
int Beb_open(u_int32_t** csp0base, u_int32_t offset) {
|
int Beb_open(u_int32_t** csp0base, u_int32_t offset) {
|
||||||
|
|
||||||
int fd = open("/dev/mem", O_RDWR | O_SYNC, 0);
|
int fd = open("/dev/mem", O_RDWR | O_SYNC, 0);
|
||||||
if (fd == -1)
|
if (fd == -1) {
|
||||||
cprintf(BG_RED,"\nCan't find /dev/mem!\n");
|
FILE_LOG(logERROR, ("\nCan't find /dev/mem!\n"));
|
||||||
else{
|
} else {
|
||||||
#ifdef VERBOSE
|
FILE_LOG(logDEBUG5, ("/dev/mem opened\n"));
|
||||||
printf("/dev/mem opened\n");
|
|
||||||
#endif
|
|
||||||
*csp0base = (u_int32_t*)mmap(0, BEB_MMAP_SIZE, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, offset);
|
*csp0base = (u_int32_t*)mmap(0, BEB_MMAP_SIZE, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, offset);
|
||||||
if (*csp0base == MAP_FAILED) {
|
if (*csp0base == MAP_FAILED) {
|
||||||
cprintf(BG_RED,"\nCan't map memmory area!!\n");
|
FILE_LOG(logERROR, ("\nCan't map memmory area!!\n"));
|
||||||
fd = -1;
|
fd = -1;
|
||||||
}
|
}
|
||||||
#ifdef VERBOSE
|
else FILE_LOG(logDEBUG5, ("CSP0 mapped %p\n",(void*)*csp0base));
|
||||||
else printf("CSP0 mapped %p\n",(void*)*csp0base);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,4 @@
|
|||||||
|
#pragma once
|
||||||
/**
|
|
||||||
* @author Ian Johnson
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef BEB_H
|
|
||||||
#define BEB_H
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "LocalLinkInterface.h"
|
#include "LocalLinkInterface.h"
|
||||||
@ -36,9 +27,6 @@ struct BebInfo{
|
|||||||
char* BebInfo_GetSrcIP(struct BebInfo* bebInfo, int ten_gig);
|
char* BebInfo_GetSrcIP(struct BebInfo* bebInfo, int ten_gig);
|
||||||
unsigned int BebInfo_GetSrcPort(struct BebInfo* bebInfo, int ten_gig);
|
unsigned int BebInfo_GetSrcPort(struct BebInfo* bebInfo, int ten_gig);
|
||||||
void BebInfo_Print(struct BebInfo* bebInfo);
|
void BebInfo_Print(struct BebInfo* bebInfo);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Beb_ClearBebInfos();
|
void Beb_ClearBebInfos();
|
||||||
int Beb_InitBebInfos();
|
int Beb_InitBebInfos();
|
||||||
int Beb_CheckSourceStuffBebInfo();
|
int Beb_CheckSourceStuffBebInfo();
|
||||||
@ -57,9 +45,7 @@ struct BebInfo{
|
|||||||
u_int32_t Beb_GetFirmwareRevision();
|
u_int32_t Beb_GetFirmwareRevision();
|
||||||
u_int32_t Beb_GetFirmwareSoftwareAPIVersion();
|
u_int32_t Beb_GetFirmwareSoftwareAPIVersion();
|
||||||
void Beb_ResetFrameNumber();
|
void Beb_ResetFrameNumber();
|
||||||
|
|
||||||
int Beb_WriteTo(unsigned int index);
|
int Beb_WriteTo(unsigned int index);
|
||||||
|
|
||||||
int Beb_SetMAC(char* mac, uint8_t* dst_ptr);
|
int Beb_SetMAC(char* mac, uint8_t* dst_ptr);
|
||||||
int Beb_SetIP(char* ip, uint8_t* dst_ptr);
|
int Beb_SetIP(char* ip, uint8_t* dst_ptr);
|
||||||
int Beb_SetPortNumber(unsigned int port_number, uint8_t* dst_ptr);
|
int Beb_SetPortNumber(unsigned int port_number, uint8_t* dst_ptr);
|
||||||
@ -70,11 +56,7 @@ struct BebInfo{
|
|||||||
|
|
||||||
void Beb_SwapDataFun(int little_endian, unsigned int n, unsigned int *d);
|
void Beb_SwapDataFun(int little_endian, unsigned int n, unsigned int *d);
|
||||||
int Beb_SetByteOrder();
|
int Beb_SetByteOrder();
|
||||||
|
|
||||||
|
|
||||||
void Beb_Beb();
|
void Beb_Beb();
|
||||||
|
|
||||||
|
|
||||||
int Beb_SetBebSrcHeaderInfos(unsigned int beb_number, int ten_gig, char* src_mac, char* src_ip, unsigned int src_port);
|
int Beb_SetBebSrcHeaderInfos(unsigned int beb_number, int ten_gig, char* src_mac, char* src_ip, unsigned int src_port);
|
||||||
int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port);
|
int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port);
|
||||||
|
|
||||||
@ -99,5 +81,4 @@ struct BebInfo{
|
|||||||
u_int32_t Beb_Write32 (u_int32_t* baseaddr, u_int32_t offset, u_int32_t data);
|
u_int32_t Beb_Write32 (u_int32_t* baseaddr, u_int32_t offset, u_int32_t data);
|
||||||
void Beb_close(int fd,u_int32_t* csp0base);
|
void Beb_close(int fd,u_int32_t* csp0base);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,20 +1,8 @@
|
|||||||
|
#pragma once
|
||||||
/**
|
#include "FebInterface.h"
|
||||||
* @author Ian Johnson
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FEBCONTROL_H
|
|
||||||
#define FEBCONTROL_H
|
|
||||||
|
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
//#include <string>
|
|
||||||
//#include <vector>
|
|
||||||
|
|
||||||
|
|
||||||
#include "FebInterface.h"
|
|
||||||
|
|
||||||
|
|
||||||
struct Module{
|
struct Module{
|
||||||
@ -60,62 +48,36 @@ int Module_SetBottomDACValue(struct Module* mod,unsigned int i, int val
|
|||||||
int Module_GetBottomDACValue(struct Module* mod,unsigned int i);
|
int Module_GetBottomDACValue(struct Module* mod,unsigned int i);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Feb_Control_activate(int activate);
|
void Feb_Control_activate(int activate);
|
||||||
|
|
||||||
int Feb_Control_IsBottomModule();
|
int Feb_Control_IsBottomModule();
|
||||||
int Feb_Control_GetModuleNumber();
|
int Feb_Control_GetModuleNumber();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Feb_Control_PrintModuleList();
|
void Feb_Control_PrintModuleList();
|
||||||
int Feb_Control_GetModuleIndex(unsigned int module_number, unsigned int* module_index);
|
int Feb_Control_GetModuleIndex(unsigned int module_number, unsigned int* module_index);
|
||||||
int Feb_Control_CheckModuleAddresses(struct Module* m);
|
int Feb_Control_CheckModuleAddresses(struct Module* m);
|
||||||
int Feb_Control_AddModule(unsigned int module_number, unsigned int top_address);
|
int Feb_Control_AddModule(unsigned int module_number, unsigned int top_address);
|
||||||
/*int Feb_Control_AddModule(unsigned int module_number, unsigned int top_address, unsigned int bottom_address, int half_module=0);*/
|
|
||||||
int Feb_Control_AddModule1(unsigned int module_number, int top_enable, unsigned int top_address, unsigned int bottom_address, int half_module);
|
int Feb_Control_AddModule1(unsigned int module_number, int top_enable, unsigned int top_address, unsigned int bottom_address, int half_module);
|
||||||
|
|
||||||
int Feb_Control_GetDACNumber(char* s, unsigned int* n);
|
int Feb_Control_GetDACNumber(char* s, unsigned int* n);
|
||||||
int Feb_Control_SendDACValue(unsigned int dst_num, unsigned int ch, unsigned int* value);
|
int Feb_Control_SendDACValue(unsigned int dst_num, unsigned int ch, unsigned int* value);
|
||||||
int Feb_Control_VoltageToDAC(float value, unsigned int* digital, unsigned int nsteps, float vmin, float vmax);
|
int Feb_Control_VoltageToDAC(float value, unsigned int* digital, unsigned int nsteps, float vmin, float vmax);
|
||||||
float Feb_Control_DACToVoltage(unsigned int digital,unsigned int nsteps,float vmin,float vmax);
|
float Feb_Control_DACToVoltage(unsigned int digital,unsigned int nsteps,float vmin,float vmax);
|
||||||
|
|
||||||
|
|
||||||
int Feb_Control_SendIDelays(unsigned int dst_num, int chip_lr, unsigned int channels, unsigned int ndelay_units);
|
int Feb_Control_SendIDelays(unsigned int dst_num, int chip_lr, unsigned int channels, unsigned int ndelay_units);
|
||||||
|
|
||||||
int Feb_Control_SetStaticBits();
|
int Feb_Control_SetStaticBits();
|
||||||
int Feb_Control_SetStaticBits1(unsigned int the_static_bits);
|
int Feb_Control_SetStaticBits1(unsigned int the_static_bits);
|
||||||
|
|
||||||
int Feb_Control_SendBitModeToBebServer();
|
int Feb_Control_SendBitModeToBebServer();
|
||||||
|
|
||||||
unsigned int Feb_Control_ConvertTimeToRegister(float time_in_sec);
|
unsigned int Feb_Control_ConvertTimeToRegister(float time_in_sec);
|
||||||
|
|
||||||
unsigned int Feb_Control_AddressToAll();
|
unsigned int Feb_Control_AddressToAll();
|
||||||
int Feb_Control_SetCommandRegister(unsigned int cmd);
|
int Feb_Control_SetCommandRegister(unsigned int cmd);
|
||||||
int Feb_Control_GetDAQStatusRegister(unsigned int dst_address, unsigned int* ret_status);
|
int Feb_Control_GetDAQStatusRegister(unsigned int dst_address, unsigned int* ret_status);
|
||||||
/*int Feb_Control_StartDAQOnlyNWaitForFinish(int sleep_time_us=5000);*/
|
|
||||||
int Feb_Control_StartDAQOnlyNWaitForFinish(int sleep_time_us);
|
int Feb_Control_StartDAQOnlyNWaitForFinish(int sleep_time_us);
|
||||||
|
|
||||||
int Feb_Control_ResetChipCompletely();
|
int Feb_Control_ResetChipCompletely();
|
||||||
int Feb_Control_ResetChipPartially();
|
int Feb_Control_ResetChipPartially();
|
||||||
|
|
||||||
//struct sockaddr_in Feb_Control_serv_addr;
|
|
||||||
/*
|
|
||||||
int Feb_Control_SetupSendToSocket(const char* ip_address_hostname, unsigned short int port);
|
|
||||||
int Feb_Control_WriteNRead(char* message, int length, int max_length);
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
void Feb_Control_FebControl();
|
void Feb_Control_FebControl();
|
||||||
int Feb_Control_Init(int master, int top, int normal, int module_num);
|
int Feb_Control_Init(int master, int top, int normal, int module_num);
|
||||||
int Feb_Control_OpenSerialCommunication();
|
int Feb_Control_OpenSerialCommunication();
|
||||||
void Feb_Control_CloseSerialCommunication();
|
void Feb_Control_CloseSerialCommunication();
|
||||||
int Feb_Control_CheckSetup();
|
int Feb_Control_CheckSetup();
|
||||||
|
|
||||||
unsigned int Feb_Control_GetNModules();
|
unsigned int Feb_Control_GetNModules();
|
||||||
unsigned int Feb_Control_GetNHalfModules();
|
unsigned int Feb_Control_GetNHalfModules();
|
||||||
|
|
||||||
@ -129,21 +91,13 @@ int Feb_Control_GetModuleNumber();
|
|||||||
int Feb_Control_SetIDelays1(unsigned int module_num, unsigned int chip_pos, unsigned int ndelay_units);
|
int Feb_Control_SetIDelays1(unsigned int module_num, unsigned int chip_pos, unsigned int ndelay_units);
|
||||||
|
|
||||||
int Feb_Control_DecodeDACString(char* dac_str, unsigned int* module_index, int* top, int* bottom, unsigned int* dac_ch);
|
int Feb_Control_DecodeDACString(char* dac_str, unsigned int* module_index, int* top, int* bottom, unsigned int* dac_ch);
|
||||||
/*int Feb_Control_SetDAC(string s, int value, int is_a_voltage_mv=0);*/
|
|
||||||
int Feb_Control_SetDAC(char* s, int value, int is_a_voltage_mv);
|
int Feb_Control_SetDAC(char* s, int value, int is_a_voltage_mv);
|
||||||
/* int Feb_Control_GetDAC(string s, int* ret_value, int voltage_mv=0);*/
|
|
||||||
int Feb_Control_GetDAC(char* s, int* ret_value, int voltage_mv);
|
int Feb_Control_GetDAC(char* s, int* ret_value, int voltage_mv);
|
||||||
int Feb_Control_GetDACName(unsigned int dac_num,char* s);
|
int Feb_Control_GetDACName(unsigned int dac_num,char* s);
|
||||||
|
|
||||||
int Feb_Control_SetTrimbits(unsigned int module_num, unsigned int* trimbits);
|
int Feb_Control_SetTrimbits(unsigned int module_num, unsigned int* trimbits);
|
||||||
unsigned int* Feb_Control_GetTrimbits();
|
unsigned int* Feb_Control_GetTrimbits();
|
||||||
|
|
||||||
|
|
||||||
/**Added by Dhanya */
|
|
||||||
int Feb_Control_SaveAllTrimbitsTo(int value);
|
int Feb_Control_SaveAllTrimbitsTo(int value);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int Feb_Control_Reset();
|
int Feb_Control_Reset();
|
||||||
int Feb_Control_PrepareForAcquisition();
|
int Feb_Control_PrepareForAcquisition();
|
||||||
|
|
||||||
@ -151,11 +105,8 @@ int Feb_Control_GetModuleNumber();
|
|||||||
int Feb_Control_StopAcquisition();
|
int Feb_Control_StopAcquisition();
|
||||||
int Feb_Control_AcquisitionInProgress();
|
int Feb_Control_AcquisitionInProgress();
|
||||||
int Feb_Control_AcquisitionStartedBit();
|
int Feb_Control_AcquisitionStartedBit();
|
||||||
/*int Feb_Control_WaitForFinishedFlag(int sleep_time_us=5000);*/
|
|
||||||
int Feb_Control_WaitForFinishedFlag(int sleep_time_us);
|
int Feb_Control_WaitForFinishedFlag(int sleep_time_us);
|
||||||
int Feb_Control_WaitForStartedFlag(int sleep_time_us, int prev_flag);
|
int Feb_Control_WaitForStartedFlag(int sleep_time_us, int prev_flag);
|
||||||
|
|
||||||
//functions for setting up exposure
|
|
||||||
void Feb_Control_PrintAcquisitionSetup();
|
void Feb_Control_PrintAcquisitionSetup();
|
||||||
int Feb_Control_SetNExposures(unsigned int n_images);
|
int Feb_Control_SetNExposures(unsigned int n_images);
|
||||||
unsigned int Feb_Control_GetNExposures();
|
unsigned int Feb_Control_GetNExposures();
|
||||||
@ -175,8 +126,6 @@ int Feb_Control_GetModuleNumber();
|
|||||||
int Feb_Control_SetTriggerMode(unsigned int trigger_mode, int polarity);//0 and 1 was default,
|
int Feb_Control_SetTriggerMode(unsigned int trigger_mode, int polarity);//0 and 1 was default,
|
||||||
int Feb_Control_SetExternalEnableMode(int use_external_enable, int polarity);//0 and 1 was default,
|
int Feb_Control_SetExternalEnableMode(int use_external_enable, int polarity);//0 and 1 was default,
|
||||||
|
|
||||||
//functions for testing
|
|
||||||
/*int Feb_Control_SetTestModeVariable(int on=1);*/
|
|
||||||
int Feb_Control_SetInTestModeVariable(int on);
|
int Feb_Control_SetInTestModeVariable(int on);
|
||||||
int Feb_Control_GetTestModeVariable();
|
int Feb_Control_GetTestModeVariable();
|
||||||
|
|
||||||
@ -207,4 +156,4 @@ int Feb_Control_GetModuleNumber();
|
|||||||
|
|
||||||
uint32_t Feb_Control_WriteRegister(uint32_t offset, uint32_t data);
|
uint32_t Feb_Control_WriteRegister(uint32_t offset, uint32_t data);
|
||||||
uint32_t Feb_Control_ReadRegister(uint32_t offset);
|
uint32_t Feb_Control_ReadRegister(uint32_t offset);
|
||||||
#endif
|
|
||||||
|
@ -1,26 +1,12 @@
|
|||||||
|
#include "FebInterface.h"
|
||||||
/**
|
#include "LocalLinkInterface.h"
|
||||||
* @author Ian Johnson
|
#include "xparameters.h"
|
||||||
* @version 1.0
|
#include "logger.h"
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#include <iostream>
|
|
||||||
//#include <iomanip>
|
|
||||||
//#include <unistd.h>
|
|
||||||
//#include <string.h>
|
|
||||||
//#include <sys/mman.h>
|
|
||||||
//#include <fcntl.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "xparameters.h"
|
|
||||||
|
|
||||||
#include "FebInterface.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct LocalLinkInterface ll_local,* ll;
|
struct LocalLinkInterface ll_local,* ll;
|
||||||
@ -71,9 +57,7 @@ void Feb_Interface_SendCompleteList(unsigned int n,unsigned int* list){
|
|||||||
int Feb_Interface_WriteTo(unsigned int ch) {
|
int Feb_Interface_WriteTo(unsigned int ch) {
|
||||||
if (ch>0xfff) return 0;
|
if (ch>0xfff) return 0;
|
||||||
|
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("FIW ch %d\n", ch));
|
||||||
cprintf(YELLOW, "FIW ch %d\n", ch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Feb_Interface_send_data_raw[0] = 0x8fff0000;
|
Feb_Interface_send_data_raw[0] = 0x8fff0000;
|
||||||
if (Local_Write(ll,4,Feb_Interface_send_data_raw)!=4) return 0;
|
if (Local_Write(ll,4,Feb_Interface_send_data_raw)!=4) return 0;
|
||||||
@ -193,7 +177,10 @@ int Feb_Interface_WriteMemory(unsigned int sub_num, unsigned int mem_num, unsign
|
|||||||
mem_num &= 0x3f;
|
mem_num &= 0x3f;
|
||||||
start_address &= 0x3fff;
|
start_address &= 0x3fff;
|
||||||
nwrites &= 0x3ff;
|
nwrites &= 0x3ff;
|
||||||
if(!nwrites||nwrites>Feb_Interface_send_buffer_size-2) {printf("error herer: nwrites:%d\n",nwrites);return 0;}//*d-1026
|
if (!nwrites||nwrites>Feb_Interface_send_buffer_size-2) {
|
||||||
|
FILE_LOG(logERROR, ("invalid nwrites:%d\n",nwrites));
|
||||||
|
return 0;
|
||||||
|
}//*d-1026
|
||||||
|
|
||||||
Feb_Interface_send_ndata = nwrites+2;//*d-1026
|
Feb_Interface_send_ndata = nwrites+2;//*d-1026
|
||||||
Feb_Interface_send_data[0] = 0xc0000000 | mem_num << 24 | nwrites << 14 | start_address; //cmd -> write to memory, nwrites, mem number, start address
|
Feb_Interface_send_data[0] = 0xc0000000 | mem_num << 24 | nwrites << 14 | start_address; //cmd -> write to memory, nwrites, mem number, start address
|
||||||
|
@ -1,43 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
/**
|
|
||||||
* @author Ian Johnson
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FEBINTERFACE_H
|
|
||||||
#define FEBINTERFACE_H
|
|
||||||
|
|
||||||
#include "LocalLinkInterface.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int Feb_Interface_WriteTo(unsigned int ch);
|
int Feb_Interface_WriteTo(unsigned int ch);
|
||||||
/*int Feb_Interface_ReadFrom(unsigned int ch, unsigned int ntrys=20);*/
|
|
||||||
int Feb_Interface_ReadFrom(unsigned int ch, unsigned int ntrys);
|
int Feb_Interface_ReadFrom(unsigned int ch, unsigned int ntrys);
|
||||||
|
|
||||||
void Feb_Interface_FebInterface();
|
void Feb_Interface_FebInterface();
|
||||||
|
|
||||||
|
|
||||||
void Feb_Interface_SendCompleteList(unsigned int n,unsigned int* list);
|
void Feb_Interface_SendCompleteList(unsigned int n,unsigned int* list);
|
||||||
int Feb_Interface_SetByteOrder();
|
int Feb_Interface_SetByteOrder();
|
||||||
|
|
||||||
int Feb_Interface_ReadRegister(unsigned int sub_num, unsigned int reg_num,unsigned int* value_read);
|
int Feb_Interface_ReadRegister(unsigned int sub_num, unsigned int reg_num,unsigned int* value_read);
|
||||||
int Feb_Interface_ReadRegisters(unsigned int sub_num, unsigned int nreads, unsigned int* reg_nums,unsigned int* values_read);
|
int Feb_Interface_ReadRegisters(unsigned int sub_num, unsigned int nreads, unsigned int* reg_nums,unsigned int* values_read);
|
||||||
/*int Feb_Interface_WriteRegister(unsigned int sub_num, unsigned int reg_num,unsigned int value, int wait_on=0, unsigned int wait_on_address=0);*/
|
|
||||||
int Feb_Interface_WriteRegister(unsigned int sub_num, unsigned int reg_num,unsigned int value, int wait_on, unsigned int wait_on_address);
|
int Feb_Interface_WriteRegister(unsigned int sub_num, unsigned int reg_num,unsigned int value, int wait_on, unsigned int wait_on_address);
|
||||||
/*int Feb_Interface_WriteRegisters(unsigned int sub_num, unsigned int nwrites, unsigned int* reg_nums, unsigned int* values, int* wait_ons=0, unsigned int* wait_on_addresses=0);*/
|
|
||||||
int Feb_Interface_WriteRegisters(unsigned int sub_num, unsigned int nwrites, unsigned int* reg_nums, unsigned int* values, int* wait_ons, unsigned int* wait_on_addresses);
|
int Feb_Interface_WriteRegisters(unsigned int sub_num, unsigned int nwrites, unsigned int* reg_nums, unsigned int* values, int* wait_ons, unsigned int* wait_on_addresses);
|
||||||
|
|
||||||
//mem_num is 0 for trimbit BRAM and 1 for rate correction BRAM
|
|
||||||
int Feb_Interface_WriteMemoryInLoops(unsigned int sub_num, unsigned int mem_num, unsigned int start_address, unsigned int nwrites, unsigned int *values);
|
int Feb_Interface_WriteMemoryInLoops(unsigned int sub_num, unsigned int mem_num, unsigned int start_address, unsigned int nwrites, unsigned int *values);
|
||||||
|
|
||||||
int Feb_Interface_WriteMemory(unsigned int sub_num, unsigned int mem_num, unsigned int start_address, unsigned int nwrites, unsigned int *values);
|
int Feb_Interface_WriteMemory(unsigned int sub_num, unsigned int mem_num, unsigned int start_address, unsigned int nwrites, unsigned int *values);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,14 +1,3 @@
|
|||||||
|
|
||||||
//Class initially from Gerd and was called mmap_test.c
|
|
||||||
//return reversed 1 means good, 0 means failed
|
|
||||||
|
|
||||||
|
|
||||||
//#include <stdio.h>
|
|
||||||
//#include <unistd.h>
|
|
||||||
//#include <string.h>
|
|
||||||
//#include <sys/mman.h>
|
|
||||||
//#include <fcntl.h>
|
|
||||||
|
|
||||||
#include "HardwareIO.h"
|
#include "HardwareIO.h"
|
||||||
|
|
||||||
xfs_u8 HWIO_xfs_in8(xfs_u32 InAddress)
|
xfs_u8 HWIO_xfs_in8(xfs_u32 InAddress)
|
||||||
|
@ -1,35 +1,27 @@
|
|||||||
|
#include "LocalLinkInterface.h"
|
||||||
//Class initially from Gerd and was called mmap_test.c
|
#include "HardwareMMappingDefs.h"
|
||||||
//return reversed 1 means good, 0 means failed
|
#include "logger.h"
|
||||||
|
#include "ansi.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
//#include <string.h>
|
#include <sys/mman.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include "HardwareMMappingDefs.h"
|
|
||||||
|
|
||||||
#include "LocalLinkInterface.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Local_LocalLinkInterface1(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr) {
|
void Local_LocalLinkInterface1(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr) {
|
||||||
// printf("\n v 1 \n");
|
FILE_LOG(logDEBUG5, ("Initialize PLB LL FIFOs\n"));
|
||||||
printf("Initialize PLB LL FIFOs\n");
|
|
||||||
ll->ll_fifo_base=0;
|
ll->ll_fifo_base=0;
|
||||||
ll->ll_fifo_ctrl_reg=0;
|
ll->ll_fifo_ctrl_reg=0;
|
||||||
if (Local_Init(ll,ll_fifo_badr)) {
|
if (Local_Init(ll,ll_fifo_badr)) {
|
||||||
Local_Reset(ll);
|
Local_Reset(ll);
|
||||||
printf("\tFIFO Status : 0x%08x\n",Local_StatusVector(ll));
|
FILE_LOG(logDEBUG5, ("\tFIFO Status : 0x%08x\n\n\n", Local_StatusVector(ll)));
|
||||||
}else printf("\tError LocalLink Mappping : 0x%08x\n",ll_fifo_badr);
|
} else FILE_LOG(logERROR, ("\tCould not map LocalLink : 0x%08x\n\n\n", ll_fifo_badr));
|
||||||
printf("\n\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*~LocalLinkInterface(){};*/
|
|
||||||
|
|
||||||
void Local_LocalLinkInterface(struct LocalLinkInterface* ll) {
|
void Local_LocalLinkInterface(struct LocalLinkInterface* ll) {
|
||||||
printf("Initializing new memory\n");
|
FILE_LOG(logDEBUG5, ("Initializing new memory\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -65,7 +57,7 @@ int Local_Reset(struct LocalLinkInterface* ll){
|
|||||||
|
|
||||||
int Local_Reset1(struct LocalLinkInterface* ll,unsigned int rst_mask) {
|
int Local_Reset1(struct LocalLinkInterface* ll,unsigned int rst_mask) {
|
||||||
ll->ll_fifo_ctrl_reg |= rst_mask;
|
ll->ll_fifo_ctrl_reg |= rst_mask;
|
||||||
printf("\tCTRL Register bits: 0x%08x\n",ll->ll_fifo_ctrl_reg);
|
FILE_LOG(logDEBUG5, ("\tCTRL Register bits: 0x%08x\n",ll->ll_fifo_ctrl_reg));
|
||||||
|
|
||||||
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
||||||
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
||||||
@ -75,7 +67,6 @@ int Local_Reset1(struct LocalLinkInterface* ll,unsigned int rst_mask){
|
|||||||
ll->ll_fifo_ctrl_reg &= (~rst_mask);
|
ll->ll_fifo_ctrl_reg &= (~rst_mask);
|
||||||
|
|
||||||
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
||||||
// printf("FIFO CTRL Address: 0x%08x\n FIFO CTRL Register: 0x%08x\n",PLB_LL_FIFO_REG_CTRL,plb_ll_fifo[PLB_LL_FIFO_REG_CTRL]);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,12 +92,9 @@ int Local_Write(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buf
|
|||||||
last_word = (buffer_len-1)/4;
|
last_word = (buffer_len-1)/4;
|
||||||
word_ptr = (unsigned int *)buffer;
|
word_ptr = (unsigned int *)buffer;
|
||||||
|
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("LL Write - Len: %2d - If: %X - Data: ",buffer_len, ll->ll_fifo_base));
|
||||||
cprintf(BLUE, "LL Write - Len: %2d - If: %X - Data: ",buffer_len, ll->ll_fifo_base);
|
|
||||||
for (i=0; i < buffer_len/4; i++)
|
for (i=0; i < buffer_len/4; i++)
|
||||||
cprintf(BLUE, "%.8X ",*(((unsigned *) buffer)+i));
|
FILE_LOG(logDEBUG5, ("%.8X ",*(((unsigned *) buffer)+i)));
|
||||||
printf("\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (words_send <= last_word)
|
while (words_send <= last_word)
|
||||||
{
|
{
|
||||||
@ -114,9 +102,9 @@ int Local_Write(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buf
|
|||||||
{
|
{
|
||||||
status = HWIO_xfs_in32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_STATUS);
|
status = HWIO_xfs_in32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_STATUS);
|
||||||
if ((status & PLB_LL_FIFO_STATUS_ALMOSTFULL) == 0) vacancy = 1;
|
if ((status & PLB_LL_FIFO_STATUS_ALMOSTFULL) == 0) vacancy = 1;
|
||||||
#ifdef MARTIN
|
if (vacancy == 0) {
|
||||||
if (vacancy == 0) cprintf(RED, "Fifo full!\n");
|
FILE_LOG(logERROR, ("Fifo full!\n"));
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Just to know: #define PLB_LL_FIFO_ALMOST_FULL_THRESHOLD_WORDS 100
|
//Just to know: #define PLB_LL_FIFO_ALMOST_FULL_THRESHOLD_WORDS 100
|
||||||
@ -150,9 +138,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
volatile unsigned int fifo_val;
|
volatile unsigned int fifo_val;
|
||||||
int sof = 0;
|
int sof = 0;
|
||||||
|
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("LL Read - If: %X - Data: ",ll->ll_fifo_base));
|
||||||
cprintf(CYAN, "LL Read - If: %X - Data: ",ll->ll_fifo_base);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
word_ptr = (unsigned int *)buffer;
|
word_ptr = (unsigned int *)buffer;
|
||||||
do
|
do
|
||||||
@ -168,7 +154,6 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
buffer_ptr = 0;
|
buffer_ptr = 0;
|
||||||
return -1; // buffer overflow
|
return -1; // buffer overflow
|
||||||
}
|
}
|
||||||
// printf(">>>> SOF\n\r");
|
|
||||||
buffer_ptr = 0;
|
buffer_ptr = 0;
|
||||||
sof = 1;
|
sof = 1;
|
||||||
}
|
}
|
||||||
@ -179,9 +164,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
{
|
{
|
||||||
if ( (buffer_len >> 2) > buffer_ptr)
|
if ( (buffer_len >> 2) > buffer_ptr)
|
||||||
{
|
{
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("%.8X ", fifo_val));
|
||||||
cprintf(CYAN, "%.8X ", fifo_val);
|
|
||||||
#endif
|
|
||||||
word_ptr[buffer_ptr++] = fifo_val; //write to buffer
|
word_ptr[buffer_ptr++] = fifo_val; //write to buffer
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -193,10 +176,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
if (status & PLB_LL_FIFO_STATUS_LL_EOF)
|
if (status & PLB_LL_FIFO_STATUS_LL_EOF)
|
||||||
{
|
{
|
||||||
len = (buffer_ptr << 2) -3 + ( (status & PLB_LL_FIFO_STATUS_LL_REM)>>PLB_LL_FIFO_STATUS_LL_REM_SHIFT );
|
len = (buffer_ptr << 2) -3 + ( (status & PLB_LL_FIFO_STATUS_LL_REM)>>PLB_LL_FIFO_STATUS_LL_REM_SHIFT );
|
||||||
#ifdef MARTIN
|
FILE_LOG(logDEBUG5, ("Len: %d\n",len));
|
||||||
cprintf(CYAN, "Len: %d\n",len);
|
|
||||||
#endif
|
|
||||||
// printf(">>>>status=0x%08x EOF len = %d \n\r\n\r",status, len);
|
|
||||||
buffer_ptr = 0;
|
buffer_ptr = 0;
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
@ -210,13 +190,9 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
}
|
}
|
||||||
|
|
||||||
int Local_ctrl_reg_write_mask(struct LocalLinkInterface* ll,unsigned int mask, unsigned int val) {
|
int Local_ctrl_reg_write_mask(struct LocalLinkInterface* ll,unsigned int mask, unsigned int val) {
|
||||||
// printf("Fifo CTRL Reg(1): 0x%08x\n",plb_ll_fifo_ctrl_reg);
|
|
||||||
ll->ll_fifo_ctrl_reg &= (~mask);
|
ll->ll_fifo_ctrl_reg &= (~mask);
|
||||||
//printf("Fifo CTRL Reg(2): 0x%08x\n",plb_ll_fifo_ctrl_reg);
|
|
||||||
ll->ll_fifo_ctrl_reg |= ( mask & val);
|
ll->ll_fifo_ctrl_reg |= ( mask & val);
|
||||||
// printf("Fifo CTRL Reg: 0x%08x\n",plb_ll_fifo_ctrl_reg);
|
|
||||||
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
HWIO_xfs_out32(ll->ll_fifo_base+4*PLB_LL_FIFO_REG_CTRL,ll->ll_fifo_ctrl_reg);
|
||||||
// printf("Fifo STAT Reg: 0x%08x\n", plb_ll_fifo[PLB_LL_FIFO_REG_STATUS]);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,28 +209,14 @@ int Local_Test(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff
|
|||||||
|
|
||||||
do{
|
do{
|
||||||
len = Local_Read(ll,rec_buff_len,rec_buffer);
|
len = Local_Read(ll,rec_buff_len,rec_buffer);
|
||||||
printf("receive length: %i\n",len);
|
FILE_LOG(logDEBUG5, ("receive length: %i\n",len));
|
||||||
|
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
rec_buffer[len]=0;
|
rec_buffer[len]=0;
|
||||||
printf((char*) rec_buffer);
|
FILE_LOG(logINFO, ("%s\n", (char*) rec_buffer));
|
||||||
printf("\n");
|
|
||||||
}
|
}
|
||||||
} while(len > 0);
|
} while(len > 0);
|
||||||
|
|
||||||
printf("\n\n\n\n");
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Local_llfifo_print_frame(struct LocalLinkInterface* ll,unsigned char* fbuff, int len){
|
|
||||||
int i;
|
|
||||||
printf("\n\r----Frame of len : %d Byte\n\r",len);
|
|
||||||
for(i=0;i<len;i++){
|
|
||||||
printf("0x%02x ",fbuff[i] );
|
|
||||||
if ((i&0xf) == 0x7) printf(" ");
|
|
||||||
if ((i&0xf) == 0xf) printf("\n\r");
|
|
||||||
}
|
|
||||||
printf("\n\r");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,18 +1,6 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
//Class initially from Gerd and was called mmap_test.c
|
|
||||||
|
|
||||||
#ifndef LOCALLINKINTERFACE_H
|
|
||||||
#define LOCALLINKINTERFACE_H
|
|
||||||
|
|
||||||
#include "xfs_types.h"
|
|
||||||
#include "HardwareIO.h"
|
#include "HardwareIO.h"
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "ansi.h"
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
|
|
||||||
/*class LocalLinkInterface: public HardwareIO{ //*/
|
|
||||||
|
|
||||||
|
|
||||||
struct LocalLinkInterface{
|
struct LocalLinkInterface{
|
||||||
@ -20,35 +8,14 @@ struct LocalLinkInterface{
|
|||||||
unsigned int ll_fifo_ctrl_reg;
|
unsigned int ll_fifo_ctrl_reg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int Local_Init(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr);
|
int Local_Init(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr);
|
||||||
int Local_Reset1(struct LocalLinkInterface* ll,unsigned int rst_mask);
|
int Local_Reset1(struct LocalLinkInterface* ll,unsigned int rst_mask);
|
||||||
|
|
||||||
int Local_ctrl_reg_write_mask(struct LocalLinkInterface* ll,unsigned int mask, unsigned int val);
|
int Local_ctrl_reg_write_mask(struct LocalLinkInterface* ll,unsigned int mask, unsigned int val);
|
||||||
void Local_llfifo_print_frame(struct LocalLinkInterface* ll,unsigned char* fbuff, int len);
|
|
||||||
|
|
||||||
|
|
||||||
void Local_LocalLinkInterface1(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr);
|
void Local_LocalLinkInterface1(struct LocalLinkInterface* ll,unsigned int ll_fifo_badr);
|
||||||
/* virtual ~LocalLinkInterface();*/
|
|
||||||
|
|
||||||
unsigned int Local_StatusVector(struct LocalLinkInterface* ll);
|
unsigned int Local_StatusVector(struct LocalLinkInterface* ll);
|
||||||
int Local_Reset(struct LocalLinkInterface* ll);
|
int Local_Reset(struct LocalLinkInterface* ll);
|
||||||
int Local_Write(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
int Local_Write(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
||||||
int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
||||||
|
|
||||||
int Local_Test(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
int Local_Test(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buffer);
|
||||||
|
|
||||||
void Local_LocalLinkInterface(struct LocalLinkInterface* ll);
|
void Local_LocalLinkInterface(struct LocalLinkInterface* ll);
|
||||||
|
|
||||||
/*
|
|
||||||
int FiFoReset(unsigned int numb);
|
|
||||||
int FifoSend(unsigned int numb, unsigned int frame_len, void *buffer);
|
|
||||||
int FifoReceive(unsigned int numb, unsigned int frame_len, void *buffer);
|
|
||||||
int FifoTest(unsigned int numb,unsigned int send_len, char *send_str);
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Path: slsDetectorPackage/slsDetectorServers/eigerDetectorServer
|
Path: slsDetectorPackage/slsDetectorServers/eigerDetectorServer
|
||||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repsitory UUID: 178b83222380f7b7294cde66e66719c5d1c1363c
|
Repsitory UUID: dfad145e1492e961c95063aa5b2f54e5e1b418a0
|
||||||
Revision: 2
|
Revision: 3
|
||||||
Branch: refactor
|
Branch: refactor
|
||||||
Last Changed Author: Dhanya_Thattil
|
Last Changed Author: Dhanya_Thattil
|
||||||
Last Changed Rev: 4125
|
Last Changed Rev: 4127
|
||||||
Last Changed Date: 2018-10-16 09:02:45.000000002 +0200 ./Makefile
|
Last Changed Date: 2018-10-23 12:30:26.000000002 +0200 ./Beb.c
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||||
#define GITREPUUID "178b83222380f7b7294cde66e66719c5d1c1363c"
|
#define GITREPUUID "dfad145e1492e961c95063aa5b2f54e5e1b418a0"
|
||||||
#define GITAUTH "Dhanya_Thattil"
|
#define GITAUTH "Dhanya_Thattil"
|
||||||
#define GITREV 0x4125
|
#define GITREV 0x4127
|
||||||
#define GITDATE 0x20181016
|
#define GITDATE 0x20181023
|
||||||
#define GITBRANCH "refactor"
|
#define GITBRANCH "refactor"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -42,7 +42,7 @@ enum DACINDEX {SVP,VTR,VRF,VRS,SVN,VTGSTV,VCMP_LL,VCMP_LR,CAL,VCMP_RL,RX
|
|||||||
};
|
};
|
||||||
enum ADCINDEX {TEMP_FPGAEXT, TEMP_10GE, TEMP_DCDC, TEMP_SODL, TEMP_SODR, TEMP_FPGA, TEMP_FPGAFEBL, TEMP_FPGAFEBR};
|
enum ADCINDEX {TEMP_FPGAEXT, TEMP_10GE, TEMP_DCDC, TEMP_SODL, TEMP_SODR, TEMP_FPGA, TEMP_FPGAFEBL, TEMP_FPGAFEBR};
|
||||||
enum NETWORKINDEX {TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G};
|
enum NETWORKINDEX {TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G};
|
||||||
|
enum {E_PARALLEL, E_NON_PARALLEL, E_SAFE};
|
||||||
|
|
||||||
/* Hardware Definitions */
|
/* Hardware Definitions */
|
||||||
#define NCHAN (256 * 256)
|
#define NCHAN (256 * 256)
|
||||||
|
@ -448,7 +448,7 @@ void setupDetector() {
|
|||||||
|
|
||||||
bus_w(DAQ_REG, 0x0); /* Only once at server startup */
|
bus_w(DAQ_REG, 0x0); /* Only once at server startup */
|
||||||
|
|
||||||
setSpeed(CLOCK_DIVIDER, HALF_SPEED);
|
setSpeed(HALF_SPEED);
|
||||||
cleanFifos();
|
cleanFifos();
|
||||||
resetCore();
|
resetCore();
|
||||||
|
|
||||||
@ -465,7 +465,7 @@ void setupDetector() {
|
|||||||
setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY);
|
setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY);
|
||||||
setTimer(STORAGE_CELL_NUMBER, DEFAULT_NUM_STRG_CLLS);
|
setTimer(STORAGE_CELL_NUMBER, DEFAULT_NUM_STRG_CLLS);
|
||||||
selectStoragecellStart(DEFAULT_STRG_CLL_STRT);
|
selectStoragecellStart(DEFAULT_STRG_CLL_STRT);
|
||||||
/*setSpeed(CLOCK_DIVIDER, HALF_SPEED); depends if all the previous stuff works*/
|
/*setSpeed(HALF_SPEED); depends if all the previous stuff works*/
|
||||||
setTiming(DEFAULT_TIMING_MODE);
|
setTiming(DEFAULT_TIMING_MODE);
|
||||||
setHighVoltage(DEFAULT_HIGH_VOLTAGE);
|
setHighVoltage(DEFAULT_HIGH_VOLTAGE);
|
||||||
|
|
||||||
@ -611,10 +611,7 @@ int setDynamicRange(int dr){
|
|||||||
|
|
||||||
/* parameters - readout */
|
/* parameters - readout */
|
||||||
|
|
||||||
int setSpeed(enum speedVariable arg, int val) {
|
enum speedVariable setSpeed(int val) {
|
||||||
|
|
||||||
if (arg != CLOCK_DIVIDER)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
// setting
|
// setting
|
||||||
if(val >= 0) {
|
if(val >= 0) {
|
||||||
@ -1620,7 +1617,7 @@ void readFrame(int *ret, char *mess){
|
|||||||
} else {
|
} else {
|
||||||
*ret = (int)FINISHED;
|
*ret = (int)FINISHED;
|
||||||
sprintf(mess,"acquisition successfully finished\n");
|
sprintf(mess,"acquisition successfully finished\n");
|
||||||
printf("%s",mess);
|
cprintf(GREEN, "%s",mess);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/AD9257.h
|
|
@ -1,33 +0,0 @@
|
|||||||
CROSS = bfin-uclinux-
|
|
||||||
CC = $(CROSS)gcc
|
|
||||||
#CC = gcc
|
|
||||||
CLAGS += -Wall -DMYTHEN3D -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE
|
|
||||||
LDLIBS += -lm -lstdc++
|
|
||||||
|
|
||||||
|
|
||||||
PROGS = mythen3DetectorServer
|
|
||||||
DESTDIR ?= bin
|
|
||||||
INSTMODE = 0777
|
|
||||||
|
|
||||||
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c
|
|
||||||
OBJS = $(SRC_CLNT:.c=.o)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
all: clean versioning $(PROGS)
|
|
||||||
|
|
||||||
boot: $(OBJS)
|
|
||||||
|
|
||||||
versioning:
|
|
||||||
@echo `tput setaf 6; ./updateGitVersion.sh; tput sgr0;`
|
|
||||||
|
|
||||||
$(PROGS): $(OBJS)
|
|
||||||
# echo $(OBJS)
|
|
||||||
mkdir -p $(DESTDIR)
|
|
||||||
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
|
|
||||||
mv $(PROGS) $(DESTDIR)
|
|
||||||
rm *.gdb
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf $(DESTDIR)/$(PROGS) *.o
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
CC = gcc
|
|
||||||
CFLAGS += -Wall -DVIRTUAL -DMYTHEN3D -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE
|
|
||||||
LDLIBS += -lm -lstdc++
|
|
||||||
|
|
||||||
PROGS = virtualMythen3DetectorServer
|
|
||||||
DESTDIR ?= bin
|
|
||||||
INSTMODE = 0777
|
|
||||||
|
|
||||||
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c
|
|
||||||
OBJS = $(SRC_CLNT:.c=.o)
|
|
||||||
|
|
||||||
all: clean $(PROGS)
|
|
||||||
|
|
||||||
boot: $(OBJS)
|
|
||||||
|
|
||||||
$(PROGS): $(OBJS)
|
|
||||||
echo $(OBJS)
|
|
||||||
mkdir -p $(DESTDIR)
|
|
||||||
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
|
|
||||||
mv $(PROGS) $(DESTDIR)
|
|
||||||
rm *.gdb
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf $(DESTDIR)/$(PROGS) *.o
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
|||||||
#ifndef REGISTERS_G_H
|
|
||||||
#define REGISTERS_G_H
|
|
||||||
|
|
||||||
/* Definitions for FPGA*/
|
|
||||||
|
|
||||||
/* FPGA Version register */
|
|
||||||
#define FPGA_VERSION_REG (0x00 << 11)
|
|
||||||
|
|
||||||
#define BOARD_REVISION_OFST (0)
|
|
||||||
#define BOARD_REVISION_MSK (0x00FFFFFF << BOARD_REVISION_OFST)
|
|
||||||
#define DETECTOR_TYPE_OFST (24)
|
|
||||||
#define DETECTOR_TYPE_MSK (0x000000FF << DETECTOR_TYPE_OFST)
|
|
||||||
|
|
||||||
/* Fix pattern register */
|
|
||||||
#define FIX_PATT_REG (0x01 << 11)
|
|
||||||
|
|
||||||
|
|
||||||
/* Timer 64 bit Regiser */
|
|
||||||
#define SET_DELAY_LSB_REG (0x60 << 11) //96<<11 //0x68<<11
|
|
||||||
#define SET_DELAY_MSB_REG (0x61 << 11) //97<<11 //0x69<<11
|
|
||||||
#define SET_CYCLES_LSB_REG (0x62 << 11) //98<<11//0x6c<<11
|
|
||||||
#define SET_CYCLES_MSB_REG (0x63 << 11) //99<<11//0x6d<<11
|
|
||||||
#define SET_FRAMES_LSB_REG (0x64 << 11) //(100<<11)/** to hex */
|
|
||||||
#define SET_FRAMES_MSB_REG (0x65 << 11) //101<<11//0x71<<11
|
|
||||||
#define SET_PERIOD_LSB_REG (0x66 << 11) //102<<11//0x74<<11
|
|
||||||
#define SET_PERIOD_MSB_REG (0x67 << 11) //103<<11//0x75<<11
|
|
||||||
#define SET_GATES_LSB_REG (0x6A << 11) /*check in firmware*///106<<11//0x7c<<11
|
|
||||||
#define SET_GATES_MSB_REG (0x6B << 11) //107<<11//0x7d<<11
|
|
||||||
#define SET_EXPTIME_LSB_REG (0x72 << 11) /** check in firmware *///114<<11//0x78<<11
|
|
||||||
#define SET_EXPTIME_MSB_REG (0x73 << 11) //115<<11//0x79<<11
|
|
||||||
|
|
||||||
#define GET_ACTUAL_TIME_LSB_REG (0x10 << 11) //16<<11
|
|
||||||
#define GET_ACTUAL_TIME_MSB_REG (0x11 << 11) //17<<11
|
|
||||||
#define GET_DELAY_LSB_REG (0x12 << 11) //18<<11//0x6a<<11
|
|
||||||
#define GET_DELAY_MSB_REG (0x13 << 11) //19<<11//0x6b<<11
|
|
||||||
#define GET_CYCLES_LSB_REG (0x14 << 11) //20<<11//0x6e<<11
|
|
||||||
#define GET_CYCLES_MSB_REG (0x15 << 11) //21<<11//0x6f<<11
|
|
||||||
#define GET_FRAMES_LSB_REG (0x16 << 11) //22<<11//0x72<<11
|
|
||||||
#define GET_FRAMES_MSB_REG (0x17 << 11) //23<<11//0x73<<11
|
|
||||||
#define GET_PERIOD_LSB_REG (0x18 << 11) //24<<11//0x76<<11
|
|
||||||
#define GET_PERIOD_MSB_REG (0x19 << 11) //25<<11//0x77<<11
|
|
||||||
#define GET_EXPTIME_LSB_REG (0x1A << 11) //26<<11//0x7a<<11
|
|
||||||
#define GET_EXPTIME_MSB_REG (0x1B << 11) //27<<11//0x7b<<11
|
|
||||||
#define GET_GATES_LSB_REG (0x1C << 11) //28<<11//0x7e<<11
|
|
||||||
#define GET_GATES_MSB_REG (0x1D << 11) //29<<11//0x7f<<11
|
|
||||||
|
|
||||||
#define FRAMES_FROM_START_LSB_REG (0x22 << 11) //34<<11
|
|
||||||
#define FRAMES_FROM_START_MSB_REG (0x23 << 11) //35<<11
|
|
||||||
#define FRAMES_FROM_START_PG_LSB_REG (0x24 << 11) //36<<11
|
|
||||||
#define FRAMES_FROM_START_PG_MSB_REG (0x25 << 11) //37<<11
|
|
||||||
#define GET_MEASUREMENT_TIME_LSB_REG (0x26 << 11) //38<<11
|
|
||||||
#define GET_MEASUREMENT_TIME_MSB_REG (0x27 << 11) //39<<11
|
|
||||||
|
|
||||||
|
|
||||||
/* SPI (Serial Peripheral Interface) Register */
|
|
||||||
#define SPI_REG (0x40 << 11)
|
|
||||||
|
|
||||||
#define DAC_SERIAL_DIGITAL_OUT_OFST (0)
|
|
||||||
#define DAC_SERIAL_DIGITAL_OUT_MSK (0x00000001 << DAC_SERIAL_DIGITAL_OUT_OFST)
|
|
||||||
#define DAC_SERIAL_CLK_OUT_OFST (1)
|
|
||||||
#define DAC_SERIAL_CLK_OUT_MSK (0x00000001 << DAC_SERIAL_CLK_OUT_OFST)
|
|
||||||
#define DAC_SERIAL_CS_OUT_OFST (2)
|
|
||||||
#define DAC_SERIAL_CS_OUT_MSK (0x00000001 << DAC_SERIAL_CS_OUT_OFST)
|
|
||||||
#define HV_SERIAL_DIGITAL_OUT_OFST (8)
|
|
||||||
#define HV_SERIAL_DIGITAL_OUT_MSK (0x00000001 << HV_SERIAL_DIGITAL_OUT_OFST)
|
|
||||||
#define HV_SERIAL_CLK_OUT_OFST (9)
|
|
||||||
#define HV_SERIAL_CLK_OUT_MSK (0x00000001 << HV_SERIAL_CLK_OUT_OFST)
|
|
||||||
#define HV_SERIAL_CS_OUT_OFST (10)
|
|
||||||
#define HV_SERIAL_CS_OUT_MSK (0x00000001 << HV_SERIAL_CS_OUT_OFST)
|
|
||||||
|
|
||||||
/* Control Register */
|
|
||||||
#define CONTROL_REG (0x4F << 11) //(79 << 11) /** to hex */
|
|
||||||
|
|
||||||
|
|
||||||
/* Reconfiguratble PLL Control Regiser */
|
|
||||||
#define PLL_CONTROL_REG (0x51 << 11) //(81 << 11)/** to hex */
|
|
||||||
|
|
||||||
//#define PLL_CTRL_RECONFIG_RST_OFST (0) //parameter reset
|
|
||||||
//#define PLL_CTRL_RECONFIG_RST_MSK (0x00000001 << PLL_CTRL_RECONFIG_RST_OFST) //parameter reset
|
|
||||||
//#define PLL_CTRL_WR_PARAMETER_OFST (2)
|
|
||||||
//#define PLL_CTRL_WR_PARAMETER_MSK (0x00000001 << PLL_CTRL_WR_PARAMETER_OFST)
|
|
||||||
#define PLL_CTRL_RST_OFST (3)
|
|
||||||
#define PLL_CTRL_RST_MSK (0x00000001 << PLL_CTRL_RST_OFST)
|
|
||||||
//#define PLL_CTRL_ADDR_OFST (16)
|
|
||||||
//#define PLL_CTRL_ADDR_MSK (0x0000003F << PLL_CTRL_ADDR_OFST)
|
|
||||||
|
|
||||||
/* Samples Register */
|
|
||||||
#define NSAMPLES_REG (0x5D << 11) //93<<11
|
|
||||||
|
|
||||||
/* Power On Register */
|
|
||||||
#define POWER_ON_REG (0x5e<<11)
|
|
||||||
|
|
||||||
#define POWER_ENABLE_OFST (16)
|
|
||||||
|
|
||||||
/* Dac Registers */
|
|
||||||
#define DAC_VAL_REG (0x79 << 11) //121<<11
|
|
||||||
#define DAC_NUM_REG (0x80 << 11) //122<<11
|
|
||||||
#define DAC_VAL_OUT_REG (0x2A << 11) //42<<11
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
../../slsReceiverSoftware/include/ansi.h
|
|
@ -1 +0,0 @@
|
|||||||
/afs/psi.ch/project/mythen/marie_a/MythenServer/slsDetectorPackage/slsDetectorSoftware/slsDetectorServer/blackfin.h
|
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/commonServerFunctions.h
|
|
@ -1 +0,0 @@
|
|||||||
../commonFiles/communication_funcs.c
|
|
@ -1 +0,0 @@
|
|||||||
../commonFiles/communication_funcs.h
|
|
@ -1,9 +0,0 @@
|
|||||||
Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer
|
|
||||||
URL: origin git@git.psi.ch:sls_detectors_software/slsDetectorPackage.git
|
|
||||||
Repository Root: origin git@git.psi.ch:sls_detectors_software/slsDetectorPackage.git
|
|
||||||
Repsitory UUID: 2f3dc8d109de8607f3217cf429619073dc9cc60e
|
|
||||||
Revision: 103
|
|
||||||
Branch: developer
|
|
||||||
Last Changed Author: Dhanya_Maliakal
|
|
||||||
Last Changed Rev: 3397
|
|
||||||
Last Changed Date: 2017-12-04 18:23:05.000000002 +0100 ./RegisterDefs.h
|
|
@ -1,6 +0,0 @@
|
|||||||
#define GITURL "git@git.psi.ch:sls_detectors_software/slsDetectorPackage.git"
|
|
||||||
#define GITREPUUID "2f3dc8d109de8607f3217cf429619073dc9cc60e"
|
|
||||||
#define GITAUTH "Dhanya_Maliakal"
|
|
||||||
#define GITREV 0x3397
|
|
||||||
#define GITDATE 0x20171204
|
|
||||||
#define GITBRANCH "developer"
|
|
@ -1,6 +0,0 @@
|
|||||||
#define GITURL ""
|
|
||||||
#define GITREPUUID ""
|
|
||||||
#define GITAUTH ""
|
|
||||||
#define GITREV ""
|
|
||||||
#define GITDATE ""
|
|
||||||
#define GITBRANCH ""
|
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/programfpga.h
|
|
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/slsDetectorFunctionList.h
|
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/slsDetectorServer.c
|
|
@ -1,167 +0,0 @@
|
|||||||
/*
|
|
||||||
* mythen3Server_defs.h
|
|
||||||
*
|
|
||||||
* Created on: Jan 24, 2013
|
|
||||||
* Author: l_maliakal_d, changed my Marie A.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SLSDETECTORSERVER_DEFS_H_
|
|
||||||
#define SLSDETECTORSERVER_DEFS_H_
|
|
||||||
|
|
||||||
#include "sls_detector_defs.h"
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
/** This is only an example file!!! */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define GOODBYE (-200)
|
|
||||||
enum DACINDEX {vIpre, vIbias, Vrf, VrfSh, vIinSh, VdcSh, Vth2, VPL, Vth1, Vth3, Vtrim, casSh, cas, vIbiasSh, vIcin, VPH, NC, vIpreOut, V_D, V_CHIP, V_C, V_B, V_A, V_IO, V_LIM}; // Mythen 3.01
|
|
||||||
enum PWRINDEX {PWR_IO, PWR_A, PWR_B, PWR_C, PWR_D, PWR_CHIP=-1, PWR_LIMIT=-1};
|
|
||||||
enum CLKINDEX {RUN_CLK_C, ADC_CLK_C, SYNC_CLK_C, DBIT_CLK_C};
|
|
||||||
|
|
||||||
#define DEFAULT_DAC_VALS { 2150, /* vIpre */ \
|
|
||||||
1200, /* vIbias */ \
|
|
||||||
900, /* Vrf */ \
|
|
||||||
1050, /* VrfSh */ \
|
|
||||||
1400, /* vIinSh */ \
|
|
||||||
655, /* VdcSh */ \
|
|
||||||
850, /* Vth2 */ \
|
|
||||||
1400, /* VPL */ \
|
|
||||||
850, /* Vth1 */ \
|
|
||||||
850, /* Vth3 */ \
|
|
||||||
2294, /* Vtrim */ \
|
|
||||||
983, /* casSh */ \
|
|
||||||
1474, /* cas */ \
|
|
||||||
1200, /* vIbiasSh */ \
|
|
||||||
1600, /* vIcin */ \
|
|
||||||
1520, /* VPH */ \
|
|
||||||
0, /* NC */ \
|
|
||||||
1000 /* vIpreOut */ \
|
|
||||||
0 /* V_D */ \
|
|
||||||
0 /* V_CHIP */ \
|
|
||||||
0 /* V_C */ \
|
|
||||||
1335 /* V_B */ \
|
|
||||||
1335 /* V_A */ \
|
|
||||||
1350 /* V_IO */ \
|
|
||||||
};
|
|
||||||
|
|
||||||
#define DEFAULT_DAC_NAMES { "vIpre", \
|
|
||||||
"vIbias", \
|
|
||||||
"Vrf", \
|
|
||||||
"VrfSh", \
|
|
||||||
"vIinSh", \
|
|
||||||
"VdcSh", \
|
|
||||||
"Vth2", \
|
|
||||||
"VPL", \
|
|
||||||
"Vth1", \
|
|
||||||
"Vth3", \
|
|
||||||
"Vtrim", \
|
|
||||||
"casSh", \
|
|
||||||
"cas", \
|
|
||||||
"vIbiasSh", \
|
|
||||||
"vIcin", \
|
|
||||||
"VPH", \
|
|
||||||
"NC", \
|
|
||||||
"vIpreOut" \
|
|
||||||
"v_d" \
|
|
||||||
"v_chip" \
|
|
||||||
"v_c" \
|
|
||||||
"v_b" \
|
|
||||||
"v_a" \
|
|
||||||
"v_io" \
|
|
||||||
};
|
|
||||||
|
|
||||||
/*Hardware Definitions */
|
|
||||||
#define NMAXMOD (1)
|
|
||||||
#define NMOD (1)
|
|
||||||
#define NCHAN (32)
|
|
||||||
#define NCHIP (1)
|
|
||||||
#define NADC (0)
|
|
||||||
#define NDAC (24)
|
|
||||||
#define NDAC_PER_SET (8)
|
|
||||||
|
|
||||||
|
|
||||||
#define NPWR (5)
|
|
||||||
#define MAX_DACVOLTVAL (2500) //mV
|
|
||||||
#define MAX_DACVAL (4096) // dac val
|
|
||||||
#define MAX_VCHIPVAL (2700) //mV /** name ???? */
|
|
||||||
#define MIN_VCHIP_OFSTVAL (200) //mV /** name ???? */
|
|
||||||
#define MIN_VCHIP_VAL (600) //mV /** name ???? */
|
|
||||||
|
|
||||||
|
|
||||||
/** Default Parameters */
|
|
||||||
#define DEFAULT_NUM_FRAMES (1)
|
|
||||||
#define DEFAULT_NUM_CYCLES (1)
|
|
||||||
#define DEFAULT_EXPTIME (200*1000) //ns
|
|
||||||
#define DEFAULT_PERIOD (1*1000*1000) //ns
|
|
||||||
#define DEFAULT_DELAY (0)
|
|
||||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
|
||||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
|
||||||
|
|
||||||
|
|
||||||
/* Defines in the Firmware */
|
|
||||||
#define FIX_PATT_VAL (0xACDC1980)
|
|
||||||
|
|
||||||
/* LTC2620 DAC DEFINES */
|
|
||||||
#define LTC2620_DAC_CMD_OFST (20)
|
|
||||||
#define LTC2620_DAC_CMD_MSK (0x0000000F << LTC2620_DAC_CMD_OFST)
|
|
||||||
#define LTC2620_DAC_ADDR_OFST (16)
|
|
||||||
#define LTC2620_DAC_ADDR_MSK (0x0000000F << LTC2620_DAC_ADDR_OFST)
|
|
||||||
#define LTC2620_DAC_DATA_OFST (4)
|
|
||||||
#define LTC2620_DAC_DATA_MSK (0x00000FFF << LTC2620_DAC_DATA_OFST)
|
|
||||||
|
|
||||||
#define LTC2620_DAC_CMD_WRITE (0x00000000 << LTC2620_DAC_CMD_OFST)
|
|
||||||
#define LTC2620_DAC_CMD_SET (0x00000003 << LTC2620_DAC_CMD_OFST)
|
|
||||||
#define LTC2620_DAC_CMD_POWER_DOWN (0x00000004 << LTC2620_DAC_CMD_OFST)
|
|
||||||
#define LTC2620_DAC_NUMBITS (24)
|
|
||||||
|
|
||||||
/** PLL Reconfiguration Registers */
|
|
||||||
//https://www.altera.com/documentation/mcn1424769382940.html
|
|
||||||
#define PLL_MODE_REG (0x00)
|
|
||||||
#define PLL_STATUS_REG (0x01)
|
|
||||||
#define PLL_START_REG (0x02)
|
|
||||||
#define PLL_N_COUNTER_REG (0x03)
|
|
||||||
#define PLL_M_COUNTER_REG (0x04)
|
|
||||||
#define PLL_C_COUNTER_REG (0x05)
|
|
||||||
#define PLL_PHASE_SHIFT_REG (0x06)
|
|
||||||
|
|
||||||
#define PLL_SHIFT_NUM_SHIFTS_OFST (0)
|
|
||||||
#define PLL_SHIFT_NUM_SHIFTS_MSK (0x0000FFFF << PLL_SHIFT_NUM_SHIFTS_OFST)
|
|
||||||
|
|
||||||
#define PLL_SHIFT_CNT_SELECT_OFST (16)
|
|
||||||
#define PLL_SHIFT_CNT_SELECT_MSK (0x0000001F << PLL_SHIFT_CNT_SELECT_OFST)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C0_VAL ((0x0 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C1_VAL ((0x1 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C2_VAL ((0x2 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C3_VAL ((0x3 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C4_VAL ((0x4 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C5_VAL ((0x5 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C6_VAL ((0x6 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C7_VAL ((0x7 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C8_VAL ((0x8 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C9_VAL ((0x9 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C10_VAL ((0x10 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C11_VAL ((0x11 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C12_VAL ((0x12 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C13_VAL ((0x13 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C14_VAL ((0x14 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C15_VAL ((0x15 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C16_VAL ((0x16 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
#define PLL_SHIFT_CNT_SLCT_C17_VAL ((0x17 << PLL_SHIFT_CNT_SELECT_OFST) & PLL_SHIFT_CNT_SELECT_MSK)
|
|
||||||
|
|
||||||
#define PLL_SHIFT_UP_DOWN_OFST (21)
|
|
||||||
#define PLL_SHIFT_UP_DOWN_MSK (0x00000001 << PLL_SHIFT_UP_DOWN_OFST)
|
|
||||||
#define PLL_SHIFT_UP_DOWN_NEG_VAL ((0x0 << PLL_SHIFT_UP_DOWN_OFST) & PLL_SHIFT_UP_DOWN_MSK)
|
|
||||||
#define PLL_SHIFT_UP_DOWN_POS_VAL ((0x1 << PLL_SHIFT_UP_DOWN_OFST) & PLL_SHIFT_UP_DOWN_MSK)
|
|
||||||
|
|
||||||
#define PLL_K_COUNTER_REG (0x07)
|
|
||||||
#define PLL_BANDWIDTH_REG (0x08)
|
|
||||||
#define PLL_CHARGEPUMP_REG (0x09)
|
|
||||||
#define PLL_VCO_DIV_REG (0x1c)
|
|
||||||
#define PLL_MIF_REG (0x1f)
|
|
||||||
|
|
||||||
#define PLL_VCO_FREQ_MHZ 400
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* SLSDETECTORSERVER_DEFS_H_ */
|
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/slsDetectorServer_funcs.c
|
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServer/slsDetectorServer_funcs.h
|
|
@ -1 +0,0 @@
|
|||||||
../commonFiles/sls_detector_defs.h
|
|
@ -1 +0,0 @@
|
|||||||
../commonFiles/sls_detector_funcs.h
|
|
@ -1 +0,0 @@
|
|||||||
../../slsReceiverSoftware/include/sls_receiver_defs.h
|
|
@ -1 +0,0 @@
|
|||||||
../../slsReceiverSoftware/include/sls_receiver_funcs.h
|
|
@ -1,31 +0,0 @@
|
|||||||
SERVER=jungfrauDetectorServer
|
|
||||||
MAINDIR=slsDetectorsPackage
|
|
||||||
SPECDIR=slsDetectorSoftware/$SERVER
|
|
||||||
TMPFILE=gitInfoJungfrauTmp.h
|
|
||||||
INCLFILE=gitInfoJungfrau.h
|
|
||||||
|
|
||||||
|
|
||||||
#evaluate the variables
|
|
||||||
EVALFILE=../../evalVersionVariables.sh
|
|
||||||
source $EVALFILE
|
|
||||||
|
|
||||||
|
|
||||||
#get modified date
|
|
||||||
#RDATE1='git log --pretty=format:"%ci" -1'
|
|
||||||
RDATE1="find ../slsDetectorServer . -type f -exec stat --format '%Y :%y %n' '{}' \; | sort -nr | cut -d: -f2- | egrep -v 'gitInfo|bin|.git|updateGitVersion|.o' | head -n 1"
|
|
||||||
RDATE=`eval $RDATE1`
|
|
||||||
NEWDATE=$(sed "s/-//g" <<< $RDATE | awk '{print $1;}')
|
|
||||||
NEWDATE=${NEWDATE/#/0x}
|
|
||||||
|
|
||||||
|
|
||||||
#get old date from INCLFILE
|
|
||||||
OLDDATE=$(more $INCLFILE | grep '#define GITDATE' | awk '{print $3}')
|
|
||||||
|
|
||||||
|
|
||||||
#update INCLFILE if changes
|
|
||||||
if [ "$OLDDATE" != "$NEWDATE" ]; then
|
|
||||||
echo Path: ${MAINDIR}/${SPECDIR} $'\n'URL: ${GITREPO} $'\n'Repository Root: ${GITREPO} $'\n'Repsitory UUID: ${REPUID} $'\n'Revision: ${FOLDERREV} $'\n'Branch: ${BRANCH} $'\n'Last Changed Author: ${AUTH1}_${AUTH2} $'\n'Last Changed Rev: ${REV} $'\n'Last Changed Date: ${RDATE} > gitInfo.txt
|
|
||||||
cd ../../
|
|
||||||
./genVersionHeader.sh $SPECDIR/gitInfo.txt $SPECDIR/$TMPFILE $SPECDIR/$INCLFILE
|
|
||||||
cd $WD
|
|
||||||
fi
|
|
@ -95,7 +95,7 @@ int bindSocket(unsigned short int port_number) {
|
|||||||
// success
|
// success
|
||||||
myport = port_number;
|
myport = port_number;
|
||||||
ret = OK;
|
ret = OK;
|
||||||
FILE_LOG(logINFO, (" %s socket bound: isock=%d port=%d fd=%d\n",
|
FILE_LOG(logDEBUG5, ("%s socket bound: isock=%d, port=%d, fd=%d\n",
|
||||||
(isControlServer ? "Control":"Stop"), isock, port_number, socketDescriptor));
|
(isControlServer ? "Control":"Stop"), isock, port_number, socketDescriptor));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -356,25 +356,34 @@ int sendModule(int file_des, sls_detector_module *myMod) {
|
|||||||
|
|
||||||
|
|
||||||
int sendModuleGeneral(int file_des, sls_detector_module *myMod, int sendAll) {
|
int sendModuleGeneral(int file_des, sls_detector_module *myMod, int sendAll) {
|
||||||
int ts = 0;
|
int ts = 0, n = 0;
|
||||||
int nChips = myMod->nchip;
|
int nChips = myMod->nchip;
|
||||||
int nChans = myMod->nchan;
|
int nChans = myMod->nchan;
|
||||||
int nAdcs = myMod->nadc;
|
int nAdcs = myMod->nadc;
|
||||||
int nDacs = myMod->ndac;
|
int nDacs = myMod->ndac;
|
||||||
|
|
||||||
// send module structure
|
// send module structure
|
||||||
ts += sendData(file_des,&(myMod->serialnumber),sizeof(myMod->serialnumber),INT32);
|
n = sendData(file_des,&(myMod->serialnumber),sizeof(myMod->serialnumber),INT32);
|
||||||
ts += sendData(file_des,&(myMod->nchan),sizeof(myMod->nchan),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += sendData(file_des,&(myMod->nchip),sizeof(myMod->nchip),INT32);
|
n = sendData(file_des,&(myMod->nchan),sizeof(myMod->nchan),INT32);
|
||||||
ts += sendData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += sendData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32);
|
n = sendData(file_des,&(myMod->nchip),sizeof(myMod->nchip),INT32);
|
||||||
ts += sendData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += sendData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER);
|
n = sendData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32);
|
||||||
ts += sendData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER);
|
if (!n) return -1; ts += n;
|
||||||
|
n = sendData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = sendData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = sendData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = sendData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("module of size %d sent\n",ts));
|
FILE_LOG(logDEBUG5, ("module of size %d sent\n",ts));
|
||||||
|
|
||||||
// send dac
|
// send dac
|
||||||
ts += sendData(file_des,myMod->dacs,sizeof(int)*nDacs,INT32);
|
n = sendData(file_des,myMod->dacs,sizeof(int)*nDacs,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("dacs of size %d sent\n",ts));
|
FILE_LOG(logDEBUG5, ("dacs of size %d sent\n",ts));
|
||||||
{
|
{
|
||||||
int idac;
|
int idac;
|
||||||
@ -383,18 +392,21 @@ int sendModuleGeneral(int file_des, sls_detector_module *myMod, int sendAll) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send adc
|
// send adc
|
||||||
ts += sendData(file_des,myMod->adcs,sizeof(int)*nAdcs,INT32);
|
n = sendData(file_des,myMod->adcs,sizeof(int)*nAdcs,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("adcs of size %d sent\n", ts));
|
FILE_LOG(logDEBUG5, ("adcs of size %d sent\n", ts));
|
||||||
|
|
||||||
// some detectors dont require sending all trimbits etc.
|
// some detectors dont require sending all trimbits etc.
|
||||||
if(sendAll) {
|
if(sendAll) {
|
||||||
// chips
|
// chips
|
||||||
ts += sendData(file_des,myMod->chipregs,sizeof(int)*nChips,INT32);
|
n = sendData(file_des,myMod->chipregs,sizeof(int)*nChips,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("chips of size %d sent\n", ts));
|
FILE_LOG(logDEBUG5, ("chips of size %d sent\n", ts));
|
||||||
|
|
||||||
// channels
|
// channels
|
||||||
ts += sendData(file_des,myMod->chanregs,sizeof(int)*nChans,INT32);
|
n = sendData(file_des,myMod->chanregs,sizeof(int)*nChans,INT32);
|
||||||
FILE_LOG(logDEBUG5, ("chans of size %d sent - %d\n", ts, myMod->nchan));
|
FILE_LOG(logDEBUG5, ("chans of size %d sent - %d\n", ts, myMod->nchan));
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE_LOG(logDEBUG5, ("module of size %d sent register %x\n", ts, myMod->reg));
|
FILE_LOG(logDEBUG5, ("module of size %d sent register %x\n", ts, myMod->reg));
|
||||||
@ -408,7 +420,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveAll) {
|
int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveAll) {
|
||||||
int ts = 0;
|
int ts = 0, n = 0;
|
||||||
int *dacptr = myMod->dacs;
|
int *dacptr = myMod->dacs;
|
||||||
int *adcptr = myMod->adcs;
|
int *adcptr = myMod->adcs;
|
||||||
int *chipptr = myMod->chipregs, *chanptr = myMod->chanregs;
|
int *chipptr = myMod->chipregs, *chanptr = myMod->chanregs;
|
||||||
@ -416,14 +428,22 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA
|
|||||||
int nChans, nchanold = myMod->nchan, nchandiff;
|
int nChans, nchanold = myMod->nchan, nchandiff;
|
||||||
int nDacs, ndold = myMod->ndac, ndacdiff;
|
int nDacs, ndold = myMod->ndac, ndacdiff;
|
||||||
int nAdcs, naold = myMod->nadc, nadcdiff;
|
int nAdcs, naold = myMod->nadc, nadcdiff;
|
||||||
ts += receiveData(file_des,&(myMod->serialnumber),sizeof(myMod->serialnumber),INT32);
|
n = receiveData(file_des,&(myMod->serialnumber),sizeof(myMod->serialnumber),INT32);
|
||||||
ts += receiveData(file_des,&(myMod->nchan),sizeof(myMod->nchan),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += receiveData(file_des,&(myMod->nchip),sizeof(myMod->nchip),INT32);
|
n = receiveData(file_des,&(myMod->nchan),sizeof(myMod->nchan),INT32);
|
||||||
ts += receiveData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += receiveData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32);
|
n = receiveData(file_des,&(myMod->nchip),sizeof(myMod->nchip),INT32);
|
||||||
ts += receiveData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32);
|
if (!n) return -1; ts += n;
|
||||||
ts += receiveData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER);
|
n = receiveData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32);
|
||||||
ts += receiveData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER);
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
|
|
||||||
myMod->dacs = dacptr;
|
myMod->dacs = dacptr;
|
||||||
myMod->adcs = adcptr;
|
myMod->adcs = adcptr;
|
||||||
@ -473,7 +493,8 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA
|
|||||||
else
|
else
|
||||||
FILE_LOG(logDEBUG5, ("received %d adcs\n",nAdcs));
|
FILE_LOG(logDEBUG5, ("received %d adcs\n",nAdcs));
|
||||||
if (ndacdiff <= 0) {
|
if (ndacdiff <= 0) {
|
||||||
ts += receiveData(file_des,myMod->dacs, sizeof(int)*nDacs,INT32);
|
n = receiveData(file_des,myMod->dacs, sizeof(int)*nDacs,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("dacs received\n"));
|
FILE_LOG(logDEBUG5, ("dacs received\n"));
|
||||||
int id;
|
int id;
|
||||||
for (id = 0; id<nDacs; id++)
|
for (id = 0; id<nDacs; id++)
|
||||||
@ -481,20 +502,25 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA
|
|||||||
} else {
|
} else {
|
||||||
dacptr = (int*)malloc(ndacdiff*sizeof(int));
|
dacptr = (int*)malloc(ndacdiff*sizeof(int));
|
||||||
myMod->ndac = ndold;
|
myMod->ndac = ndold;
|
||||||
ts += receiveData(file_des,myMod->dacs, sizeof(int)*ndold,INT32);
|
n = receiveData(file_des,myMod->dacs, sizeof(int)*ndold,INT32);
|
||||||
ts += receiveData(file_des,dacptr, sizeof(int)*ndacdiff,INT32);
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,dacptr, sizeof(int)*ndacdiff,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
free(dacptr);
|
free(dacptr);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nadcdiff <= 0) {
|
if (nadcdiff <= 0) {
|
||||||
ts += receiveData(file_des,myMod->adcs, sizeof(int)*nAdcs,INT32);
|
n = receiveData(file_des,myMod->adcs, sizeof(int)*nAdcs,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("adcs received\n"));
|
FILE_LOG(logDEBUG5, ("adcs received\n"));
|
||||||
} else {
|
} else {
|
||||||
adcptr = (int*)malloc(nadcdiff*sizeof(int));
|
adcptr = (int*)malloc(nadcdiff*sizeof(int));
|
||||||
myMod->nadc = naold;
|
myMod->nadc = naold;
|
||||||
ts += receiveData(file_des,myMod->adcs, sizeof(int)*naold,INT32);
|
n = receiveData(file_des,myMod->adcs, sizeof(int)*naold,INT32);
|
||||||
ts += receiveData(file_des,adcptr, sizeof(int)*nadcdiff,INT32);
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,adcptr, sizeof(int)*nadcdiff,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
free(adcptr);
|
free(adcptr);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
@ -504,25 +530,31 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA
|
|||||||
if(receiveAll){
|
if(receiveAll){
|
||||||
|
|
||||||
if (nchipdiff <= 0) {
|
if (nchipdiff <= 0) {
|
||||||
ts += receiveData(file_des,myMod->chipregs, sizeof(int)*nChips,INT32);
|
n = receiveData(file_des,myMod->chipregs, sizeof(int)*nChips,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("chips received\n"));
|
FILE_LOG(logDEBUG5, ("chips received\n"));
|
||||||
} else {
|
} else {
|
||||||
chipptr = (int*)malloc(nchipdiff*sizeof(int));
|
chipptr = (int*)malloc(nchipdiff*sizeof(int));
|
||||||
myMod->nchip = nchipold;
|
myMod->nchip = nchipold;
|
||||||
ts += receiveData(file_des,myMod->chipregs, sizeof(int)*nchipold,INT32);
|
n = receiveData(file_des,myMod->chipregs, sizeof(int)*nchipold,INT32);
|
||||||
ts += receiveData(file_des,chipptr, sizeof(int)*nchipdiff,INT32);
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,chipptr, sizeof(int)*nchipdiff,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
free(chipptr);
|
free(chipptr);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nchandiff <= 0) {
|
if (nchandiff <= 0) {
|
||||||
ts += receiveData(file_des,myMod->chanregs, sizeof(int)*nChans,INT32);
|
n = receiveData(file_des,myMod->chanregs, sizeof(int)*nChans,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
FILE_LOG(logDEBUG5, ("chans received\n"));
|
FILE_LOG(logDEBUG5, ("chans received\n"));
|
||||||
} else {
|
} else {
|
||||||
chanptr = (int*)malloc(nchandiff*sizeof(int));
|
chanptr = (int*)malloc(nchandiff*sizeof(int));
|
||||||
myMod->nchan = nchanold;
|
myMod->nchan = nchanold;
|
||||||
ts += receiveData(file_des,myMod->chanregs, sizeof(int)*nchanold,INT32);
|
n = receiveData(file_des,myMod->chanregs, sizeof(int)*nchanold,INT32);
|
||||||
ts += receiveData(file_des,chanptr, sizeof(int)*nchandiff,INT32);
|
if (!n) return -1; ts += n;
|
||||||
|
n = receiveData(file_des,chanptr, sizeof(int)*nchandiff,INT32);
|
||||||
|
if (!n) return -1; ts += n;
|
||||||
free(chanptr);
|
free(chanptr);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
@ -546,7 +578,7 @@ int Server_VerifyLock() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Server_SendResult(int fileDes, intType itype, int update, void* retval, int retvalSize) {
|
int Server_SendResult(int fileDes, intType itype, int update, void* retval, int retvalSize) {
|
||||||
|
|
||||||
// update if different clients (ret can be ok or acquisition finished), not fail to not overwrite e message
|
// update if different clients (ret can be ok or acquisition finished), not fail to not overwrite e message
|
||||||
if (update && ret != FAIL && differentClients)
|
if (update && ret != FAIL && differentClients)
|
||||||
@ -554,7 +586,7 @@ void Server_SendResult(int fileDes, intType itype, int update, void* retval, int
|
|||||||
|
|
||||||
// send success of operation
|
// send success of operation
|
||||||
int ret1 = ret;
|
int ret1 = ret;
|
||||||
sendData(fileDes, &ret1,sizeof(ret1), INT32);/* if < 0, return , socket crash*/
|
sendData(fileDes, &ret1,sizeof(ret1), INT32);
|
||||||
if(ret == FAIL) {
|
if(ret == FAIL) {
|
||||||
// send error message
|
// send error message
|
||||||
if (strlen(mess))
|
if (strlen(mess))
|
||||||
@ -567,4 +599,6 @@ void Server_SendResult(int fileDes, intType itype, int update, void* retval, int
|
|||||||
}
|
}
|
||||||
// send return value
|
// send return value
|
||||||
sendData(fileDes, retval, retvalSize, itype);
|
sendData(fileDes, retval, retvalSize, itype);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,8 @@ int Server_VerifyLock();
|
|||||||
* @param update 1 if one must update if different clients, else 0
|
* @param update 1 if one must update if different clients, else 0
|
||||||
* @param retval pointer to result
|
* @param retval pointer to result
|
||||||
* @param retvalSize size of result
|
* @param retvalSize size of result
|
||||||
|
* @returns result of operation
|
||||||
*/
|
*/
|
||||||
void Server_SendResult(int fileDes, intType itype, int update, void* retval, int retvalSize);
|
int Server_SendResult(int fileDes, intType itype, int update, void* retval, int retvalSize);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
logERROR, logWARNING, logINFO, logINFOBLUE,
|
logERROR, logWARNING, logINFO, logINFOBLUE, logGREEN,
|
||||||
logDEBUG, logDEBUG1, logDEBUG2, logDEBUG3, logDEBUG4, logDEBUG5
|
logDEBUG, logDEBUG1, logDEBUG2, logDEBUG3, logDEBUG4, logDEBUG5
|
||||||
}TLogLevel;
|
}TLogLevel;
|
||||||
|
|
||||||
@ -35,6 +35,7 @@ static inline void FILELOG_PrintLog(TLogLevel level, char* m) {
|
|||||||
case logERROR: cprintf(RED BOLD, "ERROR: %s", m); break;
|
case logERROR: cprintf(RED BOLD, "ERROR: %s", m); break;
|
||||||
case logWARNING: cprintf(YELLOW BOLD, "WARNING: %s", m); break;
|
case logWARNING: cprintf(YELLOW BOLD, "WARNING: %s", m); break;
|
||||||
case logINFOBLUE: cprintf(BLUE, "INFO: %s", m); break;
|
case logINFOBLUE: cprintf(BLUE, "INFO: %s", m); break;
|
||||||
|
case logGREEN: cprintf(GREEN, "INFO: %s", m); break;
|
||||||
case logINFO: cprintf(RESET, "INFO: %s", m); break;
|
case logINFO: cprintf(RESET, "INFO: %s", m); break;
|
||||||
case logDEBUG: cprintf(MAGENTA, "DEBUG: %s", m); break;
|
case logDEBUG: cprintf(MAGENTA, "DEBUG: %s", m); break;
|
||||||
case logDEBUG1: cprintf(MAGENTA, "DEBUG1: %s", m); break;
|
case logDEBUG1: cprintf(MAGENTA, "DEBUG1: %s", m); break;
|
||||||
|
@ -19,15 +19,12 @@ int getFirmwareCheckResult(char** mess);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void checkFirmwareCompatibility();
|
void checkFirmwareCompatibility();
|
||||||
#if defined(MYTHEN3D) || defined(JUNGFRAUD)
|
#ifdef JUNGFRAUD
|
||||||
int checkType();
|
int checkType();
|
||||||
u_int32_t testFpga(void);
|
u_int32_t testFpga(void);
|
||||||
int testBus(void);
|
int testBus(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MYTHEN3D
|
|
||||||
int moduleTest( enum digitalTestMode arg);
|
|
||||||
#endif
|
|
||||||
#ifdef JUNGFRAUD
|
#ifdef JUNGFRAUD
|
||||||
int detectorTest( enum digitalTestMode arg);
|
int detectorTest( enum digitalTestMode arg);
|
||||||
#endif
|
#endif
|
||||||
@ -40,7 +37,7 @@ u_int64_t getFirmwareAPIVersion();
|
|||||||
u_int16_t getHardwareVersionNumber();
|
u_int16_t getHardwareVersionNumber();
|
||||||
u_int16_t getHardwareSerialNumber();
|
u_int16_t getHardwareSerialNumber();
|
||||||
#endif
|
#endif
|
||||||
#if !defined(MYTHEN3D) || !defined(EIGERD)
|
#ifdef EIGERD
|
||||||
u_int32_t getDetectorNumber();
|
u_int32_t getDetectorNumber();
|
||||||
#endif
|
#endif
|
||||||
u_int64_t getDetectorMAC();
|
u_int64_t getDetectorMAC();
|
||||||
@ -73,17 +70,11 @@ uint32_t readRegister(uint32_t offset);
|
|||||||
|
|
||||||
|
|
||||||
// firmware functions (resets)
|
// firmware functions (resets)
|
||||||
#if defined(MYTHEN3D) || defined(JUNGFRAUD)
|
#ifdef JUNGFRAUD
|
||||||
int powerChip (int on);
|
int powerChip (int on);
|
||||||
void cleanFifos();
|
void cleanFifos();
|
||||||
void resetCore();
|
void resetCore();
|
||||||
void resetPeripheral();
|
void resetPeripheral();
|
||||||
#endif
|
|
||||||
#ifdef MYTHEN3D
|
|
||||||
int getPhase(int i);
|
|
||||||
int configurePhase(int val, enum CLKINDEX i);
|
|
||||||
int configureFrequency(int val, int i);
|
|
||||||
#elif JUNGFRAUD
|
|
||||||
int autoCompDisable(int on);
|
int autoCompDisable(int on);
|
||||||
int adcPhase(int st);
|
int adcPhase(int st);
|
||||||
int getPhase();
|
int getPhase();
|
||||||
@ -97,7 +88,7 @@ int setROI(int n, ROI arg[], int *retvalsize, int *ret);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// parameters - readout
|
// parameters - readout
|
||||||
int setSpeed(enum speedVariable arg, int val);
|
enum speedVariable setSpeed(int val);
|
||||||
#ifdef EIGERD
|
#ifdef EIGERD
|
||||||
enum readOutFlags setReadOutFlags(enum readOutFlags val);
|
enum readOutFlags setReadOutFlags(enum readOutFlags val);
|
||||||
#endif
|
#endif
|
||||||
@ -129,35 +120,21 @@ int setThresholdEnergy(int ev);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// parameters - dac, adc, hv
|
// parameters - dac, adc, hv
|
||||||
#if defined(MYTHEN3D) || defined(JUNGFRAUD)
|
#ifdef JUNGFRAUD
|
||||||
void serializeToSPI(u_int32_t addr, u_int32_t val, u_int32_t csmask, int numbitstosend, u_int32_t clkmask, u_int32_t digoutmask, int digofset);
|
void serializeToSPI(u_int32_t addr, u_int32_t val, u_int32_t csmask, int numbitstosend, u_int32_t clkmask, u_int32_t digoutmask, int digofset);
|
||||||
void initDac(int dacnum);
|
void initDac(int dacnum);
|
||||||
int voltageToDac(int value);
|
int voltageToDac(int value);
|
||||||
int dacToVoltage(unsigned int digital);
|
int dacToVoltage(unsigned int digital);
|
||||||
#endif
|
#endif
|
||||||
#ifdef MYTHEN3D
|
|
||||||
int setPower(enum DACINDEX ind, int val);
|
|
||||||
int powerToDac(int value, int chip);
|
|
||||||
int dacToPower(int value, int chip);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef JUNGFRAUD
|
#ifdef JUNGFRAUD
|
||||||
extern void setAdc(int addr, int val); // AD9257.h
|
extern void setAdc(int addr, int val); // AD9257.h
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void setDAC(enum DACINDEX ind, int val, int mV, int retval[]);
|
void setDAC(enum DACINDEX ind, int val, int mV, int retval[]);
|
||||||
#ifdef MYTHEN3D
|
|
||||||
int getVLimit();
|
|
||||||
void setDacRegister(int dacnum,int dacvalue);
|
|
||||||
int getDacRegister(int dacnum);
|
|
||||||
#endif
|
|
||||||
#ifndef MYTHEN3D
|
|
||||||
int getADC(enum ADCINDEX ind);
|
int getADC(enum ADCINDEX ind);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef MYTHEN3D
|
|
||||||
int setHighVoltage(int val);
|
int setHighVoltage(int val);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -169,8 +146,10 @@ enum externalCommunicationMode getTiming();
|
|||||||
#ifdef JUNGFRAUD
|
#ifdef JUNGFRAUD
|
||||||
long int calcChecksum(int sourceip, int destip);
|
long int calcChecksum(int sourceip, int destip);
|
||||||
#endif
|
#endif
|
||||||
#ifndef MYTHEN3D
|
#ifdef GOTTHARDD
|
||||||
int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport, uint32_t udpport2, int ival);
|
int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport, uint32_t udpport2, int ival);
|
||||||
|
#else
|
||||||
|
int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport, uint32_t udpport2);
|
||||||
#endif
|
#endif
|
||||||
#if defined(JUNGFRAUD) || defined(EIGERD)
|
#if defined(JUNGFRAUD) || defined(EIGERD)
|
||||||
int setDetectorPosition(int pos[]);
|
int setDetectorPosition(int pos[]);
|
||||||
@ -187,7 +166,7 @@ int resetCounterBlock(int startACQ);
|
|||||||
int calibratePedestal(int frames);
|
int calibratePedestal(int frames);
|
||||||
|
|
||||||
// jungfrau specific - pll, flashing firmware
|
// jungfrau specific - pll, flashing firmware
|
||||||
#elif defined(JUNGFRAUD) || defined(MYTHEN3D)
|
#elif JUNGFRAUD
|
||||||
void resetPLL();
|
void resetPLL();
|
||||||
u_int32_t setPllReconfigReg(u_int32_t reg, u_int32_t val);
|
u_int32_t setPllReconfigReg(u_int32_t reg, u_int32_t val);
|
||||||
void configurePll();
|
void configurePll();
|
||||||
|
@ -33,6 +33,7 @@ int main(int argc, char *argv[]){
|
|||||||
// subsequent read/write to socket gives error - must handle locally
|
// subsequent read/write to socket gives error - must handle locally
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
|
|
||||||
|
|
||||||
// circumvent the basic tests
|
// circumvent the basic tests
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -64,28 +65,20 @@ int main(int argc, char *argv[]){
|
|||||||
#endif
|
#endif
|
||||||
if (isControlServer) {
|
if (isControlServer) {
|
||||||
portno = DEFAULT_PORTNO;
|
portno = DEFAULT_PORTNO;
|
||||||
FILE_LOG(logINFOBLUE,
|
FILE_LOG(logINFO, ("Opening control server on port %d \n", portno));
|
||||||
("***************************************************\n"
|
|
||||||
"********* opening control server on port %d **********\n"
|
|
||||||
"********************************************************\n\n"
|
|
||||||
, portno));
|
|
||||||
#ifdef STOP_SERVER
|
#ifdef STOP_SERVER
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < argc; ++i)
|
for (i = 0; i < argc; ++i)
|
||||||
sprintf(cmd, "%s %s", cmd, argv[i]);
|
sprintf(cmd, "%s %s", cmd, argv[i]);
|
||||||
sprintf(cmd,"%s -stopserver&", cmd);
|
sprintf(cmd,"%s -stopserver&", cmd);
|
||||||
FILE_LOG(logINFO, ("Command to start stop server:%s\n", cmd));
|
FILE_LOG(logDEBUG5, ("Command to start stop server:%s\n", cmd));
|
||||||
system(cmd);
|
system(cmd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
portno = DEFAULT_PORTNO + 1;
|
portno = DEFAULT_PORTNO + 1;
|
||||||
FILE_LOG(logINFOBLUE,
|
FILE_LOG(logINFO,("Opening stop server on port %d \n", portno));
|
||||||
("***************************************************\n"
|
|
||||||
"*********** opening stop server on port %d ***********\n"
|
|
||||||
"********************************************************\n\n"
|
|
||||||
, portno));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
init_detector();
|
init_detector();
|
||||||
@ -100,7 +93,7 @@ int main(int argc, char *argv[]){
|
|||||||
function_table();
|
function_table();
|
||||||
|
|
||||||
if (isControlServer) {
|
if (isControlServer) {
|
||||||
FILE_LOG(logINFO, ("Control Server Ready...\n\n"));
|
FILE_LOG(logINFOBLUE, ("Control Server Ready...\n\n"));
|
||||||
} else {
|
} else {
|
||||||
FILE_LOG(logINFO, ("Stop Server Ready...\n\n"));
|
FILE_LOG(logINFO, ("Stop Server Ready...\n\n"));
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,4 @@
|
|||||||
#ifndef SERVER_FUNCS_H
|
#pragma once
|
||||||
#define SERVER_FUNCS_H
|
|
||||||
|
|
||||||
#include "sls_detector_defs.h"
|
#include "sls_detector_defs.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@ -14,6 +12,7 @@ void function_table();
|
|||||||
void functionNotImplemented();
|
void functionNotImplemented();
|
||||||
void modeNotImplemented(char* modename, int mode);
|
void modeNotImplemented(char* modename, int mode);
|
||||||
void validate(int arg, int retval, char* modename, int hex);
|
void validate(int arg, int retval, char* modename, int hex);
|
||||||
|
void validate64(int64_t arg, int64_t retval, char* modename, int hex);
|
||||||
int M_nofunc(int);
|
int M_nofunc(int);
|
||||||
int M_nofuncMode(int);
|
int M_nofuncMode(int);
|
||||||
|
|
||||||
@ -79,4 +78,3 @@ int storage_cell_start(int);
|
|||||||
int check_version(int);
|
int check_version(int);
|
||||||
int software_trigger(int);
|
int software_trigger(int);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -2867,27 +2867,21 @@ int slsDetector::setDynamicRange(int n) {
|
|||||||
if (connectControl() == OK){
|
if (connectControl() == OK){
|
||||||
controlSocket->SendDataOnly(&fnum,sizeof(fnum));
|
controlSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||||
controlSocket->SendDataOnly(&n,sizeof(n));
|
controlSocket->SendDataOnly(&n,sizeof(n));
|
||||||
//rate correction is switched off if not 32 bit mode
|
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||||
if(thisDetector->myDetectorType == EIGER){
|
if (ret==FAIL) {
|
||||||
controlSocket->ReceiveDataOnly(&rateret,sizeof(rateret));
|
|
||||||
if (rateret==FAIL) {
|
|
||||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
std::cout<< "Detector returned error: " << mess << std::endl;
|
||||||
if(strstr(mess,"Rate Correction")!=NULL){
|
if(strstr(mess,"Rate Correction")!=NULL){
|
||||||
|
// rate correction is switched off if not 32 bit mode
|
||||||
if(strstr(mess,"32")!=NULL)
|
if(strstr(mess,"32")!=NULL)
|
||||||
setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32or16BIT));
|
setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32or16BIT));
|
||||||
else
|
else
|
||||||
setErrorMask((getErrorMask())|(COULD_NOT_SET_RATE_CORRECTION));
|
setErrorMask((getErrorMask())|(COULD_NOT_SET_RATE_CORRECTION));
|
||||||
}
|
}
|
||||||
|
else ret = OK;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
|
||||||
if (ret==FAIL) {
|
|
||||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
|
||||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
|
||||||
} else {
|
|
||||||
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
||||||
}
|
|
||||||
disconnectControl();
|
disconnectControl();
|
||||||
if (ret==FORCE_UPDATE)
|
if (ret==FORCE_UPDATE)
|
||||||
updateDetector();
|
updateDetector();
|
||||||
@ -4268,13 +4262,24 @@ int slsDetector::sendROI(int n,ROI roiLimits[]) {
|
|||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout << "Sending ROI of size " << arg << " to detector" << std::endl;
|
std::cout << "Sending ROI of size " << arg << " to detector" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
controlSocket->SendDataOnly(roiLimits,arg*sizeof(ROI));
|
for(int i = 0; i < n; ++i){
|
||||||
|
controlSocket->SendDataOnly(&roiLimits[i].xmin, sizeof(int));
|
||||||
|
controlSocket->SendDataOnly(&roiLimits[i].xmax, sizeof(int));
|
||||||
|
controlSocket->SendDataOnly(&roiLimits[i].ymin, sizeof(int));
|
||||||
|
controlSocket->SendDataOnly(&roiLimits[i].ymax, sizeof(int));
|
||||||
|
}
|
||||||
|
//controlSocket->SendDataOnly(roiLimits,arg*sizeof(ROI));
|
||||||
}
|
}
|
||||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||||
|
|
||||||
if (ret!=FAIL){
|
if (ret!=FAIL){
|
||||||
controlSocket->ReceiveDataOnly(&retvalsize,sizeof(retvalsize));
|
controlSocket->ReceiveDataOnly(&retvalsize,sizeof(retvalsize));
|
||||||
nrec = controlSocket->ReceiveDataOnly(retval,retvalsize*sizeof(ROI));
|
nrec = 0;
|
||||||
|
nrec += controlSocket->ReceiveDataOnly(&retval[i].xmin, sizeof(int));
|
||||||
|
nrec += controlSocket->ReceiveDataOnly(&retval[i].xmax, sizeof(int));
|
||||||
|
nrec += controlSocket->ReceiveDataOnly(&retval[i].ymin, sizeof(int));
|
||||||
|
nrec += controlSocket->ReceiveDataOnly(&retval[i].ymax, sizeof(int));
|
||||||
|
//nrec = controlSocket->ReceiveDataOnly(retval,retvalsize*sizeof(ROI));
|
||||||
if(nrec!=(retvalsize*(int)sizeof(ROI))){
|
if(nrec!=(retvalsize*(int)sizeof(ROI))){
|
||||||
ret=FAIL;
|
ret=FAIL;
|
||||||
std::cout << " wrong size received: received " << nrec <<
|
std::cout << " wrong size received: received " << nrec <<
|
||||||
|
@ -290,9 +290,7 @@ int slsReceiverTCPIPInterface::M_nofunc(){
|
|||||||
strcpy(mess,"Unrecognized Function. Please do not proceed.\n");
|
strcpy(mess,"Unrecognized Function. Please do not proceed.\n");
|
||||||
FILE_LOG(logERROR) << mess;
|
FILE_LOG(logERROR) << mess;
|
||||||
|
|
||||||
interface->Server_SendResult(false, ret, NULL, 0, mess);
|
return interface->Server_SendResult(false, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -329,21 +327,17 @@ int slsReceiverTCPIPInterface::exec_command() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(false, ret, retval, MAX_STR_LENGTH, mess);
|
return interface->Server_SendResult(false, ret, retval, MAX_STR_LENGTH, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int slsReceiverTCPIPInterface::exit_server() {
|
int slsReceiverTCPIPInterface::exit_server() {
|
||||||
cprintf(RED,"Closing receiver server\n");
|
cprintf(RED,"Closing server\n");
|
||||||
|
|
||||||
ret = OK;
|
ret = OK;
|
||||||
interface->Server_SendResult(false, ret, NULL, 0);
|
interface->Server_SendResult(false, ret, NULL, 0);
|
||||||
|
return GOODBYE;
|
||||||
ret = GOODBYE;
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -369,18 +363,14 @@ int slsReceiverTCPIPInterface::lock_receiver() {
|
|||||||
interface->Server_LockedError(ret, mess);
|
interface->Server_LockedError(ret, mess);
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &lockStatus,sizeof(lockStatus), mess);
|
return interface->Server_SendResult(true, ret, &lockStatus,sizeof(lockStatus), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int slsReceiverTCPIPInterface::get_last_client_ip() {
|
int slsReceiverTCPIPInterface::get_last_client_ip() {
|
||||||
ret = OK;
|
ret = OK;
|
||||||
interface->Server_SendResult(true, ret,mySock->lastClientIP, sizeof(mySock->lastClientIP));
|
return interface->Server_SendResult(true, ret,mySock->lastClientIP, sizeof(mySock->lastClientIP));
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -560,9 +550,7 @@ int slsReceiverTCPIPInterface::get_id(){
|
|||||||
ret = OK;
|
ret = OK;
|
||||||
int64_t retval = getReceiverVersion();
|
int64_t retval = getReceiverVersion();
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval));
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval));
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -622,9 +610,7 @@ int slsReceiverTCPIPInterface::set_detector_type(){
|
|||||||
//get
|
//get
|
||||||
retval = myDetectorType;
|
retval = myDetectorType;
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -679,7 +665,13 @@ int slsReceiverTCPIPInterface::set_roi() {
|
|||||||
int iloop = 0;
|
int iloop = 0;
|
||||||
for (iloop = 0; iloop < nroi; iloop++) {
|
for (iloop = 0; iloop < nroi; iloop++) {
|
||||||
ROI temp;
|
ROI temp;
|
||||||
if ( mySock->ReceiveDataOnly(&temp,sizeof(ROI)) < 0 )
|
if ( mySock->ReceiveDataOnly(&temp.xmin,sizeof(int)) < 0 )
|
||||||
|
return interface->Server_SocketCrash();
|
||||||
|
if ( mySock->ReceiveDataOnly(&temp.xmax,sizeof(int)) < 0 )
|
||||||
|
return interface->Server_SocketCrash();
|
||||||
|
if ( mySock->ReceiveDataOnly(&temp.ymin,sizeof(int)) < 0 )
|
||||||
|
return interface->Server_SocketCrash();
|
||||||
|
if ( mySock->ReceiveDataOnly(&temp.ymax,sizeof(int)) < 0 )
|
||||||
return interface->Server_SocketCrash();
|
return interface->Server_SocketCrash();
|
||||||
roiLimits.push_back(temp);
|
roiLimits.push_back(temp);
|
||||||
}
|
}
|
||||||
@ -766,9 +758,7 @@ int slsReceiverTCPIPInterface::setup_udp(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -865,9 +855,7 @@ int slsReceiverTCPIPInterface::set_timer() {
|
|||||||
FILE_LOG(logDEBUG1) << slsDetectorDefs::getTimerType((timerIndex)(index[0])) << ":" << retval;
|
FILE_LOG(logDEBUG1) << slsDetectorDefs::getTimerType((timerIndex)(index[0])) << ":" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -927,9 +915,7 @@ int slsReceiverTCPIPInterface::set_dynamic_range() {
|
|||||||
FILE_LOG(logDEBUG1) << "dynamic range: " << retval;
|
FILE_LOG(logDEBUG1) << "dynamic range: " << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -966,9 +952,7 @@ int slsReceiverTCPIPInterface::set_streaming_frequency(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -984,9 +968,7 @@ int slsReceiverTCPIPInterface::get_status(){
|
|||||||
if (ret == OK)
|
if (ret == OK)
|
||||||
retval = receiver->getStatus();
|
retval = receiver->getStatus();
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1017,11 +999,7 @@ int slsReceiverTCPIPInterface::start_receiver(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, NULL, 0, mess);
|
return interface->Server_SendResult(true, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1050,9 +1028,7 @@ int slsReceiverTCPIPInterface::stop_receiver(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, NULL, 0, mess);
|
return interface->Server_SendResult(true, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1162,9 +1138,7 @@ int slsReceiverTCPIPInterface::set_file_index() {
|
|||||||
FILE_LOG(logDEBUG1) << "file index:" << retval;
|
FILE_LOG(logDEBUG1) << "file index:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1182,9 +1156,7 @@ int slsReceiverTCPIPInterface::get_frame_index(){
|
|||||||
if (ret == OK)
|
if (ret == OK)
|
||||||
retval=receiver->getAcquisitionIndex();
|
retval=receiver->getAcquisitionIndex();
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1199,9 +1171,7 @@ int slsReceiverTCPIPInterface::get_frames_caught(){
|
|||||||
if (ret == OK)
|
if (ret == OK)
|
||||||
retval=receiver->getTotalFramesCaught();
|
retval=receiver->getTotalFramesCaught();
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval,sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1221,9 +1191,7 @@ int slsReceiverTCPIPInterface::reset_frames_caught(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, NULL, 0, mess);
|
return interface->Server_SendResult(true, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1256,9 +1224,7 @@ int slsReceiverTCPIPInterface::enable_file_write(){
|
|||||||
FILE_LOG(logDEBUG1) << "file write enable:" << retval;
|
FILE_LOG(logDEBUG1) << "file write enable:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1293,9 +1259,7 @@ int slsReceiverTCPIPInterface::enable_overwrite() {
|
|||||||
FILE_LOG(logDEBUG1) << "file overwrite enable:" << retval;
|
FILE_LOG(logDEBUG1) << "file overwrite enable:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1331,9 +1295,7 @@ int slsReceiverTCPIPInterface::enable_tengiga() {
|
|||||||
FILE_LOG(logDEBUG1) << "10Gbe:" << retval;
|
FILE_LOG(logDEBUG1) << "10Gbe:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1371,9 +1333,7 @@ int slsReceiverTCPIPInterface::set_fifo_depth() {
|
|||||||
FILE_LOG(logDEBUG1) << "fifo depth:" << retval;
|
FILE_LOG(logDEBUG1) << "fifo depth:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1409,9 +1369,7 @@ int slsReceiverTCPIPInterface::set_activate() {
|
|||||||
FILE_LOG(logDEBUG1) << "Activate: " << retval;
|
FILE_LOG(logDEBUG1) << "Activate: " << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1444,9 +1402,7 @@ int slsReceiverTCPIPInterface::set_data_stream_enable(){
|
|||||||
FILE_LOG(logDEBUG1) << "data streaming enable:" << retval;
|
FILE_LOG(logDEBUG1) << "data streaming enable:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1479,9 +1435,7 @@ int slsReceiverTCPIPInterface::set_streaming_timer(){
|
|||||||
FILE_LOG(logDEBUG1) << "Streaming timer:" << retval;
|
FILE_LOG(logDEBUG1) << "Streaming timer:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1517,9 +1471,7 @@ int slsReceiverTCPIPInterface::set_flipped_data(){
|
|||||||
FILE_LOG(logDEBUG1) << "Flipped Data:" << retval;
|
FILE_LOG(logDEBUG1) << "Flipped Data:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1554,9 +1506,7 @@ int slsReceiverTCPIPInterface::set_file_format() {
|
|||||||
FILE_LOG(logDEBUG1) << "File Format: " << retval;
|
FILE_LOG(logDEBUG1) << "File Format: " << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1589,9 +1539,7 @@ int slsReceiverTCPIPInterface::set_detector_posid() {
|
|||||||
FILE_LOG(logDEBUG1) << "Position Id:" << retval;
|
FILE_LOG(logDEBUG1) << "Position Id:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1628,9 +1576,7 @@ int slsReceiverTCPIPInterface::set_multi_detector_size() {
|
|||||||
FILE_LOG(logDEBUG1) << "Multi Detector Size:" << retval;
|
FILE_LOG(logDEBUG1) << "Multi Detector Size:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1659,9 +1605,7 @@ int slsReceiverTCPIPInterface::set_streaming_port() {
|
|||||||
FILE_LOG(logDEBUG1) << "streaming port:" << retval;
|
FILE_LOG(logDEBUG1) << "streaming port:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1727,9 +1671,7 @@ int slsReceiverTCPIPInterface::set_silent_mode() {
|
|||||||
FILE_LOG(logDEBUG1) << "silent mode:" << retval;
|
FILE_LOG(logDEBUG1) << "silent mode:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1768,9 +1710,7 @@ int slsReceiverTCPIPInterface::enable_gap_pixels() {
|
|||||||
FILE_LOG(logDEBUG1) << "Gap Pixels Enable: " << retval;
|
FILE_LOG(logDEBUG1) << "Gap Pixels Enable: " << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1801,9 +1741,7 @@ int slsReceiverTCPIPInterface::restream_stop(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, NULL, 0, mess);
|
return interface->Server_SendResult(true, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1871,9 +1809,7 @@ int slsReceiverTCPIPInterface::set_udp_socket_buffer_size() {
|
|||||||
FILE_LOG(logDEBUG1) << "UDP Socket Buffer Size:" << retval;
|
FILE_LOG(logDEBUG1) << "UDP Socket Buffer Size:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1888,9 +1824,7 @@ int slsReceiverTCPIPInterface::get_real_udp_socket_buffer_size(){
|
|||||||
if (ret == OK)
|
if (ret == OK)
|
||||||
retval = receiver->getActualUDPSocketBufferSize();
|
retval = receiver->getActualUDPSocketBufferSize();
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1924,9 +1858,7 @@ int slsReceiverTCPIPInterface::set_frames_per_file() {
|
|||||||
FILE_LOG(logDEBUG1) << "frames per file:" << retval;
|
FILE_LOG(logDEBUG1) << "frames per file:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1971,9 +1903,7 @@ int slsReceiverTCPIPInterface::check_version_compatibility() {
|
|||||||
}
|
}
|
||||||
else FILE_LOG(logINFO) << "Compatibility with Client: Successful";
|
else FILE_LOG(logINFO) << "Compatibility with Client: Successful";
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, NULL, 0, mess);
|
return interface->Server_SendResult(true, ret, NULL, 0, mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2007,9 +1937,7 @@ int slsReceiverTCPIPInterface::set_discard_policy() {
|
|||||||
FILE_LOG(logDEBUG1) << "frame discard policy:" << retval;
|
FILE_LOG(logDEBUG1) << "frame discard policy:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2045,9 +1973,7 @@ int slsReceiverTCPIPInterface::set_padding_enable() {
|
|||||||
FILE_LOG(logDEBUG1) << "Frame Padding Enable:" << retval;
|
FILE_LOG(logDEBUG1) << "Frame Padding Enable:" << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2084,7 +2010,5 @@ int slsReceiverTCPIPInterface::set_deactivated_receiver_padding_enable() {
|
|||||||
FILE_LOG(logDEBUG1) << "Deactivated Padding Enable: " << retval;
|
FILE_LOG(logDEBUG1) << "Deactivated Padding Enable: " << retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ int ClientInterface::Client_Send(int fnum,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ClientInterface::Server_SendResult(bool update, int ret,
|
int ClientInterface::Server_SendResult(bool update, int ret,
|
||||||
void* retval, int retvalSize, char* mess) {
|
void* retval, int retvalSize, char* mess) {
|
||||||
|
|
||||||
// update if different clients
|
// update if different clients
|
||||||
@ -72,6 +72,8 @@ void ClientInterface::Server_SendResult(bool update, int ret,
|
|||||||
}
|
}
|
||||||
// send return value
|
// send return value
|
||||||
mySocket->SendDataOnly(retval, retvalSize);
|
mySocket->SendDataOnly(retval, retvalSize);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,8 +65,9 @@ public:
|
|||||||
* @param retval pointer to result
|
* @param retval pointer to result
|
||||||
* @param retvalSize size of result
|
* @param retvalSize size of result
|
||||||
* @param mess message
|
* @param mess message
|
||||||
|
* @returns success of operation
|
||||||
*/
|
*/
|
||||||
void Server_SendResult(bool update, int ret, void* retval, int retvalSize, char* mess = 0);
|
int Server_SendResult(bool update, int ret, void* retval, int retvalSize, char* mess = 0);
|
||||||
|
|
||||||
/** only Receiver
|
/** only Receiver
|
||||||
* Server receives arguments and checks if base object is null (if checkbase is true)
|
* Server receives arguments and checks if base object is null (if checkbase is true)
|
||||||
|
@ -82,9 +82,7 @@ public:
|
|||||||
EIGER, /**< eiger */
|
EIGER, /**< eiger */
|
||||||
GOTTHARD, /**< gotthard */
|
GOTTHARD, /**< gotthard */
|
||||||
JUNGFRAU, /**< jungfrau */
|
JUNGFRAU, /**< jungfrau */
|
||||||
JUNGFRAUCTB, /**< jungfrauCTBversion */
|
JUNGFRAUCTB /**< jungfrauCTBversion */
|
||||||
MYTHEN3, /**< mythen 3 */
|
|
||||||
MOENCH /**< moench */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user