RotorDisplay Control Application
Requires Java 5
This is the README file for the "RotorDisplay Control" application. The Software is intended to control a rotating display, christened the "RotorDisplay", by Stefan Heindel. Look here for details (in German): http://www.mikrocontroller.net/topic/80808
I wrote most of the code in 2005, after attending an introduction level course on Software Engineering. I'm aware that few, if any, are building their own RotorDisplay.
Despite this, some people may find it useful to have a look at the source code and learn something from it. I personally learned a lot by writing this application. Most of it was written on a Mac and could never be tested (due to the lack of a COM port). That's the beauty of Java: Develop and compile on a Mac, run it on Windows or Linux :)
Looking back at the code now, I would've done a lot of things differently. Just to name a few:
- (Strict) separation of Model, View, Controller classes
- Get rid of bloated controller class "InputController"
- Resource Management
If I was writing the application from scratch again, I would use more third party libraries. Recently I found "AppFramework", which "is a small set of Java classes that simplify building desktop applications". It provides "Application lifecycle, notably GUI startup and shutdown.", "Support for managing and loading resources", "Support for defining, managing, and binding Actions", "Persistent session state". But have a look for yourself if you're interested: https://appframework.dev.java.net/
Dealing with low level access to hardware is also not the best scenario for using Java. Additionally, Java only supports signed bytes which can be annoying.
I used JavaCC (https://javacc.dev.java.net/) to generate the parser for the built-in scripting language. For a list of the supported commands and their usage, have a look at the grammar definition in the file "RDScript.jj" in the package "controller.script".
The source code is available under the MIT license. I got the icons, used in the toolbar, somewhere from the web but I forgot where. I hope I don't violate any copyrights. The RXTX library (LGPL 2.1 license, http://users.frii.com/jarvi/rxtx/) is used for data transfer because it allows access to COM ports under various operating systems.
Feel free to drop me a line at mail@[the-domain-shown-in-your-browser's-address-line] if you have any questions or comments.