Subversion Repositories seema-scanner

Rev

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

Rev 208 Rev 223
Line 52... Line 52...
52
    int screenNum = settings.value("projector/screenNumber", 1).toInt();
52
    int screenNum = settings.value("projector/screenNumber", 1).toInt();
53
    if(screenNum != -1)
53
    if(screenNum != -1)
54
        projector.reset(new ProjectorOpenGL(screenNum));
54
        projector.reset(new ProjectorOpenGL(screenNum));
55
 
55
 
56
    // Create rotation stage
56
    // Create rotation stage
57
    for(int i = 0; i<100; i++){
57
    for(int i = 0; i<10; i++){
58
        try{
58
        try{
-
 
59
            delete rotationStage.get();
59
            rotationStage.reset(new RotationStage);
60
            rotationStage = std::make_shared<RotationStage>();
60
            break;
61
            break;
61
        }
62
        }
62
        catch (std::exception e){
63
        catch (...){
63
            std::cerr << "trying to setup rotation stage" << std::endl;
64
            std::cerr << "trying to setup rotation stage" << std::endl;
64
        }
65
        }
65
    }
66
    }
66
 
67
 
67
    // Create Algorithm
68
    // Create Algorithm
Line 155... Line 156...
155
 
156
 
156
    emit finished();
157
    emit finished();
157
}
158
}
158
 
159
 
159
void SMCaptureWorker::rotateTo(float angle){
160
void SMCaptureWorker::rotateTo(float angle){
160
 
-
 
161
    if(!setupSuccessful)
161
    // TODO is this the right check
-
 
162
    if(!setupSuccessful || !rotationStage || !rotationStage->Handle)
162
        return;
163
        return;
163
 
164
 
164
    if(rotationStage->Handle)// TODO is this the right check
-
 
165
        rotationStage->moveAbsolute(angle);
165
    rotationStage->moveAbsolute(angle);
166
 
-
 
167
    while(rotationStage->isMoving()){
166
    while(rotationStage->isMoving()){
168
 
167
 
169
        // prevent grab timeout in flycapture
168
        // prevent grab timeout in flycapture
170
        QTest::qSleep(10);
169
        QTest::qSleep(10);
171
 
170
 
Line 188... Line 187...
188
 
187
 
189
    emit rotatedTo(angle);
188
    emit rotatedTo(angle);
190
}
189
}
191
 
190
 
192
void SMCaptureWorker::acquireCalibrationSet(float angle){
191
void SMCaptureWorker::acquireCalibrationSet(float angle){
193
 
-
 
194
    if(!setupSuccessful)
192
    if(!setupSuccessful || !rotationStage || !rotationStage->Handle)
195
        return;
193
        return;
196
 
194
 
197
    if(angle != -1.0)
195
    if(angle != -1.0)
198
        rotateTo(angle);
196
        rotateTo(angle);
199
 
197
 
Line 301... Line 299...
301
        frameSequence.frames0.push_back(frameCVStacked0);
299
        frameSequence.frames0.push_back(frameCVStacked0);
302
        frameSequence.frames1.push_back(frameCVStacked1);
300
        frameSequence.frames1.push_back(frameCVStacked1);
303
 
301
 
304
    }
302
    }
305
 
303
 
306
    if(rotationStage->Handle)// TODO is this the right check
304
    if(rotationStage && rotationStage->Handle)// TODO is this the right check
307
        frameSequence.rotationAngle = rotationStage->getAngle();
305
        frameSequence.rotationAngle = rotationStage->getAngle();
308
    else
306
    else
309
        frameSequence.rotationAngle = 0;
307
        frameSequence.rotationAngle = 0;
310
 
308
 
311
    frameSequence.codec = codec;
309
    frameSequence.codec = codec;