Wednesday, October 22, 2008

Finished

So, the current status of our project is...  complete!  I'll divide this post up into what worked and what didn't.

What Worked:

  1. Java runs on our cRIO.  This is Java in the J2ME sense.  We support the same things Squawk supports on other platforms, except possibly networking.
  2. Brad Miller from WPI was kind enough to loan us a demo robot, which we can control from Java.  This gave us a great end to our presentation, when we drove the robot around in real time with a stuffed Duke.  To quote Paul on this one: "I, for one, welcome our new Java-robot overlords."  Despite being a popular internet thing, it was still pretty funny.

What Didn't Work:

  1. Debugging.  You can debug with System.out.println().  Or, you can make the networking things compile, and it might just work.
  2. The serial port.  If you're writing code that cares about the serial port, you are clearly capable of writing C++ code.  Use the existing C++ class, or write a Java wrapper and share.

So that concludes the hard part of our project.  Now we get to write a report.

Thursday, October 2, 2008

Starting the Month off Right

I haven't posted a status update in a while, so this might be a long one.

The LabView problem: This is fixed now, but I think the actual problem may have been completely unrelated. I have multiple network adapters on my laptop (I have 5 total, I think). Even with the right version of all of the LabView components installed, the flashing utility still didn't work. It turns out that the utility works fine, if you only have one network adapter. Disabling all but the one connected to the cRIO fixed it, and we got the image to flash.

Overall Progress:
  • Squawk runs on the cRIO
  • Squawk is talking to C/C++ code
  • A large library of custom C++ code now exists in Java as well, and is working (correctly)
  • Interaction with (and response to) external devices
What we have left:
  • Write up some demo software
  • Get the Java debugger running on Squawk
  • Get Squawk to load our library and the user programs from separate suite files, so that the user doesn't need to recompile Squawk every time they want to test their application
  • Document the install procedure
This post is definitely understating the amount of work involved, but a large portion of that work is restricted by NDA.