java + pi4j + raspberry
-
Ребята, подскажите пожалуйста!!!Есть кусок кода:import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import
com.pi4j.io.gpio.GpioPinDigitalInput;import
com.pi4j.io.gpio.GpioPinDigitalOutput;import
com.pi4j.io.gpio.PinPullResistance;import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import
com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;import
com.pi4j.io.gpio.event.GpioPinListenerDigital;public class Test {
public static double summ = 100;
static
GpioController gpio = GpioFactory.getInstance();static
GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_00,PinPullResistance.PULL_DOWN);static
GpioPinDigitalInput myButton2 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02,PinPullResistance.PULL_DOWN);static
GpioPinDigitalInput myButton3 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,PinPullResistance.PULL_DOWN);static
GpioPinDigitalOutput gpioPinDigitalOutput = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_15, "MyLED", PinState.LOW);static
GpioPinDigitalOutput gpioPinDigitalOutput2 = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_16, "MyLED", PinState.LOW);static GpioPinDigitalOutput gpioPinDigitalOutput3 = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.LOW);
public static void main(String[] args) throws InterruptedException {
// При нажатии на
первую кнопку (myButton)
добавляет добавляет к сумме 100myButton.addListener((GpioPinListenerDigital)
(GpioPinDigitalStateChangeEvent eventButton) ->{gpioPinDigitalOutput.toggle();
summ = summ + 100;
System.out.println(summ);
});
// При нажатии на
первую кнопку (myButton2)
запускает цикл №1 от суммы отнимаем 0,01myButton2.addListener((GpioPinListenerDigital)
(GpioPinDigitalStateChangeEvent eventButton) ->{gpioPinDigitalOutput2.toggle();
try {
Thread.sleep(1000);
summ = summ - 0.01;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(summ);
}
});
// При нажатии на
первую кнопку (myButton3)
запускает цикл №2 от суммы отнимаем 0,05myButton3.addListener((GpioPinListenerDigital)
(GpioPinDigitalStateChangeEvent eventButton) ->{gpioPinDigitalOutput3.toggle();
try {
Thread.sleep(1000);
summ = summ - 0.05;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(summ);
}
});
while (true) {
}
}
}Как сделать так, чтобы: нажимаем кнопку myButton2, запускается цикл который отнимает от summ-0.01, потом нажимаем myButton3, цикл от кнопки myButton2 и запускается цикл который отнимает от оставшейся summ от первого цикла и
отнимаем в новом цикле sum-0.05.Тут в
коде если нажать на одну и туже кнопку myButton2 или myButton3 суммируется в цикле т.е.
Пример: два раза на кнопку myButton2 отнимается не 0,01, а 0,02 ((