有没有人在Tomcat7中使用WiringPiGpioInterrupt?

时间:2015-10-18 23:42:14

标签: java gpio

是否有人在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");
            }
        });
    }
}

凯文

0 个答案:

没有答案