mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 08:10:02 +02:00
moench receiver works well now since we increased the memory allocation
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@513 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
parent
c9cef8c12f
commit
cec069f0e9
@ -9,7 +9,9 @@
|
|||||||
|
|
||||||
//all max frames defined in sls_detector_defs.h. 20000 gotthard, 100000 for short gotthard, 1000 for moench
|
//all max frames defined in sls_detector_defs.h. 20000 gotthard, 100000 for short gotthard, 1000 for moench
|
||||||
|
|
||||||
#define GOTTHARD_FIFO_SIZE 25000
|
#define FIFO_SIZE 25000
|
||||||
|
|
||||||
|
#define GOTTHARD_ALIGNED_FRAME_SIZE 4096
|
||||||
|
|
||||||
#define GOTTHARD_PACKETS_PER_FRAME 2
|
#define GOTTHARD_PACKETS_PER_FRAME 2
|
||||||
#define GOTTHARD_BUFFER_SIZE 1286*GOTTHARD_PACKETS_PER_FRAME
|
#define GOTTHARD_BUFFER_SIZE 1286*GOTTHARD_PACKETS_PER_FRAME
|
||||||
@ -22,8 +24,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define MOENCH_ALIGNED_FRAME_SIZE 65536
|
||||||
|
|
||||||
#define MOENCH_FIFO_SIZE 25000
|
|
||||||
|
|
||||||
#define MOENCH_PACKETS_PER_FRAME 40
|
#define MOENCH_PACKETS_PER_FRAME 40
|
||||||
#define MOENCH_BUFFER_SIZE 1286*MOENCH_PACKETS_PER_FRAME
|
#define MOENCH_BUFFER_SIZE 1286*MOENCH_PACKETS_PER_FRAME
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#include <iomanip> //set precision
|
#include <iomanip> //set precision
|
||||||
|
|
||||||
|
|
||||||
|
#include <sched.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@ -82,18 +84,21 @@ slsReceiverFunctionList::slsReceiverFunctionList(detectorType det):
|
|||||||
strcpy(eth,"");
|
strcpy(eth,"");
|
||||||
|
|
||||||
latestData = new char[bufferSize];
|
latestData = new char[bufferSize];
|
||||||
fifofree = new CircularFifo<char,GOTTHARD_FIFO_SIZE>();/**MOENCH SAME FIFO SIZE FOR NOW,ELSE MEMBER DECLARATION ERROR*/
|
fifofree = new CircularFifo<char,FIFO_SIZE>();
|
||||||
fifo = new CircularFifo<char,GOTTHARD_FIFO_SIZE>();
|
fifo = new CircularFifo<char,FIFO_SIZE>();
|
||||||
|
|
||||||
|
int aligned_frame_size = GOTTHARD_ALIGNED_FRAME_SIZE;
|
||||||
|
if (det == MOENCH)
|
||||||
|
aligned_frame_size = MOENCH_ALIGNED_FRAME_SIZE;
|
||||||
|
|
||||||
mem0=(char*)malloc(4096*GOTTHARD_FIFO_SIZE);
|
mem0=(char*)malloc(aligned_frame_size*FIFO_SIZE);
|
||||||
if (mem0==NULL) {
|
if (mem0==NULL) {
|
||||||
cout<<"++++++++++++++++++++++ COULD NOT ALLOCATE MEMORY!!!!!!!+++++++++++++++++++++" << endl;
|
cout<<"++++++++++++++++++++++ COULD NOT ALLOCATE MEMORY!!!!!!!+++++++++++++++++++++" << endl;
|
||||||
}
|
}
|
||||||
buffer=mem0;
|
buffer=mem0;
|
||||||
while (buffer<(mem0+4096*(GOTTHARD_FIFO_SIZE-1))) {
|
while (buffer<(mem0+aligned_frame_size*(FIFO_SIZE-1))) {
|
||||||
fifofree->push(buffer);
|
fifofree->push(buffer);
|
||||||
buffer+=4096;
|
buffer+=aligned_frame_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -241,11 +246,11 @@ int slsReceiverFunctionList::startReceiver(){
|
|||||||
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
||||||
if (pthread_setschedparam(writing_thread, policy, &write_param) == EPERM)
|
if (pthread_setschedparam(writing_thread, policy, &write_param) == EPERM)
|
||||||
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
||||||
if (pthread_setschedparam(pthread_self(), policy, &tcp_param) == EPERM)
|
if (pthread_setschedparam(pthread_self(), 5, &tcp_param) == EPERM)
|
||||||
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
cout << "ERROR: Could not prioritize threads. You need to be super user for that." << endl;
|
||||||
|
|
||||||
|
|
||||||
pthread_getschedparam(listening_thread,&policy,&tcp_param);
|
pthread_getschedparam(pthread_self(),&policy,&tcp_param);
|
||||||
cout << "current priority of main tcp thread is " << tcp_param.sched_priority << endl;
|
cout << "current priority of main tcp thread is " << tcp_param.sched_priority << endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -283,10 +283,10 @@ private:
|
|||||||
|
|
||||||
/** circular fifo to read and write data*/
|
/** circular fifo to read and write data*/
|
||||||
//CircularFifo<dataStruct,FIFO_SIZE>* fifo;
|
//CircularFifo<dataStruct,FIFO_SIZE>* fifo;
|
||||||
CircularFifo<char,GOTTHARD_FIFO_SIZE>* fifo;
|
CircularFifo<char,FIFO_SIZE>* fifo;
|
||||||
|
|
||||||
/** circular fifo to read and write data*/
|
/** circular fifo to read and write data*/
|
||||||
CircularFifo<char,GOTTHARD_FIFO_SIZE>* fifofree;
|
CircularFifo<char,FIFO_SIZE>* fifofree;
|
||||||
|
|
||||||
/** short frames */
|
/** short frames */
|
||||||
int shortFrame;
|
int shortFrame;
|
||||||
|
@ -969,6 +969,7 @@ int slsReceiverFuncs::moench_read_frame(){
|
|||||||
//return ok/fail
|
//return ok/fail
|
||||||
|
|
||||||
///ADDED BY ANNA?!?!?!? //?????????FOR GOTTHARD AS WELL?????
|
///ADDED BY ANNA?!?!?!? //?????????FOR GOTTHARD AS WELL?????
|
||||||
|
|
||||||
delete [] origVal;
|
delete [] origVal;
|
||||||
delete [] retval;
|
delete [] retval;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user