示例#1
0
void MLTCam::Acquire( PvDevice *aDevice, PvStream *aStream )
{
    // Get device parameters need to control streaming
    PvGenParameterArray *lDeviceParams = aDevice->GetParameters();

    // Map the GenICam AcquisitionStart and AcquisitionStop commands
    PvGenCommand *lStart = dynamic_cast<PvGenCommand *>( lDeviceParams->Get( "AcquisitionStart" ) );
    PvGenCommand *lStop = dynamic_cast<PvGenCommand *>( lDeviceParams->Get( "AcquisitionStop" ) );

    // Get stream parameters
    PvGenParameterArray *lStreamParams = aStream->GetParameters();

    // Map a few GenICam stream stats counters
    PvGenFloat *lFrameRate = dynamic_cast<PvGenFloat *>( lStreamParams->Get( "AcquisitionRate" ) );
    PvGenFloat *lBandwidth = dynamic_cast<PvGenFloat *>( lStreamParams->Get( "Bandwidth" ) );

    // Enable streaming and send the AcquisitionStart command
    //qDebug() << "Enabling streaming and sending AcquisitionStart command." << endl;
    aDevice->StreamEnable();
    lStart->Execute();

    char lDoodle[] = "|\\-|-/";
    int lDoodleIndex = 0;
    double lFrameRateVal = 0.0;
    double lBandwidthVal = 0.0;


    timer = new QTimer;
    connect(timer, SIGNAL(timeout()), SLOT(WaitForExecution()));
    timer->start(100);

    // Abort all buffers from the stream and dequeue
//    cout << "Aborting buffers still in stream" << endl;
//    aStream->AbortQueuedBuffers();
//    while ( aStream->GetQueuedBufferCount() > 0 )
//    {
//        PvBuffer *lBuffer = NULL;
//        PvResult lOperationResult;

//        aStream->RetrieveBuffer( &lBuffer, &lOperationResult );
//    }
}
void OpenBagMotionPlanner::Execution()
{
    groupPtr->asyncExecute(plan); 
    WaitForExecution();
}