Table of Contents

a4simData.json File Format

The copy of this file located on Raspberry Pi at /home/pi/Documents/app/projects/XplaneA4HardwareSimAgent/a4simData.json is considered the official version. This copied occasionally to other places in the form of working copies.

Example

{
  "hardwareAgent": {
    "ip": "192.168.0.8",
    "port": 49200
  },
  "hardwareAgentClient": {
    "ip": "192.168.0.12",
    "port": 49190
  },
  "drefs": [
    {"name": "sim/flightmodel2/misc/AoA_angle_degrees",
      "hide": true,
      "datadirection": "out",
      "type": "float",
      "units": "degrees",
      "notes": "Angle of attack probe. Positive means aircraft nose is above 
        the flight path in aircraft coordinates.",
      "i2c": {
        "address": 42,
        "enabled": false,
        "simvalue": {
          "interpolationDatapoints": [
            0,
            15
          ]
        },
        "hardware": {
          "maptype": "linear",
          "interpolationDatapoints": [
            0,
            270
          ],
          "type": "small unsigned int"
        },
        "notes": "Bit 0: 0=Write, 1=Read",
        "register": "0x00"
      }
    }

General Dref Info

nameActual X-Plane Dref name
hideIf “false” it is as if it is not even here. To skip processing of missing hardware, for example.
datadirectionin” = this data flows in to X-Plane (e.g., Aileron input), “inNonZero” = flows to X-Plane only if not in the zero position (e.g., a trigger for speedbrake retract), “inNonZeroPerSecond” = flows to X-Plane only if not in the zero position (e.g., a momentary request to move toward a maximum), “out” = this data flows out from X-plane (e.g., an airpseed amount)
typeData type of Dref, e.g., “float, int, bool”
unitse.g., knots, degrees. Ignored by simulation
notesReference notes, because JSON doesn't provide comments, put free-form notes here, ignored by simulation
i2cI2C communications parameters and translation values

I2C Block

addressI2C channel, in decimal e.g., 39
enabledIf “true” values are processed normally, if “false, the value is not processed, but place for the data in the blocks transmitted/received via I2C remains present. To deactivate the Dref, use “hide” mentioned above.
simvalue : interpolationDatapointsNumeric array of values to be sent to or received by the simulator. Correspond to the values in hardware:interpoliationDatapoints. Need to match the quantity and order.
hardware : maptype One of “linear, “rphtSimpleLEDIndicator”, “same” - triggers type of translation
hardware : interpolationDatapointsNumeric array of values to be sent to or received by the hardware device.
hardware : type One of “unsigned byte”, “small unsigned int” (2 bytes), “one byte bool” (a byte with value 0 or 1) , “float” - the value to be sent to or received by the hardware device.
notesComments, ignored by simulation
registerI2C register, currently not implemented, ignored by simulation