Files
mraa/examples/java/Isr.java
Thomas Ingleby 170bdd104f spdx: add spdx tags to most files
Large change that removes the duplicated MIT notice withe a spdx tag

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2019-05-23 10:09:12 -07:00

69 lines
1.9 KiB
Java

/*
* Author: Alexander Komarov <alexander.komarov@intel.com>
* Copyright (c) 2014 Intel Corporation.
*
* SPDX-License-Identifier: MIT
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import mraa.Dir;
import mraa.Edge;
import mraa.Gpio;
public class Isr {
static {
try {
System.loadLibrary("mraajava");
} catch (UnsatisfiedLinkError e) {
System.err.println(
"Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" +
e);
System.exit(1);
}
}
public static void main(String argv[]) throws InterruptedException {
int pin = 6;
if (argv.length == 1) {
try {
pin = Integer.parseInt(argv[0]);
} catch (Exception e) {
}
}
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
Gpio gpio = null;
try {
gpio = new Gpio(pin);
} catch (Exception e) {
System.out.println(e.getMessage());
return;
}
System.out.println("Starting ISR for pin " + Integer.toString(pin) + ". Press ENTER to stop");
Runnable callback = new JavaCallback(gpio);
gpio.isr(Edge.EDGE_RISING, callback);
try {
String input = console.readLine();
} catch (IOException e) {
}
gpio.isrExit();
}
}
class JavaCallback implements Runnable {
private Gpio gpio;
public JavaCallback(Gpio gpio) {
this.gpio = gpio;
}
@Override
public void run() {
String pin = Integer.toString(gpio.getPin(true));
String level = Integer.toString(gpio.read());
System.out.println("Pin " + pin + " = " + level);
}
}