Automatic SIOC program generator for the IOCards Project


GenEX program automatically generates the fully compiled SIOC program code for various home built cockpits that connect to IOCards hardware. With GenEx, cockpit builders need not worry about SIOC programming and Project Magenta/FSUIPC offsets.  They simply need to enter their IOCards connection information in the provided excel input file and run GenEx, which will then generate compiled programs that work out-of-box with MSFS and Project Magenta for a variety of aircraft panels.  



·        Reads user entered input data (panel hardware to IOCards connections information) from a simple, easy to use excel spreadsheet file.

·        Automatically generates SIOC program source code file for a variety of aircraft panels

·        Automatically generates fully compiled SIOC binary program file, ready to be run with sioc.exe

·        Generates programs that work with Project Magenta out-of-box.  

·        Generates combined program file for multiple panels in a single step. (For example, you can generate a combined program for MCP and EFIS together)

·        Fully data driven. Program templates for currently unsupported aircraft types and their panels can be added without needing to change the original program.

·        Provides customizable logging with an option to generate a detailed debug output.



·        Though not a real limitation of the program itself, but currently only a limited set of aircraft panels are supported, as others need program templates. Builders are welcome to contribute their working programs to expand this current template base and help cover more aircraft panels.



Latest version of GenEx program is available for download from the software download section on the IOCards Project website


You may also download it from the project site on sourceforge at



·        This program is written in java and hence requires the java runtime environment (JRE) or JDK installed on your machine to run it. If you don't have java installed on your machine, you need to first download it from here: ( and install before proceeding. Note: from the above download page, you can either download just the JRE 5.0 only (comparatively smaller size) or full JDK 5.0 as you wish.

·        Also, you need access to a copy of Microsoft Excel for entering data into the input file.

·        IOCards SIOC software installed.


GenEx comes packaged as a zip file, called something like


Step 1) Extract this zip file ‘directly’ into the directory where you installed IOCards SIOC software earlier. 

Step 2) Verify the extraction. After this extraction, your original IOCards SIOC software directory should have one new file (sioc_compiler.exe) and one new directory (GenEx) added as a child under it.


For example,


If you have installed your IOCards SIOC software into a local directory called C:\program files\IOCards  (i.e., this is the directory where your sioc.exe program is), then you should extract the file directly into this directory: “C:\program files\IOCards”


Alternately, you may choose to extract the genex zip file into a temp directory first and copy the two components separately into IOCards software directory manually. Whatever the method you follow, bottom line is – at the end, sioc_compiler.exe file should be in the same directory as your sioc.exe program is and “GenEx” subdirectory should be created under the directory in which your sioc.exe program originally is.


This method of installation applies only if you have downloaded file standalone. In future, hopefully, GenEx comes bundled with the IOCards software. Then you don’t need to go through this additional inconvenience.


How to Run

After successfully installing GenEx (see Installation section below), go to the GenEx program directory (for example, C:\program files\IOCards \GenEx)


You should find the data input excel file called “sioc-genex.xls” in this directory.  Open it.


Simply follow the instructions provided on the very first worksheet in this file.


Basically, you first need to select your aircraft type and the panel(s) for which you want to generate the SIOC programs, and other information such as whether or not you use project magenta and the name of your GenEx generated output file.


Next, from the tabs (there is one for each panel) at the bottom, select the panel(s) and simply enter your hardware connection numbers in each function row as applicable for your aircraft type.


Save this file after you finish entering the input data.


Now is the time for magic J


Open a DOS shell and cd to the GenEx directory and just type GenEx at the prompt as shown below.


C:\program files\IOcards\GenEx> genex


This will generate the following 3 output files.

genex.log  -- Log file in the current directory

<your_output_filename>.txt file  -- SIOC program text file in the “output” subdirectory under genex directory

<your_output_filename>.ssi file  -- SIOC compiled program file in the “output” subdirectory under genex directory


 Note: At the time of writing this doc, output files are created in the “/output” subdirectory. However, this may change and these files may be created in the SIOC program directory (i.e., parent directory of genex subdir) instead.


GenEx is issued on under the GNU General Public License. Find an included copy of this license along with this distribution.



GenEx is built using Apache Velocity template engine and Andy Khan’s open source JExcelApi package.


Further Notes

GenEx supports additional command line options. For example, you can specify a different input excel file with –in option, and also supply output file name with –out option. If you supply output file name with the –out option, this name will be taken instead of the one specified in the excel file.


For example, if you run GenEx as shown below:


C:\program files\IOcards\GenEx> genex –in someinput.xls –out myoutput


This will cause GenEx to read ‘someinput.xls’ file instead of the default ‘sioc-genex.xls’ file from the current directory and generate output file named ‘myoutput’ (.txt and .ssi)


Also, you can instruct GenEx to write a detailed debug output into the log file (genex.log) by specifying “-debug” option.


To see all program options, type "genex -help" or for program information type "genex -info" at the command prompt.


If you run into any problems, check the log file first. Most typical problem is - you may be trying to generate programs for an aircraft type and panel that is not yet supported. The only reason for this lack of support is due to the unavailability of a good, tested program file from which we can create a template for GenEx. In that case, this is your chance to jump in and help J


Future Plans

            Depends on what the builder community wants J


About the Authors


GenEx is created by Srini Vanga ( Contact him at “projsri777 at yahoo dot com”.


IOCards and SIOC are the fruits of labor of Manolo Vélez at IOCards Project ( Manolo created the sioc_compiler.exe component for GenEx.