2017-05-01 09:39:19 +02:00

104 lines
2.0 KiB
C++

/* A simple server in the internet domain using TCP
The port number is passed as an argument
*/
/**
\file mainReceiver.cpp
This file is an example of how to implement the slsDetectorUsers class
You can compile it linking it to the slsDetector library
gcc mainReceiver.cpp -L lib -l SlsDetector -lm -pthread
where lib is the location of libSlsDetector.so
*/
#include "slsReceiverUsers.h"
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int ret = 0;
/*
Instantiate the slsReceieverUsers class
The port number is passed as an argument
*/
slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret);
/*
return if could not open TCP socket for interfacing to client
*/
if(ret==1)
return -1;
/*register callbacks */
/*
callback arguments are
filepath
filename
fileindex
datasize
return value is
0 raw data ready callback takes care of open,close,write file
1 callback writes file, we have to open, close it
2 we open, close, write file, callback does not do anything
registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
*/
//receiver->registerCallBackStartAcquisition(func,arg);
/*
callback argument is
total farmes caught
registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
*/
//receiver->registerCallBackAcquisitionFinished(func,arg);
/*
args to raw data ready callback are
framenum
datapointer
file descriptor
guidatapointer (NULL, no data required)
NEVER DELETE THE DATA POINTER
REMEMBER THAT THE CALLBACK IS BLOCKING
registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
*/
//receiver->registerCallBackRawDataReady(func,arg);
/* start receiver to listen for commands from the client (and data from detectors when expected */
receiver->start();
/** sleep for 10 s*/
usleep(10000000);
/** stop udp socket and tcp socket and thread */
receiver->stop();
return 0;
}