nullpointerexception - Processing in Java Serial object Null Pointer Exception -
first of new java apologize if obvious answer.
i using processing in java read input values coming usb port.
here custom class set values. call getcurrentvalue() method , throws nullpointerexception.
import processing.core.papplet; import processing.serial.*; import java.util.hashmap; import java.util.arraylist; import java.io.file; import java.io.bufferedreader; import java.io.printwriter; import java.io.inputstream; import java.io.outputstream; import java.io.ioexception; public class seismograph extends papplet{ private int currentvalue, verticaloffset = 0; private int 0 = 32768; // .5 of maximum seismograph value private int adjustseis = 68; // devide seismograph data adjustsies scale public string theseisport = "com20"; private serial seisport; public void seismograph(){ currentvalue = 0; seisport = new serial(this, "com20", 38400); } public int getcurrentvalue(){ byte[] inbuffer = new byte[2]; // value seis - 2 bytes while (seisport.available() > 0) { // verify serial port inbuffer = seisport.readbytes(); seisport.readbytes(inbuffer); // read bytes buffer if (inbuffer != null) { string seisstring = new string(inbuffer); // capture value float seisfloat = papplet.parsefloat(seisstring); // convert value float int seisint = papplet.parseint((seisfloat-zero)/adjustseis); // adjust data fit screen seisint = seisint+(height/2)-verticaloffset; // center data vertically currentvalue = seisint; } } return this.currentvalue; } } it throws error because of line 40 @ seisport.available() error message:
exception in thread "animation thread" java.lang.runtimeexception: java.lang.nullpointerexception @ com.jogamp.common.util.awt.awtedtexecutor.invoke(awtedtexecutor.java:58) @ jogamp.opengl.awt.awtthreadingplugin.invokeonopenglthread(awtthreadingplugin.java:103) @ jogamp.opengl.threadingimpl.invokeonopenglthread(threadingimpl.java:206) @ javax.media.opengl.threading.invokeonopenglthread(threading.java:172) @ javax.media.opengl.threading.invoke(threading.java:191) @ javax.media.opengl.awt.glcanvas.display(glcanvas.java:541) @ processing.opengl.pjogl.requestdraw(pjogl.java:688) @ processing.opengl.pgraphicsopengl.requestdraw(pgraphicsopengl.java:1651) @ vialab.smt.renderer.pgraphics3ddelegate.requestdraw(pgraphics3ddelegate.java:1450) @ processing.core.papplet.run(papplet.java:2254) @ java.lang.thread.run(thread.java:724) caused by: java.lang.nullpointerexception @ seismic.seismograph.getcurrentvalue(seismograph.java:40) @ seismic.seismograph_jan22c_1_1.draw(seismograph_jan22c_1_1.java:102) @ processing.core.papplet.handledraw(papplet.java:2384) @ processing.opengl.pjogl$pgllistener.display(pjogl.java:862) @ jogamp.opengl.gldrawablehelper.displayimpl(gldrawablehelper.java:665) @ jogamp.opengl.gldrawablehelper.display(gldrawablehelper.java:649) @ javax.media.opengl.awt.glcanvas$10.run(glcanvas.java:1289) @ jogamp.opengl.gldrawablehelper.invokeglimpl(gldrawablehelper.java:1119) @ jogamp.opengl.gldrawablehelper.invokegl(gldrawablehelper.java:994) @ javax.media.opengl.awt.glcanvas$11.run(glcanvas.java:1300) @ java.awt.event.invocationevent.dispatch(invocationevent.java:241) @ java.awt.eventqueue.dispatcheventimpl(eventqueue.java:733) @ java.awt.eventqueue.access$200(eventqueue.java:103) @ java.awt.eventqueue$3.run(eventqueue.java:694) @ java.awt.eventqueue$3.run(eventqueue.java:692) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:76) @ java.awt.eventqueue.dispatchevent(eventqueue.java:703) @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:242) @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:161) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:150) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:146) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:138) @ java.awt.eventdispatchthread.run(eventdispatchthread.java:91) exception in thread "awt-eventqueue-0" java.lang.nullpointerexception i have been stuck on awhile, feedback appreciated.
look @ constructor:
public void seismograph(){ currentvalue = 0; seisport = new serial(this, "com20", 38400); } notice you've included void keyword in method signature. constructors not have return type, treated method instead of constructor. not called when create new instance of seismograph, seisport null.
to fix this, remove void keyword.
public seismograph(){ currentvalue = 0; seisport = new serial(this, "com20", 38400); }
Comments
Post a Comment