bug fix for receiver call back

This commit is contained in:
Dhanya Maliakal
2016-03-15 15:28:50 +01:00
parent 83f3ab145e
commit d88b104aa8
4 changed files with 139 additions and 43 deletions

View File

@ -22,6 +22,28 @@ void closeFile(int p){
deleteReceiver(receiver);
}
/*
int startAcquisitionCallBack(char* filePath, char* fileName, int fileIndex, int bufferSize, void* context) {
cout << "#### startAcquisitionCallBack ####" << endl;
cout << "* filePath: " << filePath << endl;
cout << "* fileName: " << fileName << endl;
cout << "* fileIndex: " << fileIndex << endl;
cout << "* bufferSize: " << bufferSize << endl;
return 1;
}
void acquisitionFinishedCallBack(int totalFramesCaught, void* context) {
cout << "#### acquisitionFinishedCallBack ####" << endl;
cout << "* totalFramesCaught: " << totalFramesCaught << endl;
}
void rawDataReadyCallBack(int currFrameNum, char* dataPointer, int dataSize, FILE* file, char* guiDataPointer, void* context) {
cout << "#### rawDataReadyCallBack ####" << endl;
cout << "* currFrameNum: " << currFrameNum << endl;
cout << "* dataSize: " << dataSize << endl;
}
*/
int main(int argc, char *argv[]) {
//Catch signal SIGINT to close files properly
@ -52,7 +74,7 @@ int main(int argc, char *argv[]) {
registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
*/
//receiver->registerCallBackStartAcquisition(func,arg);
//receiver->registerCallBackStartAcquisition(startAcquisitionCallBack,NULL);
/**
@ -60,7 +82,7 @@ int main(int argc, char *argv[]) {
total farmes caught
registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
*/
//receiver->registerCallBackAcquisitionFinished(func,arg);
//receiver->registerCallBackAcquisitionFinished(acquisitionFinishedCallBack,NULL);
/**
@ -73,7 +95,7 @@ int main(int argc, char *argv[]) {
REMEMBER THAT THE CALLBACK IS BLOCKING
registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
*/
//receiver->registerCallBackRawDataReady(func,arg);
//receiver->registerCallBackRawDataReady(rawDataReadyCallBack,NULL);

View File

@ -172,20 +172,29 @@ int64_t slsReceiver::getReceiverVersion(){
void slsReceiver::registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackStartAcquisition(func,arg);
if(udp_interface)
udp_interface->registerCallBackStartAcquisition(func,arg);
else
tcpipInterface->registerCallBackStartAcquisition(func,arg);
}
void slsReceiver::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackAcquisitionFinished(func,arg);
if(udp_interface)
udp_interface->registerCallBackAcquisitionFinished(func,arg);
else
tcpipInterface->registerCallBackAcquisitionFinished(func,arg);
}
void slsReceiver::registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackRawDataReady(func,arg);
if(udp_interface)
udp_interface->registerCallBackRawDataReady(func,arg);
else
tcpipInterface->registerCallBackRawDataReady(func,arg);
}

View File

@ -42,6 +42,14 @@ slsReceiverTCPIPInterface::slsReceiverTCPIPInterface(int &success, UDPInterface*
bottom(bot),
socket(NULL){
//***callback parameters***
startAcquisitionCallBack = NULL;
pStartAcquisition = NULL;
acquisitionFinishedCallBack = NULL;
pAcquisitionFinished = NULL;
rawDataReadyCallBack = NULL;
pRawDataReady = NULL;
int port_no=portNumber;
if(receiverBase == NULL) receiverBase = 0;
@ -362,6 +370,12 @@ int slsReceiverTCPIPInterface::set_detector_type(){
if(ret != FAIL){
#ifndef REST
receiverBase = UDPInterface::create("standard");
if(startAcquisitionCallBack)
receiverBase->registerCallBackStartAcquisition(startAcquisitionCallBack,pStartAcquisition);
if(acquisitionFinishedCallBack)
receiverBase->registerCallBackAcquisitionFinished(acquisitionFinishedCallBack,pAcquisitionFinished);
if(rawDataReadyCallBack)
receiverBase->registerCallBackRawDataReady(rawDataReadyCallBack,pRawDataReady);
#endif
myDetectorType = dr;
ret=receiverBase->setDetectorType(myDetectorType);
@ -3012,5 +3026,23 @@ int slsReceiverTCPIPInterface::exec_command() {
/***callback functions***/
void slsReceiverTCPIPInterface::registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){
startAcquisitionCallBack=func;
pStartAcquisition=arg;
}
void slsReceiverTCPIPInterface::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
acquisitionFinishedCallBack=func;
pAcquisitionFinished=arg;
}
void slsReceiverTCPIPInterface::registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){
rawDataReadyCallBack=func;
pRawDataReady=arg;
}