public static void Main() { AmqpTrace.TraceLevel = TraceLevel.Frame | TraceLevel.Verbose; AmqpTrace.TraceListener = Program.WriteTrace; Connection.DisableServerCertValidation = true; Program application = new Program(); application.temperature = 68; application.changed = new AutoResetEvent(true); new Thread(application.Listen).Start(); GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null); application.Run(application.CreateWindow()); }
/// <summary> /// Constructs a ButtonPad object that handles the emulated /// hardware's button interrupts. /// </summary> /// <param name="sink"></param> /// <param name="button"></param> /// <param name="pin"></param> public ButtonPad(GPIOButtonInputProvider sink, Button button, Cpu.Pin pin) { this.sink = sink; this.button = button; #if !MF_FRAMEWORK_VERSION_V3_0 this.buttonDevice = InputManager.CurrentInputManager.ButtonDevice; #endif /// Do not set an InterruptPort with GPIO_NONE. if (pin != Cpu.Pin.GPIO_NONE) { // When this GPIO pin is true, call the Interrupt method. port = new InterruptPort(pin, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeBoth); port.OnInterrupt += new NativeEventHandler(this.Interrupt); } }