Subversion Repositories seema-scanner

Rev

Rev 164 | Rev 169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 164 Rev 167
Line 17... Line 17...
17
void SMCaptureWorker::setup(){
17
void SMCaptureWorker::setup(){
18
 
18
 
19
    QSettings settings;
19
    QSettings settings;
20
 
20
 
21
    // Create cameras
21
    // Create cameras
22
    int iNum0 = settings.value("camera0/interfaceNumber", 0).toInt();
22
    int iNum0 = settings.value("camera0/interfaceNumber", -1).toInt();
23
    int cNum0 = settings.value("camera0/cameraNumber", 0).toInt();
23
    int cNum0 = settings.value("camera0/cameraNumber", -1).toInt();
24
    if(iNum0 != -1)
24
    if(iNum0 != -1)
25
        camera0 = CameraFactory::NewCamera(iNum0,cNum0,triggerModeSoftware);
25
        camera0 = CameraFactory::NewCamera(iNum0,cNum0,triggerModeSoftware);
-
 
26
    else
-
 
27
        return;
26
 
28
 
27
    int iNum1 = settings.value("camera1/interfaceNumber", 0).toInt();
29
    int iNum1 = settings.value("camera1/interfaceNumber", -1).toInt();
28
    int cNum1 = settings.value("camera1/cameraNumber", 1).toInt();
30
    int cNum1 = settings.value("camera1/cameraNumber", -1).toInt();
29
    if(iNum1 != -1)
31
    if(iNum1 != -1)
30
        camera1 = CameraFactory::NewCamera(iNum1,cNum1,triggerModeSoftware);
32
        camera1 = CameraFactory::NewCamera(iNum1,cNum1,triggerModeSoftware);
-
 
33
    else
-
 
34
        return;
31
 
35
 
32
    // Set camera settings
36
    // Set camera settings
33
    CameraSettings cameraSettings;
37
    CameraSettings cameraSettings;
34
    cameraSettings.shutter = settings.value("camera/shutter", 16.666).toFloat();
38
    cameraSettings.shutter = settings.value("camera/shutter", 16.666).toFloat();
35
    cameraSettings.gain = 0.0;
39
    cameraSettings.gain = 0.0;
Line 77... Line 81...
77
    }
81
    }
78
 
82
 
79
    delay = settings.value("trigger/delay", 50).toInt();
83
    delay = settings.value("trigger/delay", 50).toInt();
80
    stackingCalibration = settings.value("stacking/calibration", 1).toInt();
84
    stackingCalibration = settings.value("stacking/calibration", 1).toInt();
81
    stackingAcquisition= settings.value("stacking/acquisition", 1).toInt();
85
    stackingAcquisition= settings.value("stacking/acquisition", 1).toInt();
-
 
86
 
-
 
87
    setupSuccessful = true;
82
}
88
}
83
 
89
 
84
 
90
 
85
void SMCaptureWorker::doWork(){
91
void SMCaptureWorker::doWork(){
86
 
92
 
-
 
93
    if(!setupSuccessful)
-
 
94
        return;
-
 
95
 
87
    working = true;
96
    working = true;
88
 
97
 
89
    // Processing loop
98
    // Processing loop
90
//    QTime time;
99
//    QTime time;
91
//    time.start();
100
//    time.start();
Line 127... Line 136...
127
    emit finished();
136
    emit finished();
128
}
137
}
129
 
138
 
130
void SMCaptureWorker::rotateTo(float angle){
139
void SMCaptureWorker::rotateTo(float angle){
131
 
140
 
-
 
141
    if(!setupSuccessful)
-
 
142
        return;
-
 
143
 
132
    rotationStage->moveAbsolute(angle);
144
    rotationStage->moveAbsolute(angle);
133
 
145
 
134
    while(rotationStage->isMoving()){
146
    while(rotationStage->isMoving()){
135
 
147
 
136
        // prevent grab timeout in flycapture
148
        // prevent grab timeout in flycapture
Line 156... Line 168...
156
    emit rotatedTo(angle);
168
    emit rotatedTo(angle);
157
}
169
}
158
 
170
 
159
void SMCaptureWorker::acquireCalibrationSet(float angle){
171
void SMCaptureWorker::acquireCalibrationSet(float angle){
160
 
172
 
-
 
173
    if(!setupSuccessful)
-
 
174
        return;
-
 
175
 
161
    if(angle != -1.0)
176
    if(angle != -1.0)
162
        rotateTo(angle);
177
        rotateTo(angle);
163
 
178
 
164
    // just for safe measures
179
    // just for safe measures
165
    QTest::qSleep(500);
180
    QTest::qSleep(500);
Line 205... Line 220...
205
    emit newCalibrationSet(calibrationSet);
220
    emit newCalibrationSet(calibrationSet);
206
}
221
}
207
 
222
 
208
void SMCaptureWorker::acquireCalibrationSets(std::vector<float> angles){
223
void SMCaptureWorker::acquireCalibrationSets(std::vector<float> angles){
209
 
224
 
-
 
225
    if(!setupSuccessful)
-
 
226
        return;
-
 
227
 
210
    for(int i=0; i<angles.size(); i++)
228
    for(unsigned int i=0; i<angles.size(); i++)
211
        acquireCalibrationSet(angles[i]);
229
        acquireCalibrationSet(angles[i]);
212
}
230
}
213
 
231
 
214
void SMCaptureWorker::acquireFrameSequence(float angle){
232
void SMCaptureWorker::acquireFrameSequence(float angle){
215
 
233
 
-
 
234
    if(!setupSuccessful)
-
 
235
        return;
-
 
236
 
216
    if(angle != -1.0)
237
    if(angle != -1.0)
217
        rotateTo(angle);
238
        rotateTo(angle);
218
 
239
 
219
    CameraFrame frame;
240
    CameraFrame frame;
220
    SMFrameSequence frameSequence;
241
    SMFrameSequence frameSequence;
Line 268... Line 289...
268
}
289
}
269
 
290
 
270
 
291
 
271
void SMCaptureWorker::acquireFrameSequences(std::vector<float> angles){
292
void SMCaptureWorker::acquireFrameSequences(std::vector<float> angles){
272
 
293
 
-
 
294
    if(!setupSuccessful)
-
 
295
        return;
-
 
296
 
273
    for(int i=0; i<angles.size(); i++)
297
    for(unsigned int i=0; i<angles.size(); i++)
274
        acquireFrameSequence(angles[i]);
298
        acquireFrameSequence(angles[i]);
275
}
299
}
276
 
300
 
277
void SMCaptureWorker::abort(){}
301
void SMCaptureWorker::abort(){}
278
 
302