Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Supporting Hardware Triggers

The toolbox supports three types of triggers:

  • Immediate — Trigger fires when video input object is started.

  • Manual — Trigger fires when user calls trigger function.

  • Hardware — Trigger fires when externally defined conditions are met

The engine provides automatic support for immediate and manual triggers. If you want your adaptor to support hardware triggers you must check to see if users have specified a hardware trigger in your acquisition thread function. Before you start acquiring frames from your device, insert a call to the IAdaptor member function useHardwareTrigger() to determine if the frame acquisition loop should wait for a hardware trigger to fire. If a hardware trigger is configured, insert device SDK calls required to wait for trigger.

The following figure illustrates the frame acquisition loop with the test for hardware trigger.

Main Acquisition Loop with Test for Hardware Trigger

Example

The following is an acquisition thread function that includes a call to check for hardware trigger.

while(adaptor->isAcquisitionNotComplete()) {

    // Check for hardware trigger 
    if (adaptor->useHardwareTrigger()) {

                    // Add code here to configure the image
                    // acquisition device for hardware
                    // triggering.
                }

                if (adaptor->isSendFrame()) {

                 // see acquistion thread

                } // if isSendFrame()

            // Increment the frame count.
            adaptor->incrementFrameCount();

            } // while(isAcquisitionNotComplete() 

             break;
        } //switch-case WM_USER
   } //while message is not WM_QUIT
   
return 0;
}

Was this topic helpful?