internal CallbackInfo(uint port, uint bits, Edge edge, GpioCallback callback) { this.m_port = port; this.m_bits = bits; this.m_edge = edge; this.m_callback = callback; }
public CallbackInfo AddCallback(int gpio, Edge edge, GpioCallback callback) { List <CallbackInfo> callbacks; lock (this.m_callbacks) { if (this.m_callbacks.ContainsKey(gpio)) { callbacks = this.m_callbacks[gpio]; } else { short ret = PiGpioNativeMethods.SetAlertFunc((ushort)gpio, this.GpioAlertCallback); if (ret < 0) { throw new PiGPIOException(ret); } callbacks = new List <CallbackInfo>(); this.m_callbacks.Add(gpio, callbacks); } } CallbackInfo cbi = new CallbackInfo((uint)gpio, 0, edge, callback); lock (callbacks) { callbacks.Add(cbi); } return(cbi); }
public CallbackInfo AddCallback(int userGpio, Edge edge, GpioCallback callback) { CallbackInfo info; uint bits = 1u << userGpio; lock (this.m_callbacks) { uint newMonitor = this.m_monitor | bits; if (this.IsConnected) { this.NB(this.m_handle, newMonitor); } this.m_monitor = newMonitor; info = new CallbackInfo((uint)userGpio, bits, edge, callback); this.m_callbacks.Add(info); } return(info); }
CallbackInfo IPiGPIO.AddCallback(int gpio, Edge either, GpioCallback callback) { throw new NotImplementedException(); }