mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 01:58:00 +02:00
gotthard server: minor fixes
This commit is contained in:
@ -11,6 +11,7 @@ u_int64_t CSP0BASE = 0;
|
||||
#define CSP0 0x20200000
|
||||
#define MEM_SIZE 0x100000
|
||||
|
||||
|
||||
/** I2C defines */
|
||||
#define I2C_CLOCK_MHZ (131.25)
|
||||
|
||||
|
@ -10,6 +10,11 @@
|
||||
#define DEFAULT_PORTNO 1952
|
||||
#define DEFAULT_BACKLOG 5
|
||||
|
||||
// blackfin limits
|
||||
#define CPU_DRVR_SND_LMT (30000) // rough limit
|
||||
#define CPU_RSND_PCKT_LOOP (10)
|
||||
#define CPU_RSND_WAIT_US (1)
|
||||
|
||||
|
||||
// Global variables from errno.h
|
||||
extern int errno;
|
||||
@ -309,8 +314,8 @@ int sendDataOnly(int file_des, void* buf,int length) {
|
||||
|
||||
// setting a max packet size for blackfin driver (and network driver does not do a check if packets sent)
|
||||
int bytesToSend = length - bytesSent;
|
||||
if (bytesToSend > BLACKFIN_DRVR_SND_LMT)
|
||||
bytesToSend = BLACKFIN_DRVR_SND_LMT;
|
||||
if (bytesToSend > CPU_DRVR_SND_LMT)
|
||||
bytesToSend = CPU_DRVR_SND_LMT;
|
||||
|
||||
// send
|
||||
int rc = write(file_des, (char*)((char*)buf + bytesSent), bytesToSend);
|
||||
@ -326,12 +331,12 @@ int sendDataOnly(int file_des, void* buf,int length) {
|
||||
(isControlServer ? "control":"stop"), retry));
|
||||
++retry;
|
||||
// wrote nothing for many loops
|
||||
if (retry >= BLACKFIN_RSND_PCKT_LOOP) {
|
||||
if (retry >= CPU_RSND_PCKT_LOOP) {
|
||||
FILE_LOG(logERROR, ("Could not write to %s socket. Buffer full! Too fast! No more.\n",
|
||||
(isControlServer ? "control":"stop")));
|
||||
return bytesSent;
|
||||
}
|
||||
usleep(BLACKFIN_RSND_WAIT_US);
|
||||
usleep(CPU_RSND_WAIT_US);
|
||||
}
|
||||
// wrote something, reset retry
|
||||
else {
|
||||
|
@ -2435,9 +2435,12 @@ int set_all_trimbits(int file_des) {
|
||||
int set_ctb_pattern(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
|
||||
#ifdef CHIPTESTBOARDD
|
||||
int retval32 = -1;
|
||||
int64_t retval64 = -1;
|
||||
int retvals[3] = {-1, -1, -1};
|
||||
#endif
|
||||
|
||||
int mode = -1;
|
||||
// mode 0: control or word
|
||||
@ -2482,7 +2485,7 @@ int set_ctb_pattern(int file_des) {
|
||||
case 3:// wait time
|
||||
if (receiveData(file_des, &loopLevel, sizeof(loopLevel), INT32) < 0)
|
||||
return printSocketReadError();
|
||||
if (receiveData(file_des, &t, sizeof(t), INT32) < 0)
|
||||
if (receiveData(file_des, &timeval, sizeof(timeval), INT64) < 0)
|
||||
return printSocketReadError();
|
||||
case 4:// set word
|
||||
if (receiveData(file_des, &pattern, sizeof(pattern), INT64) < 0)
|
||||
@ -2562,9 +2565,9 @@ int set_ctb_pattern(int file_des) {
|
||||
else if ((startAddr == -1 && stopAddr == -1 && numLoops == -1) || (Server_VerifyLock() == OK)) {
|
||||
setPatternLoop(loopLevel, &startAddr, &stopAddr, &numLoops);
|
||||
}
|
||||
retval[0] = startAddr;
|
||||
retval[1] = stopAddr;
|
||||
retval[2] = numLoops;
|
||||
retvals[0] = startAddr;
|
||||
retvals[1] = stopAddr;
|
||||
retvals[2] = numLoops;
|
||||
return Server_SendResult(file_des, INT32, UPDATE, retvals, sizeof(retvals);
|
||||
|
||||
|
||||
@ -2659,15 +2662,17 @@ int write_adc_register(int file_des) {
|
||||
#else
|
||||
#ifndef VIRTUAL
|
||||
// only set
|
||||
if (Server_VerifyLock() == OK)
|
||||
if (Server_VerifyLock() == OK) {
|
||||
#ifdef JUNGFRAUD
|
||||
setAdc9257(addr, val);
|
||||
#elif GOTTHARDD
|
||||
if (getBoardRevision() == 1)
|
||||
if (getBoardRevision() == 1) {
|
||||
setAdc9252(addr, val);
|
||||
else
|
||||
} else {
|
||||
setAdc9257(addr, val);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return Server_SendResult(file_des, INT32, UPDATE, NULL, 0);
|
||||
|
Reference in New Issue
Block a user