Wenn eine Aktion genau bei Drücken des Buttons ausgelöst werden soll, also nur beim Moment des Tastendrucks, dann wird ein 'edge detector' oder 'Flankendetektor' benötigt.
Das funktioniert so, dass der aktuelle Zustand des gpio-Eingangs mit dem letzten Zustand verglichen wird. Es wird eine Variable benutzt, um sich den letzten Zustand zu merken. Wenn der aktuelle Zustand '0' ist und der letzte Zustand '1' ist, dann hat man den Tastendruck gefunden.
set lastValue = '1' forever if lastValue == '1' and if gpio23 sensorvalue == 0 send broadcast 'button pressed' end if set lastValue = gpio23 sensorvalue
Dieser Code muß geschrieben werden, da gpioserver keine Flankenerkennung mitbringt.
Beispielprogramm Flankendetektor piandmore_gpioserver_buttontoggle.sb