mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-09 03:20:42 +02:00
first version of mythen3
This commit is contained in:
parent
794b6f8090
commit
72362b0334
@ -2,4 +2,5 @@ add_subdirectory(ctbDetectorServer)
|
|||||||
add_subdirectory(eigerDetectorServer)
|
add_subdirectory(eigerDetectorServer)
|
||||||
add_subdirectory(gotthardDetectorServer)
|
add_subdirectory(gotthardDetectorServer)
|
||||||
add_subdirectory(jungfrauDetectorServer)
|
add_subdirectory(jungfrauDetectorServer)
|
||||||
#add_subdirectory(moenchDetectorServer)
|
#add_subdirectory(moenchDetectorServer)
|
||||||
|
add_subdirectory(mythen3DetectorServer)
|
31
slsDetectorServers/mythen3DetectorServer/CMakeLists.txt
Normal file
31
slsDetectorServers/mythen3DetectorServer/CMakeLists.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
add_executable(mythen3DetectorServer
|
||||||
|
slsDetectorFunctionList.c
|
||||||
|
../slsDetectorServer/slsDetectorServer.c
|
||||||
|
../slsDetectorServer/slsDetectorServer_funcs.c
|
||||||
|
../slsDetectorServer/communication_funcs.c
|
||||||
|
)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
../slsDetectorServer/
|
||||||
|
../../slsSupportLib/include
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(mythen3DetectorServer
|
||||||
|
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(mythen3DetectorServer
|
||||||
|
PUBLIC MYTHEN3D VIRTUAL STOP_SERVER
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(mythen3DetectorServer
|
||||||
|
PUBLIC pthread rt
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(mythen3DetectorServer PROPERTIES
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
|
)
|
||||||
|
|
||||||
|
install(TARGETS mythen3DetectorServer
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
)
|
37
slsDetectorServers/mythen3DetectorServer/Makefile
Executable file
37
slsDetectorServers/mythen3DetectorServer/Makefile
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
current_dir = $(shell pwd)
|
||||||
|
main_server = ../slsDetectorServer/
|
||||||
|
support_lib = ../../slsSupportLib/include/
|
||||||
|
|
||||||
|
CROSS = bfin-uclinux-
|
||||||
|
CC = $(CROSS)gcc
|
||||||
|
CFLAGS += -Wall -DMYTHEN3D -DSTOP_SERVER -I$(main_server) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
|
||||||
|
LDLIBS += -lm
|
||||||
|
PROGS = mythen3DetectorServer
|
||||||
|
DESTDIR ?= bin
|
||||||
|
INSTMODE = 0777
|
||||||
|
|
||||||
|
SRCS = $(main_server)communication_funcs.c $(main_server)slsDetectorServer.c $(main_server)slsDetectorServer_funcs.c slsDetectorFunctionList.c
|
||||||
|
OBJS = $(SRCS:.c=.o)
|
||||||
|
|
||||||
|
all: clean versioning $(PROGS)
|
||||||
|
|
||||||
|
boot: $(OBJS)
|
||||||
|
|
||||||
|
version_name=APIMYTHEN3
|
||||||
|
version_path=slsDetectorServers/mythen3DetectorServer
|
||||||
|
versioning:
|
||||||
|
cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path); tput sgr0;`
|
||||||
|
|
||||||
|
|
||||||
|
$(PROGS): $(OBJS)
|
||||||
|
# echo $(OBJS)
|
||||||
|
mkdir -p $(DESTDIR)
|
||||||
|
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
|
||||||
|
mv $(PROGS) $(DESTDIR)
|
||||||
|
rm *.gdb
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_server)*.o
|
||||||
|
|
||||||
|
|
||||||
|
|
9
slsDetectorServers/mythen3DetectorServer/RegisterDefs.h
Normal file
9
slsDetectorServers/mythen3DetectorServer/RegisterDefs.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* Definitions for FPGA*/
|
||||||
|
#define MEM_MAP_SHIFT 1
|
||||||
|
|
||||||
|
|
||||||
|
/* Status register */
|
||||||
|
#define STATUS_REG (0x02 << MEM_MAP_SHIFT)
|
||||||
|
|
@ -0,0 +1,325 @@
|
|||||||
|
#include "slsDetectorFunctionList.h"
|
||||||
|
#include "versionAPI.h"
|
||||||
|
#include "clogger.h"
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
#include "communication_funcs_UDP.h"
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <time.h>
|
||||||
|
#endif
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h> // usleep
|
||||||
|
#include "blackfin.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Global variable from slsDetectorServer_funcs
|
||||||
|
extern int debugflag;
|
||||||
|
|
||||||
|
int firmware_compatibility = OK;
|
||||||
|
int firmware_check_done = 0;
|
||||||
|
char firmware_message[MAX_STR_LENGTH];
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
pthread_t pthread_virtual_tid;
|
||||||
|
int virtual_status = 0;
|
||||||
|
int virtual_stop = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int isFirmwareCheckDone() {
|
||||||
|
return firmware_check_done;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getFirmwareCheckResult(char** mess) {
|
||||||
|
*mess = firmware_message;
|
||||||
|
return firmware_compatibility;
|
||||||
|
}
|
||||||
|
|
||||||
|
void basictests() {
|
||||||
|
firmware_compatibility = OK;
|
||||||
|
firmware_check_done = 0;
|
||||||
|
memset(firmware_message, 0, MAX_STR_LENGTH);
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
FILE_LOG(logINFOBLUE, ("******** Mythen3 Virtual Server *****************\n"));
|
||||||
|
if (mapCSP0() == FAIL) {
|
||||||
|
strcpy(firmware_message,
|
||||||
|
"Could not map to memory. Dangerous to continue.\n");
|
||||||
|
FILE_LOG(logERROR, (firmware_message));
|
||||||
|
firmware_compatibility = FAIL;
|
||||||
|
firmware_check_done = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
firmware_check_done = 1;
|
||||||
|
return;
|
||||||
|
#else
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ids */
|
||||||
|
|
||||||
|
int64_t getDetectorId(enum idMode arg){
|
||||||
|
int64_t retval = -1;
|
||||||
|
|
||||||
|
switch(arg){
|
||||||
|
case DETECTOR_SERIAL_NUMBER:
|
||||||
|
return getDetectorNumber();// or getDetectorMAC()
|
||||||
|
case DETECTOR_FIRMWARE_VERSION:
|
||||||
|
return getFirmwareVersion();
|
||||||
|
case SOFTWARE_FIRMWARE_API_VERSION:
|
||||||
|
return getFirmwareAPIVersion();
|
||||||
|
case DETECTOR_SOFTWARE_VERSION:
|
||||||
|
case CLIENT_SOFTWARE_API_VERSION:
|
||||||
|
return APIMYTHEN3;
|
||||||
|
default:
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
u_int64_t getFirmwareVersion() {
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
u_int64_t getFirmwareAPIVersion() {
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
u_int32_t getDetectorNumber(){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
u_int64_t getDetectorMAC() {
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
char output[255],mac[255]="";
|
||||||
|
u_int64_t res=0;
|
||||||
|
FILE* sysFile = popen("ifconfig eth0 | grep HWaddr | cut -d \" \" -f 11", "r");
|
||||||
|
fgets(output, sizeof(output), sysFile);
|
||||||
|
pclose(sysFile);
|
||||||
|
//getting rid of ":"
|
||||||
|
char * pch;
|
||||||
|
pch = strtok (output,":");
|
||||||
|
while (pch != NULL){
|
||||||
|
strcat(mac,pch);
|
||||||
|
pch = strtok (NULL, ":");
|
||||||
|
}
|
||||||
|
sscanf(mac,"%llx",&res);
|
||||||
|
return res;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
u_int32_t getDetectorIP(){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
char temp[50]="";
|
||||||
|
u_int32_t res=0;
|
||||||
|
//execute and get address
|
||||||
|
char output[255];
|
||||||
|
FILE* sysFile = popen("ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2", "r");
|
||||||
|
fgets(output, sizeof(output), sysFile);
|
||||||
|
pclose(sysFile);
|
||||||
|
|
||||||
|
//converting IPaddress to hex.
|
||||||
|
char* pcword = strtok (output,".");
|
||||||
|
while (pcword != NULL) {
|
||||||
|
sprintf(output,"%02x",atoi(pcword));
|
||||||
|
strcat(temp,output);
|
||||||
|
pcword = strtok (NULL, ".");
|
||||||
|
}
|
||||||
|
strcpy(output,temp);
|
||||||
|
sscanf(output, "%x", &res);
|
||||||
|
//FILE_LOG(logINFO, ("ip:%x\n",res);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* initialization */
|
||||||
|
|
||||||
|
void initControlServer(){
|
||||||
|
setupDetector();
|
||||||
|
}
|
||||||
|
|
||||||
|
void initStopServer() {
|
||||||
|
|
||||||
|
usleep(CTRL_SRVR_INIT_TIME_US);
|
||||||
|
if (mapCSP0() == FAIL) {
|
||||||
|
FILE_LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n"));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* set up detector */
|
||||||
|
|
||||||
|
void setupDetector() {
|
||||||
|
FILE_LOG(logINFO, ("This Server is for 1 Mythen3 module \n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* set parameters - dr, roi */
|
||||||
|
|
||||||
|
int setDynamicRange(int dr){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* parameters - speed, readout */
|
||||||
|
|
||||||
|
void setSpeed(enum speedVariable ind, int val) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int getSpeed(enum speedVariable ind) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t setTimer(enum timerIndex ind, int64_t val) {
|
||||||
|
|
||||||
|
switch(ind){
|
||||||
|
|
||||||
|
case FRAME_NUMBER:
|
||||||
|
|
||||||
|
case ACQUISITION_TIME:
|
||||||
|
|
||||||
|
case FRAME_PERIOD:
|
||||||
|
|
||||||
|
case CYCLES_NUMBER:
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int validateTimer(enum timerIndex ind, int64_t val, int64_t retval) {
|
||||||
|
|
||||||
|
switch(ind) {
|
||||||
|
case ACQUISITION_TIME:
|
||||||
|
|
||||||
|
case FRAME_PERIOD:
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int64_t getTimeLeft(enum timerIndex ind){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int startStateMachine(){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
// create udp socket
|
||||||
|
if(createUDPSocket(0) != OK) {
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
FILE_LOG(logINFOBLUE, ("starting state machine\n"));
|
||||||
|
virtual_status = 1;
|
||||||
|
virtual_stop = 0;
|
||||||
|
if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) {
|
||||||
|
FILE_LOG(logERROR, ("Could not start Virtual acquisition thread\n"));
|
||||||
|
virtual_status = 0;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
FILE_LOG(logINFOGREEN, ("Virtual Acquisition started\n"));
|
||||||
|
return OK;
|
||||||
|
#endif
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
void* start_timer(void* arg) {
|
||||||
|
int64_t periodns = setTimer(FRAME_PERIOD, -1);
|
||||||
|
int numFrames = (setTimer(FRAME_NUMBER, -1) *
|
||||||
|
setTimer(CYCLES_NUMBER, -1) );
|
||||||
|
int64_t exp_ns = setTimer(ACQUISITION_TIME, -1);
|
||||||
|
|
||||||
|
|
||||||
|
int frameNr = 0;
|
||||||
|
for(frameNr=0; frameNr!= numFrames; ++frameNr ) {
|
||||||
|
int srcOffset = 0;
|
||||||
|
|
||||||
|
struct timespec begin, end;
|
||||||
|
clock_gettime(CLOCK_REALTIME, &begin);
|
||||||
|
|
||||||
|
usleep(exp_ns / 1000);
|
||||||
|
|
||||||
|
clock_gettime(CLOCK_REALTIME, &end);
|
||||||
|
int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 +
|
||||||
|
(end.tv_nsec - begin.tv_nsec));
|
||||||
|
|
||||||
|
if (periodns > time_ns) {
|
||||||
|
usleep((periodns - time_ns)/ 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual_status = 0;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
int stopStateMachine(){
|
||||||
|
FILE_LOG(logINFORED, ("Stopping State Machine\n"));
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
virtual_stop = 0;
|
||||||
|
return OK;
|
||||||
|
#endif
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum runStatus getRunStatus(){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
if(virtual_status == 0){
|
||||||
|
FILE_LOG(logINFOBLUE, ("Status: IDLE\n"));
|
||||||
|
return IDLE;
|
||||||
|
}else{
|
||||||
|
FILE_LOG(logINFOBLUE, ("Status: RUNNING\n"));
|
||||||
|
return RUNNING;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return IDLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void readFrame(int *ret, char *mess){
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
FILE_LOG(logINFOGREEN, ("acquisition successfully finished\n"));
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* common */
|
||||||
|
|
||||||
|
int calculateDataBytes(){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getTotalNumberOfChannels(){return ((int)getNumberOfChannelsPerChip() * (int)getNumberOfChips());}
|
||||||
|
int getNumberOfChips(){return NCHIP;}
|
||||||
|
int getNumberOfDACs(){return NDAC;}
|
||||||
|
int getNumberOfChannelsPerChip(){return NCHAN;}
|
@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
#include "RegisterDefs.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||||
|
|
||||||
|
/* Hardware Definitions */
|
||||||
|
#define NCHAN (128)
|
||||||
|
#define NCHIP (10)
|
||||||
|
#define NDAC (16)
|
@ -150,17 +150,19 @@ int getStartingFrameNumber(uint64_t* value);
|
|||||||
#endif
|
#endif
|
||||||
int64_t setTimer(enum timerIndex ind, int64_t val);
|
int64_t setTimer(enum timerIndex ind, int64_t val);
|
||||||
int64_t getTimeLeft(enum timerIndex ind);
|
int64_t getTimeLeft(enum timerIndex ind);
|
||||||
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
int validateTimer(enum timerIndex ind, int64_t val, int64_t retval);
|
int validateTimer(enum timerIndex ind, int64_t val, int64_t retval);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// parameters - module, settings
|
// parameters - module, settings
|
||||||
#if (!defined(CHIPTESTBOARDD)) && (!defined(MOENCHD))
|
#if (!defined(CHIPTESTBOARDD)) && (!defined(MOENCHD)) && (!defined(MYTHEN3D))
|
||||||
int setModule(sls_detector_module myMod, char* mess);
|
int setModule(sls_detector_module myMod, char* mess);
|
||||||
int getModule(sls_detector_module *myMod);
|
int getModule(sls_detector_module *myMod);
|
||||||
enum detectorSettings setSettings(enum detectorSettings sett);
|
enum detectorSettings setSettings(enum detectorSettings sett);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef MYTHEN3D
|
||||||
enum detectorSettings getSettings();
|
enum detectorSettings getSettings();
|
||||||
|
#endif
|
||||||
|
|
||||||
// parameters - threshold
|
// parameters - threshold
|
||||||
#ifdef EIGERD
|
#ifdef EIGERD
|
||||||
@ -180,9 +182,11 @@ extern int AD9257_GetVrefVoltage(int mV); // AD9257.h
|
|||||||
extern int AD9257_SetVrefVoltage(int val, int mV); // AD9257.h
|
extern int AD9257_SetVrefVoltage(int val, int mV); // AD9257.h
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef MYTHEN3D
|
||||||
void setDAC(enum DACINDEX ind, int val, int mV);
|
void setDAC(enum DACINDEX ind, int val, int mV);
|
||||||
int getDAC(enum DACINDEX ind, int mV);
|
int getDAC(enum DACINDEX ind, int mV);
|
||||||
int getMaxDacSteps();
|
int getMaxDacSteps();
|
||||||
|
#endif
|
||||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||||
int dacToVoltage(int dac);
|
int dacToVoltage(int dac);
|
||||||
int checkVLimitCompliant(int mV);
|
int checkVLimitCompliant(int mV);
|
||||||
@ -205,16 +209,20 @@ void powerOff();
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MOENCHD
|
#ifndef MOENCHD
|
||||||
|
#ifndef MYTHEN3D
|
||||||
int getADC(enum ADCINDEX ind);
|
int getADC(enum ADCINDEX ind);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef MYTHEN3D
|
||||||
int setHighVoltage(int val);
|
int setHighVoltage(int val);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// parameters - timing, extsig
|
// parameters - timing, extsig
|
||||||
|
#ifndef MYTHEN3D
|
||||||
void setTiming( enum timingMode arg);
|
void setTiming( enum timingMode arg);
|
||||||
enum timingMode getTiming();
|
enum timingMode getTiming();
|
||||||
|
#endif
|
||||||
#ifdef GOTTHARDD
|
#ifdef GOTTHARDD
|
||||||
void setExtSignal(enum externalSignalFlag mode);
|
void setExtSignal(enum externalSignalFlag mode);
|
||||||
int getExtSignal();
|
int getExtSignal();
|
||||||
@ -245,8 +253,10 @@ int configureMAC(int numInterfaces, int selInterface,
|
|||||||
uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport,
|
uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport,
|
||||||
uint32_t destip2, uint64_t destmac2, uint64_t sourcemac2, uint32_t sourceip2, uint32_t udpport2);
|
uint32_t destip2, uint64_t destmac2, uint64_t sourcemac2, uint32_t sourceip2, uint32_t udpport2);
|
||||||
#else
|
#else
|
||||||
|
#ifndef MYTHEN3D
|
||||||
int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport);
|
int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(JUNGFRAUD) || defined(EIGERD)
|
#if defined(JUNGFRAUD) || defined(EIGERD)
|
||||||
int setDetectorPosition(int pos[]);
|
int setDetectorPosition(int pos[]);
|
||||||
|
@ -529,6 +529,10 @@ int set_timing_mode(int file_des) {
|
|||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
FILE_LOG(logDEBUG1, ("Setting external communication mode to %d\n", arg));
|
FILE_LOG(logDEBUG1, ("Setting external communication mode to %d\n", arg));
|
||||||
|
|
||||||
|
#ifdef MYTHEN3D
|
||||||
|
functionNotImplemented();
|
||||||
|
#else
|
||||||
|
|
||||||
// set
|
// set
|
||||||
if ((arg != GET_TIMING_MODE) && (Server_VerifyLock() == OK)) {
|
if ((arg != GET_TIMING_MODE) && (Server_VerifyLock() == OK)) {
|
||||||
switch (arg) {
|
switch (arg) {
|
||||||
@ -549,6 +553,8 @@ int set_timing_mode(int file_des) {
|
|||||||
retval = getTiming();
|
retval = getTiming();
|
||||||
validate((int)arg, (int)retval, "set timing mode", DEC);
|
validate((int)arg, (int)retval, "set timing mode", DEC);
|
||||||
FILE_LOG(logDEBUG1, ("Timing Mode: %d\n",retval));
|
FILE_LOG(logDEBUG1, ("Timing Mode: %d\n",retval));
|
||||||
|
#endif
|
||||||
|
|
||||||
return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -603,7 +609,7 @@ int digital_test(int file_des) {
|
|||||||
FILE_LOG(logDEBUG1, ("Digital test, mode = %d\n", mode));
|
FILE_LOG(logDEBUG1, ("Digital test, mode = %d\n", mode));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EIGERD
|
#if defined(EIGERD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
// only set
|
// only set
|
||||||
@ -643,6 +649,11 @@ int set_dac(int file_des) {
|
|||||||
|
|
||||||
if (receiveData(file_des, args, sizeof(args), INT32) < 0)
|
if (receiveData(file_des, args, sizeof(args), INT32) < 0)
|
||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
|
|
||||||
|
#ifdef MYTHEN3D
|
||||||
|
functionNotImplemented();
|
||||||
|
#else
|
||||||
|
|
||||||
enum dacIndex ind = args[0];
|
enum dacIndex ind = args[0];
|
||||||
int mV = args[1];
|
int mV = args[1];
|
||||||
int val = args[2];
|
int val = args[2];
|
||||||
@ -989,6 +1000,7 @@ int set_dac(int file_des) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1006,7 +1018,7 @@ int get_adc(int file_des) {
|
|||||||
if (receiveData(file_des, &ind, sizeof(ind), INT32) < 0)
|
if (receiveData(file_des, &ind, sizeof(ind), INT32) < 0)
|
||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
|
|
||||||
#ifdef MOENCHD
|
#if defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
enum ADCINDEX serverAdcIndex = 0;
|
enum ADCINDEX serverAdcIndex = 0;
|
||||||
@ -1185,7 +1197,7 @@ int set_module(int file_des) {
|
|||||||
memset(mess, 0, sizeof(mess));
|
memset(mess, 0, sizeof(mess));
|
||||||
enum detectorSettings retval = -1;
|
enum detectorSettings retval = -1;
|
||||||
|
|
||||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -1315,7 +1327,7 @@ int get_module(int file_des) {
|
|||||||
} else
|
} else
|
||||||
module.dacs = myDac;
|
module.dacs = myDac;
|
||||||
|
|
||||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1340,7 +1352,7 @@ int get_module(int file_des) {
|
|||||||
|
|
||||||
// only get
|
// only get
|
||||||
FILE_LOG(logDEBUG1, ("Getting module\n"));
|
FILE_LOG(logDEBUG1, ("Getting module\n"));
|
||||||
#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD)
|
#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) && !defined(MYTHEN3D)
|
||||||
getModule(&module);
|
getModule(&module);
|
||||||
#endif
|
#endif
|
||||||
FILE_LOG(logDEBUG1, ("Getting module. Settings:%d\n", module.reg));
|
FILE_LOG(logDEBUG1, ("Getting module. Settings:%d\n", module.reg));
|
||||||
@ -1371,7 +1383,7 @@ int set_settings(int file_des) {
|
|||||||
if (receiveData(file_des, &isett, sizeof(isett), INT32) < 0)
|
if (receiveData(file_des, &isett, sizeof(isett), INT32) < 0)
|
||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
|
|
||||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
FILE_LOG(logDEBUG1, ("Setting settings %d\n", isett));
|
FILE_LOG(logDEBUG1, ("Setting settings %d\n", isett));
|
||||||
@ -1844,7 +1856,7 @@ int set_readout_flags(int file_des) {
|
|||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
FILE_LOG(logDEBUG1, ("Setting readout flags to %d\n", arg));
|
FILE_LOG(logDEBUG1, ("Setting readout flags to %d\n", arg));
|
||||||
|
|
||||||
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(MOENCHD)
|
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
// set & get
|
// set & get
|
||||||
@ -2293,8 +2305,11 @@ int configure_mac(int file_des) {
|
|||||||
|
|
||||||
if (receiveData(file_des, args, sizeof(args), OTHER) < 0)
|
if (receiveData(file_des, args, sizeof(args), OTHER) < 0)
|
||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
FILE_LOG(logDEBUG1, ("\n Configuring MAC\n"));
|
|
||||||
|
|
||||||
|
#if defined(MYTHEN3D)
|
||||||
|
functionNotImplemented();
|
||||||
|
#else
|
||||||
|
FILE_LOG(logDEBUG1, ("\n Configuring MAC\n"));
|
||||||
// dest port
|
// dest port
|
||||||
uint32_t dstPort = 0;
|
uint32_t dstPort = 0;
|
||||||
sscanf(args[0], "%x", &dstPort);
|
sscanf(args[0], "%x", &dstPort);
|
||||||
@ -2486,7 +2501,7 @@ int configure_mac(int file_des) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return Server_SendResult(file_des, OTHER, UPDATE, retvals, sizeof(retvals));
|
return Server_SendResult(file_des, OTHER, UPDATE, retvals, sizeof(retvals));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2502,7 +2517,7 @@ int enable_ten_giga(int file_des) {
|
|||||||
return printSocketReadError();
|
return printSocketReadError();
|
||||||
FILE_LOG(logDEBUG1, ("Enable/ Disable 10GbE : %d\n", arg));
|
FILE_LOG(logDEBUG1, ("Enable/ Disable 10GbE : %d\n", arg));
|
||||||
|
|
||||||
#if defined(JUNGFRAUD) || defined(GOTTHARDD)
|
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
// set & get
|
// set & get
|
||||||
@ -3074,7 +3089,7 @@ int set_network_parameter(int file_des) {
|
|||||||
int value = args[1];
|
int value = args[1];
|
||||||
FILE_LOG(logDEBUG1, ("Set network parameter index %d to %d\n", mode, value));
|
FILE_LOG(logDEBUG1, ("Set network parameter index %d to %d\n", mode, value));
|
||||||
|
|
||||||
#if defined(GOTTHARDD) || defined (CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(GOTTHARDD) || defined (CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D)
|
||||||
functionNotImplemented();
|
functionNotImplemented();
|
||||||
#else
|
#else
|
||||||
enum NETWORKINDEX serverIndex = 0;
|
enum NETWORKINDEX serverIndex = 0;
|
||||||
@ -3131,7 +3146,7 @@ int program_fpga(int file_des) {
|
|||||||
ret = OK;
|
ret = OK;
|
||||||
memset(mess, 0, sizeof(mess));
|
memset(mess, 0, sizeof(mess));
|
||||||
|
|
||||||
#if defined(EIGERD) || defined(GOTTHARDD)
|
#if defined(EIGERD) || defined(GOTTHARDD) || defined(MYTHEN3D)
|
||||||
//to receive any arguments
|
//to receive any arguments
|
||||||
int n = 1;
|
int n = 1;
|
||||||
while (n > 0)
|
while (n > 0)
|
||||||
|
@ -8,3 +8,5 @@
|
|||||||
#define APIGOTTHARD 0x190821
|
#define APIGOTTHARD 0x190821
|
||||||
#define APIJUNGFRAU 0x190821
|
#define APIJUNGFRAU 0x190821
|
||||||
#define APIEIGER 0x190821
|
#define APIEIGER 0x190821
|
||||||
|
|
||||||
|
#define APIMYTHEN3 0x190822
|
||||||
|
Loading…
x
Reference in New Issue
Block a user