How-to I/O Driver Editor

This How-to will explain how to create your own driver.

The I/O Driver Editor is technically referred to as IniFileEditor.exe

On this page:


  1. Creation and/or editing of generic drivers for ASCII input
    1. This data string connection can either be through standard RS232 format
    2. Or through network UDP
  2. Decoding of multiple systems from a single string
  3. Decoding of multiple strings on a single COM port
    1. For each string that needs to be decoded, a separate driver needs to be created

Adding the I/O Editor to the Console

In case you do not see the I/O Driver Editor in the bottom pane, you can add it with the following steps:

  • Right-click in the bottom pane and select "Add / Remove QPS Programs..."
  • Check the checkbox

Creating a driver

Delimited strings

  1. Under 'Type:' select 'Generic Input'
    Press the 'New' button to create a new file

  2. General Information
    1. Enter a name
    2. Define whether it will be decoded via Serial or UDP connection
    3. Select the system types you want to decode

  3. Set the Decoding Parameters
    1. String Parameters
      • Start characters
        • This is the identifier and indicates where QINSy should start decoding
      • Termination character
        • For most strings this is either a Line Feed (LF) or a Carriage Return (CR)
      • Separation character
        • This is often a ",": Comma
      • Minimum length
        • Minimum number of characters that is decoded
      • Maximum length
        • Maximum number of characters that is decoded

    2. Checksum parameters
      • In case there is a checksum at the end of a string, enabling this option will give you 4 methods of decoding it:
        • NMEA
        • Modulo
        • CRC16
        • CRC32

      For an explanantion of the various Methods, use the inline Help function of the I/O Driver Editor.

    3. Timetag parameters
      • In case the time in the string is in GPS time, a correction to UTC can be applied
      • The system date can also be used to decode the data

  4. Decoding Properties
    1. Observations
      • Each system type has its own list of observation types
        By clicking "Add"/"Remove" you'll be able to add/remove the observations that will be decoded

    2. Decode properties
      • Encoding: this can either be ASCII or the Sine of angle
      • Mask: for a position latitude message for example it can be written in several different ways:
        • Degree minutes seconds
        • Decimal degrees
        • Etc.
      • Field
        • If you use a separation character, this will define the fields.
      • Length: not applicable for delimited strings
      • Multiplication Factor: the observation will be multiplied by this value and the result will be used in QINSy
      • Maximum value: If it is more, it will not be decoded
      • Minimum value: If it is less, it will not be decoded
      • Observation name: This is the name you'll see in the template setup and online

Fixed length strings

For strings that have a fixed length, the steps of creating a driver are slightly different:

  1. Same as Delimited strings
  2. Same as Delimited strings
  3. Make sure to set the Separation character to None

  4. On the last page you can now define where you want to start decoding (Column) and how many characters the observation has (Length).

Adding the driver to the Template

The newly created driver can be found in the drivers list. The name will start with Generic and then the name you gave it.

For each system type you defined, you can select the driver. They should then all be able to connect to the same COM or UDP port.


In case you're modifying observation settings in the I/O Driver setup, you might need to remove it from your template and add it again.

We suggest to first check this online in the Observation Physics Display and if it is not recorded to re-add the driver.


The Observation Physics display will enable you to check if the observations are decoded correctly:

Storage location

If you want to use the drivers that you created on another PC, you'll need to copy them to the same directory on the other PC.


Since V8.18.1 we've added a button named 'Open directory' to the main display that directly brings you to the correct folder: