OpenGPI (Open Generic Parameter Interface) is meant to be a generic configuration editor and was first developed for a few internal projects (HiFlow and OpenLB).
What does it offer for users?
Before OpenGPI was developed, users in other projects had to write configuration files by hand, without any help being provided. OpenGPI will guide you through changing your parameter settings by limiting dependent parameters to sensible ranges, offering usefull informations of your parameters or eliminating nonsensical combinations.
If you finished your parameter settings, you can save your changes in another XML-File. Later, you can run your executable directly in OpenGPI, using your choosen parameter settings. Start- and Stop-Buttons for your executable processes are included.
Choose a Makefile and click the Make-Button to compile your executable. After your executable process has been finished, you can choose one of your simulation files and let OpenGPI show your results, similar to a gif. Start- and Stop-Buttons are also included. Three options are available: “All” will show every image of your simulation folder, “Last image only” will show the latest image created by your executable, “Selected only” will show just your choosen image.
What does it offer for developers?
OpenGPI takes the often boring and tedious task of creating useful configuration interfaces and extracts this function in a program, thereby reducing development time. OpenGPI also supports those developers writing specifications for it with check scripts and validators to help in debugging. It has a fully specified XML Schema Description (XSD) to support it in this task, and to be extensible and easily editable with most common XML editors.
OpenGPI uses files named “descriptions” to create its interfaces. These descriptions consist of two basic elements: Blocks and keys. Blocks are just a way to organize the keys in sub-groups. Keys are the values which you want to edit in OpenGPI. To give you an impression of the syntax, let’s look at the most basic description file we can create: