Software Updates and Discussion

Added by Jeremy Wright over 9 years ago

This is part update, part discussion and agenda starter for a much needed Shepard software discussion/Hangout. The discussion points are numbered to make it easier to reference them.

  • The version of the Processing graphical library (ControlP5) we've been using became incompatible with Processing starting at version 2.0b8. I updated ControlP5 to version 2.0.4 last night, and it seems to have fixed the compatibility problem. I was able to run ShepardDCS on Processing 2.0.1.
  • I also reworked the code a little bit so the UI doesn't hang if there are no serial ports available, or if the wrong serial port is selected by default. The UI will now come up, and it will give you a chance to select the correct serial port.
  • I'll be continuing to make some changes in the short term to make the software more usable for us and for CCSSC, but I want to make sure that we get our heads together so we put out a superior software product for Shepard 2.0.
  1. There's been discussion that because we are holding the motors fixed, we can drop the 30 foot safety radius requirement for E motors down to 15 feet. We need to decide on this since it will influence what type of interface we use for Arduino-to-Computer communications.
    1. If we decrease the radius to 15 feet for every motor we can use the standard USB interface on the Arduino.
  2. We need to decide whether or not we're going to stick with Processing for the laptop UI side of things.
    1. Pros:
      1. We've already done quite a bit of work on the Processing app and CCSSC (our primary educational partner) has already been using it.
      2. The Arduino community is very familiar and comfortable with Processing.
    2. Cons:
      1. There are some Java compatibility issues, the biggest of which is that serial communications don't work on the 64-bit architecture Java. We may be able to work around that by embedding a specific Java jar with the application though. Some R&D still needs to be done to see if we can do this with the Windows apps that are exported from the Processing IDE.
  3. Jeremy has been thinking about doing a simple autodiscovery protocol where the Processing app will try to transmit a predefined character on each available serial port, and the Arduino will know to respond to that character.
    1. You would be required to plug the Arduino in first.
    2. Could be risky if there are serial devices on other ports that might be sensitive to having random characters thrown at them. However, how many educators are going to have other serial devices attached to their computers in this day and age?
    3. Jeremy thinks this will go a long way toward making Shepard a plug-and-play system for educators.
  4. Another change Jeremy's been thinking about for the Processing app is to create a tabbed interface with 3 tabs. The first will be "Calibrate", which will hold the UI to calibrate the load cell. The second will be "Collect" that holds the UI you can use to collect the test run data. The third will be "Analyze", which will hold a UI that will allow you to do some work with the data. The only thing Jeremy can think to add to that tab currently would be the ability to overlay multiple curves from previous firings over each other to compare them.
  5. Code review
    1. Walk through current code base so the team can make recommendations.
  6. We need to go through the code and what we want the app to do, and then have a discussion about code organization and architecture.
    1. How to best structure the code if multiple people are going to be working on it at once (Chris and Jeremy)?
    2. Should we stick with the current GUI library (ControlP5), or try to find something better?
      1. Keep in mind that we've already built our current app around ControlP5.
      2. ControlP5 was originally chosen because it had the best charting features of any Processing GUI library.
      3. You have to scale the UI elements manually to the window size. ControlP5 doesn't have an autoscale feature and the author hasn't shown any interest in adding it.
    3. How do we encapsulate the customizations to the UI elements most effectively? Jeremy had to write code to add axes markers to the charts, and that needs to be more cleanly encapsulated.
      1. Take the ControlP5 code base, make the improvements we need, and then contribute the code back?
      2. Extend the current ControlP5 classes we need increased functionality on?
      3. Create wrapper classes?

Replies (4)

RE: Software Updates and Discussion - Added by J. Simmons over 9 years ago

Great news on the update to the latest version of Processing and the Graphics library. And I think this agenda (or rather list of topics which need to be discussed over what will probably turn into several hangouts) is taking shape. I have a few comments on the topics which I will list below.

  1. This is definitely something we should discuss in the group, and may require a little research outside of meeting time
  2. This is something that we may be able to work out either very quickly in a hangout or over the forums. I am personally in favor of sticking with processing because I think the pros significantly outweigh the cons and I am confident we can do something to address the bitness issue
  3. I love this idea and would just endorse it being implemented
  4. I also like the tabbed interface idea, and I think with some discussion we can come up with some analysis to do with multiple sets of run data
  5. I am pro doing a code review - this alone could take a good chunk of a hangout
  6. This looks like another good discussion, which if the code review is really about getting people up to speed should come after the code review and if the code review is about checking the code for concerns/bugs should come before (in my opinion)

RE: Software Updates and Discussion - Added by Jeremy Wright over 9 years ago

I've been in a chicken and egg dilemma with 5 and 6. However, I do think we'll about have to do 5 before 6 so that everyone will be up to speed on things like what ControlP5 is and how it's being used currently. That will make discussions easier on items like 6.2.

RE: Software Updates and Discussion - Added by J. Simmons over 9 years ago

Jeremy, that makes sense to me.

RE: Software Updates and Discussion - Added by Jeremy Wright over 9 years ago

We had a Hangout about items 1 and 2 tonight. Here are the notes from that meeting.