// // Summary: // Monitors the events specified by mask and delays processing until one or // more of the events occurs. // // Parameters: // mask: // Bit mask of GPIB events to wait for. // // Exceptions: // NationalInstruments.NI4882.GpibException: // The NI-488.2 driver returns an error as a result of calling this method. // // System.ObjectDisposedException: // This member is called after the NationalInstruments.NI4882.Device.Dispose() // method has been called directly from your code or indirectly through a finalizer. // // System.DllNotFoundException: // The NI-488.2 driver library cannot be found. // // System.EntryPointNotFoundException: // A required operation in the NI-488.2 driver library cannot be found. // // System.ArgumentException: // A bit set in the mask is invalid. // // System.InvalidOperationException: // The inner exception is set to the NationalInstruments.NI4882.GpibException // due to one of the following conditions: // A different process owns a lock for the interface. // -or- // Method requires GPIB interface to be Controller-in-Charge (CIC). // -or- // Nonexistent GPIB interface. // -or- // GPIB bus error. // -or- // SRQ stuck in ON position. // -or- // NationalInstruments.NI4882.Device.Wait(NationalInstruments.NI4882.GpibStatusFlags) // or NationalInstruments.NI4882.Device.GetCurrentStatus() is already in progress // on the interface. // // Remarks: // If mask is NationalInstruments.NI4882.GpibStatusFlags.None, NationalInstruments.NI4882.Board.Wait(NationalInstruments.NI4882.GpibStatusFlags) // returns immediately with the updated status returned in NationalInstruments.NI4882.Board.LastStatus. // This call is identical to NationalInstruments.NI4882.Board.GetCurrentStatus(). // If NationalInstruments.NI4882.GpibStatusFlags.Timeout is set in mask, and // one or more of the other specified events have not already occurred, NationalInstruments.NI4882.Board.Wait(NationalInstruments.NI4882.GpibStatusFlags) // returns when the NationalInstruments.NI4882.Board.IOTimeout period has elapsed. // If NationalInstruments.NI4882.GpibStatusFlags.Timeout is not set in mask, // the method waits indefinitely for one or more of the specified events to // occur. You can configure the timeout period using the NationalInstruments.NI4882.Board.IOTimeout // property. The only valid wait mask bits are NationalInstruments.NI4882.GpibStatusFlags.End, // NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest, and NationalInstruments.NI4882.GpibStatusFlags.IOComplete. public void Wait(GpibStatusFlags mask);
// // Summary: // Notifies the user of one or more GPIB events by invoking the user callback. // // Parameters: // mask: // Bit mask of GPIB events to notice. // // callback: // Pointer to the delegate method NationalInstruments.NI4882.NotifyCallback. // // userData: // User-defined reference data for the callback. // // Exceptions: // NationalInstruments.NI4882.GpibException: // The NI-488.2 driver returns an error as a result of calling this method. // // System.ObjectDisposedException: // This member is called after the NationalInstruments.NI4882.Board.Dispose() // method has been called directly from your code or indirectly through a finalizer. // // System.DllNotFoundException: // The NI-488.2 driver library cannot be found. // // System.EntryPointNotFoundException: // A required operation in the NI-488.2 driver library cannot be found. // // System.ArgumentException: // mask is invalid or nonzero. // -or- // callback is null. // // System.InvalidOperationException: // The inner exception is set to the NationalInstruments.NI4882.GpibException // due to one of the following conditions: // A different process owns a lock for the interface. // -or- // Nonexistent GPIB interface. // -or- // Asynchronous I/O operation in progress. // -or- // The current NI-488.2 driver cannot perform notification on one or more of // the specified mask bits. // // Remarks: // If mask is nonzero, NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // monitors the events specified by mask, and when one or more of the events // is true, the callback is invoked. The only valid mask bits are NationalInstruments.NI4882.GpibStatusFlags.IOComplete, // NationalInstruments.NI4882.GpibStatusFlags.Timeout, NationalInstruments.NI4882.GpibStatusFlags.End, // and NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest. If NationalInstruments.NI4882.GpibStatusFlags.Timeout // is set in the notify mask, and one or more of the other specified events // has not already occurred, NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // calls the callback method when the NationalInstruments.NI4882.Board.IOTimeout // period has elapsed. If NationalInstruments.NI4882.GpibStatusFlags.Timeout // is not set in the Notify mask, the callback is not called until one or more // of the specified events occur. // Notification on NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest // is not guaranteed to work if automatic serial polling is disabled. By default, // automatic serial polling is enabled. // A device can have only one outstanding NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // call at any one time. If a current NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // is in effect for the device, it is replaced by a subsequent NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // call. An outstanding NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // call for NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // can be canceled by a subsequent NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // call for a device that has a mask of zero. // If a NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // call is outstanding and one or more of the GPIB events it is waiting on become // true, the callback is invoked. // Notification occurs when the state of one or more of the mask bits is true. // Therefore, if a request is made to be notified when NationalInstruments.NI4882.GpibStatusFlags.IOComplete // is true, and NationalInstruments.NI4882.GpibStatusFlags.IOComplete is currently // true, the callback is invoked immediately. In Measurement Studio Technology // Preview 1, NationalInstruments.NI4882.NotifyData.SetReenableMask(NationalInstruments.NI4882.GpibStatusFlags) // does not work correctly. To work around this problem, call NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object) // every time after the NationalInstruments.NI4882.NotifyCallback returns. public void Notify(GpibStatusFlags mask, NotifyCallback callback, object userData);