Witam!
Ostatnio klepię na Raspberry (i JEE na zmianę, żeby się nie znudzić) i rzuca mi wyjątek CancellationException
.
Dioda mruga jak powinna, wysypuje się dopiero po zakończeniu tych 10 sekund. Docsy nic nie mówią. Czytałem tutaj i tu, że może to być niepoprawna ilość czasu przydzielona do wykonania zadania.
Chciałem zapytać czyja to wina - moja czy biblioteki?
Kod:
import com.pi4j.io.gpio.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
/**
* This example code demonstrates how to perform simple state
* control of a GPIO pin on the Raspberry Pi.
*
* @author Robert Savage
*/
public class ControlGpioExample {
public static void main(String[] args) throws InterruptedException {
System.out.println("<--Pi4J--> GPIO Control Example ... started.");
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// provision gpio pin #01 as an output pin and turn on
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.HIGH);
// set shutdown state for this pin
pin.setShutdownOptions(true, PinState.LOW);
Future f = pin.blink(100,10000);
try {
f.get();
} catch (ExecutionException e) {
e.printStackTrace();
}
// stop all GPIO activity/threads by shutting down the GPIO controller
// (this method will forcefully shutdown all GPIO monitoring threads and scheduled tasks)
gpio.shutdown();
System.out.println("Exiting ControlGpioExample");
}
}
Stack trace:
<--Pi4J--> GPIO Control Example ... started.
Exception in thread "main" java.util.concurrent.CancellationException
at java.util.concurrent.FutureTask.report(FutureTask.java:121)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at ControlGpioExample.main(ControlGpioExample.java:61)