是否有人在Tomcat7中使用WiringPiGpioInterrupt?
每按一下按钮就会崩溃。
见PI4J Issues 176,180和184。
还有其他选择吗? 我需要在Python中重新启动吗?
package com.na7kr.Interrupt;
import com.na7kr.GPIOController.GPIOController;
import com.na7kr.Utils.Utils;
import com.na7kr.rpi_gpio_controller.Rpi_gpio_controllerApplicationUI;
import com.pi4j.wiringpi.Gpio;
import com.pi4j.wiringpi.GpioInterruptCallback;
public class Interrupt {
Rpi_gpio_controllerApplicationUI mApplication = new Rpi_gpio_controllerApplicationUI(); // NO_UCD
// (use
// private)
// ***************************************
public synchronized void GetInput1(int trigerpin, int outputpin) throws InterruptedException {
System.out.println("<--Pi4J--> GPIO interrupt test program");
// setup wiringPi
if (Gpio.wiringPiSetup() == -1) {
System.out.println(" ==>> GPIO SETUP FAILED");
return;
}
Gpio.pinMode(1, Gpio.INPUT);
Gpio.pinMode(2, Gpio.INPUT);
Gpio.pullUpDnControl(1, Gpio.PUD_UP);
Gpio.pullUpDnControl(2, Gpio.PUD_UP);
Gpio.wiringPiISR(1, Gpio.INT_EDGE_FALLING, new GpioInterruptCallback() {
@Override
public void callback(int pin) {
System.out.println(" ==>> GPIO PIN " + pin + " - INTERRUPT DETECTED");
Utils.Output_WriteDebug(true, "1");
GPIOController.INSTANCE.mGPIOPins[0].toggle();
mApplication.refreshGPIOPinState();
Utils.Output_WriteDebug(true, "2");
}
});
Gpio.wiringPiISR(2, Gpio.INT_EDGE_FALLING, new GpioInterruptCallback() {
@Override
public void callback(int pin) {
System.out.println(" ==>> GPIO PIN " + pin + " - INTERRUPT DETECTED");
Utils.Output_WriteDebug(true, "3");
GPIOController.INSTANCE.mGPIOPins[0].toggle();
mApplication.refreshGPIOPinState();
Utils.Output_WriteDebug(true, "4");
}
});
}
}
凯文