VintaSoft Twain .NET SDK v10.2
AsyncEvents Property (Device)
Example 




Vintasoft.Twain Namespace > Device Class : AsyncEvents Property
Gets or sets an array with asynchronous events which the application wants the device to report.
Syntax
'Declaration
 
Public Property AsyncEvents As DeviceEventId()
'Usage
 
Dim instance As Device
Dim value() As DeviceEventId
 
instance.AsyncEvents = value
 
value = instance.AsyncEvents
public DeviceEventId[] AsyncEvents {get; set;}
public: __property DeviceEventId[]* get_AsyncEvents();
public: __property void set_AsyncEvents( 
   DeviceEventId[]* value
);
public:
property array<DeviceEventId>^ AsyncEvents {
   array<DeviceEventId>^ get();
   void set (    array<DeviceEventId>^ value);
}
Exceptions
ExceptionDescription
Thrown if device is in wrong state.
Thrown if device does not support capability.
Thrown if the .NET debugger is used and the function evaluation requires all threads to run.
Remarks
Call this property only when device is opened (State == DeviceState.Opened).

Supported events IDs can be received by the GetSupportedAsyncEvents method.
Example
This example shows how to detect when paper is jammed.
' Detects when paper is jammed.
Public Sub DetectPaperJam(ByVal device As Device)
    ' disable device UI
    device.ShowUI = False
    ' disable device when images are acquired
    device.DisableAfterAcquire = True
            
    ' open the device
    device.Open()
            
    ' set device settings
    device.PixelType = PixelType.RGB
    device.UnitOfMeasure = UnitOfMeasure.Inches
    device.Resolution = New Resolution(300.0F, 300.0F)
            
    Try
        ' get events supported by device
        Dim supportedDeviceEvents As DeviceEventId() = device.GetSupportedAsyncEvents()
        ' for each supported event
        For i As Integer = 0 To supportedDeviceEvents.Length - 1
            ' if device can report when paper is jammed
            If supportedDeviceEvents(i) = DeviceEventId.PaperJam Then
                ' specify that device must report when paper is jammed
                device.AsyncEvents = New DeviceEventId() {DeviceEventId.PaperJam}
            
                ' subscribe to the device event
                AddHandler device.AsyncEvent, New EventHandler(Of DeviceAsyncEventArgs)(AddressOf device_DeviceEvent)
            
                Exit For
            End If
        Next
    Catch ex As Exception
        Console.WriteLine(ex.ToString())
    End Try
            
    ' subscribe to the Device.ImageAcquired, Device.ScanCompleted, ... events
    '...
            
    ' acquire images from device
    device.Acquire()
End Sub
            
' Handles the DeviceEvent event.
Private Sub device_DeviceEvent(ByVal sender As Object, ByVal e As DeviceAsyncEventArgs)
    Console.WriteLine("Paper is jammed.")
End Sub
// Detects when paper is jammed.
public void DetectPaperJam(Device device)
{
    // disable device UI
    device.ShowUI = false;
    // disable device when images are acquired
    device.DisableAfterAcquire = true;
            
    // open the device
    device.Open();
            
    // set device settings
    device.PixelType = PixelType.RGB;
    device.UnitOfMeasure = UnitOfMeasure.Inches;
    device.Resolution = new Resolution(300f, 300f);
            
    try
    {
        // get events supported by device
        DeviceEventId[] supportedDeviceEvents = device.GetSupportedAsyncEvents();
        // for each supported event
        for (int i = 0; i < supportedDeviceEvents.Length; i++)
        {
            // if device can report when paper is jammed
            if (supportedDeviceEvents[i] == DeviceEventId.PaperJam)
            {
                // specify that device must report when paper is jammed
                device.AsyncEvents = new DeviceEventId[] { DeviceEventId.PaperJam };
            
                // subscribe to the device event
                device.AsyncEvent += new EventHandler<DeviceAsyncEventArgs>(device_DeviceEvent);
            
                break;
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
            
    // subscribe to the Device.ImageAcquired, Device.ScanCompleted, ... events
    //...
            
    // acquire images from device
    device.Acquire();
}
            
// Handles the DeviceEvent event.
private void device_DeviceEvent(object sender, DeviceAsyncEventArgs e)
{
    Console.WriteLine("Paper is jammed.");
}
Requirements

Target Platforms: Windows 8, Windows 7, Windows Vista, Windows XP, Windows Server 2012, Windows Server 2008, Windows Server 2003

See Also

Reference

Device Class
Device Members
IsAsyncEventsSupported Property
GetSupportedAsyncEvents Method
Open Method
AsyncEvent Event