7 de septiembre de 2014

JME GPIO

Java Embedded Micro Edition

Al trabajar con Java ME para dispositivod embebidos, especialmente Raspberry PI, se puede encontrar con este error:

java.lang.UnsupportedOperationException: Incompatible direction
 - com/oracle/deviceaccess/gpio/impl/GPIOPinImpl.setDirection(), bci=96
 - org/andrexweb/Main.startApp(Main.java:60)
 - javax/microedition/midlet/MIDletTunnelImpl.callStartApp(), bci=1
 - com/sun/midp/midlet/MIDletPeer.startApp(), bci=5
 - com/sun/midp/midlet/MIDletStateHandler.startSuite(), bci=264
 - com/sun/midp/main/AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com/sun/midp/main/CldcMIDletSuiteLoader.startSuite(), bci=5
 - com/sun/midp/main/AbstractMIDletSuiteLoader.runMIDletSuite(), bci=132
 - com/sun/midp/main/AppIsolateMIDletSuiteLoader.main(), bci=26



Este error resulta de aplicar la propiedad "gpio4.setDirection(GPIOPin.OUTPUT);" a un GPIO, Java ME trae preconfigurado los GPIO (ver: Device I/O Preconfigured list), ejemplo el GPIO 4, trae como direccion INPUT, es decir que es solo entrada, pero lo vamos a usar para OUPUT salida, entonces tenemos que hacer lo siguiente:

GPIOPinConfig gPIOPinConfig4 = new GPIOPinConfig(0, 4, GPIOPinConfig.DIR_OUTPUT_ONLY, GPIOPinConfig.MODE_OUTPUT_PUSH_PULL, GPIOPinConfig.TRIGGER_BOTH_EDGES, false);
            GPIOPin gpio4 = (GPIOPin) DeviceManager.open(gPIOPinConfig4);
            gpio4.setDirection(GPIOPin.OUTPUT);



De esta forma configuramos el GPIO, como se requiere.


No hay comentarios:

Publicar un comentario