00001 00013 #include <iostream> 00014 #include "slsDetectorUsers.h" 00015 #include "detectorData.h" 00016 00017 00019 int dataCallback(detectorData *pData, int iframe, void *pArg) 00020 { 00021 std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl; 00022 } 00023 00024 00026 int main(int argc, char *argv[]) { 00027 int id=0; 00028 int status; 00030 if (argc>=3) 00031 id=atoi(argv[2]); 00032 00033 00034 00036 slsDetectorUsers *pDetector = new slsDetectorUsers (id); 00037 00038 00040 if (argc>=2) 00041 pDetector->readConfigurationFile(argv[1]); 00042 00044 pDetector->setOnline(1); 00045 00047 if (argc>=3) 00048 pDetector->retrieveDetectorSetup( argv[2]); 00049 else{ 00051 int minX, minY=0, sizeX, sizeY=1; 00052 pDetector->getDetectorSize(minX, minY, sizeX, sizeY); 00053 std::cout << "X: Start=" << minX << ", Size= " << sizeX << std::endl; 00054 std::cout << "Y: Start=" << minY << ", Size= " << sizeY << std::endl; 00055 pDetector->setDetectorSize(0,0,7680,1); 00056 std::cout << pDetector->getDetectorDeveloper() << std::endl; 00057 00059 pDetector->registerDataCallback(&dataCallback, NULL); 00060 00062 status = pDetector->getDetectorStatus(); 00063 if (status != 0){ 00064 std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl; 00065 return 1; 00066 } 00067 00069 std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; 00070 pDetector->setSettings(slsDetectorUsers::getDetectorSettings("veryhighgain")); 00071 std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; 00072 00074 pDetector->setExposureTime(10000000); 00075 00077 pDetector->setExposurePeriod(100000000); 00078 00080 pDetector->setNumberOfFrames(30); 00081 } 00083 pDetector->startMeasurement(); 00084 00085 while (1) { 00086 usleep(100000); 00087 status = pDetector->getDetectorStatus(); 00088 if (status == 0 || status == 1|| status == 3) 00089 break; 00090 } 00091 00092 char *temp[] = {"receiver", NULL}; 00094 std::cout << "answer to a get command:" << pDetector->getCommand(1,temp,0) << std::endl; 00095 00096 delete pDetector; 00097 00098 return 0; 00099 } 00100