Autocompletion

Made progress in both these areas (also bug /dev/ttyACM issue with Mega on Linux is fixed)

Autocompletion now returns relevant functions after CTRL+SPACE

For example:
if you want to know some of the Arduino methods you can just type arduino. (ctrl+space) in the Jython editor and a list of possible methods will come up..  It has a link for (more help and javadocs), unfortunately it doesn't currently describe what the method or parameters do ... but hey, it's a start :)

 

 

Python script generation - "Recording"
You can press System->recording->start recording
And all the messages the GUI Service sends out (effectively all the actions you do) will be recorded and translated into a Python script which you can re-use to get your system to the same state after a re-start.  Or you can see the "cause" and "effect" of what you do on the GUI.

Here is how :

I'm wondering the best format.  Currently, it spits out 3 different flavors/formats.  Binary msg files, xml files, and Python.py files.  I think Python would be the most useful, but I'd like to hear other opinions.

Here is an example of the python (slightly tweaked) that is generated...
So I set the record button on, and graphically added an Arduino, and 2 Servos,  connected the Arduino to my serial port and attached the 2 servos to the arduino, all in the gui - then pressed stop recording - and this was (kind of) the script generated ... not too bad :D

arduino = runtime.createAndStart("arduino","Arduino")
arduino.setSerialDevice("COM10",57600,8,1,0)
arduino.pinMode(18,0)
arduino.analogReadPollingStart(18)
runtime.createAndStart("pan","Servo")
pan.publishState()
runtime.createAndStart("tilt","Servo")
tilt.publishState()
pan.attach("arduino",9)
tilt.attach("arduino",10)
tilt.moveTo(90)
pan.moveTo(100)
pan.moveTo(104)
pan.moveTo(105)
pan.moveTo(106)
pan.moveTo(108)
pan.moveTo(109)
pan.moveTo(110)
pan.moveTo(111)
pan.moveTo(112)
pan.moveTo(113)
pan.moveTo(115)
pan.moveTo(116)
pan.moveTo(117)
pan.moveTo(118)
pan.moveTo(119)
pan.moveTo(119)
tilt.moveTo(88)
tilt.moveTo(89)



Now, I could load this up in the Jython editor and run it and I'd have (close) to the same state as when I stopped recording. Another little caveat is that when it would run in Jython the moveTo commands would be one right after the other with no pause - they would kill my servos. But if I wanted to I could put sleep statements between or remove some of the commands.