Hi
I sometimes ( not always ) get some strange errors in the Arduino service.
I think it is some type of timing issue.
Using this little script sometimes reproduce the error.
arduino = Runtime.start("arduino","Arduino")
arduino.connect("COM8")
Not a very complicated script. I sent a No-worky from Eclipse. Not 100% sure if that work.
I tried adding a sleep(5) before the connect and then it works.
A small part of the logfile when this occurs:
00:11:53.540 [python.interpreter.3] WARN c.myrobotlab.framework.Service - no such method Serial.publishPortNames(ArrayList) : - attempting upcasting
00:11:53.541 [python.interpreter.3] WARN c.myrobotlab.framework.Service - searching through 213 methods
00:11:53.544 [python.interpreter.3] INFO class org.myrobotlab.io.FileIO - looking for /resource/Arduino/MrlComm/MrlComm.ino
00:11:53.583 [AWT-EventQueue-0] INFO c.myrobotlab.framework.Service - subscribe [arduino/publishStatus ---> gui/onStatus]
00:11:53.584 [AWT-EventQueue-0] INFO c.myrobotlab.framework.Service - subscribe [arduino/publishState ---> gui/onState]
00:11:53.781 [AWT-EventQueue-0] INFO c.myrobotlab.framework.Service - subscribe [arduino.serial/publishStatus ---> gui/onStatus]
00:11:53.782 [AWT-EventQueue-0] INFO c.myrobotlab.framework.Service - subscribe [arduino.serial/publishState ---> gui/onState]
00:11:57.553 [python.interpreter.3] INFO c.myrobotlab.framework.Status - connect to port COM4 115200|8|1|0
00:11:57.554 [python.interpreter.3] INFO class org.myrobotlab.service.Serial - creating org.myrobotlab.serial.PortJSSC port COM4 115200|8|1|0
00:11:57.555 [python.interpreter.3] INFO c.myrobotlab.framework.Status - created port COM4 115200|8|1|0 - goodtimes
00:11:57.587 [python.interpreter.3] INFO c.myrobotlab.framework.Status - arduino.serial publishConnect COM4
00:11:57.604 [python.interpreter.3] INFO class org.myrobotlab.service.Serial - setParams 115200 8 1 0
00:11:57.619 [COM4.portListener 1] INFO class org.myrobotlab.serial.Port - listening on port COM4
00:11:57.643 [python.interpreter.3] ERROR c.myrobotlab.framework.Service - serial open threw
java.lang.NullPointerException: null
at org.myrobotlab.service.Arduino.connect(Arduino.java:430) [bin/:na]
at org.myrobotlab.service.Arduino.connect(Arduino.java:392) [bin/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_66]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_66]
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) [jython-2.7.0.jar:na]
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) [jython-2.7.0.jar:na]
at org.python.core.PyObject.__call__(PyObject.java:478) [jython-2.7.0.jar:na]
at org.python.core.PyObject.__call__(PyObject.java:482) [jython-2.7.0.jar:na]
at org.python.core.PyMethod.__call__(PyMethod.java:141) [jython-2.7.0.jar:na]
at org.python.pycode._pyx3.f$0(<string>:3) [jython-2.7.0.jar:na]
at org.python.pycode._pyx3.call_function(<string>) [jython-2.7.0.jar:na]
at org.python.core.PyTableCode.call(PyTableCode.java:167) [jython-2.7.0.jar:na]
at org.python.core.PyCode.call(PyCode.java:18) [jython-2.7.0.jar:na]
at org.python.core.Py.runCode(Py.java:1386) [jython-2.7.0.jar:na]
at org.python.core.Py.exec(Py.java:1430) [jython-2.7.0.jar:na]
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:267) [jython-2.7.0.jar:na]
at org.myrobotlab.service.Python$PIThread.run(Python.java:161) [bin/:na]
00:11:57.647 [python.interpreter.3] ERROR c.myrobotlab.framework.Service - arduino error
----------------------------------
I have also seen this seen a strange behaviour where the Arduino service creates two tabs, and one of them say "Arduino does not have a user interface". The other tab is empty without any text. So neither show the normal Arduino GUI. It only happens sometimes, so it's probably also some timing issue.
![](/sites/default/files/users/user1440images/Arduino1.png)
![](/sites/default/files/users/user1440images/Arduino2.png)
This is the logfile from when the second type of error occurs:
[python] [INFO] exec(String)
arduino = Runtime.create("arduino","Arduino")
arduino.connect("COM3")
[python.interpreter.3] [INFO] Runtime.createService arduino
[python.interpreter.3] [INFO] getMessageSet loading 259 non-sub-routable methods
[python.interpreter.3] [INFO] cfg file C:\MRL4\myrobotlab\.myrobotlab\arduino.json does not exist
[python.interpreter.3] [WARN] no such method Runtime.registered(Arduino) : - attempting upcasting
[python.interpreter.3] [WARN] searching through 253 methods
[gui] [WARN] no such method SwingGui.addTab(Arduino) : - attempting upcasting
[gui] [WARN] searching through 186 methods
[python] [WARN] no such method Python.onRegistered(Arduino) : - attempting upcasting
[python] [WARN] searching through 169 methods
[python] [INFO] exec(String)
from org.myrobotlab.service import Arduino
arduino = Runtime.getService("arduino")
[gui] [WARN] no such method RuntimeGui.onRegistered(Arduino) : - attempting upcasting
[gui] [WARN] searching through 78 methods
[python.interpreter.3] [INFO] Runtime.createService arduino.serial
[python.interpreter.3] [INFO] getMessageSet loading 213 non-sub-routable methods
[python.interpreter.3] [INFO] found reservation exchanging reservedKey arduino.serial for actual name arduino.serial
[python.interpreter.3] [INFO] cfg file C:\MRL4\myrobotlab\.myrobotlab\arduino.serial.json does not exist
[python.interpreter.3] [WARN] no such method Runtime.registered(Serial) : - attempting upcasting
[python.interpreter.3] [WARN] searching through 253 methods
[python.interpreter.3] [INFO] loading class: org.myrobotlab.serial.PortJSSC
[gui] [WARN] no such method SwingGui.addTab(Serial) : - attempting upcasting
[gui] [WARN] searching through 186 methods
[gui] [WARN] no such method RuntimeGui.onRegistered(Serial) : - attempting upcasting
[gui] [WARN] searching through 78 methods
[python] [WARN] no such method Python.onRegistered(Serial) : - attempting upcasting
[python] [WARN] searching through 169 methods
[python] [INFO] exec(String)
from org.myrobotlab.service import Serial
arduino_serial = Runtime.getService("arduino.serial")
[AWT-EventQueue-0] [ERROR] getNewInstance failed
[AWT-EventQueue-0] [INFO] could not construct a org.myrobotlab.swing.ArduinoGui object - creating generic template
[python.interpreter.3] [WARN] no such method Serial.publishPortNames(ArrayList) : - attempting upcasting
[python.interpreter.3] [WARN] searching through 213 methods
[python.interpreter.3] [INFO] looking for /resource/Arduino/MrlComm/MrlComm.ino
[AWT-EventQueue-0] [INFO] subscribe [arduino/publishStatus ---> gui/onStatus]
[AWT-EventQueue-0] [INFO] subscribe [arduino/publishState ---> gui/onState]
[python.interpreter.3] [INFO] connect to port COM3 115200|8|1|0
[python.interpreter.3] [INFO] creating org.myrobotlab.serial.PortJSSC port COM3 115200|8|1|0
[python.interpreter.3] [INFO] created port COM3 115200|8|1|0 - goodtimes
[python.interpreter.3] [ERROR] serial open threw
[python.interpreter.3] [ERROR] arduino error could not open port COM3 rate 115200 dataBits 8 stopBits 1 parity 0
[AWT-EventQueue-0] [INFO] subscribe [arduino.serial/publishStatus ---> gui/onStatus]
[AWT-EventQueue-0] [INFO] subscribe [arduino.serial/publishState ---> gui/onState]
[AWT-EventQueue-0] [INFO] C:\Users\Mats.Viola-Dator\Documents\MatsRobotlab\Arduino.py
Mats !
Hmmm ... looking through your noWorkys - the Errors are comments on my source ..
I tried 5 times with your test but could not generate the errors.
I don't know if it is related
I don't know if it is related to your problem, but i can reproduce this :
NOK ( arduino won't connect )
i01 = Runtime.createAndStart("i01", "InMoov")
i01.startRightHand("COM3")
OK
right = Runtime.createAndStart("i01.right", "Arduino")
i01 = Runtime.createAndStart("i01", "InMoov")
right.connect("COM3")