/// <summary> /// Adds a callback that will be invoked when pinNumber has an event of type eventType. /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <param name="eventTypes">The event types to wait for.</param> /// <param name="callback">The callback method that will be invoked.</param> public void RegisterCallbackForPinValueChangedEvent(int pinNumber, PinEventTypes eventTypes, PinChangeEventHandler callback) { int logicalPinNumber = GetLogicalPinNumber(pinNumber); if (!_openPins.Contains(logicalPinNumber)) { throw new InvalidOperationException("Can not add callback for a pin that is not open."); } _driver.AddCallbackForPinValueChangedEvent(logicalPinNumber, eventTypes, callback); }
/// <summary> /// Adds a callback that will be invoked when pinNumber has an event of type eventType. /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <param name="eventTypes">The event types to wait for.</param> /// <param name="callback">The callback method that will be invoked.</param> public virtual void RegisterCallbackForPinValueChangedEvent(int pinNumber, PinEventTypes eventTypes, PinChangeEventHandler callback) { if (!IsPinOpen(pinNumber)) { throw new InvalidOperationException($"Can not add callback for pin {pinNumber} because it is not open."); } int logicalPinNumber = GetLogicalPinNumber(pinNumber); _driver.AddCallbackForPinValueChangedEvent(logicalPinNumber, eventTypes, callback); }