Enables notification of a specified event.
ViStatus viEnableEvent(ViSession vi, ViEventType eventType, ViUInt16 mechanism, ViEventFilter context)
viEnableEvent&(ByVal vi&, ByVal eventType&, ByVal mechanism%, ByVal context&)
All I/O session types
Name | Direction | Description |
---|---|---|
vi |
IN |
Unique logical identifier to a session. |
eventType |
IN |
Logical event identifier. |
mechanism |
IN |
Specifies event handling mechanisms to be enabled. The queuing mechanism is enabled by specifying VI_QUEUE (1), and the callback mechanism is enabled by specifying VI_HNDLR (2) or VI_SUSPEND_HNDLR (4). |
context |
IN |
VI_NULL (0). |
Completion Codes | Description |
---|---|
VI_SUCCESS |
Event enabled successfully. |
VI_SUCCESS_EVENT_EN |
Specified event is already enabled for at least one of the specified mechanisms. |
Error Codes |
Description |
---|---|
VI_ERROR_INV_OBJECT |
The given session reference is invalid. |
VI_ERROR_INV_EVENT |
Specified eventType is not supported by the resource. |
VI_ERROR_INV_MECH |
Invalid mechanism specified for the event. |
VI_ERROR_INV_CONTEXT |
Specified event context is invalid. |
VI_ERROR_INV_SETUP |
Unable to start write operation because setup is invalid (due to attributes being set to an inconsistent state). |
VI_ERROR_HNDLR_NINSTALLED |
A handler is not currently installed for the specified event. The session cannot be enabled for the VI_HNDLR mode of the callback mechanism. |
VI_ERROR_NSUP_MECH |
The specified mechanism is not supported for the given eventType. |
The viEnableEvent() operation enables notification of an event identified by the eventType parameter for mechanisms specified in the mechanism parameter. The specified session can be enabled to queue events by specifying VI_QUEUE. Applications can enable the session to invoke a callback function to execute the handler by specifying VI_HNDLR. The applications are required to install at least one handler to be enabled for this mode. Specifying VI_SUSPEND_HNDLR enables the session to receive callbacks, but the invocation of the handler is deferred to a later time. Successive calls to this operation replace the old callback mechanism with the new callback mechanism.
Specifying VI_ALL_ENABLED_EVENTS for the eventType parameter refers to all events which have previously been enabled on this session, making it easier to switch between the two callback mechanisms for multiple events.
NI-VISA does not support enabling both the queue and the handler for the same event type on the same session. If you need to use both mechanisms for the same event type, you should open multiple sessions to the resource.
Related Topics