00001 00014 #include <iostream> 00015 #include "slsDetectorUsers.h" 00016 #include "detectorData.h" 00017 #include <cstdlib> 00018 00020 int dataCallback(detectorData *pData, int iframe, int isubframe, void *pArg) 00021 { 00022 std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl; 00023 } 00024 00025 00027 int main(int argc, char **argv) { 00028 int id=0; 00030 if (argc>=4) 00031 id=atoi(argv[3]); 00032 00033 00034 00036 slsDetectorUsers *pDetector = new slsDetectorUsers (id); 00037 00038 00040 if (argc>=2){ 00041 pDetector->readConfigurationFile(argv[1]); 00042 cout<<"Detector configured" << endl; 00043 } 00045 pDetector->registerDataCallback(&dataCallback, NULL); 00046 pDetector->enableDataStreamingFromReceiver(1); 00047 00049 int status = pDetector->getDetectorStatus(); 00050 if (status != 0){ 00051 std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl; 00052 return 1; 00053 } 00054 00056 if (argc>=3){ 00057 pDetector->retrieveDetectorSetup(argv[2]); 00058 cout<<"Detector measurement set-up done" << endl; 00059 } 00061 pDetector->startMeasurement(); 00062 cout<<"started measurement"<<endl; 00063 00064 /* while (1) { 00065 usleep(100000); 00066 status = pDetector->getDetectorStatus(); 00067 if (status == 0 || status == 1|| status == 3) 00068 break; 00069 }*/ 00070 cout<<"measurement finished"<<endl; 00074 delete pDetector; 00075 00076 return 0; 00077 } 00078