PoolEdit - Open Source XML ISO 11783 User Interface Editor
The ISO 11783 (aka ISOBUS) specifies a communication system for agricultural equipment based on the CAN protocol. Developing ISO 11783 compliant electronic control units is a multidisciplinary effort that requires specialized tools for tasks such as distributed embedded software development, graphical user interface design, hardware development for the ECU, and filter and controller design for machine controls.
PoolEdit is open source, XML based, graphical editor for developing ISO 11783-6 graphical user interfaces. The editor is developed in the Automation technology laboratory at Helsinki University of Technology as a part of the Farmix project. PoolEdit is written in the Java programming language. The editor implements a multiple document interface and it has been tested on both Windows and Linux operating systems.
PoolEdit is designed for graphically composing entire GUIs or object pools as they are called in the standard. Graphical user interfaces can be build from basic GUI elements or from composite GUI elements. The designer can create new composite GUI elements and place them in component repositories for future use.
PoolEdit contains small programs or wizards that are used for generating more complex composite objects.
Graphical User Interface Objects
The ISO 11783-6 standard defines a set of graphical user interface objects which are the basic building blocks of ISOBUS GUIs. PoolEdit assumes some familiarity with the ISO 11783 standard.
XML File Format
The XML file format follows closely the naming conventions of the ISO 11783-6 standard. For example the standards defines a class called WorkingSet which has a field called background_colour. These are denoted by a <WorkingSet> tag and a background_colour attribute in the XML file. This is the same approach taken in the IsoAgLib system by Achim Spangler and Martin Wodok. However, the PoolEdit XML format and IsoAgLib format are not completely compatible. The main difference is that IsoAgLib uses <include_object> tags and reference attributes for referencing other object, while in PoolEdit format all references are made with <include_object> tags.
Below is a short example of the generated XML code.
<?xml version="1.0" encoding="UTF-16"?><objectpool dimension="200" fix_bitmap_path="pool\" sk_height="32" sk_width="60" std_bitmap_path="pool\"> <workingset background_colour="228" id="1" name="workingset" selectable="yes"> <include_object block_col="0" block_font="" block_row="0" name="machineIconContainer" pos_x="16" pos_y="6"/> <include_object name="waitScreen" role="active_mask"/> </workingset> <datamask background_colour="203" id="100" name="mainScreen"> <include_object block_col="0" block_font="" block_row="0" name="maincontainer" pos_x="0" pos_y="0"/> <include_object block_col="0" block_font="" block_row="0" name="flagContainer" pos_x="0" pos_y="0"/> <include_object name="freesoftkeymask" role="soft_key_mask"/> </datamask> ... </objectpool>
The XML files have to be converted into a binary presentation before loading to a ISO 11783 Virtual Terminal.
Compile-time XML Parser
The XML files can be converter to a binary form and then included in the control application at compile-time. The problem with this approach is that the GUI definitions are much harder to manipulate in the binary form than in XML.
Run-time XML Parser
Another possibility is to include the XML file itself to the application and do the parsing at run-time just before loading the GUI to the virtual terminal. This way the GUI definitions can be manipulated in XML form.
Installation Instructions and Requirements
PoolEdit is a Java program. It requires Java Runtime Environment version 1.6 or later to run. For development Netbeans version 5.5 has been used. Java Runtime Environment and Netbeans can be downloaded from Sun.
Installation is very straightforward:
- Install Java (if not already installed)
- Unzip pooledit.zip
- Run pooledit.jar by double-clicking its icon or from the command prompt with command java -jar "pooledit.jar"
This program is licensed under GNU General Public License (GPL) version 3. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the GNU General Public License for more details.
User guide (PoolEditManual.pdf )
PoolEdit Embedded XML parser (pooleditparser.zip )