{
  "minbuild":"2026-03-24 00:00",
  "rtvars_right":[
    "supplyvoltage",
    "time",
    "logging",
    "logseq",
    "date",
    "mainfrequency",
    "can1rx",
    "can1errcount",
    "can1rxerr",
    "can2rx",
    "can2errcount",
    "can2rxerr"
  ],
  "rtgroups":{
    "can1rx":[
      "can1rx",
      "can1errcount",
      "can1rxerr",
      "can1src0",
      "can1src1",
      "can1src2",
      "can1src3",
      "can1src4",
      "can1src5",
      "can1src6",
      "can1src7",
      "can1src8",
      "can1src9",
      "can1src10",
      "can1src11",
      "can1src12",
      "can1src13",
      "can1src14",
      "can1src15",
      "can1src16",
      "can1src17",
      "can1src18",
      "can1src19",
      "can1src20",
      "can1src21",
      "can1src22",
      "can1src23",
      "can1src24",
      "can1src25",
      "can1src26",
      "can1src27",
      "can1src28",
      "can1src29",
      "can1src30",
      "can1src31"
    ],
    "can2rx":[
      "can2rx",
      "can2errcount",
      "can2rxerr",
      "can2src0",
      "can2src1",
      "can2src2",
      "can2src3",
      "can2src4",
      "can2src5",
      "can2src6",
      "can2src7",
      "can2src8",
      "can2src9",
      "can2src10",
      "can2src11",
      "can2src12",
      "can2src13",
      "can2src14",
      "can2src15",
      "can2src16",
      "can2src17",
      "can2src18",
      "can2src19",
      "can2src20",
      "can2src21",
      "can2src22",
      "can2src23",
      "can2src24",
      "can2src25",
      "can2src26",
      "can2src27",
      "can2src28",
      "can2src29",
      "can2src30",
      "can2src31"
    ],
    "intlogging":[
      "logging",
      "logseq",
      "logrecs",
      "logstatus"
    ],
    "analog":[
      "analog0",
      "analog1",
      "analog2",
      "analog3",
      "analog4",
      "analog5",
      "analog6",
      "analog7"
    ],
    "canscan":[
      "scan_running",
      "canscanaddr",
      "can1errcount",
      "can2errcount",
      "can1rx",
      "can2rx"
    ],
    "flipflop":[
      "flipflop1",
      "flipflop2",
      "flipflop3",
      "flipflop4",
      "flipflop5",
      "flipflop6",
      "flipflop7",
      "flipflop8"
    ],
    "gpcounters":[
      "count1",
      "count2",
      "count3",
      "count4"
    ],
    "bcd":[
      "bcd1",
      "bcd2",
      "bcd3",
      "bcd4"
    ],
    "gplatches":[
      "+gplatchinput1",
      "+gplatchaltinput1",
      "gplatch1",
      "+gplatchinput2",
      "+gplatchaltinput2",
      "gplatch2",
      "+gplatchinput3",
      "+gplatchaltinput3",
      "gplatch3",
      "+gplatchinput4",
      "+gplatchaltinput4",
      "gplatch4"
    ],
    "gpaccu":[
      "gpaccu1",
      "gpaccu2",
      "gpaccu3",
      "gpaccu4",
      "gpaccu5",
      "gpaccu6",
      "gpaccu7",
      "gpaccu8"
    ],
    "uservars":[
      "uservar1",
      "uservar2",
      "uservar3",
      "uservar4",
      "uservar5",
      "uservar6",
      "uservar7",
      "uservar8",
      "uservar9",
      "uservar10",
      "uservar11",
      "uservar12",
      "uservar13",
      "uservar14",
      "uservar15",
      "uservar16"
    ],
    "simplepwm":[
      "simplepwmdc1",
      "simplepwmf1",
      "simplepwmdc2",
      "simplepwmf2",
      "simplepwmdc3",
      "simplepwmf3",
      "simplepwmdc4",
      "simplepwmf4"
    ],
    "cankeypads":[
      "keypadstate1",
      "keypadstate2",
      "keypadstate3",
      "keypadstate4"
    ],
    "cankeypad1":[
      "keypadstate1",
      "keypad1.1",
      "keypad1.2",
      "keypad1.3",
      "keypad1.4",
      "keypad1.5",
      "keypad1.6",
      "keypad1.7",
      "keypad1.8",
      "keypad1.9",
      "keypad1.10",
      "keypad1.11",
      "keypad1.12",
      "keypad1.13",
      "keypad1.14",
      "keypad1.15"
    ],
    "cankeypad2":[
      "keypadstate2",
      "keypad2.1",
      "keypad2.2",
      "keypad2.3",
      "keypad2.4",
      "keypad2.5",
      "keypad2.6",
      "keypad2.7",
      "keypad2.8",
      "keypad2.9",
      "keypad2.10",
      "keypad2.11",
      "keypad2.12",
      "keypad2.13",
      "keypad2.14",
      "keypad2.15"
    ],
    "cankeypad3":[
      "keypadstate3",
      "keypad3.1",
      "keypad3.2",
      "keypad3.3",
      "keypad3.4",
      "keypad3.5",
      "keypad3.6",
      "keypad3.7",
      "keypad3.8",
      "keypad3.9",
      "keypad3.10",
      "keypad3.11",
      "keypad3.12",
      "keypad3.13",
      "keypad3.14",
      "keypad3.15"
    ],
    "cankeypad4":[
      "keypadstate4",
      "keypad4.1",
      "keypad4.2",
      "keypad4.3",
      "keypad4.4",
      "keypad4.5",
      "keypad4.6",
      "keypad4.7",
      "keypad4.8",
      "keypad4.9",
      "keypad4.10",
      "keypad4.11",
      "keypad4.12",
      "keypad4.13",
      "keypad4.14",
      "keypad4.15"
    ],
    "customtables":[
      "customtable1",
      "customtable2",
      "customtable3",
      "customtable4",
      "customtable5",
      "customtable6",
      "customtable7",
      "customtable8"
    ],
    "gppid":[
      "pwm1duty",
      "pwm1P",
      "pwm1I",
      "pwm1D",
      "+pwm1var",
      "pwm1sp",
      "pwm1error"
    ],
    "gppid2":[
      "pwm2duty",
      "pwm2P",
      "pwm2I",
      "pwm2D",
      "+pwm2var",
      "pwm2sp",
      "pwm2error"
    ],
    "gppid3":[
      "pwm3duty",
      "pwm3P",
      "pwm3I",
      "pwm3D",
      "+pwm3var",
      "pwm3sp",
      "pwm3error"
    ],
    "gppid4":[
      "pwm4duty",
      "pwm4P",
      "pwm4I",
      "pwm4D",
      "+pwm4var",
      "pwm4sp",
      "pwm4error"
    ]
  },
  "config":[
    {
      "name":"Internal data logging",
      "type":255,
      "context":"intlogging",
      "value":[
        {
          "name":"Internal logging enable",
          "id":"intlog_enable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Internal logging mode",
          "id":"sdlogmode",
          "type":3,
          "value":"Standard"
        },
        {
          "name":"Internal logging rate",
          "id":"sdloginterval",
          "applies":[
            "intlog_enable",
            "=",
            "Enabled"
          ],
          "value":50.000000
        },
        {
          "name":"Maximum number of log files to keep in memory",
          "id":"sdloggingmaxfiles",
          "value":0.000000
        },
        {
          "name":"Conditions to start logging",
          "type":255,
          "value":[
            {
              "name":"On delay",
              "id":"gpioondelay4",
              "value":0.000000
            },
            {
              "name":"Off delay",
              "id":"gpiooffdelay4",
              "value":0.000000
            },
            {
              "name":"Maximum on duration",
              "id":"gpiomaxduration4",
              "value":0.000000
            },
            {
              "name":"Variable 1",
              "id":"gpiocond1var4",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Condition 1",
              "type":3,
              "id":"gpiocond1type4",
              "value":">"
            },
            {
              "name":"Value 1",
              "id":"gpiocond1val4",
              "type":11,
              "value":[
                6000.000000
              ]
            },
            {
              "name":"Hysteresis 1",
              "id":"gpiocond1hyster4",
              "value":1000.000000
            },
            {
              "name":"Next condition",
              "type":7,
              "id":"gpiocond1and4",
              "value":"No other condition"
            },
            {
              "name":"Variable 2",
              "id":"gpiocond2var4",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Condition 2",
              "type":7,
              "id":"gpiocond2type4",
              "value":">"
            },
            {
              "name":"Value 2",
              "id":"gpiocond2val4",
              "type":11,
              "value":[
                60.000000
              ]
            },
            {
              "name":"Hysteresis 2",
              "id":"gpiocond2hyster4",
              "value":10.000000
            },
            {
              "name":"Next condition",
              "type":7,
              "id":"gpiocond2and4",
              "value":"AND"
            },
            {
              "name":"Variable 3",
              "id":"gpiocond3var4",
              "type":7,
              "value":"time"
            },
            {
              "name":"Condition 3",
              "type":7,
              "id":"gpiocond3type4",
              "value":"="
            },
            {
              "name":"Value 3",
              "id":"gpiocond3val4",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Hysteresis 3",
              "id":"gpiocond3hyster4",
              "value":0.000000
            }
          ]
        },
        {
          "name":"Maximum log file duration",
          "applies":[
            "intlog_enable",
            "=",
            "Enabled"
          ],
          "id":"maxloglength",
          "value":300.000000
        },
        {
          "name":"Log time after start conditions last met",
          "applies":[
            "intlog_enable",
            "=",
            "Enabled"
          ],
          "id":"minloglength",
          "value":0.000000
        },
        {
          "name":"Burst logging enable",
          "id":"logburstenable",
          "type":3,
          "applies":[
            "intlog_enable",
            "=",
            "Enabled"
          ],
          "value":"Disabled"
        },
        {
          "name":"Log burst rate",
          "id":"sdlogburstinterval",
          "applies":[
            "intlog_enable",
            "=",
            "Enabled",
            "logburstenable",
            "=",
            "Enabled"
          ],
          "value":100.000000
        },
        {
          "name":"Conditions to trigger burst logging",
          "type":255,
          "value":[
            {
              "name":"On delay",
              "id":"gpioondelay9",
              "value":0.000000
            },
            {
              "name":"Off delay",
              "id":"gpiooffdelay9",
              "value":10.000000
            },
            {
              "name":"Maximum on duration",
              "id":"gpiomaxduration9",
              "value":0.000000
            },
            {
              "name":"Variable 1",
              "id":"gpiocond1var9",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Condition 1",
              "type":3,
              "id":"gpiocond1type9",
              "value":">"
            },
            {
              "name":"Value 1",
              "id":"gpiocond1val9",
              "type":11,
              "value":[
                3000.000000
              ]
            },
            {
              "name":"Hysteresis 1",
              "id":"gpiocond1hyster9",
              "value":1000.000000
            },
            {
              "name":"Next condition",
              "type":7,
              "id":"gpiocond1and9",
              "value":"AND"
            },
            {
              "name":"Variable 2",
              "id":"gpiocond2var9",
              "type":7,
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":"const_zero"
            },
            {
              "name":"Condition 2",
              "type":7,
              "id":"gpiocond2type9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":">"
            },
            {
              "name":"Value 2",
              "id":"gpiocond2val9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "type":11,
              "value":[
                60.000000
              ]
            },
            {
              "name":"Hysteresis 2",
              "id":"gpiocond2hyster9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":10.000000
            },
            {
              "name":"Next condition",
              "type":7,
              "id":"gpiocond2and9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":"No other condition"
            },
            {
              "name":"Variable 3",
              "id":"gpiocond3var9",
              "type":7,
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition",
                "gpiocond2and9",
                "!=",
                "No other condition"
              ],
              "value":"time"
            },
            {
              "name":"Condition 3",
              "type":7,
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition",
                "gpiocond2and9",
                "!=",
                "No other condition"
              ],
              "id":"gpiocond3type9",
              "value":"="
            },
            {
              "name":"Value 3",
              "id":"gpiocond3val9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition",
                "gpiocond2and9",
                "!=",
                "No other condition"
              ],
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Hysteresis 3",
              "id":"gpiocond3hyster9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition",
                "gpiocond2and9",
                "!=",
                "No other condition"
              ],
              "value":0.000000
            }
          ]
        },
        {
          "name":"Structured logging mode",
          "id":"compactstructuredlog",
          "type":3,
          "applies":[
            "intlog_enable",
            "=",
            "Enabled",
            "sdlogmode",
            "=",
            "Structured log"
          ],
          "value":"Record all channels at lowest rate"
        },
        {
          "name":"Structured subset logging rates",
          "id":"prioritylograte",
          "type":5,
          "applies":[
            "intlog_enable",
            "=",
            "Enabled",
            "sdlogmode",
            "=",
            "Structured log"
          ],
          "xaxis":[
            "Group 1",
            "Group 2",
            "Group 3",
            "Group 4"
          ],
          "yaxis":[
            "Normal",
            "Burst mode"
          ],
          "value":[
            100.000000,
            200.000000,
            500.000000,
            1000.000000,
            100.000000,
            200.000000,
            500.000000,
            1000.000000
          ]
        },
        {
          "name":"Number of available log channels per group",
          "id":"logchanspergroup",
          "applies":[
            "intlog_enable",
            "=",
            "Enabled",
            "sdlogmode",
            "=",
            "Structured log"
          ],
          "value":16.000000
        },
        {
          "name":"Structured subset log channels",
          "id":"prioritylogchans",
          "type":5,
          "applies":[
            "intlog_enable",
            "=",
            "Enabled",
            "sdlogmode",
            "=",
            "Structured log"
          ],
          "xaxis":"prioritylograte",
          "yaxis":[
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            21,
            22,
            23,
            24,
            25,
            26,
            27,
            28,
            29,
            30,
            31
          ],
          "value":[
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero",
            "const_zero"
          ]
        }
      ]
    },
    {
      "name":"Sensor inputs",
      "type":255,
      "context":"analog",
      "value":[
        {
          "name":"Analog inputs",
          "context":"analog",
          "type":255,
          "value":[
            {
              "name":"Analog input smoothing",
              "type":255,
              "value":[
                {
                  "name":"analog0 low pass rate",
                  "id":"analogfilter0",
                  "value":98.999250
                },
                {
                  "name":"analog1 low pass rate",
                  "id":"analogfilter1",
                  "value":98.999250
                },
                {
                  "name":"analog2 low pass rate",
                  "id":"analogfilter2",
                  "value":99.499778
                },
                {
                  "name":"analog3 low pass rate",
                  "id":"analogfilter3",
                  "value":99.499778
                },
                {
                  "name":"analog4 low pass rate",
                  "id":"analogfilter4",
                  "value":98.999250
                },
                {
                  "name":"analog5 low pass rate",
                  "id":"analogfilter5",
                  "value":98.999250
                },
                {
                  "name":"analog6 low pass rate",
                  "id":"analogfilter6",
                  "value":98.999250
                },
                {
                  "name":"analog7 low pass rate",
                  "id":"analogfilter7",
                  "value":98.999250
                }
              ]
            }
          ]
        },
        {
          "name":"Frequency inputs",
          "type":255,
          "value":[
            {
              "name":"Individual wheel speeds",
              "type":255,
              "value":[
                {
                  "name":"Front left wheel speed source",
                  "id":"vssmode_fl",
                  "type":3,
                  "value":"Other"
                },
                {
                  "name":"Front left wheel speed source if other",
                  "id":"vsssource_fl",
                  "type":7,
                  "applies":[
                    "vssmode_fl",
                    "=",
                    "Other"
                  ],
                  "value":"const_zero"
                },
                {
                  "name":"Front left wheel speed sensor pulses per kilometre",
                  "applies":[
                    "vssmode_fl",
                    "!=",
                    "Other"
                  ],
                  "id":"ppkm_fl",
                  "value":4000.000000
                },
                {
                  "name":"Front right wheel speed source",
                  "id":"vssmode_fr",
                  "type":3,
                  "value":"Other"
                },
                {
                  "name":"Front right wheel speed source if other",
                  "id":"vsssource_fr",
                  "type":7,
                  "applies":[
                    "vssmode_fr",
                    "=",
                    "Other"
                  ],
                  "value":"const_zero"
                },
                {
                  "name":"Front right wheel speed sensor pulses per kilometre",
                  "applies":[
                    "vssmode_fr",
                    "!=",
                    "Other"
                  ],
                  "id":"ppkm_fr",
                  "value":4000.000000
                },
                {
                  "name":"Rear left wheel speed source",
                  "id":"vssmode_rl",
                  "type":3,
                  "value":"Other"
                },
                {
                  "name":"Rear left wheel speed source if other",
                  "id":"vsssource_rl",
                  "type":7,
                  "applies":[
                    "vssmode_rl",
                    "=",
                    "Other"
                  ],
                  "value":"const_zero"
                },
                {
                  "name":"Rear left wheel speed sensor pulses per kilometre",
                  "applies":[
                    "vssmode_rl",
                    "!=",
                    "Other"
                  ],
                  "id":"ppkm_rl",
                  "value":4000.000000
                },
                {
                  "name":"Rear right wheel speed source",
                  "id":"vssmode_rr",
                  "type":3,
                  "value":"Other"
                },
                {
                  "name":"Rear right wheel speed source if other",
                  "id":"vsssource_rr",
                  "type":7,
                  "applies":[
                    "vssmode_rr",
                    "=",
                    "Other"
                  ],
                  "value":"const_zero"
                },
                {
                  "name":"Rear right wheel speed sensor pulses per kilometre",
                  "applies":[
                    "vssmode_rr",
                    "!=",
                    "Other"
                  ],
                  "id":"ppkm_rr",
                  "value":4000.000000
                },
                {
                  "name":"Individual wheel speeds valid range",
                  "type":4,
                  "id":"vssvalidrange",
                  "value":[
                    1.000000,
                    500.000000
                  ]
                }
              ]
            },
            {
              "name":"Vehicle speed input select",
              "type":3,
              "id":"vssselect",
              "value":"Digital input 1"
            },
            {
              "name":"Vehicle speed source if other",
              "id":"roadspeedsrc",
              "type":7,
              "value":"can1src1"
            },
            {
              "name":"Vehicle speed for test mode",
              "id":"testroadspeed",
              "value":100.000000
            },
            {
              "name":"VSS pulses per kilometre",
              "id":"vssppkm",
              "type":0,
              "value":2000.000000
            },
            {
              "name":"Undriven axle speed input select",
              "type":3,
              "id":"vssselect2",
              "value":"Other"
            },
            {
              "name":"Undriven axle speed source if other",
              "id":"vssvarpicker2",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Engine speed input select",
              "id":"tachinselect",
              "type":3,
              "value":"Digital input 2"
            },
            {
              "name":"Engine speed source if other",
              "id":"enginespeedsrc",
              "type":7,
              "value":"can1src0"
            },
            {
              "name":"Engine speed for test mode",
              "id":"testenginespeed",
              "value":3000.000000
            },
            {
              "name":"Engine speed input cylinder count",
              "id":"tachinputcylcount",
              "value":8.000000
            }
          ]
        },
        {
          "name":"Accelerator pedal position sensor",
          "type":255,
          "value":[
            {
              "name":"Accelerator pedal position input",
              "id":"appsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Accelerator pedal position input range",
              "id":"appcal",
              "type":5,
              "xaxis":[
                "0%",
                "100%"
              ],
              "value":[
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Manifold absolute pressure sensor",
          "type":255,
          "value":[
            {
              "name":"Manifold absolute pressure input",
              "id":"mapsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Manifold absolute pressure input range",
              "id":"mapvoltrange",
              "type":4,
              "value":[
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Manifold absolute pressure calibration",
              "id":"mapcal",
              "type":5,
              "xaxis":"mapvoltrange",
              "value":[
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Engine coolant temperature sensor",
          "context":"coolanttemp",
          "type":255,
          "value":[
            {
              "name":"Engine coolant temperature sensor input",
              "id":"coolanttempsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Engine coolant temperature transfer function breakpoint count",
              "id":"coolanttempbpcount",
              "value":16.000000
            },
            {
              "name":"Engine coolant temperature sensor voltage breakpoints",
              "id":"coolanttempvoltages",
              "type":4,
              "value":[
                5.000000,
                4.000000,
                3.000000,
                3.000000,
                2.000000,
                2.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Engine coolant temperature sensor values",
              "id":"coolanttempvalues",
              "type":5,
              "xaxis":"coolanttempvoltages",
              "value":[
                -40.000000,
                -10.000000,
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                60.000000,
                70.000000,
                80.000000,
                90.000000,
                100.000000,
                110.000000,
                120.000000,
                130.000000
              ]
            }
          ]
        },
        {
          "name":"Oil temperature sensor",
          "context":"oiltemp",
          "type":255,
          "value":[
            {
              "name":"Oil temperature sensor input",
              "id":"oiltempsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Oil temperature transfer function breakpoint count",
              "id":"oiltempbpcount",
              "value":16.000000
            },
            {
              "name":"Oil temperature sensor voltage breakpoints",
              "id":"oiltempvoltages",
              "type":4,
              "value":[
                5.000000,
                4.000000,
                3.000000,
                3.000000,
                2.000000,
                2.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Oil temperature sensor values",
              "id":"oiltempvalues",
              "type":5,
              "xaxis":"oiltempvoltages",
              "value":[
                -40.000000,
                -10.000000,
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                60.000000,
                70.000000,
                80.000000,
                90.000000,
                100.000000,
                110.000000,
                120.000000,
                130.000000
              ]
            }
          ]
        },
        {
          "name":"Transmission temperature sensor",
          "context":"transtemp",
          "type":255,
          "value":[
            {
              "name":"Transmission temperature sensor input",
              "id":"transtempsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Transmission temperature transfer function breakpoint count",
              "id":"transtempbpcount",
              "value":16.000000
            },
            {
              "name":"Transmission temperature sensor voltage breakpoints",
              "id":"transtempvoltages",
              "type":4,
              "value":[
                5.000000,
                4.000000,
                3.000000,
                3.000000,
                2.000000,
                2.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Transmission temperature sensor values",
              "id":"transtempvalues",
              "type":5,
              "xaxis":"transtempvoltages",
              "value":[
                -40.000000,
                -10.000000,
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                60.000000,
                70.000000,
                80.000000,
                90.000000,
                100.000000,
                110.000000,
                120.000000,
                130.000000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Inputs\/outputs",
      "context":"io",
      "type":255,
      "value":[
        {
          "name":"Output function association",
          "type":255,
          "value":[
            {
              "name":"Output 1 function",
              "type":3,
              "id":"output.0",
              "value":"Disabled"
            },
            {
              "name":"Output 2 function",
              "id":"output.1",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 3 function",
              "id":"output.2",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 4 function",
              "id":"output.3",
              "type":3,
              "value":"Disabled"
            }
          ]
        },
        {
          "name":"Digital inputs",
          "type":255,
          "value":[
            {
              "name":"Digital input 1",
              "type":255,
              "value":[
                {
                  "name":"Function",
                  "id":"din1function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Capture edge",
                  "id":"din1rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Filter period",
                  "id":"din1filter",
                  "value":0.100000
                },
                {
                  "name":"Low pass rate",
                  "id":"freqfilter1",
                  "value":50.000000
                },
                {
                  "name":"Hold off fraction",
                  "id":"din1holdoff",
                  "value":0.000000
                },
                {
                  "name":"Pulses skipped in period",
                  "id":"din1skip",
                  "value":0.000000
                },
                {
                  "name":"Maximum interval",
                  "id":"din1maxinterval",
                  "value":500.000000
                }
              ]
            },
            {
              "name":"Digital input 2",
              "type":255,
              "value":[
                {
                  "name":"Function",
                  "id":"din2function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Capture edge",
                  "id":"din2rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Filter period",
                  "id":"din2filter",
                  "value":0.100000
                },
                {
                  "name":"Low pass rate",
                  "id":"freqfilter2",
                  "value":50.000000
                },
                {
                  "name":"Hold off fraction",
                  "id":"din2holdoff",
                  "value":0.000000
                },
                {
                  "name":"Pulses skipped in period",
                  "id":"din2skip",
                  "value":0.000000
                },
                {
                  "name":"Maximum interval",
                  "id":"din2maxinterval",
                  "value":500.000000
                }
              ]
            },
            {
              "name":"Digital input 3",
              "type":255,
              "value":[
                {
                  "name":"Function",
                  "id":"din3function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Capture edge",
                  "id":"din3rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Filter period",
                  "id":"din3filter",
                  "value":0.100000
                },
                {
                  "name":"Low pass rate",
                  "id":"freqfilter3",
                  "value":50.000000
                },
                {
                  "name":"Hold off fraction",
                  "id":"din3holdoff",
                  "value":0.000000
                },
                {
                  "name":"Pulses skipped in period",
                  "id":"din3skip",
                  "value":0.000000
                },
                {
                  "name":"Maximum interval",
                  "id":"din3maxinterval",
                  "value":500.000000
                }
              ]
            },
            {
              "name":"Digital input 4",
              "type":255,
              "value":[
                {
                  "name":"Function",
                  "id":"din4function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Capture edge",
                  "id":"din4rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Filter period",
                  "id":"din4filter",
                  "value":0.100000
                },
                {
                  "name":"Low pass rate",
                  "id":"freqfilter4",
                  "value":50.000000
                },
                {
                  "name":"Hold off fraction",
                  "id":"din4holdoff",
                  "value":0.000000
                },
                {
                  "name":"Pulses skipped in period",
                  "id":"din4skip",
                  "value":0.000000
                },
                {
                  "name":"Maximum interval",
                  "id":"din4maxinterval",
                  "value":500.000000
                }
              ]
            },
            {
              "name":"Analog inputs as digital inputs",
              "type":255,
              "value":[
                {
                  "name":"High threshold voltage",
                  "id":"analog_high",
                  "value":2.500608
                },
                {
                  "name":"Low threshold voltage",
                  "id":"analog_low",
                  "value":0.999999
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"User defined functions",
      "type":255,
      "value":[
        {
          "name":"General purpose logic",
          "type":255,
          "value":[
            {
              "name":"General purpose logic 1",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr0",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay0",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay0",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration0",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var0",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type0",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val0",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster0",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and0",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var0",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type0",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val0",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster0",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and0",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition",
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var0",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition",
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type0",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition",
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val0",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition",
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster0",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 2",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr1",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay1",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay1",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration1",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var1",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type1",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val1",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster1",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and1",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var1",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type1",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val1",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster1",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and1",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var1",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type1",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val1",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster1",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 3",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr2",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay2",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay2",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration2",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var2",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type2",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val2",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster2",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and2",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var2",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type2",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val2",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster2",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and2",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition",
                    "gpiocond2and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var2",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition",
                    "gpiocond2and2",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type2",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition",
                    "gpiocond2and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val2",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and2",
                    "!=",
                    "No other condition",
                    "gpiocond2and2",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster2",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 4",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr3",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay3",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay3",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration3",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var3",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type3",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val3",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster3",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and3",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var3",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type3",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val3",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster3",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and3",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition",
                    "gpiocond2and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var3",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition",
                    "gpiocond2and3",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type3",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition",
                    "gpiocond2and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val3",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and3",
                    "!=",
                    "No other condition",
                    "gpiocond2and3",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster3",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 5",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr5",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay5",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay5",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration5",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var5",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type5",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val5",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster5",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and5",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var5",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type5",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val5",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster5",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and5",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition",
                    "gpiocond2and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var5",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition",
                    "gpiocond2and5",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type5",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition",
                    "gpiocond2and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val5",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and5",
                    "!=",
                    "No other condition",
                    "gpiocond2and5",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster5",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 6",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr6",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay6",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay6",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration6",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var6",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type6",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val6",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster6",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and6",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var6",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type6",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val6",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster6",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and6",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition",
                    "gpiocond2and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var6",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition",
                    "gpiocond2and6",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type6",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition",
                    "gpiocond2and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val6",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and6",
                    "!=",
                    "No other condition",
                    "gpiocond2and6",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster6",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 7",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr7",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay7",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay7",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration7",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var7",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type7",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val7",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster7",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and7",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var7",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type7",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val7",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster7",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and7",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition",
                    "gpiocond2and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var7",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition",
                    "gpiocond2and7",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type7",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition",
                    "gpiocond2and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val7",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and7",
                    "!=",
                    "No other condition",
                    "gpiocond2and7",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster7",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 8",
              "type":255,
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr8",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay8",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay8",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration8",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var8",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type8",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val8",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster8",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and8",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var8",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type8",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val8",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster8",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and8",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition",
                    "gpiocond2and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var8",
                  "type":7,
                  "value":"time"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition",
                    "gpiocond2and8",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type8",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition",
                    "gpiocond2and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val8",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and8",
                    "!=",
                    "No other condition",
                    "gpiocond2and8",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster8",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 9",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr10",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay10",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay10",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration10",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var10",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type10",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val10",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster10",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and10",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var10",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type10",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val10",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster10",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and10",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition",
                    "gpiocond2and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var10",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition",
                    "gpiocond2and10",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type10",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition",
                    "gpiocond2and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val10",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition",
                    "gpiocond2and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster10",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 10",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr11",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay11",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay11",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration11",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var11",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type11",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val11",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster11",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and11",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var11",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type11",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val11",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster11",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and11",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition",
                    "gpiocond2and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var11",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition",
                    "gpiocond2and11",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type11",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition",
                    "gpiocond2and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val11",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition",
                    "gpiocond2and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster11",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 11",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr12",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay12",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay12",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration12",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var12",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type12",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val12",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster12",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and12",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var12",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type12",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val12",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster12",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and12",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition",
                    "gpiocond2and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var12",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition",
                    "gpiocond2and12",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type12",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition",
                    "gpiocond2and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val12",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition",
                    "gpiocond2and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster12",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 12",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr13",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay13",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay13",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration13",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var13",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type13",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val13",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster13",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and13",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var13",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type13",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val13",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster13",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and13",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition",
                    "gpiocond2and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var13",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition",
                    "gpiocond2and13",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type13",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition",
                    "gpiocond2and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val13",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition",
                    "gpiocond2and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster13",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 13",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr14",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay14",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay14",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration14",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var14",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type14",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val14",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster14",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and14",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var14",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type14",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val14",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster14",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and14",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition",
                    "gpiocond2and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var14",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition",
                    "gpiocond2and14",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type14",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition",
                    "gpiocond2and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val14",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition",
                    "gpiocond2and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster14",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 14",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr15",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay15",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay15",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration15",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var15",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type15",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val15",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster15",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and15",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var15",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type15",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val15",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster15",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and15",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition",
                    "gpiocond2and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var15",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition",
                    "gpiocond2and15",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type15",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition",
                    "gpiocond2and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val15",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition",
                    "gpiocond2and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster15",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 15",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr16",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay16",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay16",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration16",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var16",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type16",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val16",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster16",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and16",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var16",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type16",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val16",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster16",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and16",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition",
                    "gpiocond2and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var16",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition",
                    "gpiocond2and16",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type16",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition",
                    "gpiocond2and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val16",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition",
                    "gpiocond2and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster16",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"General purpose logic 16",
              "type":255,
              "context":"gplogic",
              "value":[
                {
                  "name":"Description",
                  "id":"gpiodescr17",
                  "type":6,
                  "value":""
                },
                {
                  "name":"On delay",
                  "id":"gpioondelay17",
                  "value":0.000000
                },
                {
                  "name":"Off delay",
                  "id":"gpiooffdelay17",
                  "value":0.000000
                },
                {
                  "name":"Maximum on duration",
                  "id":"gpiomaxduration17",
                  "value":0.000000
                },
                {
                  "name":"Variable 1",
                  "id":"gpiocond1var17",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type17",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val17",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster17",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and17",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var17",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type17",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val17",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster17",
                  "value":0.000000
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and17",
                  "value":"No other condition"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition",
                    "gpiocond2and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var17",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 3",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition",
                    "gpiocond2and17",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond3type17",
                  "value":"="
                },
                {
                  "name":"Value 3",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition",
                    "gpiocond2and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3val17",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and17",
                    "!=",
                    "No other condition",
                    "gpiocond2and17",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster17",
                  "value":0.000000
                }
              ]
            }
          ]
        },
        {
          "name":"Flip flop logic (momentary switch inputs)",
          "context":"flipflop",
          "type":255,
          "value":[
            {
              "name":"Flip flop logic 1",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset0",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset0",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle0",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay0",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay0",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay0",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay0",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout0",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate0",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 2",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset1",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset1",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle1",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay1",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay1",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay1",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay1",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout1",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate1",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 3",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset2",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset2",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle2",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay2",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay2",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay2",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay2",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout2",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate2",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 4",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset3",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset3",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle3",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay3",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay3",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay3",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay3",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout3",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate3",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 5",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset4",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset4",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle4",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay4",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay4",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay4",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay4",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout4",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate4",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 6",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset5",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset5",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle5",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay5",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay5",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay5",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay5",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout5",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate5",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 7",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset6",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset6",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle6",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay6",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay6",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay6",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay6",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout6",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate6",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Flip flop logic 8",
              "type":255,
              "value":[
                {
                  "name":"Set input",
                  "type":3,
                  "id":"ffset7",
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "type":3,
                  "id":"ffreset7",
                  "value":"Always off"
                },
                {
                  "name":"Toggle input",
                  "type":3,
                  "id":"fftoggle7",
                  "value":"Always off"
                },
                {
                  "name":"Set delay",
                  "id":"ffsetdelay7",
                  "value":0.496000
                },
                {
                  "name":"Reset delay",
                  "id":"ffresetdelay7",
                  "value":0.496000
                },
                {
                  "name":"Toggle on delay",
                  "id":"fftoggleondelay7",
                  "value":0.496000
                },
                {
                  "name":"Toggle off delay",
                  "id":"fftoggleoffdelay7",
                  "value":0.496000
                },
                {
                  "name":"Inactivity timeout",
                  "id":"fftimeout7",
                  "value":0.000000
                },
                {
                  "name":"Initial state",
                  "id":"ffbootstate7",
                  "value":0.000000
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose counters",
          "type":255,
          "context":"gpcounters",
          "value":[
            {
              "name":"Counter 1",
              "type":255,
              "value":[
                {
                  "name":"Increment input",
                  "id":"upcountinput0",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Decrement input",
                  "id":"downcountinput0",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"countresetinput0",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"counterresetvalue0",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"countmaxvalue0",
                  "value":255.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"countmode0",
                  "type":3,
                  "value":"No overflows"
                },
                {
                  "name":"Debounce delay",
                  "id":"counterdebounce0",
                  "value":0.096000
                }
              ]
            },
            {
              "name":"Counter 2",
              "type":255,
              "value":[
                {
                  "name":"Increment input",
                  "id":"upcountinput1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Decrement input",
                  "id":"downcountinput1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"countresetinput1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"counterresetvalue1",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"countmaxvalue1",
                  "value":255.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"countmode1",
                  "type":3,
                  "value":"No overflows"
                },
                {
                  "name":"Debounce delay",
                  "id":"counterdebounce1",
                  "value":0.096000
                }
              ]
            },
            {
              "name":"Counter 3",
              "type":255,
              "value":[
                {
                  "name":"Increment input",
                  "id":"upcountinput2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Decrement input",
                  "id":"downcountinput2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"countresetinput2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"counterresetvalue2",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"countmaxvalue2",
                  "value":255.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"countmode2",
                  "type":3,
                  "value":"No overflows"
                },
                {
                  "name":"Debounce delay",
                  "id":"counterdebounce2",
                  "value":0.096000
                }
              ]
            },
            {
              "name":"Counter 4",
              "type":255,
              "value":[
                {
                  "name":"Increment input",
                  "id":"upcountinput3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Decrement input",
                  "id":"downcountinput3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"countresetinput3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"counterresetvalue3",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"countmaxvalue3",
                  "value":255.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"countmode3",
                  "type":3,
                  "value":"No overflows"
                },
                {
                  "name":"Debounce delay",
                  "id":"counterdebounce3",
                  "value":0.096000
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose latches",
          "type":255,
          "context":"gplatches",
          "value":[
            {
              "name":"General purpose latch 1",
              "type":255,
              "value":[
                {
                  "name":"Data source",
                  "id":"gplatchinput1",
                  "type":7,
                  "value":"enginespeed"
                },
                {
                  "name":"Set input",
                  "id":"gplatchset1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"gplatchreset1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"gplatchdefaultval1",
                  "value":0.000000
                },
                {
                  "name":"Set input mode",
                  "id":"latchmode1",
                  "type":3,
                  "value":"Set while active"
                },
                {
                  "name":"Alternate data source for multiplex mode",
                  "id":"gplatchaltinput1",
                  "type":7,
                  "value":"const_zero"
                }
              ]
            },
            {
              "name":"General purpose latch 2",
              "type":255,
              "value":[
                {
                  "name":"Data source",
                  "id":"gplatchinput2",
                  "type":7,
                  "value":"enginespeed"
                },
                {
                  "name":"Set input",
                  "id":"gplatchset2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"gplatchreset2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"gplatchdefaultval2",
                  "value":0.000000
                },
                {
                  "name":"Set input mode",
                  "id":"latchmode2",
                  "type":3,
                  "value":"Set while active"
                },
                {
                  "name":"Alternate data source for multiplex mode",
                  "id":"gplatchaltinput2",
                  "type":7,
                  "value":"const_zero"
                }
              ]
            },
            {
              "name":"General purpose latch 3",
              "type":255,
              "value":[
                {
                  "name":"Data source",
                  "id":"gplatchinput3",
                  "type":7,
                  "value":"enginespeed"
                },
                {
                  "name":"Set input",
                  "id":"gplatchset3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"gplatchreset3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"gplatchdefaultval3",
                  "value":0.000000
                },
                {
                  "name":"Set input mode",
                  "id":"latchmode3",
                  "type":3,
                  "value":"Set while active"
                },
                {
                  "name":"Alternate data source for multiplex mode",
                  "id":"gplatchaltinput3",
                  "type":7,
                  "value":"const_zero"
                }
              ]
            },
            {
              "name":"General purpose latch 4",
              "type":255,
              "value":[
                {
                  "name":"Data source",
                  "id":"gplatchinput4",
                  "type":7,
                  "value":"enginespeed"
                },
                {
                  "name":"Set input",
                  "id":"gplatchset4",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"gplatchreset4",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset value",
                  "id":"gplatchdefaultval4",
                  "value":0.000000
                },
                {
                  "name":"Set input mode",
                  "id":"latchmode4",
                  "type":3,
                  "value":"Set while active"
                },
                {
                  "name":"Alternate data source for multiplex mode",
                  "id":"gplatchaltinput4",
                  "type":7,
                  "value":"const_zero"
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose accumulators",
          "context":"gpaccu",
          "type":255,
          "value":[
            {
              "name":"General purpose accumulator 1",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval0",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate0",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear0",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc0",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset0",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax0",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow0",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 2",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval1",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate1",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear1",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc1",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset1",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax1",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow1",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 3",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval2",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate2",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear2",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc2",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset2",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax2",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow2",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 4",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval3",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate3",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear3",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc3",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset3",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax3",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow3",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 5",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval4",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate4",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear4",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc4",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset4",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax4",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow4",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 6",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval5",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate5",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear5",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc5",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset5",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax5",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow5",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 7",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval6",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate6",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear6",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc6",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset6",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax6",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow6",
                  "type":3,
                  "value":"Stop"
                }
              ]
            },
            {
              "name":"General purpose accumulator 8",
              "type":255,
              "value":[
                {
                  "name":"Service interval",
                  "id":"gpaccuinterval7",
                  "value":0.000000
                },
                {
                  "name":"Accumulate input",
                  "type":3,
                  "id":"gpaccuactivate7",
                  "value":"Always off"
                },
                {
                  "name":"Clear input",
                  "type":3,
                  "id":"gpaccuclear7",
                  "value":"Always off"
                },
                {
                  "name":"Value source",
                  "type":7,
                  "id":"gpaccusrc7",
                  "value":"const_zero"
                },
                {
                  "name":"Added constant",
                  "id":"gpaccuoffset7",
                  "value":0.000000
                },
                {
                  "name":"Maximum value",
                  "id":"gpaccumax7",
                  "value":65535.000000
                },
                {
                  "name":"Overflow behaviour",
                  "id":"gpaccu_overflow7",
                  "type":3,
                  "value":"Stop"
                }
              ]
            }
          ]
        },
        {
          "name":"Simple PWM 1",
          "type":255,
          "context":"simplepwm",
          "value":[
            {
              "name":"Update interval",
              "id":"simplepwmrefreshinterval1",
              "value":0.000000
            },
            {
              "name":"Output enable condition",
              "type":3,
              "id":"simplepwmenable1",
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0
              ],
              "value":"Always on"
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq1",
              "type":11,
              "value":[
                100.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty1",
              "type":11,
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Simple PWM 2",
          "type":255,
          "context":"simplepwm",
          "value":[
            {
              "name":"Update interval",
              "id":"simplepwmrefreshinterval2",
              "value":0.000000
            },
            {
              "name":"Output enable condition",
              "type":3,
              "id":"simplepwmenable2",
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0
              ],
              "value":"Always on"
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq2",
              "type":11,
              "value":[
                100.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty2",
              "type":11,
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Simple PWM 3",
          "type":255,
          "context":"simplepwm",
          "value":[
            {
              "name":"Update interval",
              "id":"simplepwmrefreshinterval3",
              "value":0.000000
            },
            {
              "name":"Output enable condition",
              "type":3,
              "id":"simplepwmenable3",
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0
              ],
              "value":"Always on"
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq3",
              "type":11,
              "value":[
                100.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty3",
              "type":11,
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Simple PWM 4",
          "type":255,
          "context":"simplepwm",
          "value":[
            {
              "name":"Update interval",
              "id":"simplepwmrefreshinterval4",
              "value":0.000000
            },
            {
              "name":"Output enable condition",
              "type":3,
              "id":"simplepwmenable4",
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0
              ],
              "value":"Always on"
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq4",
              "type":11,
              "value":[
                100.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty4",
              "type":11,
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PWM",
          "context":"pwm0",
          "type":255,
          "value":[
            {
              "name":"General purpose PWM enable",
              "id":"pwm0enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Short description",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0descr",
              "type":6,
              "value":"Fuel pump"
            },
            {
              "name":"PWM frequency",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0period",
              "value":500.000000
            },
            {
              "name":"Table selection",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"pwm0tabsel",
              "value":"Single table"
            },
            {
              "name":"Primary X axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryxvar",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Primary Y axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryyvar",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Primary X axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryxaxis",
              "type":4,
              "value":[
                200.000000,
                500.000000,
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000
              ]
            },
            {
              "name":"Primary Y axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryyaxis",
              "type":4,
              "value":[
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                70.000000,
                90.000000
              ]
            },
            {
              "name":"Duty cycle",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primary",
              "type":5,
              "xaxis":"pwm0primaryxaxis",
              "yaxis":"pwm0primaryyaxis",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Secondary X axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "!=",
                "Single table"
              ],
              "id":"pwm0secondaryxvar",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Secondary Y axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "!=",
                "Single table"
              ],
              "id":"pwm0secondaryyvar",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Secondary X axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "!=",
                "Single table"
              ],
              "id":"pwm0secondaryxaxis",
              "type":4,
              "value":[
                200.000000,
                500.000000,
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000
              ]
            },
            {
              "name":"Secondary Y axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "!=",
                "Single table"
              ],
              "id":"pwm0secondaryyaxis",
              "type":4,
              "value":[
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                70.000000,
                90.000000
              ]
            },
            {
              "name":"Secondary modifier",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "!=",
                "Single table"
              ],
              "id":"pwm0secondary",
              "type":5,
              "xaxis":"pwm0secondaryxaxis",
              "yaxis":"pwm0secondaryyaxis",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Ternaryary X axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "=",
                "Triple tables"
              ],
              "id":"pwm0ternaryxvar",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Ternary Y axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "=",
                "Triple tables"
              ],
              "id":"pwm0ternaryyvar",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Ternary X axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "=",
                "Triple tables"
              ],
              "id":"pwm0ternaryxaxis",
              "type":4,
              "value":[
                200.000000,
                500.000000,
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000
              ]
            },
            {
              "name":"Ternary Y axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "=",
                "Triple tables"
              ],
              "id":"pwm0ternaryyaxis",
              "type":4,
              "value":[
                0.000000,
                10.000000,
                30.000000,
                40.000000,
                50.000000,
                60.000000,
                70.000000,
                90.000000
              ]
            },
            {
              "name":"Ternary modifier",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled",
                "pwm0tabsel",
                "=",
                "Triple tables"
              ],
              "id":"pwm0ternary",
              "type":5,
              "xaxis":"pwm0ternaryxaxis",
              "yaxis":"pwm0ternaryyaxis",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PID control",
          "context":"gppid",
          "type":255,
          "value":[
            {
              "name":"PID service interval",
              "id":"pwm1pidserviceperiod",
              "value":0.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm1enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm1defaultduty",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"PWM frequency",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1period",
              "value":500.000000
            },
            {
              "name":"Bipolar mode",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm1polarised",
              "value":"Disabled"
            },
            {
              "name":"Control variable",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1var",
              "type":7,
              "value":"supplyvoltage"
            },
            {
              "name":"Set point",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1target",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "type":11,
              "id":"pwm1base",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Maximum duty",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1maxduty",
              "value":99.998780
            },
            {
              "name":"Minimum duty",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1minduty",
              "value":0.000000
            },
            {
              "name":"P factor",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Kp",
              "value":[
                0.200080
              ]
            },
            {
              "name":"I factor",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Ki",
              "value":[
                0.050020
              ]
            },
            {
              "name":"D factor",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Kd",
              "value":[
                0.100040
              ]
            },
            {
              "name":"Integrator max",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Imax",
              "value":[
                30.001160
              ]
            },
            {
              "name":"Integrator min",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Imin",
              "value":[
                -50.000916
              ]
            },
            {
              "name":"Setpoint low pass filter",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1targetfilter",
              "value":0.000000
            },
            {
              "name":"Setpoint slew rate limit enable",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm1slewlimit_enable",
              "value":"Disabled"
            },
            {
              "name":"Setpoint slew rate limit",
              "type":11,
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1slewlimit_enable",
                "=",
                "Enabled"
              ],
              "id":"pwm1slewlimit",
              "value":[
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Igplimit",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Input variable for general purpose duty limit",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igplimit",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm1gplimitsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty limit",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igplimit",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm1gplimitpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igplimit",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm1gplimit",
              "xaxis":"pwm1gplimitpts",
              "yaxis":[
                "Minimum",
                "Maximum"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty multiplier",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm1Igpmod",
              "value":"Disabled"
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igpmod",
                "=",
                "Enabled"
              ],
              "type":11,
              "id":"pwm1gpdutymod",
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PID control 2",
          "type":255,
          "context":"gppid2",
          "value":[
            {
              "name":"PID service interval",
              "id":"pwm2pidserviceperiod",
              "value":0.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm2enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm2defaultduty",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"PWM frequency",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2period",
              "value":500.000000
            },
            {
              "name":"Bipolar mode",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm2polarised",
              "value":"Disabled"
            },
            {
              "name":"Control variable",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2var",
              "type":7,
              "value":"supplyvoltage"
            },
            {
              "name":"Set point",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2target",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "type":11,
              "id":"pwm2base",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Maximum duty",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2maxduty",
              "value":99.998780
            },
            {
              "name":"Minimum duty",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2minduty",
              "value":0.000000
            },
            {
              "name":"P factor",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Kp",
              "type":11,
              "value":[
                0.200080
              ]
            },
            {
              "name":"I factor",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Ki",
              "type":11,
              "value":[
                0.050020
              ]
            },
            {
              "name":"D factor",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Kd",
              "type":11,
              "value":[
                0.100040
              ]
            },
            {
              "name":"Integrator max",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Imax",
              "type":11,
              "value":[
                30.001160
              ]
            },
            {
              "name":"Integrator min",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Imin",
              "type":11,
              "value":[
                -50.000916
              ]
            },
            {
              "name":"Setpoint low pass filter",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2targetfilter",
              "value":0.000000
            },
            {
              "name":"Setpoint slew rate limit enable",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm2slewlimit_enable",
              "value":"Disabled"
            },
            {
              "name":"Setpoint slew rate limit",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2slewlimit_enable",
                "=",
                "Enabled"
              ],
              "id":"pwm2slewlimit",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Igplimit",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Input variable for general purpose duty limit",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igplimit",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm2gplimitsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty limit",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igplimit",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm2gplimitpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igplimit",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm2gplimit",
              "xaxis":"pwm2gplimitpts",
              "yaxis":[
                "Minimum",
                "Maximum"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty multiplier",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm2Igpmod",
              "value":"Disabled"
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igpmod",
                "=",
                "Enabled"
              ],
              "type":11,
              "id":"pwm2gpdutymod",
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PID control 3",
          "type":255,
          "context":"gppid3",
          "value":[
            {
              "name":"PID service interval",
              "id":"pwm3pidserviceperiod",
              "value":0.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm3enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm3defaultduty",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"PWM frequency",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3period",
              "value":500.000000
            },
            {
              "name":"Bipolar mode",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm3polarised",
              "value":"Disabled"
            },
            {
              "name":"Control variable",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3var",
              "type":7,
              "value":"supplyvoltage"
            },
            {
              "name":"Set point",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3target",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "type":11,
              "id":"pwm3base",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Maximum duty",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3maxduty",
              "value":99.998780
            },
            {
              "name":"Minimum duty",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3minduty",
              "value":0.000000
            },
            {
              "name":"P factor",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Kp",
              "type":11,
              "value":[
                0.200080
              ]
            },
            {
              "name":"I factor",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Ki",
              "type":11,
              "value":[
                0.050020
              ]
            },
            {
              "name":"D factor",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Kd",
              "type":11,
              "value":[
                0.100040
              ]
            },
            {
              "name":"Integrator max",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Imax",
              "type":11,
              "value":[
                30.001160
              ]
            },
            {
              "name":"Integrator min",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Imin",
              "type":11,
              "value":[
                -50.000916
              ]
            },
            {
              "name":"Setpoint low pass filter",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3targetfilter",
              "value":0.000000
            },
            {
              "name":"Setpoint slew rate limit enable",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm3slewlimit_enable",
              "value":"Disabled"
            },
            {
              "name":"Setpoint slew rate limit",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0,
                "pwm3slewlimit_enable",
                "=",
                "Enabled"
              ],
              "id":"pwm3slewlimit",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm3Igplimit",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Input variable for general purpose duty limit",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0,
                "pwm3Igplimit",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm3gplimitsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty limit",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0,
                "pwm3Igplimit",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm3gplimitpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0,
                "pwm3Igplimit",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm3gplimit",
              "xaxis":"pwm3gplimitpts",
              "yaxis":[
                "Minimum",
                "Maximum"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty multiplier",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm3Igpmod",
              "value":"Disabled"
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm3pidserviceperiod",
                "!=",
                0,
                "pwm3Igpmod",
                "=",
                "Enabled"
              ],
              "type":11,
              "id":"pwm3gpdutymod",
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PID control 4",
          "type":255,
          "context":"gppid4",
          "value":[
            {
              "name":"PID service interval",
              "id":"pwm4pidserviceperiod",
              "value":0.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm4enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm4defaultduty",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"PWM frequency",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4period",
              "value":500.000000
            },
            {
              "name":"Bipolar mode",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm4polarised",
              "value":"Disabled"
            },
            {
              "name":"Control variable",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4var",
              "type":7,
              "value":"supplyvoltage"
            },
            {
              "name":"Set point",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4target",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "type":11,
              "id":"pwm4base",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Maximum duty",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4maxduty",
              "value":99.998780
            },
            {
              "name":"Minimum duty",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4minduty",
              "value":0.000000
            },
            {
              "name":"P factor",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Kp",
              "type":11,
              "value":[
                0.200080
              ]
            },
            {
              "name":"I factor",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Ki",
              "type":11,
              "value":[
                0.050020
              ]
            },
            {
              "name":"D factor",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Kd",
              "type":11,
              "value":[
                0.100040
              ]
            },
            {
              "name":"Integrator max",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Imax",
              "type":11,
              "value":[
                30.001160
              ]
            },
            {
              "name":"Integrator min",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Imin",
              "type":11,
              "value":[
                -50.000916
              ]
            },
            {
              "name":"Setpoint low pass filter",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4targetfilter",
              "value":0.000000
            },
            {
              "name":"Setpoint slew rate limit enable",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm4slewlimit_enable",
              "value":"Disabled"
            },
            {
              "name":"Setpoint slew rate limit",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0,
                "pwm4slewlimit_enable",
                "=",
                "Enabled"
              ],
              "id":"pwm4slewlimit",
              "type":11,
              "value":[
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm4Igplimit",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Input variable for general purpose duty limit",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0,
                "pwm4Igplimit",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm4gplimitsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty limit",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0,
                "pwm4Igplimit",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm4gplimitpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty limit",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0,
                "pwm4Igplimit",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm4gplimit",
              "xaxis":"pwm4gplimitpts",
              "yaxis":[
                "Minimum",
                "Maximum"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose duty multiplier",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0
              ],
              "type":3,
              "id":"pwm4Igpmod",
              "value":"Disabled"
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm4pidserviceperiod",
                "!=",
                0,
                "pwm4Igpmod",
                "=",
                "Enabled"
              ],
              "type":11,
              "id":"pwm4gpdutymod",
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Binary coded decimal input 1 sources",
          "context":"bcd",
          "id":"bcd1src",
          "type":5,
          "yaxis":[
            0,
            1,
            2,
            3
          ],
          "value":[
            "Digital in 1",
            "Digital in 1",
            "Digital in 1",
            "Digital in 1"
          ]
        },
        {
          "name":"Binary coded decimal input 2 sources",
          "context":"bcd",
          "id":"bcd2src",
          "type":5,
          "yaxis":[
            0,
            1,
            2,
            3
          ],
          "value":[
            "Digital in 1",
            "Digital in 1",
            "Digital in 1",
            "Digital in 1"
          ]
        },
        {
          "name":"Binary coded decimal input 3 sources",
          "context":"bcd",
          "id":"bcd3src",
          "type":5,
          "yaxis":[
            0,
            1,
            2,
            3
          ],
          "value":[
            "Digital in 1",
            "Digital in 1",
            "Digital in 1",
            "Digital in 1"
          ]
        },
        {
          "name":"Binary coded decimal input 4 sources",
          "context":"bcd",
          "id":"bcd4src",
          "type":5,
          "yaxis":[
            0,
            1,
            2,
            3
          ],
          "value":[
            "Digital in 1",
            "Digital in 1",
            "Digital in 1",
            "Digital in 1"
          ]
        },
        {
          "name":"Engine speed output cylinder count",
          "id":"tachoutcyls",
          "value":7.999676
        },
        {
          "name":"Vehicle speed output pulses per km",
          "id":"speedoutppkm",
          "value":4000.000000
        },
        {
          "name":"Crank trigger simulation",
          "type":255,
          "context":"triggersim",
          "value":[
            {
              "name":"Crank trigger tooth count",
              "id":"crankoutcount",
              "value":35.000000
            },
            {
              "id":"crankoutteeth",
              "type":5,
              "name":"Crank trigger output tooth definition",
              "xaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31,
                32,
                33,
                34,
                35,
                36,
                37,
                38,
                39,
                40,
                41,
                42,
                43,
                44,
                45,
                46,
                47,
                48,
                49,
                50,
                51,
                52,
                53,
                54,
                55,
                56,
                57,
                58,
                59,
                60,
                61,
                62,
                63,
                64,
                65,
                66,
                67,
                68,
                69,
                70,
                71,
                72,
                73,
                74,
                75,
                76,
                77,
                78,
                79,
                80,
                81,
                82,
                83,
                84,
                85,
                86,
                87,
                88,
                89,
                90,
                91,
                92,
                93,
                94,
                95,
                96,
                97,
                98,
                99,
                100,
                101,
                102,
                103,
                104,
                105,
                106,
                107,
                108,
                109,
                110,
                111,
                112,
                113,
                114,
                115,
                116,
                117,
                118,
                119,
                120,
                121,
                122,
                123,
                124,
                125,
                126,
                127
              ],
              "colwidth":1.200000,
              "yaxis":[
                "Period",
                "Low time"
              ],
              "value":[
                19.994520,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                9.997260,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630,
                4.998630
              ]
            },
            {
              "name":"Cam trigger tooth count",
              "id":"camoutcount",
              "value":0.000000
            },
            {
              "id":"camoutdelay",
              "name":"Angle of first cam tooth",
              "value":84.998682
            },
            {
              "id":"camoutteeth",
              "type":5,
              "name":"Cam trigger output tooth definition",
              "colwidth":1.200000,
              "xaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31,
                32,
                33,
                34,
                35,
                36,
                37,
                38,
                39,
                40,
                41,
                42,
                43,
                44,
                45,
                46,
                47,
                48,
                49,
                50,
                51,
                52,
                53,
                54,
                55,
                56,
                57,
                58,
                59,
                60,
                61,
                62,
                63,
                64,
                65,
                66,
                67,
                68,
                69,
                70,
                71,
                72,
                73,
                74,
                75,
                76,
                77,
                78,
                79,
                80,
                81,
                82,
                83,
                84,
                85,
                86,
                87,
                88,
                89,
                90,
                91,
                92,
                93,
                94,
                95,
                96,
                97,
                98,
                99,
                100,
                101,
                102,
                103,
                104,
                105,
                106,
                107,
                108,
                109,
                110,
                111,
                112,
                113,
                114,
                115,
                116,
                117,
                118,
                119,
                120,
                121,
                122,
                123,
                124,
                125,
                126,
                127
              ],
              "yaxis":[
                "Period",
                "Low time"
              ],
              "value":[
                719.967510,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                9.997260,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose transfer functions",
          "type":255,
          "context":"gptransfer",
          "value":[
            {
              "name":"General purpose transfer function 1",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 1 input variable",
                  "id":"gptransfer1src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 1 breakpoint count",
                  "id":"gptransfer1pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 1 breakpoints",
                  "type":4,
                  "id":"gptransfer1in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 1",
                  "type":5,
                  "id":"gptransfer1out",
                  "xaxis":"gptransfer1in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned1",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal1",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 2",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 2 input variable",
                  "id":"gptransfer2src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 2 breakpoint count",
                  "id":"gptransfer2pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 2 breakpoints",
                  "type":4,
                  "id":"gptransfer2in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 2",
                  "type":5,
                  "id":"gptransfer2out",
                  "xaxis":"gptransfer2in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned2",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal2",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 3",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 3 input variable",
                  "id":"gptransfer3src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 3 breakpoint count",
                  "id":"gptransfer3pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 3 breakpoints",
                  "type":4,
                  "id":"gptransfer3in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 3",
                  "type":5,
                  "id":"gptransfer3out",
                  "xaxis":"gptransfer3in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned3",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal3",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 4",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 4 input variable",
                  "id":"gptransfer4src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 4 breakpoint count",
                  "id":"gptransfer4pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 4 breakpoints",
                  "type":4,
                  "id":"gptransfer4in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 4",
                  "type":5,
                  "id":"gptransfer4out",
                  "xaxis":"gptransfer4in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned4",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal4",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 5",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 5 input variable",
                  "id":"gptransfer5src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 5 breakpoint count",
                  "id":"gptransfer5pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 5 breakpoints",
                  "type":4,
                  "id":"gptransfer5in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 5",
                  "type":5,
                  "id":"gptransfer5out",
                  "xaxis":"gptransfer5in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned5",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal5",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 6",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 6 input variable",
                  "id":"gptransfer6src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 6 breakpoint count",
                  "id":"gptransfer6pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 6 breakpoints",
                  "type":4,
                  "id":"gptransfer6in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 6",
                  "type":5,
                  "id":"gptransfer6out",
                  "xaxis":"gptransfer6in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned6",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal6",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 7",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 7 input variable",
                  "id":"gptransfer7src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 7 breakpoint count",
                  "id":"gptransfer7pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 7 breakpoints",
                  "type":4,
                  "id":"gptransfer7in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 7",
                  "type":5,
                  "id":"gptransfer7out",
                  "xaxis":"gptransfer7in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned7",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal7",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"General purpose transfer function 8",
              "type":255,
              "value":[
                {
                  "name":"General purpose transfer function 8 input variable",
                  "id":"gptransfer8src",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"General purpose transfer function 8 breakpoint count",
                  "id":"gptransfer8pts",
                  "value":16.000000
                },
                {
                  "name":"General purpose transfer function 8 breakpoints",
                  "type":4,
                  "id":"gptransfer8in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"General purpose transfer function 8",
                  "type":5,
                  "id":"gptransfer8out",
                  "xaxis":"gptransfer8in",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"customlookupsigned8",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"customlookupdecimal8",
                  "type":3,
                  "value":"0"
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose tables",
          "context":"customtables",
          "type":255,
          "value":[
            {
              "name":"User defined table 1",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable1",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned1",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal1",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 2",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable2",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned2",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal2",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 3",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable3",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned3",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal3",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 4",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable4",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned4",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal4",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 5",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable5",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned5",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal5",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 6",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable6",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned6",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal6",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 7",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable7",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned7",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal7",
                  "type":3,
                  "value":"0"
                }
              ]
            },
            {
              "name":"User defined table 8",
              "type":255,
              "value":[
                {
                  "name":"Table",
                  "id":"customflextable8",
                  "type":11,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Output type",
                  "id":"custom2dsigned8",
                  "type":3,
                  "value":"Unsigned"
                },
                {
                  "name":"Digits after the decimal point",
                  "id":"custom2ddecimal8",
                  "type":3,
                  "value":"0"
                }
              ]
            }
          ]
        },
        {
          "name":"User defined math channels",
          "type":255,
          "context":"uservars",
          "value":[
            {
              "name":"User defined math expression 1 computation interval",
              "id":"customformulainterval1",
              "value":0.000000
            },
            {
              "name":"User defined math expression 1",
              "id":"customformula1",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula1",
                    "customformula1compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 2 computation interval",
              "id":"customformulainterval2",
              "value":0.000000
            },
            {
              "name":"User defined math expression 2",
              "id":"customformula2",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula2",
                    "customformula2compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 3 computation interval",
              "id":"customformulainterval3",
              "value":0.000000
            },
            {
              "name":"User defined math expression 3",
              "id":"customformula3",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula3",
                    "customformula3compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 4 computation interval",
              "id":"customformulainterval4",
              "value":0.000000
            },
            {
              "name":"User defined math expression 4",
              "id":"customformula4",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula4",
                    "customformula4compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 5 computation interval",
              "id":"customformulainterval5",
              "value":0.000000
            },
            {
              "name":"User defined math expression 5",
              "id":"customformula5",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula5",
                    "customformula5compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 6 computation interval",
              "id":"customformulainterval6",
              "value":0.000000
            },
            {
              "name":"User defined math expression 6",
              "id":"customformula6",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula6",
                    "customformula6compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 7 computation interval",
              "id":"customformulainterval7",
              "value":0.000000
            },
            {
              "name":"User defined math expression 7",
              "id":"customformula7",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula7",
                    "customformula7compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 8 computation interval",
              "id":"customformulainterval8",
              "value":0.000000
            },
            {
              "name":"User defined math expression 8",
              "id":"customformula8",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula8",
                    "customformula8compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 9 computation interval",
              "id":"customformulainterval9",
              "value":0.000000
            },
            {
              "name":"User defined math expression 9",
              "id":"customformula9",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula9",
                    "customformula9compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 10 computation interval",
              "id":"customformulainterval10",
              "value":0.000000
            },
            {
              "name":"User defined math expression 10",
              "id":"customformula10",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula10",
                    "customformula10compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 11 computation interval",
              "id":"customformulainterval11",
              "value":0.000000
            },
            {
              "name":"User defined math expression 11",
              "id":"customformula11",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula11",
                    "customformula11compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 12 computation interval",
              "id":"customformulainterval12",
              "value":0.000000
            },
            {
              "name":"User defined math expression 12",
              "id":"customformula12",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula12",
                    "customformula12compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 13 computation interval",
              "id":"customformulainterval13",
              "value":0.000000
            },
            {
              "name":"User defined math expression 13",
              "id":"customformula13",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula13",
                    "customformula13compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 14 computation interval",
              "id":"customformulainterval14",
              "value":0.000000
            },
            {
              "name":"User defined math expression 14",
              "id":"customformula14",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula14",
                    "customformula14compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 15 computation interval",
              "id":"customformulainterval15",
              "value":0.000000
            },
            {
              "name":"User defined math expression 15",
              "id":"customformula15",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula15",
                    "customformula15compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 16 computation interval",
              "id":"customformulainterval16",
              "value":0.000000
            },
            {
              "name":"User defined math expression 16",
              "id":"customformula16",
              "mathmode":1,
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    2,
                    "customformula16",
                    "customformula16compiled"
                  ]
                ]
              ],
              "value":""
            }
          ]
        }
      ]
    },
    {
      "name":"CAN bus",
      "type":255,
      "value":[
        {
          "name":"CAN bus 1 data rate",
          "id":"can1mode",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"CAN bus 2 data rate",
          "id":"can2mode",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"CAN 1 to CAN 2 routing",
          "id":"canroutingmode1",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"CAN 2 to CAN 1 routing",
          "id":"canroutingmode2",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"CAN bus 1 broadcasting",
          "type":255,
          "value":[
            {
              "name":"CAN broadcasting enable",
              "applies":[
                "can1mode",
                "!=",
                "Disabled"
              ],
              "id":"can1bcenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"CAN broadcast content",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1bcenable",
                "=",
                "Enabled"
              ],
              "id":"can1txformat",
              "type":5,
              "xaxis":[
                0,
                2,
                4,
                6
              ],
              "yaxis":"can1txaddress",
              "scriptbutton":[
                "Export DBC file",
                [
                  [
                    "exportdbc",
                    "can1txaddress",
                    "can1txinterval",
                    "can1txformat",
                    "MPC1"
                  ]
                ]
              ],
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"CAN broadcast address",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1bcenable",
                "=",
                "Enabled"
              ],
              "id":"can1txaddress",
              "colwidth":2,
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN broadcast frequency",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1bcenable",
                "=",
                "Enabled"
              ],
              "id":"can1txinterval",
              "type":5,
              "yaxis":"can1txaddress",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            }
          ]
        },
        {
          "name":"CAN bus 1 custom broadcast",
          "type":255,
          "value":[
            {
              "name":"Custom CAN enable",
              "applies":[
                "can1mode",
                "!=",
                "Disabled"
              ],
              "id":"customcan1enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Broadcast slot count",
              "applies":[
                "can1mode",
                "!=",
                "Disabled"
              ],
              "id":"customcan1count",
              "value":16.000000
            },
            {
              "name":"Transmission frequency",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1interval",
              "type":5,
              "yaxis":"customcan1addr",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            },
            {
              "name":"CAN addresses",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1addr",
              "colwidth":2.000000,
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "scriptbutton2":[
                "Export DBC file",
                [
                  [
                    "exportcustomdbc",
                    "customcan1addr",
                    "customcan1interval",
                    "customcan1data",
                    "customcan1length",
                    "customcan1offsets",
                    "customcan1format",
                    "customcan1range",
                    "customcan1output",
                    "MPC1"
                  ]
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN frame lengths",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1txbytes",
              "type":5,
              "novisual":1,
              "yaxis":"customcan1addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000
              ]
            },
            {
              "name":"CAN frame filler bytes",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1filler",
              "type":5,
              "yaxis":"customcan1addr",
              "novisual":1,
              "xaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN packet item count",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1length",
              "type":5,
              "yaxis":"customcan1addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN item offsets",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1offsets",
              "type":5,
              "novisual":1,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN packet content",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1data",
              "type":5,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"Content format",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1format",
              "type":5,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"CAN item bit shift",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcan1bitshifts",
              "type":5,
              "novisual":1,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Content input range",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1range",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First low",
                "First high",
                "Second low",
                "Second high",
                "Third low",
                "Third high",
                "Fourth low",
                "Fourth high"
              ],
              "novisual":1,
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Content output range",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1output",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcan1addr",
              "xaxis":[
                "First low",
                "First high",
                "Second low",
                "Second high",
                "Third low",
                "Third high",
                "Fourth low",
                "Fourth high"
              ],
              "novisual":1,
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Transmit conditions",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "customcan1enable",
                "=",
                "Enabled"
              ],
              "id":"customcan1txconds",
              "type":5,
              "yaxis":"customcan1addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan1preview"
                ]
              ],
              "value":[
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1"
              ]
            }
          ]
        },
        {
          "name":"CAN bus 1 receiving",
          "context":"can1rx",
          "type":255,
          "value":[
            {
              "name":"CAN receiving enable",
              "applies":[
                "can1mode",
                "!=",
                "Disabled"
              ],
              "id":"can1rxenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Receive slot count",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxcount",
              "value":16.000000
            },
            {
              "name":"Descriptions",
              "id":"can1rxname",
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "value":[
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Variable aliases",
              "id":"can1rxalias",
              "type":5,
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "yaxis":"can1rxname",
              "value":[
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Format",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxdescr",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"Addresses",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxaddr",
              "colwidth":2,
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Byte offsets",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxoffset",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Bit width alterations",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxbits",
              "type":5,
              "yaxis":"can1rxname",
              "xaxis":[
                "Bit shift",
                "Bit width"
              ],
              "colwidth":2,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Input range",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxrange",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Translation",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxoutput",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Receive timeouts",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxtimeout",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Default values",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxdefault",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Low pass filter",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxfilter",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Multiplexing mode",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxmuxmode",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing"
              ]
            },
            {
              "name":"Multiplexing value",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"can1rxmux",
              "type":5,
              "yaxis":"can1rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"OBD2 service on CAN bus 1",
          "type":255,
          "context":"obd2",
          "value":[
            {
              "name":"OBD2 service enable",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"obd2enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"OBD2 broadcast ID enable",
              "applies":[
                "obd2enable",
                "=",
                "Enabled",
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled"
              ],
              "id":"obd2bcenable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"OBD2 listening ID",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdid",
              "value":2016.000000
            },
            {
              "name":"OBD2 response ID",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdresponseid",
              "value":2024.000000
            },
            {
              "name":"OBD2 VIN number reported",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdvin",
              "type":6,
              "value":"REALLYFASTRACECAR"
            },
            {
              "name":"OBD2 custom PID slot count",
              "id":"customobdcount",
              "value":8.000000
            },
            {
              "name":"OBD2 custom PIDs",
              "id":"customobdpid",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"OBD2 custom PID contents",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobddata",
              "type":5,
              "yaxis":"customobdpid",
              "colwidth":2,
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"OBD2 custom PID format",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobdformat",
              "type":5,
              "yaxis":"customobdpid",
              "colwidth":3,
              "value":[
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000",
                "INVALID: 255.000000"
              ]
            },
            {
              "name":"OBD2 custom PID input range",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobdrange",
              "type":5,
              "yaxis":"customobddata",
              "novisual":1,
              "xaxis":[
                "Low",
                "High"
              ],
              "colwidth":3,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"OBD2 custom PID output range",
              "applies":[
                "can1mode",
                "!=",
                "Disabled",
                "can1rxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobdoutput",
              "type":5,
              "yaxis":"customobddata",
              "novisual":1,
              "xaxis":[
                "Low",
                "High"
              ],
              "colwidth":3,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"CAN bus 2 broadcasting",
          "type":255,
          "value":[
            {
              "name":"CAN broadcasting enable",
              "applies":[
                "can2mode",
                "!=",
                "Disabled"
              ],
              "id":"can2bcenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"CAN broadcast content",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2bcenable",
                "=",
                "Enabled"
              ],
              "id":"can2txformat",
              "type":5,
              "xaxis":[
                0,
                2,
                4,
                6
              ],
              "yaxis":"can2txaddress",
              "scriptbutton":[
                "Export DBC file",
                [
                  [
                    "exportdbc",
                    "can2txaddress",
                    "can2txinterval",
                    "can2txformat",
                    "MPC1"
                  ]
                ]
              ],
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"CAN broadcast address",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2bcenable",
                "=",
                "Enabled"
              ],
              "id":"can2txaddress",
              "colwidth":2,
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN broadcast frequency",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2bcenable",
                "=",
                "Enabled"
              ],
              "id":"can2txinterval",
              "type":5,
              "yaxis":"can2txaddress",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            }
          ]
        },
        {
          "name":"CAN bus 2 custom broadcast",
          "type":255,
          "value":[
            {
              "name":"Custom CAN enable",
              "applies":[
                "can2mode",
                "!=",
                "Disabled"
              ],
              "id":"customcan2enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Broadcast slot count",
              "applies":[
                "can2mode",
                "!=",
                "Disabled"
              ],
              "id":"customcan2count",
              "value":16.000000
            },
            {
              "name":"Transmission frequency",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2interval",
              "type":5,
              "yaxis":"customcan2addr",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            },
            {
              "name":"CAN addresses",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2addr",
              "colwidth":2,
              "type":5,
              "novisual":1,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "scriptbutton2":[
                "Export DBC file",
                [
                  [
                    "exportcustomdbc",
                    "customcan2addr",
                    "customcan2interval",
                    "customcan2data",
                    "customcan2length",
                    "customcan2offsets",
                    "customcan2format",
                    "customcan2range",
                    "customcan2output",
                    "MPC1"
                  ]
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN frame lengths",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2txbytes",
              "type":5,
              "novisual":1,
              "yaxis":"customcan2addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000
              ]
            },
            {
              "name":"CAN frame filler bytes",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2filler",
              "type":5,
              "yaxis":"customcan2addr",
              "novisual":1,
              "xaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN packet item count",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2length",
              "type":5,
              "novisual":1,
              "yaxis":"customcan2addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN item offsets",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2offsets",
              "type":5,
              "novisual":1,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN packet content",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2data",
              "type":5,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"Content format",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2format",
              "type":5,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"CAN item bit shift",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2bitshifts",
              "type":5,
              "novisual":1,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First",
                "Second",
                "Third",
                "Fourth"
              ],
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Content input range",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2range",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First low",
                "First high",
                "Second low",
                "Second high",
                "Third low",
                "Third high",
                "Fourth low",
                "Fourth high"
              ],
              "novisual":1,
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Content output range",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2output",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcan2addr",
              "xaxis":[
                "First low",
                "First high",
                "Second low",
                "Second high",
                "Third low",
                "Third high",
                "Fourth low",
                "Fourth high"
              ],
              "novisual":1,
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Transmit conditions",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2txconds",
              "type":5,
              "yaxis":"customcan2addr",
              "scriptbutton":[
                "Launch preview tool",
                [
                  "library",
                  "ccan2preview"
                ]
              ],
              "value":[
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1",
                "Digital in 1"
              ]
            }
          ]
        },
        {
          "name":"CAN bus 2 receiving",
          "context":"can2rx",
          "type":255,
          "value":[
            {
              "name":"CAN receiving enable",
              "applies":[
                "can2mode",
                "!=",
                "Disabled"
              ],
              "id":"can2rxenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Receive slot count",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxcount",
              "value":16.000000
            },
            {
              "name":"Descriptions",
              "id":"can2rxname",
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ],
              "value":[
                "wbo2 left",
                "wbo2 right",
                "gps speed",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Variable aliases",
              "id":"can2rxalias",
              "type":5,
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "yaxis":"can2rxname",
              "value":[
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Format",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxdescr",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"Addresses",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxaddr",
              "colwidth":2,
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Byte offsets",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxoffset",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Bit width alterations",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxbits",
              "type":5,
              "yaxis":"can2rxname",
              "xaxis":[
                "Bit shift",
                "Bit width"
              ],
              "colwidth":2,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Input range",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxrange",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Translation",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxoutput",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Receive timeouts",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxtimeout",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Default values",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxdefault",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Low pass filter",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxfilter",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Multiplexing mode",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxmuxmode",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing",
                "No multiplexing"
              ]
            },
            {
              "name":"Multiplexing value",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxmux",
              "type":5,
              "yaxis":"can2rxname",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"CAN bus 1 ingress filter rules",
          "type":255,
          "value":[
            {
              "name":"CAN bus 1 routing IDs",
              "id":"can1filteraddr",
              "colwidth":2,
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN bus 1 routing actions",
              "id":"can1filteraction",
              "type":5,
              "yaxis":"can1filteraddr",
              "value":[
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass"
              ]
            },
            {
              "name":"CAN bus 1 routing conditions",
              "id":"can1filtercondition",
              "type":5,
              "yaxis":"can1filteraddr",
              "value":[
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on"
              ]
            },
            {
              "name":"CAN bus 1 alternative routing actions",
              "id":"can1filteraltaction",
              "type":5,
              "yaxis":"can1filteraddr",
              "value":[
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass"
              ]
            }
          ]
        },
        {
          "name":"CAN bus 2 ingress filter rules",
          "type":255,
          "value":[
            {
              "name":"CAN bus 2 routing IDs",
              "id":"can2filteraddr",
              "colwidth":2,
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN bus 2 routing actions",
              "id":"can2filteraction",
              "type":5,
              "yaxis":"can2filteraddr",
              "value":[
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass"
              ]
            },
            {
              "name":"CAN bus 2 routing conditions",
              "id":"can2filtercondition",
              "type":5,
              "yaxis":"can2filteraddr",
              "value":[
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on",
                "Always on"
              ]
            },
            {
              "name":"CAN bus 2 alternative routing actions",
              "id":"can2filteraltaction",
              "type":5,
              "yaxis":"can2filteraddr",
              "value":[
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass",
                "Pass"
              ]
            }
          ]
        },
        {
          "name":"CAN packet edit rules",
          "type":255,
          "value":[
            {
              "name":"Data types",
              "id":"caneditdatatypes",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "none",
                "bit"
              ]
            },
            {
              "name":"Data length cut off",
              "id":"caneditbitshort",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Offsets in CAN frame",
              "id":"caneditoffsets",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Replacement data source",
              "id":"caneditreplace",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"Multiplier",
              "id":"caneditmult",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Adder",
              "id":"caneditadder",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Bitwise AND",
              "id":"caneditbitand",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Bitwise OR",
              "id":"caneditbitor",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Range restriction",
              "id":"caneditrange",
              "type":5,
              "colwidth":1.500000,
              "xaxis":[
                "First low",
                "First high",
                "Second low",
                "Second high",
                "Third low",
                "Third high",
                "Fourth low",
                "Fourth high"
              ],
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "novisual":1,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Checksums",
              "id":"caneditchksum",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None"
              ]
            },
            {
              "name":"Checksum offset",
              "id":"caneditchksumadder",
              "type":5,
              "yaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"CAN transmit sequences",
          "type":255,
          "value":[
            {
              "name":"CAN sequence 1",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval1",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_1",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable1",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect1",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid1",
                  "colwidth":2,
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc1",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength1",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq1",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq1alt",
                  "applies":[
                    "canseqinterval1",
                    "!=",
                    0,
                    "canseqselect1",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom1",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 2",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval2",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_2",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq2",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq2alt",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0,
                    "canseqselect2",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom2",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 3",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval3",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval2",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_2",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq3",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq3alt",
                  "applies":[
                    "canseqinterval3",
                    "!=",
                    0,
                    "canseqselect3",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom3",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 4",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval4",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_4",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq4",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq4alt",
                  "applies":[
                    "canseqinterval4",
                    "!=",
                    0,
                    "canseqselect4",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom4",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 5",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval5",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_5",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq5",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq5alt",
                  "applies":[
                    "canseqinterval5",
                    "!=",
                    0,
                    "canseqselect5",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom5",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 6",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval6",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_6",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq6",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq6alt",
                  "applies":[
                    "canseqinterval6",
                    "!=",
                    0,
                    "canseqselect6",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom6",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 7",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval7",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_7",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq7",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq7alt",
                  "applies":[
                    "canseqinterval7",
                    "!=",
                    0,
                    "canseqselect7",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom7",
                  "value":255.000000
                }
              ]
            },
            {
              "name":"CAN sequence 8",
              "type":255,
              "value":[
                {
                  "name":"Transmit interval",
                  "id":"canseqinterval8",
                  "value":0.000000
                },
                {
                  "name":"Interface selection",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "id":"canseq_can2_8",
                  "type":3,
                  "value":"CAN 1"
                },
                {
                  "name":"Transmit enable condition",
                  "id":"canseqenable8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Alternate sequence select condition",
                  "id":"canseqselect8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"CAN packet ID",
                  "id":"canseqid8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "value":0.000000
                },
                {
                  "name":"CAN packet size",
                  "id":"canseqdlc8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "value":8.000000
                },
                {
                  "name":"CAN sequence length",
                  "id":"canseqlength8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "value":4.000000
                },
                {
                  "name":"CAN sequence values",
                  "id":"canseq8",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Alternate values",
                  "id":"canseq8alt",
                  "applies":[
                    "canseqinterval8",
                    "!=",
                    0,
                    "canseqselect8",
                    "!=",
                    "Always off"
                  ],
                  "type":5,
                  "xaxis":[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16
                  ],
                  "novisual":1,
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Populate with data definition",
                  "id":"canseqdatafrom8",
                  "value":255.000000
                }
              ]
            }
          ]
        },
        {
          "name":"CAN scan tools",
          "type":255,
          "context":"canscan",
          "value":[
            {
              "name":"CAN bus to run scan",
              "id":"canscanbus",
              "type":3,
              "value":"CAN 1"
            },
            {
              "name":"Scan start address",
              "id":"canscanstartaddr",
              "value":1.000000
            },
            {
              "name":"Scan end address",
              "id":"canscanendaddr",
              "value":1.000000
            },
            {
              "name":"Scan end trigger receive address",
              "id":"canscanstopaddr",
              "value":0.000000
            },
            {
              "name":"Packet transmit interval",
              "id":"canscaninterval",
              "value":10.000000
            },
            {
              "name":"Data length",
              "id":"canscanlength",
              "value":8.000000
            },
            {
              "name":"Scan packet content",
              "id":"canscancontent",
              "type":5,
              "novisual":1,
              "xaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Blink Marine CAN keypads",
          "type":255,
          "context":"cankeypads",
          "value":[
            {
              "name":"Blink Marine keypad interface",
              "id":"blinkkeypadenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Keypad 1",
              "type":255,
              "context":"cankeypad1",
              "value":[
                {
                  "name":"Keypad size",
                  "id":"blinkkeypadsize1",
                  "value":4.000000
                },
                {
                  "name":"Button modes",
                  "id":"blinkkeypad1buttonmodes",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Momentary",
                    "Momentary",
                    "Momentary",
                    "Momentary"
                  ]
                },
                {
                  "name":"Button auxiliary inputs",
                  "id":"blinkkeypad1buttonauxinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Reset",
                    "Set"
                  ],
                  "value":[
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off"
                  ]
                },
                {
                  "name":"Button light control inputs",
                  "id":"blinkkeypad1buttonauxlightinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1"
                  ]
                },
                {
                  "name":"Button light modes",
                  "id":"blinkkeypad1lightstates",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Off",
                    "On"
                  ],
                  "value":[
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off"
                  ]
                }
              ]
            },
            {
              "name":"Keypad 2",
              "type":255,
              "context":"cankeypad2",
              "value":[
                {
                  "name":"Keypad size",
                  "id":"blinkkeypadsize2",
                  "value":4.000000
                },
                {
                  "name":"Button modes",
                  "id":"blinkkeypad2buttonmodes",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Momentary",
                    "Momentary",
                    "Momentary",
                    "Momentary"
                  ]
                },
                {
                  "name":"Button auxiliary inputs",
                  "id":"blinkkeypad2buttonauxinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Reset",
                    "Set"
                  ],
                  "value":[
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off"
                  ]
                },
                {
                  "name":"Button light control inputs",
                  "id":"blinkkeypad2buttonauxlightinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1"
                  ]
                },
                {
                  "name":"Button light modes",
                  "id":"blinkkeypad2lightstates",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Off",
                    "On"
                  ],
                  "value":[
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off"
                  ]
                }
              ]
            },
            {
              "name":"Keypad 3",
              "type":255,
              "context":"cankeypad3",
              "value":[
                {
                  "name":"Keypad size",
                  "id":"blinkkeypadsize3",
                  "value":4.000000
                },
                {
                  "name":"Button modes",
                  "id":"blinkkeypad3buttonmodes",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Momentary",
                    "Momentary",
                    "Momentary",
                    "Momentary"
                  ]
                },
                {
                  "name":"Button auxiliary inputs",
                  "id":"blinkkeypad3buttonauxinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Reset",
                    "Set"
                  ],
                  "value":[
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off"
                  ]
                },
                {
                  "name":"Button light control inputs",
                  "id":"blinkkeypad3buttonauxlightinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1"
                  ]
                },
                {
                  "name":"Button light modes",
                  "id":"blinkkeypad3lightstates",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Off",
                    "On"
                  ],
                  "value":[
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off"
                  ]
                }
              ]
            },
            {
              "name":"Keypad 4",
              "type":255,
              "context":"cankeypad4",
              "value":[
                {
                  "name":"Keypad size",
                  "id":"blinkkeypadsize4",
                  "value":4.000000
                },
                {
                  "name":"Button modes",
                  "id":"blinkkeypad4buttonmodes",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Momentary",
                    "Momentary",
                    "Momentary",
                    "Momentary"
                  ]
                },
                {
                  "name":"Button auxiliary inputs",
                  "id":"blinkkeypad4buttonauxinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Reset",
                    "Set"
                  ],
                  "value":[
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off",
                    "Always off"
                  ]
                },
                {
                  "name":"Button light control inputs",
                  "id":"blinkkeypad4buttonauxlightinputs",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "value":[
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1",
                    "Digital in 1"
                  ]
                },
                {
                  "name":"Button light modes",
                  "id":"blinkkeypad4lightstates",
                  "type":5,
                  "yaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "xaxis":[
                    "Off",
                    "On"
                  ],
                  "value":[
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off",
                    "Off"
                  ]
                }
              ]
            },
            {
              "name":"Colour picker functions",
              "type":255,
              "value":[
                {
                  "name":"Colour picker function 1",
                  "id":"keypadcolourfunction1",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 2",
                  "id":"keypadcolourfunction2",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 3",
                  "id":"keypadcolourfunction3",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 4",
                  "id":"keypadcolourfunction4",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 5",
                  "id":"keypadcolourfunction5",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 6",
                  "id":"keypadcolourfunction6",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 7",
                  "id":"keypadcolourfunction7",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"Colour picker function 8",
                  "id":"keypadcolourfunction8",
                  "type":11,
                  "applies":[
                    "blinkkeypadenable",
                    "!=",
                    "Disabled"
                  ],
                  "value":[
                    0.000000
                  ]
                }
              ]
            },
            {
              "name":"Utility screen",
              "id":"blinkutility",
              "type":9,
              "layout":[
                {
                  "wid":"switchtoj1939",
                  "caption":"Switch to j1939 mode",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    0,
                    10
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "125kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "125kbit"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x615",
                        5,
                        "0x2b",
                        "0xff",
                        "0x20",
                        "1",
                        "1"
                      ]
                    ],
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "250kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "250kbit"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"enableheartbeat",
                  "caption":"Enable heartbeat",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    30,
                    10
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x75",
                        "0x01",
                        "100",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x37",
                        "0x02",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"switchtocanopen",
                  "caption":"Switch to CANopen mode",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    60,
                    10
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x80",
                        "0x00",
                        "0xFF ",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x37",
                        "0x02",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight0",
                  "caption":"Backlight off",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    0,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight10",
                  "caption":"Backlight 10%",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    30,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0x06",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight25",
                  "caption":"Backlight 25%",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    60,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0x10",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight50",
                  "caption":"Backlight 50%",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    90,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0x20",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight75",
                  "caption":"Backlight 75%",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    120,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0x30",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlight100",
                  "caption":"Backlight 100%",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    150,
                    20
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7b",
                        "0x3F",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightred",
                  "caption":"Backlight red",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    0,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x01",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightgreen",
                  "caption":"Backlight green",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    20,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x02",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightblue",
                  "caption":"Backlight blue",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    40,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x03",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightyellow",
                  "caption":"Backlight yellow",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    60,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x04",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightcyan",
                  "caption":"Backlight cyan",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    80,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x05",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightmagenta",
                  "caption":"Backlight magenta",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    100,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x06",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightwlb",
                  "caption":"Backlight white",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    120,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x07",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightao",
                  "caption":"Backlight amber",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    140,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x08",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"backlightyg",
                  "caption":"Backlight y\/g",
                  "size":[
                    20,
                    10
                  ],
                  "position":[
                    160,
                    30
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x7d",
                        "0x09",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"makekeypad1",
                  "caption":"Make keypad 1",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    0,
                    50
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2200",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x21",
                        "0x21",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2300",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x21",
                        "0x21",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2400",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x21",
                        "0x21",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"makekeypad2",
                  "caption":"Make keypad 2",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    30,
                    50
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x22",
                        "0x22",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2300",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x22",
                        "0x22",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2400",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x22",
                        "0x22",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"makekeypad3",
                  "caption":"Make keypad 3",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    60,
                    50
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x23",
                        "0x23",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2200",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x23",
                        "0x23",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2400",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x23",
                        "0x23",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"makekeypad4",
                  "caption":"Make keypad 4",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    90,
                    50
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x24",
                        "0x24",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2200",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x24",
                        "0x24",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2300",
                        8,
                        "0x04",
                        "0x1b",
                        "0x70",
                        "0x24",
                        "0x24",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"busselector",
                  "caption":"CAN bus 2",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    0,
                    0
                  ],
                  "type":"button",
                  "checkbox":true
                },
                {
                  "wid":"set500k",
                  "caption":"Set to 500k",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    40,
                    80
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "250kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "250kbit"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x6f",
                        "0x02",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "500kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "500kbit"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"set250k",
                  "caption":"Set to 250k",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    70,
                    80
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "500kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "500kbit"
                      ]
                    ],
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x6f",
                        "0x03",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ],
                    [
                      "if",
                      "widgetval(busselector) = 0",
                      [
                        "set",
                        "can1mode",
                        "250kbit"
                      ],
                      [
                        "set",
                        "can2mode",
                        "250kbit"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"lightshowoff",
                  "caption":"Startup light show off",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    0,
                    40
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x34",
                        "0",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"lightshowslow",
                  "caption":"Startup light show slow",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    30,
                    40
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x34",
                        "1",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "wid":"lightshowfast",
                  "caption":"Startup light show fast",
                  "size":[
                    30,
                    10
                  ],
                  "position":[
                    60,
                    40
                  ],
                  "type":"button",
                  "onclick":[
                    [
                      "rpc",
                      "canxmit",
                      [
                        "widgetval(busselector)",
                        "0x18EF2100",
                        8,
                        "0x04",
                        "0x1b",
                        "0x34",
                        "2",
                        "0xFF",
                        "0xFF",
                        "0xFF",
                        "0xFF"
                      ]
                    ]
                  ]
                },
                {
                  "size":[
                    170,
                    10
                  ],
                  "position":[
                    30,
                    0
                  ],
                  "type":"static",
                  "caption":"Make sure only one keypad is connected to the CAN network when using these utilities. If the keypad has been addressed as 2-4 it must be configured as keypad 1 prior to applying other settings, and then it can be changed back to whatever identifier it had."
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Custom strategies",
      "type":255,
      "userlevel":200,
      "value":[
        {
          "name":"User program code",
          "type":6,
          "id":"userprogramcode",
          "scriptbutton":[
            "Test compile",
            [
              [
                "updateconfig"
              ],
              [
                "compileuserprogram",
                2,
                "userprogramcode",
                "userprogram",
                "userpgmvalues",
                true
              ]
            ]
          ],
          "value":""
        },
        {
          "name":"User defined configuration variables",
          "type":6,
          "id":"userconftree",
          "scriptbutton":[
            "Apply",
            [
              [
                "updateconfig"
              ],
              [
                "applyuserconfdef",
                "userconftree",
                true
              ]
            ]
          ],
          "value":""
        },
        {
          "name":"User defined controller flash variables",
          "type":6,
          "id":"userconfdef",
          "scriptbutton":[
            "Apply",
            [
              [
                "updateconfig"
              ],
              [
                "applyuserecudef",
                "userconfdef",
                "userconf",
                true
              ]
            ]
          ],
          "value":""
        },
        {
          "name":"User program real time variables",
          "type":6,
          "id":"userrtdef",
          "scriptbutton":[
            "Apply",
            [
              [
                "updateconfig"
              ],
              [
                "applyuserrtdef",
                "userrtdef",
                "userpgmvalues",
                null,
                true
              ]
            ]
          ],
          "value":""
        }
      ]
    }
  ],
  "ticker":{
    "vars":[
      "supplyvoltage"
    ]
  },
  "definition":{
    "commsmode":"fastusb",
    "candumpcapable":2,
    "flextablerevision":1,
    "firmwarebuild":37,
    "defbuild":37,
    "signature":"MPC1 v1.31",
    "usbid":"Baldur's MPC1ECU",
    "enumerators":{
      "enum_moreless":[
        "=",
        "not =",
        ">",
        "<",
        "bit",
        "not bit"
      ],
      "enum_keypadledcolour":[
        "Off",
        "Red",
        "Green",
        "Blue",
        "Yellow",
        "Cyan",
        "Magenta",
        "White",
        "Amber",
        "Yellow\/green"
      ],
      "enum_keypadledcolourwithfunctions":[
        "Off",
        "Red",
        "Green",
        "Blue",
        "Yellow",
        "Cyan",
        "Magenta",
        "White",
        "Amber",
        "Yellow\/green",
        "Colour function 1",
        "Colour function 2",
        "Colour function 3",
        "Colour function 4",
        "Colour function 5",
        "Colour function 6",
        "Colour function 7",
        "Colour function 8"
      ],
      "enum_keypadmodes":[
        "Momentary",
        "Momentary light independent",
        "Toggle",
        "Non-volatile toggle"
      ],
      "enum_andor":[
        "No other condition",
        "AND",
        "OR"
      ],
      "enum_enabled":[
        "Disabled",
        "Enabled"
      ],
      "enum_onoff":[
        "Off",
        "On"
      ],
      "enum_bool":[
        "false",
        "true"
      ],
      "enum_triggeredge":[
        "Falling",
        "Rising"
      ],
      "enum_errhilo":[
        "CEL on all errors",
        "Ignore low condition",
        "Ignore high condition",
        "Ignore all errors"
      ],
      "enum_canspeed":[
        "Disabled",
        "62.5kbit",
        "83.3kbit",
        "100kbit",
        "125kbit",
        "250kbit",
        "500kbit",
        "666kbit",
        "1Mbit"
      ],
      "enum_cantxfreq":[
        "Disabled",
        "1Hz",
        "2Hz",
        "5Hz",
        "10Hz",
        "20Hz",
        "25Hz",
        "50Hz",
        "100Hz"
      ],
      "enum_ccantxfreq":[
        "Disabled",
        "1Hz",
        "2Hz",
        "5Hz",
        "10Hz",
        "20Hz",
        "25Hz",
        "50Hz",
        "100Hz"
      ],
      "enum_canroutingmodes":[
        "Disabled",
        "Unfiltered",
        "Filtered"
      ],
      "enum_canfilteraction":[
        "Drop",
        "Pass",
        "Edit rule 1",
        "Edit rule 2",
        "Edit rule 3",
        "Edit rule 4",
        "Edit rule 5",
        "Edit rule 6",
        "Edit rule 7",
        "Edit rule 8"
      ],
      "map_datatypes":[
        [
          0,
          "bit"
        ],
        [
          1,
          "u8"
        ],
        [
          2,
          "u16le"
        ],
        [
          3,
          "u32le"
        ],
        [
          9,
          "s8"
        ],
        [
          10,
          "s16le"
        ],
        [
          11,
          "s32le"
        ],
        [
          18,
          "u16be"
        ],
        [
          19,
          "u32be"
        ],
        [
          26,
          "s16be"
        ],
        [
          27,
          "s32be"
        ]
      ],
      "map_bedatatypes":[
        [
          0,
          "bit"
        ],
        [
          1,
          "u8"
        ],
        [
          9,
          "s8"
        ],
        [
          18,
          "u16be"
        ],
        [
          19,
          "u32be"
        ],
        [
          26,
          "s16be"
        ],
        [
          27,
          "s32be"
        ]
      ],
      "map_inputs":[
        [
          65535,
          "Always off"
        ],
        [
          32767,
          "Always on"
        ],
        [
          0,
          "Digital in 1",
          {
            "rtvar":"din1"
          }
        ],
        [
          1,
          "Digital in 2",
          {
            "rtvar":"din2"
          }
        ],
        [
          2,
          "Digital in 3",
          {
            "rtvar":"din3"
          }
        ],
        [
          3,
          "Digital in 4",
          {
            "rtvar":"din4"
          }
        ],
        [
          4,
          "Analog 0",
          {
            "rtvar":"analog0",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          5,
          "Analog 1",
          {
            "rtvar":"analog1",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          6,
          "Analog 2",
          {
            "rtvar":"analog2",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          7,
          "Analog 3",
          {
            "rtvar":"analog3",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          8,
          "Analog 4",
          {
            "rtvar":"analog4",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          9,
          "Analog 5",
          {
            "rtvar":"analog5",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          10,
          "Analog 6",
          {
            "rtvar":"analog6",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          11,
          "Analog 7",
          {
            "rtvar":"analog7",
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32,
          "General purpose logic 1",
          {
            "rtvar":"gplogic1",
            "appendtextitem":"gpiodescr0"
          }
        ],
        [
          33,
          "General purpose logic 2",
          {
            "rtvar":"gplogic2",
            "appendtextitem":"gpiodescr1"
          }
        ],
        [
          34,
          "General purpose logic 3",
          {
            "rtvar":"gplogic3",
            "appendtextitem":"gpiodescr2"
          }
        ],
        [
          35,
          "General purpose logic 4",
          {
            "rtvar":"gplogic4",
            "appendtextitem":"gpiodescr3"
          }
        ],
        [
          37,
          "General purpose logic 5",
          {
            "rtvar":"gplogic5",
            "appendtextitem":"gpiodescr5"
          }
        ],
        [
          38,
          "General purpose logic 6",
          {
            "rtvar":"gplogic6",
            "appendtextitem":"gpiodescr6"
          }
        ],
        [
          39,
          "General purpose logic 7",
          {
            "rtvar":"gplogic7",
            "appendtextitem":"gpiodescr7"
          }
        ],
        [
          40,
          "General purpose logic 8",
          {
            "rtvar":"gplogic8",
            "appendtextitem":"gpiodescr8"
          }
        ],
        [
          42,
          "General purpose logic 9",
          {
            "rtvar":"gplogic9",
            "appendtextitem":"gpiodescr10"
          }
        ],
        [
          43,
          "General purpose logic 10",
          {
            "rtvar":"gplogic10",
            "appendtextitem":"gpiodescr11"
          }
        ],
        [
          44,
          "General purpose logic 11",
          {
            "rtvar":"gplogic11",
            "appendtextitem":"gpiodescr12"
          }
        ],
        [
          45,
          "General purpose logic 12",
          {
            "rtvar":"gplogic12",
            "appendtextitem":"gpiodescr13"
          }
        ],
        [
          46,
          "General purpose logic 13",
          {
            "rtvar":"gplogic13",
            "appendtextitem":"gpiodescr14"
          }
        ],
        [
          47,
          "General purpose logic 14",
          {
            "rtvar":"gplogic14",
            "appendtextitem":"gpiodescr15"
          }
        ],
        [
          48,
          "General purpose logic 15",
          {
            "rtvar":"gplogic15",
            "appendtextitem":"gpiodescr16"
          }
        ],
        [
          49,
          "General purpose logic 16",
          {
            "rtvar":"gplogic16",
            "appendtextitem":"gpiodescr17"
          }
        ],
        [
          56,
          "Flip flop logic 1",
          {
            "rtvar":"flipflop1"
          }
        ],
        [
          57,
          "Flip flop logic 2",
          {
            "rtvar":"flipflop2"
          }
        ],
        [
          58,
          "Flip flop logic 3",
          {
            "rtvar":"flipflop3"
          }
        ],
        [
          59,
          "Flip flop logic 4",
          {
            "rtvar":"flipflop4"
          }
        ],
        [
          60,
          "Flip flop logic 5",
          {
            "rtvar":"flipflop5"
          }
        ],
        [
          61,
          "Flip flop logic 6",
          {
            "rtvar":"flipflop6"
          }
        ],
        [
          62,
          "Flip flop logic 7",
          {
            "rtvar":"flipflop7"
          }
        ],
        [
          63,
          "Flip flop logic 8",
          {
            "rtvar":"flipflop8"
          }
        ],
        [
          64,
          "CAN 1 source 0",
          {
            "rtvar":"can1src0"
          }
        ],
        [
          65,
          "CAN 1 source 1",
          {
            "rtvar":"can1src1"
          }
        ],
        [
          66,
          "CAN 1 source 2",
          {
            "rtvar":"can1src2"
          }
        ],
        [
          67,
          "CAN 1 source 3",
          {
            "rtvar":"can1src3"
          }
        ],
        [
          68,
          "CAN 1 source 4",
          {
            "rtvar":"can1src4"
          }
        ],
        [
          69,
          "CAN 1 source 5",
          {
            "rtvar":"can1src5"
          }
        ],
        [
          70,
          "CAN 1 source 6",
          {
            "rtvar":"can1src6"
          }
        ],
        [
          71,
          "CAN 1 source 7",
          {
            "rtvar":"can1src7"
          }
        ],
        [
          72,
          "CAN 1 source 8",
          {
            "rtvar":"can1src8"
          }
        ],
        [
          73,
          "CAN 1 source 9",
          {
            "rtvar":"can1src9"
          }
        ],
        [
          74,
          "CAN 1 source 10",
          {
            "rtvar":"can1src10"
          }
        ],
        [
          75,
          "CAN 1 source 11",
          {
            "rtvar":"can1src11"
          }
        ],
        [
          76,
          "CAN 1 source 12",
          {
            "rtvar":"can1src12"
          }
        ],
        [
          77,
          "CAN 1 source 13",
          {
            "rtvar":"can1src13"
          }
        ],
        [
          78,
          "CAN 1 source 14",
          {
            "rtvar":"can1src14"
          }
        ],
        [
          79,
          "CAN 1 source 15",
          {
            "rtvar":"can1src15"
          }
        ],
        [
          80,
          "CAN 2 source 0",
          {
            "rtvar":"can2src0"
          }
        ],
        [
          81,
          "CAN 2 source 1",
          {
            "rtvar":"can2src1"
          }
        ],
        [
          82,
          "CAN 2 source 2",
          {
            "rtvar":"can2src2"
          }
        ],
        [
          83,
          "CAN 2 source 3",
          {
            "rtvar":"can2src3"
          }
        ],
        [
          84,
          "CAN 2 source 4",
          {
            "rtvar":"can2src4"
          }
        ],
        [
          85,
          "CAN 2 source 5",
          {
            "rtvar":"can2src5"
          }
        ],
        [
          86,
          "CAN 2 source 6",
          {
            "rtvar":"can2src6"
          }
        ],
        [
          87,
          "CAN 2 source 7",
          {
            "rtvar":"can2src7"
          }
        ],
        [
          88,
          "CAN 2 source 8",
          {
            "rtvar":"can2src8"
          }
        ],
        [
          89,
          "CAN 2 source 9",
          {
            "rtvar":"can2src9"
          }
        ],
        [
          90,
          "CAN 2 source 10",
          {
            "rtvar":"can2src10"
          }
        ],
        [
          91,
          "CAN 2 source 11",
          {
            "rtvar":"can2src11"
          }
        ],
        [
          92,
          "CAN 2 source 12",
          {
            "rtvar":"can2src12"
          }
        ],
        [
          93,
          "CAN 2 source 13",
          {
            "rtvar":"can2src13"
          }
        ],
        [
          94,
          "CAN 2 source 14",
          {
            "rtvar":"can2src14"
          }
        ],
        [
          95,
          "CAN 2 source 15",
          {
            "rtvar":"can2src15"
          }
        ],
        [
          96,
          "User program output 0",
          {
            "rtvar":"userflag0"
          }
        ],
        [
          97,
          "User program output 1",
          {
            "rtvar":"userflag1"
          }
        ],
        [
          98,
          "User program output 2",
          {
            "rtvar":"userflag2"
          }
        ],
        [
          99,
          "User program output 3",
          {
            "rtvar":"userflag3"
          }
        ],
        [
          100,
          "User program output 4",
          {
            "rtvar":"userflag4"
          }
        ],
        [
          101,
          "User program output 5",
          {
            "rtvar":"userflag5"
          }
        ],
        [
          102,
          "User program output 6",
          {
            "rtvar":"userflag6"
          }
        ],
        [
          103,
          "User program output 7",
          {
            "rtvar":"userflag7"
          }
        ],
        [
          104,
          "User program output 8",
          {
            "rtvar":"userflag8"
          }
        ],
        [
          105,
          "User program output 9",
          {
            "rtvar":"userflag9"
          }
        ],
        [
          106,
          "User program output 10",
          {
            "rtvar":"userflag10"
          }
        ],
        [
          107,
          "User program output 11",
          {
            "rtvar":"userflag11"
          }
        ],
        [
          108,
          "User program output 12",
          {
            "rtvar":"userflag12"
          }
        ],
        [
          109,
          "User program output 13",
          {
            "rtvar":"userflag13"
          }
        ],
        [
          110,
          "User program output 14",
          {
            "rtvar":"userflag14"
          }
        ],
        [
          111,
          "User program output 15",
          {
            "rtvar":"userflag15"
          }
        ],
        [
          112,
          "Remote bit 0",
          {
            "rtvar":"remotebit0"
          }
        ],
        [
          113,
          "Remote bit 1",
          {
            "rtvar":"remotebit1"
          }
        ],
        [
          114,
          "Remote bit 2",
          {
            "rtvar":"remotebit2"
          }
        ],
        [
          115,
          "Remote bit 3",
          {
            "rtvar":"remotebit3"
          }
        ],
        [
          116,
          "Remote bit 4",
          {
            "rtvar":"remotebit4"
          }
        ],
        [
          117,
          "Remote bit 5",
          {
            "rtvar":"remotebit5"
          }
        ],
        [
          118,
          "Remote bit 6",
          {
            "rtvar":"remotebit6"
          }
        ],
        [
          119,
          "Remote bit 7",
          {
            "rtvar":"remotebit7"
          }
        ],
        [
          120,
          "Half hertz",
          {
            "rtvar":"0hz5"
          }
        ],
        [
          121,
          "One hertz",
          {
            "rtvar":"1hz"
          }
        ],
        [
          122,
          "Ten hertz",
          {
            "rtvar":"10hz"
          }
        ],
        [
          1025,
          "CAN keypad 1 button 1",
          {
            "rtvar":"keypad1.1"
          }
        ],
        [
          1026,
          "CAN keypad 1 button 2",
          {
            "rtvar":"keypad1.2"
          }
        ],
        [
          1027,
          "CAN keypad 1 button 3",
          {
            "rtvar":"keypad1.3"
          }
        ],
        [
          1028,
          "CAN keypad 1 button 4",
          {
            "rtvar":"keypad1.4"
          }
        ],
        [
          1029,
          "CAN keypad 1 button 5",
          {
            "rtvar":"keypad1.5"
          }
        ],
        [
          1030,
          "CAN keypad 1 button 6",
          {
            "rtvar":"keypad1.6"
          }
        ],
        [
          1031,
          "CAN keypad 1 button 7",
          {
            "rtvar":"keypad1.7"
          }
        ],
        [
          1032,
          "CAN keypad 1 button 8",
          {
            "rtvar":"keypad1.8"
          }
        ],
        [
          1033,
          "CAN keypad 1 button 9",
          {
            "rtvar":"keypad1.9"
          }
        ],
        [
          1034,
          "CAN keypad 1 button 10",
          {
            "rtvar":"keypad1.10"
          }
        ],
        [
          1035,
          "CAN keypad 1 button 11",
          {
            "rtvar":"keypad1.11"
          }
        ],
        [
          1036,
          "CAN keypad 1 button 12",
          {
            "rtvar":"keypad1.12"
          }
        ],
        [
          1037,
          "CAN keypad 1 button 13",
          {
            "rtvar":"keypad1.13"
          }
        ],
        [
          1038,
          "CAN keypad 1 button 14",
          {
            "rtvar":"keypad1.14"
          }
        ],
        [
          1039,
          "CAN keypad 1 button 15",
          {
            "rtvar":"keypad1.15"
          }
        ],
        [
          1041,
          "CAN keypad 2 button 1",
          {
            "rtvar":"keypad2.1"
          }
        ],
        [
          1042,
          "CAN keypad 2 button 2",
          {
            "rtvar":"keypad2.2"
          }
        ],
        [
          1043,
          "CAN keypad 2 button 3",
          {
            "rtvar":"keypad2.3"
          }
        ],
        [
          1044,
          "CAN keypad 2 button 4",
          {
            "rtvar":"keypad2.4"
          }
        ],
        [
          1045,
          "CAN keypad 2 button 5",
          {
            "rtvar":"keypad2.5"
          }
        ],
        [
          1046,
          "CAN keypad 2 button 6",
          {
            "rtvar":"keypad2.6"
          }
        ],
        [
          1047,
          "CAN keypad 2 button 7",
          {
            "rtvar":"keypad2.7"
          }
        ],
        [
          1048,
          "CAN keypad 2 button 8",
          {
            "rtvar":"keypad2.8"
          }
        ],
        [
          1049,
          "CAN keypad 2 button 9",
          {
            "rtvar":"keypad2.9"
          }
        ],
        [
          1050,
          "CAN keypad 2 button 10",
          {
            "rtvar":"keypad2.10"
          }
        ],
        [
          1051,
          "CAN keypad 2 button 11",
          {
            "rtvar":"keypad2.11"
          }
        ],
        [
          1052,
          "CAN keypad 2 button 12",
          {
            "rtvar":"keypad2.12"
          }
        ],
        [
          1053,
          "CAN keypad 2 button 13",
          {
            "rtvar":"keypad2.13"
          }
        ],
        [
          1054,
          "CAN keypad 2 button 14",
          {
            "rtvar":"keypad2.14"
          }
        ],
        [
          1055,
          "CAN keypad 2 button 15",
          {
            "rtvar":"keypad2.15"
          }
        ],
        [
          1057,
          "CAN keypad 3 button 1",
          {
            "rtvar":"keypad3.1"
          }
        ],
        [
          1058,
          "CAN keypad 3 button 2",
          {
            "rtvar":"keypad3.2"
          }
        ],
        [
          1059,
          "CAN keypad 3 button 3",
          {
            "rtvar":"keypad3.3"
          }
        ],
        [
          1060,
          "CAN keypad 3 button 4",
          {
            "rtvar":"keypad3.4"
          }
        ],
        [
          1061,
          "CAN keypad 3 button 5",
          {
            "rtvar":"keypad3.5"
          }
        ],
        [
          1062,
          "CAN keypad 3 button 6",
          {
            "rtvar":"keypad3.6"
          }
        ],
        [
          1063,
          "CAN keypad 3 button 7",
          {
            "rtvar":"keypad3.7"
          }
        ],
        [
          1064,
          "CAN keypad 3 button 8",
          {
            "rtvar":"keypad3.8"
          }
        ],
        [
          1065,
          "CAN keypad 3 button 9",
          {
            "rtvar":"keypad3.9"
          }
        ],
        [
          1066,
          "CAN keypad 3 button 10",
          {
            "rtvar":"keypad3.10"
          }
        ],
        [
          1067,
          "CAN keypad 3 button 11",
          {
            "rtvar":"keypad3.11"
          }
        ],
        [
          1068,
          "CAN keypad 3 button 12",
          {
            "rtvar":"keypad3.12"
          }
        ],
        [
          1069,
          "CAN keypad 3 button 13",
          {
            "rtvar":"keypad3.13"
          }
        ],
        [
          1070,
          "CAN keypad 3 button 14",
          {
            "rtvar":"keypad3.14"
          }
        ],
        [
          1071,
          "CAN keypad 3 button 15",
          {
            "rtvar":"keypad3.15"
          }
        ],
        [
          1073,
          "CAN keypad 4 button 1",
          {
            "rtvar":"keypad4.1"
          }
        ],
        [
          1074,
          "CAN keypad 4 button 2",
          {
            "rtvar":"keypad4.2"
          }
        ],
        [
          1075,
          "CAN keypad 4 button 3",
          {
            "rtvar":"keypad4.3"
          }
        ],
        [
          1076,
          "CAN keypad 4 button 4",
          {
            "rtvar":"keypad4.4"
          }
        ],
        [
          1077,
          "CAN keypad 4 button 5",
          {
            "rtvar":"keypad4.5"
          }
        ],
        [
          1078,
          "CAN keypad 4 button 6",
          {
            "rtvar":"keypad4.6"
          }
        ],
        [
          1079,
          "CAN keypad 4 button 7",
          {
            "rtvar":"keypad4.7"
          }
        ],
        [
          1080,
          "CAN keypad 4 button 8",
          {
            "rtvar":"keypad4.8"
          }
        ],
        [
          1081,
          "CAN keypad 4 button 9",
          {
            "rtvar":"keypad4.9"
          }
        ],
        [
          1082,
          "CAN keypad 4 button 10",
          {
            "rtvar":"keypad4.10"
          }
        ],
        [
          1083,
          "CAN keypad 4 button 11",
          {
            "rtvar":"keypad4.11"
          }
        ],
        [
          1084,
          "CAN keypad 4 button 12",
          {
            "rtvar":"keypad4.12"
          }
        ],
        [
          1085,
          "CAN keypad 4 button 13",
          {
            "rtvar":"keypad4.13"
          }
        ],
        [
          1086,
          "CAN keypad 4 button 14",
          {
            "rtvar":"keypad4.14"
          }
        ],
        [
          1087,
          "CAN keypad 4 button 15",
          {
            "rtvar":"keypad4.15"
          }
        ],
        [
          32768,
          "Digital in 1 inverted",
          {
            "rtvar":"din1",
            "inverted":1
          }
        ],
        [
          32769,
          "Digital in 2 inverted",
          {
            "rtvar":"din2",
            "inverted":1
          }
        ],
        [
          32770,
          "Digital in 3 inverted",
          {
            "rtvar":"din3",
            "inverted":1
          }
        ],
        [
          32771,
          "Digital in 4 inverted",
          {
            "rtvar":"din4",
            "inverted":1
          }
        ],
        [
          32772,
          "Analog 0 inverted",
          {
            "rtvar":"analog0",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32773,
          "Analog 1 inverted",
          {
            "rtvar":"analog1",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32774,
          "Analog 2 inverted",
          {
            "rtvar":"analog2",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32775,
          "Analog 3 inverted",
          {
            "rtvar":"analog3",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32776,
          "Analog 4 inverted",
          {
            "rtvar":"analog4",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32777,
          "Analog 5 inverted",
          {
            "rtvar":"analog5",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32778,
          "Analog 6 inverted",
          {
            "rtvar":"analog6",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32779,
          "Analog 7 inverted",
          {
            "rtvar":"analog7",
            "inverted":1,
            "condition":[
              "<",
              "1.1"
            ]
          }
        ],
        [
          32800,
          "General purpose 1 inverted",
          {
            "rtvar":"gplogic1",
            "inverted":1
          }
        ],
        [
          32801,
          "General purpose 2 inverted",
          {
            "rtvar":"gplogic2",
            "inverted":1
          }
        ],
        [
          32802,
          "General purpose 3 inverted",
          {
            "rtvar":"gplogic3",
            "inverted":1
          }
        ],
        [
          32803,
          "General purpose 4 inverted",
          {
            "rtvar":"gplogic4",
            "inverted":1
          }
        ],
        [
          32804,
          "General purpose 5 inverted",
          {
            "rtvar":"gplogic5",
            "inverted":1
          }
        ],
        [
          32806,
          "General purpose 6 inverted",
          {
            "rtvar":"gplogic6",
            "inverted":1
          }
        ],
        [
          32807,
          "General purpose 7 inverted",
          {
            "rtvar":"gplogic7",
            "inverted":1
          }
        ],
        [
          32808,
          "General purpose 8 inverted",
          {
            "rtvar":"gplogic8",
            "inverted":1
          }
        ],
        [
          32810,
          "General purpose 9 inverted",
          {
            "rtvar":"gplogic9",
            "inverted":1
          }
        ],
        [
          32811,
          "General purpose 10 inverted",
          {
            "rtvar":"gplogic10",
            "inverted":1
          }
        ],
        [
          32812,
          "General purpose 11 inverted",
          {
            "rtvar":"gplogic11",
            "inverted":1
          }
        ],
        [
          32813,
          "General purpose 12 inverted",
          {
            "rtvar":"gplogic12",
            "inverted":1
          }
        ],
        [
          32814,
          "General purpose 13 inverted",
          {
            "rtvar":"gplogic13",
            "inverted":1
          }
        ],
        [
          32815,
          "General purpose 14 inverted",
          {
            "rtvar":"gplogic14",
            "inverted":1
          }
        ],
        [
          32816,
          "General purpose 15 inverted",
          {
            "rtvar":"gplogic15",
            "inverted":1
          }
        ],
        [
          32817,
          "General purpose 16 inverted",
          {
            "rtvar":"gplogic16",
            "inverted":1
          }
        ],
        [
          32824,
          "Flip flop 1 inverted",
          {
            "rtvar":"flipflop1",
            "inverted":1
          }
        ],
        [
          32825,
          "Flip flop 2 inverted",
          {
            "rtvar":"flipflop2",
            "inverted":1
          }
        ],
        [
          32826,
          "Flip flop 3 inverted",
          {
            "rtvar":"flipflop3",
            "inverted":1
          }
        ],
        [
          32827,
          "Flip flop 4 inverted",
          {
            "rtvar":"flipflop4",
            "inverted":1
          }
        ],
        [
          32828,
          "Flip flop 5 inverted",
          {
            "rtvar":"flipflop5",
            "inverted":1
          }
        ],
        [
          32829,
          "Flip flop 6 inverted",
          {
            "rtvar":"flipflop6",
            "inverted":1
          }
        ],
        [
          32830,
          "Flip flop 7 inverted",
          {
            "rtvar":"flipflop7",
            "inverted":1
          }
        ],
        [
          32831,
          "Flip flop 8 inverted",
          {
            "rtvar":"flipflop8",
            "inverted":1
          }
        ],
        [
          32832,
          "CAN 1 source 0 inverted",
          {
            "rtvar":"can1src0",
            "inverted":1
          }
        ],
        [
          32833,
          "CAN 1 source 1 inverted",
          {
            "rtvar":"can1src1",
            "inverted":1
          }
        ],
        [
          32834,
          "CAN 1 source 2 inverted",
          {
            "rtvar":"can1src2",
            "inverted":1
          }
        ],
        [
          32835,
          "CAN 1 source 3 inverted",
          {
            "rtvar":"can1src3",
            "inverted":1
          }
        ],
        [
          32836,
          "CAN 1 source 4 inverted",
          {
            "rtvar":"can1src4",
            "inverted":1
          }
        ],
        [
          32837,
          "CAN 1 source 5 inverted",
          {
            "rtvar":"can1src5",
            "inverted":1
          }
        ],
        [
          32838,
          "CAN 1 source 6 inverted",
          {
            "rtvar":"can1src6",
            "inverted":1
          }
        ],
        [
          32839,
          "CAN 1 source 7 inverted",
          {
            "rtvar":"can1src7",
            "inverted":1
          }
        ],
        [
          32840,
          "CAN 1 source 8 inverted",
          {
            "rtvar":"can1src8",
            "inverted":1
          }
        ],
        [
          32841,
          "CAN 1 source 9 inverted",
          {
            "rtvar":"can1src9",
            "inverted":1
          }
        ],
        [
          32842,
          "CAN 1 source 10 inverted",
          {
            "rtvar":"can1src10",
            "inverted":1
          }
        ],
        [
          32843,
          "CAN 1 source 11 inverted",
          {
            "rtvar":"can1src11",
            "inverted":1
          }
        ],
        [
          32844,
          "CAN 1 source 12 inverted",
          {
            "rtvar":"can1src12",
            "inverted":1
          }
        ],
        [
          32845,
          "CAN 1 source 13 inverted",
          {
            "rtvar":"can1src13",
            "inverted":1
          }
        ],
        [
          32846,
          "CAN 1 source 14 inverted",
          {
            "rtvar":"can1src14",
            "inverted":1
          }
        ],
        [
          32847,
          "CAN 1 source 15 inverted",
          {
            "rtvar":"can1src15",
            "inverted":1
          }
        ],
        [
          32848,
          "CAN 2 source 0 inverted",
          {
            "rtvar":"can2src0",
            "inverted":1
          }
        ],
        [
          32849,
          "CAN 2 source 1 inverted",
          {
            "rtvar":"can2src1",
            "inverted":1
          }
        ],
        [
          32850,
          "CAN 2 source 2 inverted",
          {
            "rtvar":"can2src2",
            "inverted":1
          }
        ],
        [
          32851,
          "CAN 2 source 3 inverted",
          {
            "rtvar":"can2src3",
            "inverted":1
          }
        ],
        [
          32852,
          "CAN 2 source 4 inverted",
          {
            "rtvar":"can2src4",
            "inverted":1
          }
        ],
        [
          32853,
          "CAN 2 source 5 inverted",
          {
            "rtvar":"can2src5",
            "inverted":1
          }
        ],
        [
          32854,
          "CAN 2 source 6 inverted",
          {
            "rtvar":"can2src6",
            "inverted":1
          }
        ],
        [
          32855,
          "CAN 2 source 7 inverted",
          {
            "rtvar":"can2src7",
            "inverted":1
          }
        ],
        [
          32856,
          "CAN 2 source 8 inverted",
          {
            "rtvar":"can2src8",
            "inverted":1
          }
        ],
        [
          32857,
          "CAN 2 source 9 inverted",
          {
            "rtvar":"can2src9",
            "inverted":1
          }
        ],
        [
          32858,
          "CAN 2 source 10 inverted",
          {
            "rtvar":"can2src10",
            "inverted":1
          }
        ],
        [
          32859,
          "CAN 2 source 11 inverted",
          {
            "rtvar":"can2src11",
            "inverted":1
          }
        ],
        [
          32860,
          "CAN 2 source 12 inverted",
          {
            "rtvar":"can2src12",
            "inverted":1
          }
        ],
        [
          32861,
          "CAN 2 source 13 inverted",
          {
            "rtvar":"can2src13",
            "inverted":1
          }
        ],
        [
          32862,
          "CAN 2 source 14 inverted",
          {
            "rtvar":"can2src14",
            "inverted":1
          }
        ],
        [
          32863,
          "CAN 2 source 15 inverted",
          {
            "rtvar":"can2src15",
            "inverted":1
          }
        ],
        [
          32864,
          "User program output 0 inverted",
          {
            "rtvar":"userflag0",
            "inverted":1
          }
        ],
        [
          32865,
          "User program output 1 inverted",
          {
            "rtvar":"userflag1",
            "inverted":1
          }
        ],
        [
          32866,
          "User program output 2 inverted",
          {
            "rtvar":"userflag2",
            "inverted":1
          }
        ],
        [
          32867,
          "User program output 3 inverted",
          {
            "rtvar":"userflag3",
            "inverted":1
          }
        ],
        [
          32868,
          "User program output 4 inverted",
          {
            "rtvar":"userflag4",
            "inverted":1
          }
        ],
        [
          32869,
          "User program output 5 inverted",
          {
            "rtvar":"userflag5",
            "inverted":1
          }
        ],
        [
          32870,
          "User program output 6 inverted",
          {
            "rtvar":"userflag6",
            "inverted":1
          }
        ],
        [
          32871,
          "User program output 7 inverted",
          {
            "rtvar":"userflag7",
            "inverted":1
          }
        ],
        [
          32872,
          "User program output 8 inverted",
          {
            "rtvar":"userflag8",
            "inverted":1
          }
        ],
        [
          32873,
          "User program output 9 inverted",
          {
            "rtvar":"userflag9",
            "inverted":1
          }
        ],
        [
          32874,
          "User program output 10 inverted",
          {
            "rtvar":"userflag10",
            "inverted":1
          }
        ],
        [
          32875,
          "User program output 11 inverted",
          {
            "rtvar":"userflag11",
            "inverted":1
          }
        ],
        [
          32876,
          "User program output 12 inverted",
          {
            "rtvar":"userflag12",
            "inverted":1
          }
        ],
        [
          32877,
          "User program output 13 inverted",
          {
            "rtvar":"userflag13",
            "inverted":1
          }
        ],
        [
          32878,
          "User program output 14 inverted",
          {
            "rtvar":"userflag14",
            "inverted":1
          }
        ],
        [
          32879,
          "User program output 15 inverted",
          {
            "rtvar":"userflag15",
            "inverted":1
          }
        ],
        [
          32880,
          "Remote bit 0 inverted",
          {
            "rtvar":"remotebit0",
            "inverted":1
          }
        ],
        [
          32881,
          "Remote bit 1 inverted",
          {
            "rtvar":"remotebit1",
            "inverted":1
          }
        ],
        [
          32882,
          "Remote bit 2 inverted",
          {
            "rtvar":"remotebit2",
            "inverted":1
          }
        ],
        [
          32883,
          "Remote bit 3 inverted",
          {
            "rtvar":"remotebit3",
            "inverted":1
          }
        ],
        [
          32884,
          "Remote bit 4 inverted",
          {
            "rtvar":"remotebit4",
            "inverted":1
          }
        ],
        [
          32885,
          "Remote bit 5 inverted",
          {
            "rtvar":"remotebit5",
            "inverted":1
          }
        ],
        [
          32886,
          "Remote bit 6 inverted",
          {
            "rtvar":"remotebit6",
            "inverted":1
          }
        ],
        [
          32887,
          "Remote bit 7 inverted",
          {
            "rtvar":"remotebit7",
            "inverted":1
          }
        ],
        [
          33793,
          "CAN keypad 1 button 1 inverted",
          {
            "rtvar":"keypad1.1",
            "inverted":1
          }
        ],
        [
          33794,
          "CAN keypad 1 button 2 inverted",
          {
            "rtvar":"keypad1.2",
            "inverted":1
          }
        ],
        [
          33795,
          "CAN keypad 1 button 3 inverted",
          {
            "rtvar":"keypad1.3",
            "inverted":1
          }
        ],
        [
          33796,
          "CAN keypad 1 button 4 inverted",
          {
            "rtvar":"keypad1.4",
            "inverted":1
          }
        ],
        [
          33797,
          "CAN keypad 1 button 5 inverted",
          {
            "rtvar":"keypad1.5",
            "inverted":1
          }
        ],
        [
          33798,
          "CAN keypad 1 button 6 inverted",
          {
            "rtvar":"keypad1.6",
            "inverted":1
          }
        ],
        [
          33799,
          "CAN keypad 1 button 7 inverted",
          {
            "rtvar":"keypad1.7",
            "inverted":1
          }
        ],
        [
          33800,
          "CAN keypad 1 button 8 inverted",
          {
            "rtvar":"keypad1.8",
            "inverted":1
          }
        ],
        [
          33801,
          "CAN keypad 1 button 9 inverted",
          {
            "rtvar":"keypad1.9",
            "inverted":1
          }
        ],
        [
          33802,
          "CAN keypad 1 button 10 inverted",
          {
            "rtvar":"keypad1.10",
            "inverted":1
          }
        ],
        [
          33803,
          "CAN keypad 1 button 11 inverted",
          {
            "rtvar":"keypad1.11",
            "inverted":1
          }
        ],
        [
          33804,
          "CAN keypad 1 button 12 inverted",
          {
            "rtvar":"keypad1.12",
            "inverted":1
          }
        ],
        [
          33805,
          "CAN keypad 1 button 13 inverted",
          {
            "rtvar":"keypad1.13",
            "inverted":1
          }
        ],
        [
          33806,
          "CAN keypad 1 button 14 inverted",
          {
            "rtvar":"keypad1.14",
            "inverted":1
          }
        ],
        [
          33807,
          "CAN keypad 1 button 15 inverted",
          {
            "rtvar":"keypad1.15",
            "inverted":1
          }
        ],
        [
          33809,
          "CAN keypad 2 button 1 inverted",
          {
            "rtvar":"keypad2.1",
            "inverted":1
          }
        ],
        [
          33810,
          "CAN keypad 2 button 2 inverted",
          {
            "rtvar":"keypad2.2",
            "inverted":1
          }
        ],
        [
          33811,
          "CAN keypad 2 button 3 inverted",
          {
            "rtvar":"keypad2.3",
            "inverted":1
          }
        ],
        [
          33812,
          "CAN keypad 2 button 4 inverted",
          {
            "rtvar":"keypad2.4",
            "inverted":1
          }
        ],
        [
          33813,
          "CAN keypad 2 button 5 inverted",
          {
            "rtvar":"keypad2.5",
            "inverted":1
          }
        ],
        [
          33814,
          "CAN keypad 2 button 6 inverted",
          {
            "rtvar":"keypad2.6",
            "inverted":1
          }
        ],
        [
          33815,
          "CAN keypad 2 button 7 inverted",
          {
            "rtvar":"keypad2.7",
            "inverted":1
          }
        ],
        [
          33816,
          "CAN keypad 2 button 8 inverted",
          {
            "rtvar":"keypad2.8",
            "inverted":1
          }
        ],
        [
          33817,
          "CAN keypad 2 button 9 inverted",
          {
            "rtvar":"keypad2.9",
            "inverted":1
          }
        ],
        [
          33818,
          "CAN keypad 2 button 10 inverted",
          {
            "rtvar":"keypad2.10",
            "inverted":1
          }
        ],
        [
          33819,
          "CAN keypad 2 button 11 inverted",
          {
            "rtvar":"keypad2.11",
            "inverted":1
          }
        ],
        [
          33820,
          "CAN keypad 2 button 12 inverted",
          {
            "rtvar":"keypad2.12",
            "inverted":1
          }
        ],
        [
          33821,
          "CAN keypad 2 button 13 inverted",
          {
            "rtvar":"keypad2.13",
            "inverted":1
          }
        ],
        [
          33822,
          "CAN keypad 2 button 14 inverted",
          {
            "rtvar":"keypad2.14",
            "inverted":1
          }
        ],
        [
          33823,
          "CAN keypad 2 button 15 inverted",
          {
            "rtvar":"keypad2.15",
            "inverted":1
          }
        ],
        [
          33825,
          "CAN keypad 3 button 1 inverted",
          {
            "rtvar":"keypad3.1",
            "inverted":1
          }
        ],
        [
          33826,
          "CAN keypad 3 button 2 inverted",
          {
            "rtvar":"keypad3.2",
            "inverted":1
          }
        ],
        [
          33827,
          "CAN keypad 3 button 3 inverted",
          {
            "rtvar":"keypad3.3",
            "inverted":1
          }
        ],
        [
          33828,
          "CAN keypad 3 button 4 inverted",
          {
            "rtvar":"keypad3.4",
            "inverted":1
          }
        ],
        [
          33829,
          "CAN keypad 3 button 5 inverted",
          {
            "rtvar":"keypad3.5",
            "inverted":1
          }
        ],
        [
          33830,
          "CAN keypad 3 button 6 inverted",
          {
            "rtvar":"keypad3.6",
            "inverted":1
          }
        ],
        [
          33831,
          "CAN keypad 3 button 7 inverted",
          {
            "rtvar":"keypad3.7",
            "inverted":1
          }
        ],
        [
          33832,
          "CAN keypad 3 button 8 inverted",
          {
            "rtvar":"keypad3.8",
            "inverted":1
          }
        ],
        [
          33833,
          "CAN keypad 3 button 9 inverted",
          {
            "rtvar":"keypad3.9",
            "inverted":1
          }
        ],
        [
          33834,
          "CAN keypad 3 button 10 inverted",
          {
            "rtvar":"keypad3.10",
            "inverted":1
          }
        ],
        [
          33835,
          "CAN keypad 3 button 11 inverted",
          {
            "rtvar":"keypad3.11",
            "inverted":1
          }
        ],
        [
          33836,
          "CAN keypad 3 button 12 inverted",
          {
            "rtvar":"keypad3.12",
            "inverted":1
          }
        ],
        [
          33837,
          "CAN keypad 3 button 13 inverted",
          {
            "rtvar":"keypad3.13",
            "inverted":1
          }
        ],
        [
          33838,
          "CAN keypad 3 button 14 inverted",
          {
            "rtvar":"keypad3.14",
            "inverted":1
          }
        ],
        [
          33839,
          "CAN keypad 3 button 15 inverted",
          {
            "rtvar":"keypad3.15",
            "inverted":1
          }
        ],
        [
          33841,
          "CAN keypad 4 button 1 inverted",
          {
            "rtvar":"keypad4.1",
            "inverted":1
          }
        ],
        [
          33842,
          "CAN keypad 4 button 2 inverted",
          {
            "rtvar":"keypad4.2",
            "inverted":1
          }
        ],
        [
          33843,
          "CAN keypad 4 button 3 inverted",
          {
            "rtvar":"keypad4.3",
            "inverted":1
          }
        ],
        [
          33844,
          "CAN keypad 4 button 4 inverted",
          {
            "rtvar":"keypad4.4",
            "inverted":1
          }
        ],
        [
          33845,
          "CAN keypad 4 button 5 inverted",
          {
            "rtvar":"keypad4.5",
            "inverted":1
          }
        ],
        [
          33846,
          "CAN keypad 4 button 6 inverted",
          {
            "rtvar":"keypad4.6",
            "inverted":1
          }
        ],
        [
          33847,
          "CAN keypad 4 button 7 inverted",
          {
            "rtvar":"keypad4.7",
            "inverted":1
          }
        ],
        [
          33848,
          "CAN keypad 4 button 8 inverted",
          {
            "rtvar":"keypad4.8",
            "inverted":1
          }
        ],
        [
          33849,
          "CAN keypad 4 button 9 inverted",
          {
            "rtvar":"keypad4.9",
            "inverted":1
          }
        ],
        [
          33850,
          "CAN keypad 4 button 10 inverted",
          {
            "rtvar":"keypad4.10",
            "inverted":1
          }
        ],
        [
          33851,
          "CAN keypad 4 button 11 inverted",
          {
            "rtvar":"keypad4.11",
            "inverted":1
          }
        ],
        [
          33852,
          "CAN keypad 4 button 12 inverted",
          {
            "rtvar":"keypad4.12",
            "inverted":1
          }
        ],
        [
          33853,
          "CAN keypad 4 button 13 inverted",
          {
            "rtvar":"keypad4.13",
            "inverted":1
          }
        ],
        [
          33854,
          "CAN keypad 4 button 14 inverted",
          {
            "rtvar":"keypad4.14",
            "inverted":1
          }
        ],
        [
          33855,
          "CAN keypad 4 button 15 inverted",
          {
            "rtvar":"keypad4.15",
            "inverted":1
          }
        ],
        [
          32888,
          "Half hertz inverted",
          {
            "rtvar":"0hz5",
            "inverted":1
          }
        ],
        [
          32889,
          "One hertz inverted",
          {
            "rtvar":"1hz",
            "inverted":1
          }
        ],
        [
          32890,
          "Ten hertz inverted",
          {
            "rtvar":"10hz",
            "inverted":1
          }
        ]
      ],
      "map_outpolarity":[
        [
          0,
          "Ground"
        ],
        [
          32768,
          "+12V"
        ],
        [
          32,
          "User program output 0",
          {
            "rtvar":"userflag0"
          }
        ],
        [
          33,
          "User program output 1",
          {
            "rtvar":"userflag1"
          }
        ],
        [
          34,
          "User program output 2",
          {
            "rtvar":"userflag2"
          }
        ],
        [
          35,
          "User program output 3",
          {
            "rtvar":"userflag3"
          }
        ],
        [
          36,
          "User program output 4",
          {
            "rtvar":"userflag4"
          }
        ],
        [
          37,
          "User program output 5",
          {
            "rtvar":"userflag5"
          }
        ],
        [
          38,
          "User program output 6",
          {
            "rtvar":"userflag6"
          }
        ],
        [
          39,
          "User program output 7",
          {
            "rtvar":"userflag7"
          }
        ],
        [
          40,
          "User program output 8",
          {
            "rtvar":"userflag8"
          }
        ],
        [
          41,
          "User program output 9",
          {
            "rtvar":"userflag9"
          }
        ],
        [
          42,
          "User program output 10",
          {
            "rtvar":"userflag10"
          }
        ],
        [
          43,
          "User program output 11",
          {
            "rtvar":"userflag11"
          }
        ],
        [
          44,
          "User program output 12",
          {
            "rtvar":"userflag12"
          }
        ],
        [
          45,
          "User program output 13",
          {
            "rtvar":"userflag13"
          }
        ],
        [
          46,
          "User program output 14",
          {
            "rtvar":"userflag14"
          }
        ],
        [
          47,
          "User program output 15",
          {
            "rtvar":"userflag15"
          }
        ]
      ],
      "map_outputs":[
        [
          0,
          "Disabled"
        ],
        [
          32768,
          "Always on"
        ],
        [
          10,
          "General purpose out 1",
          {
            "rtvar":"gplogic1",
            "appendtextitem":"gpiodescr0"
          }
        ],
        [
          11,
          "General purpose out 2",
          {
            "rtvar":"gplogic2",
            "appendtextitem":"gpiodescr1"
          }
        ],
        [
          12,
          "General purpose out 3",
          {
            "rtvar":"gplogic3",
            "appendtextitem":"gpiodescr2"
          }
        ],
        [
          13,
          "General purpose out 4",
          {
            "rtvar":"gplogic4",
            "appendtextitem":"gpiodescr3"
          }
        ],
        [
          15,
          "General purpose out 5",
          {
            "rtvar":"gplogic5",
            "appendtextitem":"gpiodescr5"
          }
        ],
        [
          16,
          "General purpose out 6",
          {
            "rtvar":"gplogic6",
            "appendtextitem":"gpiodescr6"
          }
        ],
        [
          17,
          "General purpose out 7",
          {
            "rtvar":"gplogic7",
            "appendtextitem":"gpiodescr7"
          }
        ],
        [
          18,
          "General purpose out 8",
          {
            "rtvar":"gplogic8",
            "appendtextitem":"gpiodescr8"
          }
        ],
        [
          20,
          "General purpose out 9",
          {
            "rtvar":"gplogic9",
            "appendtextitem":"gpiodescr10"
          }
        ],
        [
          21,
          "General purpose out 10",
          {
            "rtvar":"gplogic10",
            "appendtextitem":"gpiodescr11"
          }
        ],
        [
          22,
          "General purpose out 11",
          {
            "rtvar":"gplogic11",
            "appendtextitem":"gpiodescr12"
          }
        ],
        [
          23,
          "General purpose out 12",
          {
            "rtvar":"gplogic12",
            "appendtextitem":"gpiodescr13"
          }
        ],
        [
          24,
          "General purpose out 13",
          {
            "rtvar":"gplogic13",
            "appendtextitem":"gpiodescr14"
          }
        ],
        [
          25,
          "General purpose out 14",
          {
            "rtvar":"gplogic14",
            "appendtextitem":"gpiodescr15"
          }
        ],
        [
          26,
          "General purpose out 15",
          {
            "rtvar":"gplogic15",
            "appendtextitem":"gpiodescr16"
          }
        ],
        [
          27,
          "General purpose out 16",
          {
            "rtvar":"gplogic16",
            "appendtextitem":"gpiodescr17"
          }
        ],
        [
          32,
          "User program output 0",
          {
            "rtvar":"userflag0"
          }
        ],
        [
          33,
          "User program output 1",
          {
            "rtvar":"userflag1"
          }
        ],
        [
          34,
          "User program output 2",
          {
            "rtvar":"userflag2"
          }
        ],
        [
          35,
          "User program output 3",
          {
            "rtvar":"userflag3"
          }
        ],
        [
          36,
          "User program output 4",
          {
            "rtvar":"userflag4"
          }
        ],
        [
          37,
          "User program output 5",
          {
            "rtvar":"userflag5"
          }
        ],
        [
          38,
          "User program output 6",
          {
            "rtvar":"userflag6"
          }
        ],
        [
          39,
          "User program output 7",
          {
            "rtvar":"userflag7"
          }
        ],
        [
          40,
          "User program output 8",
          {
            "rtvar":"userflag8"
          }
        ],
        [
          41,
          "User program output 9",
          {
            "rtvar":"userflag9"
          }
        ],
        [
          42,
          "User program output 10",
          {
            "rtvar":"userflag10"
          }
        ],
        [
          43,
          "User program output 11",
          {
            "rtvar":"userflag11"
          }
        ],
        [
          44,
          "User program output 12",
          {
            "rtvar":"userflag12"
          }
        ],
        [
          45,
          "User program output 13",
          {
            "rtvar":"userflag13"
          }
        ],
        [
          46,
          "User program output 14",
          {
            "rtvar":"userflag14"
          }
        ],
        [
          47,
          "User program output 15",
          {
            "rtvar":"userflag15"
          }
        ],
        [
          56,
          "GP PID 1 polarity output",
          {
            "rtvar":"pwm1duty",
            "descr":"Output activates when bipolar mode is enabled and the duty is negative"
          }
        ],
        [
          57,
          "GP PID 2 polarity output",
          {
            "rtvar":"pwm2duty",
            "descr":"Output activates when bipolar mode is enabled and the duty is negative"
          }
        ],
        [
          58,
          "GP PID 3 polarity output",
          {
            "rtvar":"pwm3duty",
            "descr":"Output activates when bipolar mode is enabled and the duty is negative"
          }
        ],
        [
          59,
          "GP PID 4 polarity output",
          {
            "rtvar":"pwm4duty",
            "descr":"Output activates when bipolar mode is enabled and the duty is negative"
          }
        ],
        [
          1025,
          "CAN keypad 1 button 1",
          {
            "rtvar":"keypad1.1"
          }
        ],
        [
          1026,
          "CAN keypad 1 button 2",
          {
            "rtvar":"keypad1.2"
          }
        ],
        [
          1027,
          "CAN keypad 1 button 3",
          {
            "rtvar":"keypad1.3"
          }
        ],
        [
          1028,
          "CAN keypad 1 button 4",
          {
            "rtvar":"keypad1.4"
          }
        ],
        [
          1029,
          "CAN keypad 1 button 5",
          {
            "rtvar":"keypad1.5"
          }
        ],
        [
          1030,
          "CAN keypad 1 button 6",
          {
            "rtvar":"keypad1.6"
          }
        ],
        [
          1031,
          "CAN keypad 1 button 7",
          {
            "rtvar":"keypad1.7"
          }
        ],
        [
          1032,
          "CAN keypad 1 button 8",
          {
            "rtvar":"keypad1.8"
          }
        ],
        [
          1033,
          "CAN keypad 1 button 9",
          {
            "rtvar":"keypad1.9"
          }
        ],
        [
          1034,
          "CAN keypad 1 button 10",
          {
            "rtvar":"keypad1.10"
          }
        ],
        [
          1035,
          "CAN keypad 1 button 11",
          {
            "rtvar":"keypad1.11"
          }
        ],
        [
          1036,
          "CAN keypad 1 button 12",
          {
            "rtvar":"keypad1.12"
          }
        ],
        [
          1037,
          "CAN keypad 1 button 13",
          {
            "rtvar":"keypad1.13"
          }
        ],
        [
          1038,
          "CAN keypad 1 button 14",
          {
            "rtvar":"keypad1.14"
          }
        ],
        [
          1039,
          "CAN keypad 1 button 15",
          {
            "rtvar":"keypad1.15"
          }
        ],
        [
          1041,
          "CAN keypad 2 button 1",
          {
            "rtvar":"keypad2.1"
          }
        ],
        [
          1042,
          "CAN keypad 2 button 2",
          {
            "rtvar":"keypad2.2"
          }
        ],
        [
          1043,
          "CAN keypad 2 button 3",
          {
            "rtvar":"keypad2.3"
          }
        ],
        [
          1044,
          "CAN keypad 2 button 4",
          {
            "rtvar":"keypad2.4"
          }
        ],
        [
          1045,
          "CAN keypad 2 button 5",
          {
            "rtvar":"keypad2.5"
          }
        ],
        [
          1046,
          "CAN keypad 2 button 6",
          {
            "rtvar":"keypad2.6"
          }
        ],
        [
          1047,
          "CAN keypad 2 button 7",
          {
            "rtvar":"keypad2.7"
          }
        ],
        [
          1048,
          "CAN keypad 2 button 8",
          {
            "rtvar":"keypad2.8"
          }
        ],
        [
          1049,
          "CAN keypad 2 button 9",
          {
            "rtvar":"keypad2.9"
          }
        ],
        [
          1050,
          "CAN keypad 2 button 10",
          {
            "rtvar":"keypad2.10"
          }
        ],
        [
          1051,
          "CAN keypad 2 button 11",
          {
            "rtvar":"keypad2.11"
          }
        ],
        [
          1052,
          "CAN keypad 2 button 12",
          {
            "rtvar":"keypad2.12"
          }
        ],
        [
          1053,
          "CAN keypad 2 button 13",
          {
            "rtvar":"keypad2.13"
          }
        ],
        [
          1054,
          "CAN keypad 2 button 14",
          {
            "rtvar":"keypad2.14"
          }
        ],
        [
          1055,
          "CAN keypad 2 button 15",
          {
            "rtvar":"keypad2.15"
          }
        ],
        [
          1057,
          "CAN keypad 3 button 1",
          {
            "rtvar":"keypad3.1"
          }
        ],
        [
          1058,
          "CAN keypad 3 button 2",
          {
            "rtvar":"keypad3.2"
          }
        ],
        [
          1059,
          "CAN keypad 3 button 3",
          {
            "rtvar":"keypad3.3"
          }
        ],
        [
          1060,
          "CAN keypad 3 button 4",
          {
            "rtvar":"keypad3.4"
          }
        ],
        [
          1061,
          "CAN keypad 3 button 5",
          {
            "rtvar":"keypad3.5"
          }
        ],
        [
          1062,
          "CAN keypad 3 button 6",
          {
            "rtvar":"keypad3.6"
          }
        ],
        [
          1063,
          "CAN keypad 3 button 7",
          {
            "rtvar":"keypad3.7"
          }
        ],
        [
          1064,
          "CAN keypad 3 button 8",
          {
            "rtvar":"keypad3.8"
          }
        ],
        [
          1065,
          "CAN keypad 3 button 9",
          {
            "rtvar":"keypad3.9"
          }
        ],
        [
          1066,
          "CAN keypad 3 button 10",
          {
            "rtvar":"keypad3.10"
          }
        ],
        [
          1067,
          "CAN keypad 3 button 11",
          {
            "rtvar":"keypad3.11"
          }
        ],
        [
          1068,
          "CAN keypad 3 button 12",
          {
            "rtvar":"keypad3.12"
          }
        ],
        [
          1069,
          "CAN keypad 3 button 13",
          {
            "rtvar":"keypad3.13"
          }
        ],
        [
          1070,
          "CAN keypad 3 button 14",
          {
            "rtvar":"keypad3.14"
          }
        ],
        [
          1071,
          "CAN keypad 3 button 15",
          {
            "rtvar":"keypad3.15"
          }
        ],
        [
          1073,
          "CAN keypad 4 button 1",
          {
            "rtvar":"keypad4.1"
          }
        ],
        [
          1074,
          "CAN keypad 4 button 2",
          {
            "rtvar":"keypad4.2"
          }
        ],
        [
          1075,
          "CAN keypad 4 button 3",
          {
            "rtvar":"keypad4.3"
          }
        ],
        [
          1076,
          "CAN keypad 4 button 4",
          {
            "rtvar":"keypad4.4"
          }
        ],
        [
          1077,
          "CAN keypad 4 button 5",
          {
            "rtvar":"keypad4.5"
          }
        ],
        [
          1078,
          "CAN keypad 4 button 6",
          {
            "rtvar":"keypad4.6"
          }
        ],
        [
          1079,
          "CAN keypad 4 button 7",
          {
            "rtvar":"keypad4.7"
          }
        ],
        [
          1080,
          "CAN keypad 4 button 8",
          {
            "rtvar":"keypad4.8"
          }
        ],
        [
          1081,
          "CAN keypad 4 button 9",
          {
            "rtvar":"keypad4.9"
          }
        ],
        [
          1082,
          "CAN keypad 4 button 10",
          {
            "rtvar":"keypad4.10"
          }
        ],
        [
          1083,
          "CAN keypad 4 button 11",
          {
            "rtvar":"keypad4.11"
          }
        ],
        [
          1084,
          "CAN keypad 4 button 12",
          {
            "rtvar":"keypad4.12"
          }
        ],
        [
          1085,
          "CAN keypad 4 button 13",
          {
            "rtvar":"keypad4.13"
          }
        ],
        [
          1086,
          "CAN keypad 4 button 14",
          {
            "rtvar":"keypad4.14"
          }
        ],
        [
          1087,
          "CAN keypad 4 button 15",
          {
            "rtvar":"keypad4.15"
          }
        ]
      ],
      "map_pwmoutputs":[
        [
          20064,
          "Tach output",
          {
            "rtvar":"enginespeed"
          }
        ],
        [
          20065,
          "Vehicle speed output",
          {
            "rtvar":"roadspeed"
          }
        ],
        [
          20066,
          "General purpose PWM",
          {
            "rtvar":"pwm0duty"
          }
        ],
        [
          20067,
          "General purpose PID",
          {
            "rtvar":"pwm1duty"
          }
        ],
        [
          20068,
          "General purpose PID 2",
          {
            "rtvar":"pwm2duty"
          }
        ],
        [
          20069,
          "General purpose PID 3",
          {
            "rtvar":"pwm3duty"
          }
        ],
        [
          20070,
          "General purpose PID 4",
          {
            "rtvar":"pwm4duty"
          }
        ],
        [
          20073,
          "User program PWM 1"
        ],
        [
          20074,
          "User program PWM 2"
        ],
        [
          20075,
          "User program PWM 3"
        ],
        [
          20076,
          "User program PWM 4"
        ],
        [
          20077,
          "User program PWM 5"
        ],
        [
          20078,
          "User program PWM 6"
        ],
        [
          20079,
          "User program PWM 7"
        ],
        [
          20080,
          "User program PWM 8"
        ],
        [
          20081,
          "User program PWM 9"
        ],
        [
          20082,
          "User program PWM 10"
        ],
        [
          20083,
          "User program PWM 11"
        ],
        [
          20084,
          "User program PWM 12"
        ],
        [
          20085,
          "User program PWM 13"
        ],
        [
          20086,
          "User program PWM 14"
        ],
        [
          20087,
          "User program PWM 15"
        ],
        [
          20088,
          "User program PWM 16"
        ],
        [
          20090,
          "Simple PWM 1",
          {
            "rtvar":"simplepwmdc1"
          }
        ],
        [
          20091,
          "Simple PWM 2",
          {
            "rtvar":"simplepwmdc2"
          }
        ],
        [
          20092,
          "Simple PWM 3",
          {
            "rtvar":"simplepwmdc3"
          }
        ],
        [
          20093,
          "Simple PWM 4",
          {
            "rtvar":"simplepwmdc4"
          }
        ]
      ],
      "enum_dinfunctions":[
        "General purpose digital input",
        "General purpose frequency input",
        "Frequency\/pw"
      ]
    },
    "confdef":[
      {
        "page":0,
        "size":32768,
        "data":[
          {
            "id":"bits0",
            "type":3,
            "address":0
          },
          {
            "id":"output.0",
            "type":12,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "reset":1,
            "descr":"Pin 9 on the 24 pin connector.",
            "address":4
          },
          {
            "id":"output.1",
            "type":12,
            "options":"map_outputs",
            "descr":"Pin 10 on the 24 pin connector.",
            "extraopts":"map_pwmoutputs",
            "reset":1,
            "address":6
          },
          {
            "id":"output.2",
            "type":12,
            "options":"map_outputs",
            "extraopts":[
              [
                20071,
                "Simulated crank trigger"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"Pin 22 on the 24 pin connector.",
            "address":8
          },
          {
            "id":"output.3",
            "type":12,
            "options":"map_outputs",
            "reset":1,
            "extraopts":[
              [
                20072,
                "Simulated cam sync"
              ],
              "map_pwmoutputs"
            ],
            "descr":"Pin 21 on the 24 pin connector.",
            "address":10
          },
          {
            "id":"intlog_enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.29.29"
          },
          {
            "id":"sdloginterval",
            "min":1,
            "max":500,
            "type":2,
            "scale":1000,
            "inverse":1,
            "unit":"Hz",
            "address":830
          },
          {
            "id":"sdlogburstinterval",
            "min":1,
            "max":500,
            "type":2,
            "scale":1000,
            "inverse":1,
            "unit":"Hz",
            "address":832
          },
          {
            "id":"logburstenable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.28.28",
            "descr":"If the burst logging is enabled, the data logging rate of the internal data logger can be increased on a condition (for example during full throttle)."
          },
          {
            "id":"sdlogmode",
            "type":8,
            "options":[
              [
                1,
                "Standard"
              ],
              [
                3,
                "Structured log"
              ],
              [
                4,
                "CAN receive log"
              ]
            ],
            "descr":"In standard mode, the logger records a full snapshot of every real time variable at the specified interval.\r\nThe structured log mode allows the recording of all log channels at a low rate and a selected subset of channels at a higher rate.",
            "address":838
          },
          {
            "id":"compactstructuredlog",
            "type":8,
            "options":[
              "Record all channels at lowest rate",
              "Record only selected channels"
            ],
            "address":"bits0.2.2",
            "descr":"If 'Record only selected channels' is selected, only the structured subset channels are recorded to the log. This results in smaller log files but also potentially missing important data"
          },
          {
            "id":"logchanspergroup",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This parameter adjusts the number of available slots in each log channel group, for backwards compatibility reasons this defaults to 16 but can now be set as large as 32",
            "address":839
          },
          {
            "id":"prioritylogchans",
            "type":9,
            "array":128,
            "verbose":1,
            "rows":"logchanspergroup",
            "cols":4,
            "descr":"Channels to be logged at a faster rate when in structured logging mode. Fill bottom rows first and set all unused slots to const_zero. Do not leave any gaps in the selection. (Slots that are used must be continuous, starting from the bottom at row 0)",
            "address":17716
          },
          {
            "id":"prioritylograte",
            "min":4,
            "max":1000,
            "type":1,
            "scale":1000,
            "inverse":1,
            "unit":"Hz",
            "array":8,
            "rows":2,
            "cols":4,
            "descr":"Set unused groups to the lowest frequency (4Hz). For best results the logging rates should all be multiples of the base log frequency in normal mode and burst mode respectively.",
            "address":18228
          },
          {
            "id":"sdloggingmaxfiles",
            "type":2,
            "descr":"If this value is non-zero and more files than this are found in the internal logging memory, older files will be deleted on ECU power on.",
            "address":17714
          },
          {
            "id":"maxloglength",
            "type":2,
            "unit":"s",
            "descr":"Set to zero and the log will record until controller is powered off or logging is ended via PC control.\r\nOtherwise this value sets the maximum log duration before logging is ended and if conditions for starting are met a new log file will be recorded.",
            "address":834
          },
          {
            "id":"minloglength",
            "type":2,
            "unit":"s",
            "descr":"Set to zero to disable this feature.\r\nAny other value will end the log being recorded if the conditions for log start have not been met for the set amount of time.",
            "address":836
          },
          {
            "id":"gpioondelay0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":722
          },
          {
            "id":"gpiooffdelay0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":758
          },
          {
            "id":"gpiomaxduration0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":794
          },
          {
            "id":"gpiocond1var0",
            "compact":0,
            "type":9,
            "address":16
          },
          {
            "id":"gpiocond1val0",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var0",
            "address":88
          },
          {
            "id":"gpiocond1hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var0",
            "relative":1,
            "address":160
          },
          {
            "id":"gpiocond1param0",
            "compact":0,
            "type":1,
            "address":232
          },
          {
            "id":"gpiocond1type0",
            "type":8,
            "compact":18,
            "options":"enum_moreless",
            "address":"gpiocond1param0.0.2"
          },
          {
            "id":"gpiocond1and0",
            "type":8,
            "compact":18,
            "options":"enum_andor",
            "address":"gpiocond1param0.3.4"
          },
          {
            "id":"gpiocond2var0",
            "compact":0,
            "type":9,
            "address":252
          },
          {
            "id":"gpiocond2val0",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var0",
            "address":324
          },
          {
            "id":"gpiocond2hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var0",
            "relative":1,
            "address":396
          },
          {
            "id":"gpiocond2param0",
            "compact":0,
            "type":1,
            "address":468
          },
          {
            "id":"gpiocond2type0",
            "type":8,
            "compact":18,
            "options":"enum_moreless",
            "address":"gpiocond2param0.0.2"
          },
          {
            "id":"gpiocond2and0",
            "type":8,
            "compact":18,
            "options":"enum_andor",
            "address":"gpiocond2param0.3.4"
          },
          {
            "id":"gpiocond3var0",
            "compact":0,
            "type":9,
            "address":488
          },
          {
            "id":"gpiocond3val0",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var0",
            "address":560
          },
          {
            "id":"gpiocond3hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var0",
            "relative":1,
            "address":632
          },
          {
            "id":"gpiocond3param0",
            "compact":0,
            "type":1,
            "address":704
          },
          {
            "id":"gpiocond3type0",
            "type":8,
            "compact":18,
            "options":"enum_moreless",
            "address":"gpiocond3param0.0.2"
          },
          {
            "id":"din1function",
            "type":8,
            "options":"enum_dinfunctions",
            "reset":1,
            "descr":"Function of pin 18",
            "address":1207
          },
          {
            "id":"din2function",
            "type":8,
            "options":"enum_dinfunctions",
            "reset":1,
            "descr":"Function of pin 19",
            "address":1208
          },
          {
            "id":"din3function",
            "type":8,
            "options":"enum_dinfunctions",
            "reset":1,
            "descr":"Function of pin 20",
            "address":1209
          },
          {
            "id":"din4function",
            "type":8,
            "options":"enum_dinfunctions",
            "reset":1,
            "descr":"Function of pin 23",
            "address":1210
          },
          {
            "id":"din1filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "address":1212
          },
          {
            "id":"din2filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "address":1214
          },
          {
            "id":"din3filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "address":1216
          },
          {
            "id":"din4filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "address":1218
          },
          {
            "id":"din1holdoff",
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "descr":"If set to a non-zero value, this filter will reject impulses that are less than the specified fraction of the last period.",
            "address":1220
          },
          {
            "id":"din2holdoff",
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "descr":"If set to a non-zero value, this filter will reject impulses that are less than the specified fraction of the last period.",
            "address":1221
          },
          {
            "id":"din3holdoff",
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "descr":"If set to a non-zero value, this filter will reject impulses that are less than the specified fraction of the last period.",
            "address":1222
          },
          {
            "id":"din4holdoff",
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "descr":"If set to a non-zero value, this filter will reject impulses that are less than the specified fraction of the last period.",
            "address":1223
          },
          {
            "id":"dinconf",
            "type":2,
            "address":1680
          },
          {
            "id":"din1rising",
            "type":8,
            "address":"dinconf.0.0",
            "options":"enum_triggeredge",
            "reset":1
          },
          {
            "id":"din2rising",
            "type":8,
            "address":"dinconf.1.1",
            "options":"enum_triggeredge",
            "reset":1
          },
          {
            "id":"din3rising",
            "type":8,
            "address":"dinconf.2.2",
            "options":"enum_triggeredge",
            "reset":1
          },
          {
            "id":"din4rising",
            "type":8,
            "address":"dinconf.3.3",
            "options":"enum_triggeredge",
            "reset":1
          },
          {
            "id":"din1maxinterval",
            "type":3,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"If the interval is longer than this, it is declared to be 0. Default is 500 milliseconds but some applications require it shorter for quickly detecting that speed has reached zero or longer to be able to measure longer intervals.",
            "address":19192
          },
          {
            "id":"din2maxinterval",
            "type":3,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"If the interval is longer than this, it is declared to be 0. Default is 500 milliseconds but some applications require it shorter for quickly detecting that speed has reached zero or longer to be able to measure longer intervals.",
            "address":19196
          },
          {
            "id":"din3maxinterval",
            "type":3,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"If the interval is longer than this, it is declared to be 0. Default is 500 milliseconds but some applications require it shorter for quickly detecting that speed has reached zero or longer to be able to measure longer intervals.",
            "address":19200
          },
          {
            "id":"din4maxinterval",
            "type":3,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"If the interval is longer than this, it is declared to be 0. Default is 500 milliseconds but some applications require it shorter for quickly detecting that speed has reached zero or longer to be able to measure longer intervals.",
            "address":19204
          },
          {
            "id":"pwm0enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.30.30"
          },
          {
            "id":"pwm0descr",
            "type":7,
            "array":50,
            "address":1157
          },
          {
            "id":"pwm0period",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "reset":1,
            "address":840
          },
          {
            "id":"pwm0primaryxvar",
            "type":9,
            "maxwidth":2,
            "address":844
          },
          {
            "id":"pwm0primaryyvar",
            "type":9,
            "maxwidth":2,
            "address":848
          },
          {
            "id":"pwm0secondaryxvar",
            "type":9,
            "maxwidth":2,
            "address":852
          },
          {
            "id":"pwm0secondaryyvar",
            "type":9,
            "maxwidth":2,
            "address":856
          },
          {
            "id":"pwm0ternaryxvar",
            "type":9,
            "maxwidth":2,
            "address":860
          },
          {
            "id":"pwm0ternaryyvar",
            "type":9,
            "maxwidth":2,
            "address":864
          },
          {
            "id":"pwm0primaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0primaryxvar",
            "address":868
          },
          {
            "id":"pwm0primaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0primaryyvar",
            "address":884
          },
          {
            "id":"pwm0secondaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0secondaryxvar",
            "address":900
          },
          {
            "id":"pwm0secondaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0secondaryyvar",
            "address":916
          },
          {
            "id":"pwm0ternaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0ternaryxvar",
            "address":932
          },
          {
            "id":"pwm0ternaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0ternaryyvar",
            "address":948
          },
          {
            "id":"pwm0primary",
            "type":1,
            "unit":"%",
            "max":100,
            "digits":1,
            "scale":0.392157,
            "array":64,
            "rows":8,
            "cols":8,
            "address":964
          },
          {
            "id":"pwm0secondary",
            "type":1,
            "digits":2,
            "scale":0.010000,
            "array":64,
            "rows":8,
            "cols":8,
            "address":1028
          },
          {
            "id":"pwm0ternary",
            "type":1,
            "digits":2,
            "scale":0.010000,
            "array":64,
            "rows":8,
            "cols":8,
            "address":1092
          },
          {
            "id":"pwm0mode",
            "type":1,
            "address":1156
          },
          {
            "id":"pwm0tabsel",
            "type":8,
            "address":"pwm0mode.0.1",
            "options":[
              "Single table",
              "Dual tables",
              "Triple tables"
            ]
          },
          {
            "id":"pwm1enable",
            "type":12,
            "options":"map_inputs",
            "address":1322
          },
          {
            "id":"pwm1defaultduty",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.003052,
            "digits":1,
            "descr":"If the control loop is disabled via the enable input, this is the duty cycle the output assumes. This value is not restricted by the maximum\/minimum duty limits set for the control loop.",
            "address":1324
          },
          {
            "id":"pwm1options",
            "type":1,
            "address":1227
          },
          {
            "id":"pwm1polarised",
            "type":8,
            "address":"pwm1options.0.0",
            "options":"enum_enabled",
            "descr":"If this mode is enabled, the function will be capable of putting out negative duty cycle. To make use of this capability the output must be assigned to an internal H bridge or an external H bridge adapter used in conjunction with a second output configured as a polarity output."
          },
          {
            "id":"pwm1Igplimit",
            "type":8,
            "address":"pwm1options.3.3",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be limited based on any variable, useful to limit motor actuator power when close to the edge of its travel for example."
          },
          {
            "id":"pwm1Igpmod",
            "type":8,
            "address":"pwm1options.4.4",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be multiplied based on any variable, useful to adjust motor current for battery voltage for example."
          },
          {
            "id":"pwm1slewlimit_enable",
            "type":8,
            "address":"pwm1options.5.5",
            "options":"enum_enabled",
            "descr":"If enabled, the setpoint rate of change is limited to a set value per PID cycle"
          },
          {
            "id":"pwm1slewlimit",
            "type":11,
            "datatype":2,
            "describedby":"pwm1var",
            "relative":1,
            "address":1316
          },
          {
            "id":"pwm1targetfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay low pass filter applied to the set point of the PID function. A value of for example 99% means that for each sample taken, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%",
            "digits":2,
            "address":1320
          },
          {
            "id":"pwm1gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":1264
          },
          {
            "id":"pwm1gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":1260
          },
          {
            "id":"pwm1gplimitpts",
            "type":2,
            "describedby":"pwm1gplimitsrc",
            "array":8,
            "address":1296
          },
          {
            "id":"pwm1gpdutymod",
            "type":11,
            "datatype":2,
            "digits":3,
            "scale":0.000977,
            "descr":"This value is multiplied by the output duty cycle, after the general purpose limit is applied but before the hard limit is applied.",
            "address":1312
          },
          {
            "id":"pwm1period",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "descr":"If assigned to a PWM output pin, this parameter specifies the PWM frequency. Note that not all pins support the same maximum PWM frequency.",
            "address":1224
          },
          {
            "id":"pwm1pidserviceperiod",
            "type":1,
            "unit":"ms",
            "descr":"This parameter specifies the interval at which the PID loop runs. Shortening the interval makes the integrator more sensitive and derivative less sensitive so adjustments will call for retuning of the PID parameters.\r\nTo disable the PID service, set this parameter's value to zero.",
            "address":1226
          },
          {
            "id":"pwm1var",
            "type":9,
            "maxwidth":2,
            "address":1228
          },
          {
            "id":"pwm1target",
            "type":11,
            "datatype":2,
            "describedby":"pwm1var",
            "address":1232
          },
          {
            "id":"pwm1base",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1236
          },
          {
            "id":"pwm1minduty",
            "type":2,
            "scale":0.003052,
            "sign":1,
            "digits":1,
            "address":1328
          },
          {
            "id":"pwm1maxduty",
            "type":2,
            "scale":0.003052,
            "sign":1,
            "digits":1,
            "address":1330
          },
          {
            "id":"pwm1Kp",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1240
          },
          {
            "id":"pwm1Ki",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1244
          },
          {
            "id":"pwm1Kd",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1248
          },
          {
            "id":"pwm1Imin",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1252
          },
          {
            "id":"pwm1Imax",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1256
          },
          {
            "id":"pwm2enable",
            "type":12,
            "options":"map_inputs",
            "address":1430
          },
          {
            "id":"pwm2defaultduty",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "descr":"If the control loop is disabled via the enable input, this is the duty cycle the output assumes. This value is not restricted by the maximum\/minimum duty limits set for the control loop.",
            "address":1432
          },
          {
            "id":"pwm2options",
            "type":1,
            "address":1335
          },
          {
            "id":"pwm2polarised",
            "type":8,
            "address":"pwm2options.0.0",
            "options":"enum_enabled",
            "descr":"If this mode is enabled, the function will be capable of putting out negative duty cycle. To make use of this capability the output must be assigned to an internal H bridge or an external H bridge adapter used in conjunction with a second output configured as a polarity output."
          },
          {
            "id":"pwm2Igplimit",
            "type":8,
            "address":"pwm2options.3.3",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be limited based on any variable, useful to limit motor actuator power when close to the edge of its travel for example."
          },
          {
            "id":"pwm2Igpmod",
            "type":8,
            "address":"pwm2options.4.4",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be multiplied based on any variable, useful to adjust motor current for battery voltage for example."
          },
          {
            "id":"pwm2slewlimit_enable",
            "type":8,
            "address":"pwm2options.5.5",
            "options":"enum_enabled",
            "descr":"If enabled, the setpoint rate of change is limited to a set value per PID cycle"
          },
          {
            "id":"pwm2slewlimit",
            "type":11,
            "datatype":2,
            "describedby":"pwm2var",
            "relative":1,
            "address":1424
          },
          {
            "id":"pwm2targetfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay low pass filter applied to the set point of the PID function. A value of for example 99% means that for each sample taken, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%",
            "digits":2,
            "address":1428
          },
          {
            "id":"pwm2gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":1372
          },
          {
            "id":"pwm2gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":1368
          },
          {
            "id":"pwm2gplimitpts",
            "type":2,
            "describedby":"pwm2gplimitsrc",
            "array":8,
            "address":1404
          },
          {
            "id":"pwm2gpdutymod",
            "type":11,
            "datatype":2,
            "digits":3,
            "scale":0.000977,
            "descr":"This value is multiplied by the output duty cycle, after the general purpose limit is applied but before the hard limit is applied.",
            "address":1420
          },
          {
            "id":"pwm2period",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "descr":"If assigned to a PWM output pin, this parameter specifies the PWM frequency. Note that not all pins support the same maximum PWM frequency.",
            "address":1332
          },
          {
            "id":"pwm2pidserviceperiod",
            "type":1,
            "unit":"ms",
            "descr":"This parameter specifies the interval at which the PID loop runs. Shortening the interval makes the integrator more sensitive and derivative less sensitive so adjustments will call for retuning of the PID parameters.\r\nTo disable the PID service, set this parameter's value to zero.",
            "address":1334
          },
          {
            "id":"pwm2var",
            "type":9,
            "maxwidth":2,
            "address":1336
          },
          {
            "id":"pwm2target",
            "type":11,
            "datatype":2,
            "describedby":"pwm2var",
            "address":1340
          },
          {
            "id":"pwm2base",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1344
          },
          {
            "id":"pwm2minduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1436
          },
          {
            "id":"pwm2maxduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1438
          },
          {
            "id":"pwm2Kp",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1348
          },
          {
            "id":"pwm2Ki",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1352
          },
          {
            "id":"pwm2Kd",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1356
          },
          {
            "id":"pwm2Imin",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1360
          },
          {
            "id":"pwm2Imax",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1364
          },
          {
            "id":"pwm3enable",
            "type":12,
            "options":"map_inputs",
            "address":1538
          },
          {
            "id":"pwm3defaultduty",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "descr":"If the control loop is disabled via the enable input, this is the duty cycle the output assumes. This value is not restricted by the maximum\/minimum duty limits set for the control loop.",
            "address":1540
          },
          {
            "id":"pwm3options",
            "type":1,
            "address":1443
          },
          {
            "id":"pwm3polarised",
            "type":8,
            "address":"pwm3options.0.0",
            "options":"enum_enabled",
            "descr":"If this mode is enabled, the function will be capable of putting out negative duty cycle. To make use of this capability the output must be assigned to an internal H bridge or an external H bridge adapter used in conjunction with a second output configured as a polarity output."
          },
          {
            "id":"pwm3Igplimit",
            "type":8,
            "address":"pwm3options.3.3",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be limited based on any variable, useful to limit motor actuator power when close to the edge of its travel for example."
          },
          {
            "id":"pwm3Igpmod",
            "type":8,
            "address":"pwm3options.4.4",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be multiplied based on any variable, useful to adjust motor current for battery voltage for example."
          },
          {
            "id":"pwm3slewlimit_enable",
            "type":8,
            "address":"pwm3options.5.5",
            "options":"enum_enabled",
            "descr":"If enabled, the setpoint rate of change is limited to a set value per PID cycle"
          },
          {
            "id":"pwm3slewlimit",
            "type":11,
            "datatype":2,
            "describedby":"pwm3var",
            "relative":1,
            "address":1532
          },
          {
            "id":"pwm3targetfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay low pass filter applied to the set point of the PID function. A value of for example 99% means that for each sample taken, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%",
            "digits":2,
            "address":1536
          },
          {
            "id":"pwm3gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":1480
          },
          {
            "id":"pwm3gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":1476
          },
          {
            "id":"pwm3gplimitpts",
            "type":2,
            "describedby":"pwm3gplimitsrc",
            "array":8,
            "address":1512
          },
          {
            "id":"pwm3gpdutymod",
            "type":11,
            "datatype":2,
            "digits":3,
            "scale":0.000977,
            "descr":"This value is multiplied by the output duty cycle, after the general purpose limit is applied but before the hard limit is applied.",
            "address":1528
          },
          {
            "id":"pwm3period",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "descr":"If assigned to a PWM output pin, this parameter specifies the PWM frequency. Note that not all pins support the same maximum PWM frequency.",
            "address":1440
          },
          {
            "id":"pwm3pidserviceperiod",
            "type":1,
            "unit":"ms",
            "descr":"This parameter specifies the interval at which the PID loop runs. Shortening the interval makes the integrator more sensitive and derivative less sensitive so adjustments will call for retuning of the PID parameters.\r\nTo disable the PID service, set this parameter's value to zero.",
            "address":1442
          },
          {
            "id":"pwm3var",
            "type":9,
            "maxwidth":2,
            "address":1444
          },
          {
            "id":"pwm3target",
            "type":11,
            "datatype":2,
            "describedby":"pwm3var",
            "address":1448
          },
          {
            "id":"pwm3base",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1452
          },
          {
            "id":"pwm3minduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1544
          },
          {
            "id":"pwm3maxduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1546
          },
          {
            "id":"pwm3Kp",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1456
          },
          {
            "id":"pwm3Ki",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1460
          },
          {
            "id":"pwm3Kd",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1464
          },
          {
            "id":"pwm3Imin",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1468
          },
          {
            "id":"pwm3Imax",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1472
          },
          {
            "id":"pwm4enable",
            "type":12,
            "options":"map_inputs",
            "address":1646
          },
          {
            "id":"pwm4defaultduty",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "descr":"If the control loop is disabled via the enable input, this is the duty cycle the output assumes. This value is not restricted by the maximum\/minimum duty limits set for the control loop.",
            "address":1648
          },
          {
            "id":"pwm4options",
            "type":1,
            "address":1551
          },
          {
            "id":"pwm4polarised",
            "type":8,
            "address":"pwm4options.0.0",
            "options":"enum_enabled",
            "descr":"If this mode is enabled, the function will be capable of putting out negative duty cycle. To make use of this capability the output must be assigned to an internal H bridge or an external H bridge adapter used in conjunction with a second output configured as a polarity output."
          },
          {
            "id":"pwm4Igplimit",
            "type":8,
            "address":"pwm4options.3.3",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be limited based on any variable, useful to limit motor actuator power when close to the edge of its travel for example."
          },
          {
            "id":"pwm4Igpmod",
            "type":8,
            "address":"pwm4options.4.4",
            "options":"enum_enabled",
            "descr":"If enabled, the output duty of the PID function can be multiplied based on any variable, useful to adjust motor current for battery voltage for example."
          },
          {
            "id":"pwm4slewlimit_enable",
            "type":8,
            "address":"pwm4options.5.5",
            "options":"enum_enabled",
            "descr":"If enabled, the setpoint rate of change is limited to a set value per PID cycle"
          },
          {
            "id":"pwm4slewlimit",
            "type":11,
            "datatype":2,
            "describedby":"pwm4var",
            "relative":1,
            "address":1640
          },
          {
            "id":"pwm4targetfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay low pass filter applied to the set point of the PID function. A value of for example 99% means that for each sample taken, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%",
            "digits":2,
            "address":1644
          },
          {
            "id":"pwm4gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":1588
          },
          {
            "id":"pwm4gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":1584
          },
          {
            "id":"pwm4gplimitpts",
            "type":2,
            "describedby":"pwm4gplimitsrc",
            "array":8,
            "address":1620
          },
          {
            "id":"pwm4gpdutymod",
            "type":11,
            "datatype":2,
            "digits":3,
            "scale":0.000977,
            "descr":"This value is multiplied by the output duty cycle, after the general purpose limit is applied but before the hard limit is applied.",
            "address":1636
          },
          {
            "id":"pwm4period",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "descr":"If assigned to a PWM output pin, this parameter specifies the PWM frequency. Note that not all pins support the same maximum PWM frequency.",
            "address":1548
          },
          {
            "id":"pwm4pidserviceperiod",
            "type":1,
            "unit":"ms",
            "descr":"This parameter specifies the interval at which the PID loop runs. Shortening the interval makes the integrator more sensitive and derivative less sensitive so adjustments will call for retuning of the PID parameters.\r\nTo disable the PID service, set this parameter's value to zero.",
            "address":1550
          },
          {
            "id":"pwm4var",
            "type":9,
            "maxwidth":2,
            "address":1552
          },
          {
            "id":"pwm4target",
            "type":11,
            "datatype":2,
            "describedby":"pwm4var",
            "address":1556
          },
          {
            "id":"pwm4base",
            "type":11,
            "datatype":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1560
          },
          {
            "id":"pwm4minduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1652
          },
          {
            "id":"pwm4maxduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":1654
          },
          {
            "id":"pwm4Kp",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1564
          },
          {
            "id":"pwm4Ki",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1568
          },
          {
            "id":"pwm4Kd",
            "type":11,
            "datatype":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":1572
          },
          {
            "id":"pwm4Imin",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1576
          },
          {
            "id":"pwm4Imax",
            "type":11,
            "datatype":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":1580
          },
          {
            "id":"analogfilter0",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1656
          },
          {
            "id":"freqfilter1",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "address":1672
          },
          {
            "id":"can1mode",
            "type":8,
            "options":"enum_canspeed",
            "descr":"Sets the data rate of the CAN bus.",
            "onchange":[
              [
                "rpc",
                "initcan"
              ]
            ],
            "address":12
          },
          {
            "id":"can1txformat",
            "maxwidth":2,
            "type":9,
            "array":64,
            "verbose":1,
            "rows":16,
            "cols":4,
            "address":1684
          },
          {
            "id":"can1txinterval",
            "type":8,
            "options":"enum_cantxfreq",
            "array":16,
            "rows":16,
            "address":1940
          },
          {
            "id":"can1txaddress",
            "type":3,
            "array":16,
            "rows":16,
            "hex":1,
            "address":1956
          },
          {
            "id":"can1rxcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This variable specifies how many CAN receive slots to show of up to 32. The rest will be hidden in the editor and ignored by the controller",
            "address":2020
          },
          {
            "id":"can2rxcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This variable specifies how many CAN receive slots to show of up to 32. The rest will be hidden in the editor and ignored by the controller",
            "address":2021
          },
          {
            "id":"can1rxdescr",
            "type":8,
            "array":32,
            "rows":"can1rxcount",
            "options":"map_datatypes",
            "address":2152
          },
          {
            "id":"can1rxoffset",
            "type":1,
            "array":32,
            "rows":"can1rxcount",
            "max":63,
            "address":2184
          },
          {
            "id":"can1rxaddr",
            "type":3,
            "array":32,
            "rows":"can1rxcount",
            "hex":1,
            "address":2024
          },
          {
            "id":"can1rxrange",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"can1rxcount",
            "cols":2,
            "address":2216
          },
          {
            "id":"can1rxoutput",
            "type":2,
            "array":64,
            "rows":"can1rxcount",
            "cols":2,
            "address":2472
          },
          {
            "id":"can1rxtimeout",
            "type":1,
            "array":32,
            "rows":"can1rxcount",
            "unit":"sec",
            "digits":1,
            "scale":0.100000,
            "address":2664
          },
          {
            "id":"can1rxdefault",
            "type":2,
            "array":32,
            "rows":"can1rxcount",
            "address":2600
          },
          {
            "id":"can1rxname",
            "type":7,
            "width":32,
            "array":32,
            "rows":"can1rxcount",
            "address":2760
          },
          {
            "id":"can1rxalias",
            "type":7,
            "width":16,
            "array":32,
            "rows":"can1rxcount",
            "charset":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_",
            "descr":"short name appended to the identifier of the CAN receptor, can not include spaces or special characters other than underscores",
            "address":3784
          },
          {
            "id":"can1rxfilter",
            "array":32,
            "rows":"can1rxcount",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. A value of for example 99% means that for each packet received, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%.\r\nSet to 0 to disable the filter. The filter is primarily useful if receiving data from a noisy unfiltered source.",
            "digits":2,
            "address":4296
          },
          {
            "id":"can1rxmuxmode",
            "type":8,
            "options":[
              "No multiplexing",
              "8 bit multiplexed",
              "16 bit multiplexed"
            ],
            "array":32,
            "rows":"can1rxcount",
            "descr":"Normal, sane users of CAN bus do not use multiplexing, but there are some dumb implementations that are saving CAN IDs by multiplexing the messages, sometimes due to hardware limitations in acceptance filters. If you need to receive data from such a system, the first byte or first two bytes can be compared against the specified multiplexing value before the rest of the CAN frame is decoded. In 16 bit mode the value is treated as little endian, so the value of the first byte is the least significant byte and the value of the second byte is the most significant byte, so the specified multiplexing value should be formed as firstbyte + secondbyte * 256.",
            "address":4424
          },
          {
            "id":"can1rxmux",
            "type":2,
            "array":32,
            "rows":"can1rxcount",
            "descr":"Value to compare against for multiplexing. If multiplexing mode is set to 8 bit, the first byte of the CAN frame is compared against this value. If multiplexing mode is set to 16 bit, the first two bytes of the CAN frame are treated as a little endian value and compared against this value. If the specified value matches, then the CAN frame is processed and the data is extracted according to the rest of the configuration for this receptor, if it does not match then the CAN frame is ignored.",
            "address":4360
          },
          {
            "id":"can2rxmuxmode",
            "type":8,
            "options":[
              "No multiplexing",
              "8 bit multiplexed",
              "16 bit multiplexed"
            ],
            "array":32,
            "rows":"can2rxcount",
            "descr":"Normal, sane users of CAN bus do not use multiplexing, but there are some dumb implementations that are saving CAN IDs by multiplexing the messages, sometimes due to hardware limitations in acceptance filters. If you need to receive data from such a system, the first byte or first two bytes can be compared against the specified multiplexing value before the rest of the CAN frame is decoded. In 16 bit mode the value is treated as little endian, so the value of the first byte is the least significant byte and the value of the second byte is the most significant byte, so the specified multiplexing value should be formed as firstbyte + secondbyte * 256.",
            "address":10680
          },
          {
            "id":"can2rxmux",
            "type":2,
            "array":32,
            "rows":"can2rxcount",
            "descr":"Value to compare against for multiplexing. If multiplexing mode is set to 8 bit, the first byte of the CAN frame is compared against this value. If multiplexing mode is set to 16 bit, the first two bytes of the CAN frame are treated as a little endian value and compared against this value. If the specified value matches, then the CAN frame is processed and the data is extracted according to the rest of the configuration for this receptor, if it does not match then the CAN frame is ignored.",
            "address":10616
          },
          {
            "id":"can2rxfilter",
            "array":32,
            "rows":"can2rxcount",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. A value of for example 99% means that for each packet received, 99% of the difference from the current value is thrown away and the rest added to the current value. The filter becomes exponentially more effective as approaching 100%.\r\nSet to 0 to disable the filter. The filter is primarily useful if receiving data from a noisy unfiltered source.",
            "digits":2,
            "address":10552
          },
          {
            "id":"can1rxbits",
            "type":1,
            "array":64,
            "rows":"can1rxcount",
            "cols":2,
            "max":32,
            "descr":"Right shift value, if non-zero, trims away a specified number of least significant bits. Bit width value if non-zero trims away the most significant bits. For example a bit width value of 4 will result in the possible received values being restricted to the range of 0-15.",
            "address":2696
          },
          {
            "id":"can1bcenable",
            "type":8,
            "address":"bits0.12.12",
            "options":"enum_enabled"
          },
          {
            "id":"can1rxenable",
            "type":8,
            "address":"bits0.13.13",
            "options":"enum_enabled"
          },
          {
            "id":"customcan1enable",
            "type":8,
            "address":"bits0.14.14",
            "options":"enum_enabled"
          },
          {
            "id":"customcan1addr",
            "type":3,
            "array":32,
            "rows":"customcan1count",
            "hex":1,
            "address":4456
          },
          {
            "id":"customcan1data",
            "type":9,
            "array":128,
            "rows":"customcan1count",
            "cols":4,
            "verbose":1,
            "address":4584
          },
          {
            "id":"customcan1length",
            "type":1,
            "array":32,
            "rows":"customcan1count",
            "max":64,
            "address":5352
          },
          {
            "id":"customcan1txbytes",
            "type":1,
            "array":32,
            "rows":"customcan1count",
            "min":1,
            "max":8,
            "address":7720
          },
          {
            "id":"customcan1filler",
            "type":1,
            "array":256,
            "rows":"customcan1count",
            "cols":8,
            "address":7464
          },
          {
            "id":"customcan1offsets",
            "type":1,
            "array":128,
            "rows":"customcan1count",
            "cols":4,
            "max":63,
            "address":5224
          },
          {
            "id":"customcan1bitshifts",
            "type":1,
            "array":128,
            "rows":"customcan1count",
            "cols":4,
            "max":7,
            "descr":"Only possible with 8 bit values, if any of these fields are non-zero then the associated data is left shifted by the specified number of bits and then OR-ed into the buffer, allowing generation of numbers less than 8 bits wide that are not located on a byte boundary.",
            "address":7816
          },
          {
            "id":"customcan1count",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This variable specifies how many slots to present for custom CAN transmitters. The rest, up to 32, will be hidden and ignored by the controller",
            "address":2022
          },
          {
            "id":"customcan2count",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This variable specifies how many slots to present for custom CAN transmitters. The rest, up to 32, will be hidden and ignored by the controller",
            "address":2023
          },
          {
            "id":"customcan1interval",
            "type":8,
            "array":32,
            "rows":"customcan1count",
            "options":"enum_ccantxfreq",
            "address":5384
          },
          {
            "id":"customcan1format",
            "type":8,
            "array":128,
            "rows":"customcan1count",
            "cols":4,
            "options":"map_datatypes",
            "address":5096
          },
          {
            "id":"customcan1range",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan1count",
            "cols":8,
            "address":5416
          },
          {
            "id":"customcan1output",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan1count",
            "cols":8,
            "address":6440
          },
          {
            "id":"customcan1txconds",
            "type":12,
            "array":32,
            "rows":"customcan1count",
            "options":"map_inputs",
            "descr":"These conditions can be used to control whether or not each custom CAN packet is sent. Allows for greater flexibility in packet formatting by allowing multiple definitions for the same CAN ID but using logic to select which one to transmit.",
            "address":7752
          },
          {
            "id":"can2mode",
            "type":8,
            "options":"enum_canspeed",
            "descr":"Sets the data rate of the CAN bus.",
            "onchange":[
              [
                "rpc",
                "initcan"
              ]
            ],
            "address":13
          },
          {
            "id":"can2txformat",
            "maxwidth":2,
            "type":9,
            "array":64,
            "verbose":1,
            "rows":16,
            "cols":4,
            "address":7944
          },
          {
            "id":"can2txinterval",
            "type":8,
            "options":"enum_cantxfreq",
            "array":16,
            "rows":16,
            "address":8200
          },
          {
            "id":"can2txaddress",
            "type":3,
            "array":16,
            "rows":16,
            "hex":1,
            "address":8216
          },
          {
            "id":"can2rxdescr",
            "type":8,
            "array":32,
            "rows":"can2rxcount",
            "options":"map_datatypes",
            "address":8408
          },
          {
            "id":"can2rxoffset",
            "type":1,
            "array":32,
            "rows":"can2rxcount",
            "max":63,
            "address":8440
          },
          {
            "id":"can2rxaddr",
            "type":3,
            "array":32,
            "rows":"can2rxcount",
            "hex":1,
            "address":8280
          },
          {
            "id":"can2rxrange",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"can2rxcount",
            "cols":2,
            "address":8472
          },
          {
            "id":"can2rxoutput",
            "type":2,
            "array":64,
            "rows":"can2rxcount",
            "cols":2,
            "address":8728
          },
          {
            "id":"can2rxtimeout",
            "type":1,
            "array":32,
            "rows":"can2rxcount",
            "unit":"sec",
            "digits":1,
            "scale":0.100000,
            "address":8920
          },
          {
            "id":"can2rxdefault",
            "type":2,
            "array":32,
            "rows":"can2rxcount",
            "address":8856
          },
          {
            "id":"can2rxname",
            "type":7,
            "width":32,
            "array":32,
            "rows":"can2rxcount",
            "address":9016
          },
          {
            "id":"can2rxalias",
            "type":7,
            "width":16,
            "array":32,
            "rows":"can2rxcount",
            "charset":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_",
            "descr":"short name appended to the identifier of the CAN receptor, can not include spaces or special characters other than underscores",
            "address":10040
          },
          {
            "id":"can2rxbits",
            "type":1,
            "array":64,
            "rows":"can2rxcount",
            "cols":2,
            "max":32,
            "descr":"Right shift value, if non-zero, trims away a specified number of least significant bits. Bit width value if non-zero trims away the most significant bits. For example a bit width value of 4 will result in the possible received values being restricted to the range of 0-15.",
            "address":8952
          },
          {
            "id":"can2bcenable",
            "type":8,
            "address":"bits0.15.15",
            "options":"enum_enabled"
          },
          {
            "id":"can2rxenable",
            "type":8,
            "address":"bits0.16.16",
            "options":"enum_enabled"
          },
          {
            "id":"customcan2enable",
            "type":8,
            "address":"bits0.17.17",
            "options":"enum_enabled"
          },
          {
            "id":"customcan2addr",
            "type":3,
            "array":32,
            "rows":"customcan2count",
            "hex":1,
            "address":10712
          },
          {
            "id":"customcan2data",
            "type":9,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "verbose":1,
            "address":10840
          },
          {
            "id":"customcan2length",
            "type":1,
            "array":32,
            "rows":"customcan2count",
            "max":64,
            "address":11608
          },
          {
            "id":"customcan2interval",
            "type":8,
            "array":32,
            "rows":"customcan2count",
            "options":"enum_ccantxfreq",
            "address":11640
          },
          {
            "id":"customcan2format",
            "type":8,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "options":"map_datatypes",
            "address":11352
          },
          {
            "id":"customcan2range",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":11672
          },
          {
            "id":"customcan2output",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":12696
          },
          {
            "id":"customcan2txbytes",
            "type":1,
            "array":32,
            "rows":"customcan2count",
            "min":1,
            "max":8,
            "address":13976
          },
          {
            "id":"customcan2filler",
            "type":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":13720
          },
          {
            "id":"customcan2offsets",
            "type":1,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "max":63,
            "address":11480
          },
          {
            "id":"customcan2bitshifts",
            "type":1,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "max":7,
            "descr":"Only possible with 8 bit values, if any of these fields are non-zero then the associated data is left shifted by the specified number of bits and then OR-ed into the buffer, allowing generation of numbers less than 8 bits wide that are not located on a byte boundary.",
            "address":14072
          },
          {
            "id":"customcan2txconds",
            "type":12,
            "array":32,
            "rows":"customcan2count",
            "options":"map_inputs",
            "descr":"These conditions can be used to control whether or not each custom CAN packet is sent. Allows for greater flexibility in packet formatting by allowing multiple definitions for the same CAN ID but using logic to select which one to transmit.",
            "address":14008
          },
          {
            "id":"canroutingmode1",
            "type":8,
            "options":"enum_canroutingmodes",
            "address":14200
          },
          {
            "id":"canroutingmode2",
            "type":8,
            "options":"enum_canroutingmodes",
            "address":14201
          },
          {
            "id":"can1filteraddr",
            "type":3,
            "array":16,
            "rows":16,
            "hex":1,
            "address":14204
          },
          {
            "id":"can1filteraction",
            "type":8,
            "options":"enum_canfilteraction",
            "array":16,
            "rows":16,
            "address":14268
          },
          {
            "id":"can1filtercondition",
            "type":12,
            "options":"map_inputs",
            "array":16,
            "rows":16,
            "address":14284
          },
          {
            "id":"can1filteraltaction",
            "type":8,
            "options":"enum_canfilteraction",
            "array":16,
            "rows":16,
            "address":14316
          },
          {
            "id":"can2filteraddr",
            "type":3,
            "array":16,
            "rows":16,
            "hex":1,
            "address":14332
          },
          {
            "id":"can2filteraction",
            "type":8,
            "options":"enum_canfilteraction",
            "array":16,
            "rows":16,
            "address":14396
          },
          {
            "id":"can2filtercondition",
            "type":12,
            "options":"map_inputs",
            "array":16,
            "rows":16,
            "address":14412
          },
          {
            "id":"can2filteraltaction",
            "type":8,
            "options":"enum_canfilteraction",
            "array":16,
            "rows":16,
            "address":14444
          },
          {
            "id":"caneditmult",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":32,
            "rows":8,
            "cols":4,
            "address":14460
          },
          {
            "id":"caneditadder",
            "type":2,
            "sign":1,
            "array":32,
            "rows":8,
            "cols":4,
            "address":14524
          },
          {
            "id":"caneditdatatypes",
            "type":8,
            "options":"map_datatypes",
            "extraopts":[
              [
                255,
                "none"
              ]
            ],
            "array":32,
            "rows":8,
            "cols":4,
            "address":14588
          },
          {
            "id":"caneditoffsets",
            "type":1,
            "max":7,
            "array":32,
            "rows":8,
            "cols":4,
            "descr":"This is the byte offset of the each value to edit in the CAN frame.",
            "address":14620
          },
          {
            "id":"caneditreplace",
            "type":9,
            "array":32,
            "extraopts":[
              [
                65535,
                "Keep original"
              ]
            ],
            "rows":8,
            "cols":4,
            "descr":"If set to Keep original, the value from the received packet is used as the basis for the editor. Any other value selected will replace the source with a value sourced elsewhere.",
            "address":14652
          },
          {
            "id":"caneditrange",
            "type":3,
            "array":64,
            "rows":8,
            "cols":8,
            "sign":1,
            "descr":"If the two values for each variable are not identical then the variable is restricted to that range.",
            "address":14780
          },
          {
            "id":"caneditbitshort",
            "type":1,
            "max":63,
            "array":32,
            "rows":8,
            "cols":4,
            "descr":"If non-zero, the values fed to the editor are cut short to the specified number of bits so in case the most significant bits are used to indicate something other than a number they can be left untouched by the editor.",
            "address":15036
          },
          {
            "id":"caneditbitand",
            "type":2,
            "array":32,
            "rows":8,
            "cols":4,
            "descr":"If non-zero, a bitwise AND operation will be applied to the edited value. Useful to prevent certain bits from passing through in high state. To zero all the bits of a value use the multiply by 0 function instead.",
            "address":15132
          },
          {
            "id":"caneditbitor",
            "type":2,
            "array":32,
            "rows":8,
            "cols":4,
            "descr":"If non-zero, a bitwise OR operation will be applied to the edited value. Useful to prevent certain bits from passing through in low state.",
            "address":15068
          },
          {
            "id":"caneditchksum",
            "type":8,
            "array":8,
            "rows":8,
            "options":[
              "None",
              "8 bit sum at byte 7"
            ],
            "address":15196
          },
          {
            "id":"caneditchksumadder",
            "type":1,
            "array":8,
            "rows":8,
            "descr":"This value is added to the checksum after calculation",
            "address":15204
          },
          {
            "id":"canscanstartaddr",
            "min":1,
            "max":536870911,
            "type":3,
            "hex":1,
            "address":15212
          },
          {
            "id":"canscanendaddr",
            "min":1,
            "max":536870911,
            "type":3,
            "hex":1,
            "address":15216
          },
          {
            "id":"canscanstopaddr",
            "type":3,
            "min":0,
            "max":536870911,
            "descr":"Set to zero to stop scan on any packet reception",
            "hex":1,
            "address":15224
          },
          {
            "id":"canscanoptions",
            "type":2,
            "address":15220
          },
          {
            "id":"canscanbus",
            "type":8,
            "address":"canscanoptions.0.0",
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canscaninterval",
            "type":1,
            "unit":"ms",
            "address":15228
          },
          {
            "id":"canscanlength",
            "type":1,
            "min":1,
            "max":8,
            "address":15229
          },
          {
            "id":"canscancontent",
            "type":1,
            "array":8,
            "cols":"canscanlength",
            "address":15230
          },
          {
            "id":"tachoutcyls",
            "type":2,
            "scale":0.000977,
            "digits":2,
            "address":15240
          },
          {
            "id":"speedoutppkm",
            "type":2,
            "address":15238
          },
          {
            "id":"enginespeedsrc",
            "maxwidth":2,
            "type":9,
            "address":15244
          },
          {
            "id":"roadspeedsrc",
            "maxwidth":2,
            "type":9,
            "address":15248
          },
          {
            "id":"vssvarpicker2",
            "maxwidth":2,
            "type":9,
            "address":15252
          },
          {
            "id":"tachinputcylcount",
            "type":1,
            "address":15256
          },
          {
            "id":"tachinselect",
            "type":8,
            "options":[
              "Digital input 1",
              "Digital input 2",
              "Digital input 3",
              "Digital input 4",
              "Test mode",
              "Other"
            ],
            "address":15257
          },
          {
            "id":"vssselect",
            "type":8,
            "options":[
              [
                0,
                "Digital input 1"
              ],
              [
                1,
                "Digital input 2"
              ],
              [
                2,
                "Digital input 3"
              ],
              [
                3,
                "Digital input 4"
              ],
              [
                104,
                "Front wheel speeds"
              ],
              [
                105,
                "Rear wheel speeds"
              ],
              [
                106,
                "All wheel speeds"
              ],
              [
                107,
                "Test mode"
              ],
              [
                108,
                "Other"
              ]
            ],
            "descr":"If CAN or other is used as a speed source, the source should be scaled so that its value is 10 times greater than the speed, for a resolution of 0.1km\/h",
            "address":15258
          },
          {
            "id":"vssselect2",
            "type":8,
            "options":[
              [
                0,
                "Digital input 1"
              ],
              [
                1,
                "Digital input 2"
              ],
              [
                2,
                "Digital input 3"
              ],
              [
                3,
                "Digital input 4"
              ],
              [
                104,
                "Front wheel speeds"
              ],
              [
                105,
                "Rear wheel speeds"
              ],
              [
                108,
                "Other"
              ]
            ],
            "descr":"If CAN or other is used as a speed source, the source should be scaled so that its value is 10 times greater than the speed, for a resolution of 0.1km\/h",
            "address":15259
          },
          {
            "id":"vsssource_fl",
            "type":9,
            "maxwidth":2,
            "descr":"The variable in question is expected to contain wheel speed as an integer with a granularity of 0.1 km\/h",
            "address":15268
          },
          {
            "id":"vsssource_fr",
            "type":9,
            "maxwidth":2,
            "descr":"The variable in question is expected to contain wheel speed as an integer with a granularity of 0.1 km\/h",
            "address":15272
          },
          {
            "id":"vsssource_rl",
            "type":9,
            "maxwidth":2,
            "descr":"The variable in question is expected to contain wheel speed as an integer with a granularity of 0.1 km\/h",
            "address":15276
          },
          {
            "id":"vsssource_rr",
            "type":9,
            "maxwidth":2,
            "descr":"The variable in question is expected to contain wheel speed as an integer with a granularity of 0.1 km\/h",
            "address":15280
          },
          {
            "id":"ppkm_fl",
            "type":2,
            "descr":"This value is used to calculate wheel speed if the source is a digital input on the ECU",
            "address":15284
          },
          {
            "id":"ppkm_fr",
            "type":2,
            "descr":"This value is used to calculate wheel speed if the source is a digital input on the ECU",
            "address":15286
          },
          {
            "id":"ppkm_rl",
            "type":2,
            "descr":"This value is used to calculate wheel speed if the source is a digital input on the ECU",
            "address":15288
          },
          {
            "id":"ppkm_rr",
            "type":2,
            "descr":"This value is used to calculate wheel speed if the source is a digital input on the ECU",
            "address":15290
          },
          {
            "id":"vssmode_fl",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 2",
              "Digital input 3",
              "Digital input 4"
            ],
            "descr":"In case Other is selected, the speed is taken from a user selected variable. In any other case the digital input in question needs to be configured for individual wheel speed.",
            "address":15292
          },
          {
            "id":"vssmode_fr",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 2",
              "Digital input 3",
              "Digital input 4"
            ],
            "descr":"In case Other is selected, the speed is taken from a user selected variable. In any other case the digital input in question needs to be configured for individual wheel speed.",
            "address":15293
          },
          {
            "id":"vssmode_rl",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 2",
              "Digital input 3",
              "Digital input 4"
            ],
            "descr":"In case Other is selected, the speed is taken from a user selected variable. In any other case the digital input in question needs to be configured for individual wheel speed.",
            "address":15294
          },
          {
            "id":"vssmode_rr",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 2",
              "Digital input 3",
              "Digital input 4"
            ],
            "descr":"In case Other is selected, the speed is taken from a user selected variable. In any other case the digital input in question needs to be configured for individual wheel speed.",
            "address":15295
          },
          {
            "id":"vssvalidrange",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "array":2,
            "unit":"km\/h",
            "descr":"When using individual wheel speeds for driven wheel or undriven wheel speeds for traction control, cruise control, launch control etc. the wheels that do not measure within this range are ignored, this is done to not completely disable those systems if one wheel speed sensor is faulted. Some ABS controllers will broadcast a very high speed for a faulted sensor, and others will remain at 0.",
            "address":15296
          },
          {
            "id":"vssppkm",
            "type":2,
            "address":15260
          },
          {
            "id":"testroadspeed",
            "type":2,
            "units":"km\/h",
            "scale":0.100000,
            "digits":1,
            "address":15264
          },
          {
            "id":"testenginespeed",
            "type":2,
            "units":"RPM",
            "address":15266
          },
          {
            "id":"din1skip",
            "type":1,
            "address":15300
          },
          {
            "id":"din2skip",
            "type":1,
            "address":15301
          },
          {
            "id":"din3skip",
            "type":1,
            "address":15302
          },
          {
            "id":"din4skip",
            "type":1,
            "address":15303
          },
          {
            "id":"ffset0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15304
          },
          {
            "id":"ffreset0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15360
          },
          {
            "id":"fftoggle0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15328
          },
          {
            "id":"ffsetdelay0",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15320
          },
          {
            "id":"ffresetdelay0",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15376
          },
          {
            "id":"fftoggleondelay0",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15344
          },
          {
            "id":"fftoggleoffdelay0",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15352
          },
          {
            "id":"fftimeout0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15392
          },
          {
            "id":"ffbootstate0",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15384
          },
          {
            "id":"countresetinput0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.",
            "address":15426
          },
          {
            "id":"upcountinput0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.",
            "address":15410
          },
          {
            "id":"downcountinput0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15418
          },
          {
            "id":"counterdebounce0",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The increment or decrement inputs must be active for this amount of time before counter value is altered, and deactive for the same amount of time before the value may be altered again. No delay applies to the reset input in any case.",
            "address":15438
          },
          {
            "id":"downcountinput0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15418
          },
          {
            "id":"counterresetvalue0",
            "compact":0,
            "type":1,
            "descr":"The counter will assume this value when the controller powers on and also if the counter reset input activates.",
            "address":15442
          },
          {
            "id":"countmaxvalue0",
            "compact":0,
            "type":1,
            "descr":"If the counter reaches this value, the increment input is disabled unless overflow is enabled, in which case the value will roll over to zero on increment.",
            "address":15434
          },
          {
            "id":"counterconf",
            "type":1,
            "address":15408
          },
          {
            "id":"countmode0",
            "compact":4,
            "type":8,
            "options":[
              "No overflows",
              "Overflow enabled",
              "Underflow enabled",
              "Overflow and underflow"
            ],
            "address":"counterconf.0.1"
          },
          {
            "id":"latchconfig",
            "type":1,
            "address":15446
          },
          {
            "id":"latchmode1",
            "compact":4,
            "type":8,
            "address":"latchconfig.0.1",
            "options":[
              "Set while active",
              "Leading edge",
              "Trailing edge",
              "Multiplex"
            ],
            "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input."
          },
          {
            "id":"gplatchinput1",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken when the set input activates it.",
            "address":15448
          },
          {
            "id":"gplatchaltinput1",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken if the latch is configured as a multiplex and both set and reset inputs are inactive.",
            "address":15464
          },
          {
            "id":"gplatchset1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.",
            "address":15480
          },
          {
            "id":"gplatchreset1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.",
            "address":15488
          },
          {
            "id":"gplatchdefaultval1",
            "compact":0,
            "type":2,
            "describedby":"gplatchinput1",
            "descr":"The latch assumes this value when the controller is powered on and also when the reset input is activated.",
            "address":15496
          },
          {
            "id":"bcd1src",
            "type":12,
            "options":"map_inputs",
            "array":4,
            "rows":4,
            "descr":"The BCD function combines the values of more than one logic function or digital input to create a decimal value. The decimal value is then used as an input to some other function such as cal pot or gear select.",
            "address":15504
          },
          {
            "id":"bcd2src",
            "type":12,
            "options":"map_inputs",
            "array":4,
            "rows":4,
            "descr":"The BCD function combines the values of more than one logic function or digital input to create a decimal value. The decimal value is then used as an input to some other function such as cal pot or gear select.",
            "address":15512
          },
          {
            "id":"bcd3src",
            "type":12,
            "options":"map_inputs",
            "array":4,
            "rows":4,
            "descr":"The BCD function combines the values of more than one logic function or digital input to create a decimal value. The decimal value is then used as an input to some other function such as cal pot or gear select.",
            "address":15520
          },
          {
            "id":"bcd4src",
            "type":12,
            "options":"map_inputs",
            "array":4,
            "rows":4,
            "descr":"The BCD function combines the values of more than one logic function or digital input to create a decimal value. The decimal value is then used as an input to some other function such as cal pot or gear select.",
            "address":15528
          },
          {
            "id":"customlookupopts1",
            "type":1,
            "compact":0,
            "address":15536
          },
          {
            "id":"customlookupdecimal1",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15544
          },
          {
            "id":"customlookupsigned1",
            "type":8,
            "address":"customlookupopts1.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned2",
            "type":8,
            "address":"customlookupopts2.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned3",
            "type":8,
            "address":"customlookupopts3.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned4",
            "type":8,
            "address":"customlookupopts4.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned5",
            "type":8,
            "address":"customlookupopts5.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned6",
            "type":8,
            "address":"customlookupopts6.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned7",
            "type":8,
            "address":"customlookupopts7.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customlookupsigned8",
            "type":8,
            "address":"customlookupopts8.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"gptransfer1src",
            "type":9,
            "maxwidth":2,
            "address":15552
          },
          {
            "id":"gptransfer2src",
            "type":9,
            "maxwidth":2,
            "address":15688
          },
          {
            "id":"gptransfer3src",
            "type":9,
            "maxwidth":2,
            "address":15824
          },
          {
            "id":"gptransfer4src",
            "type":9,
            "maxwidth":2,
            "address":15960
          },
          {
            "id":"gptransfer5src",
            "type":9,
            "maxwidth":2,
            "address":16096
          },
          {
            "id":"gptransfer6src",
            "type":9,
            "maxwidth":2,
            "address":16232
          },
          {
            "id":"gptransfer7src",
            "type":9,
            "maxwidth":2,
            "address":16368
          },
          {
            "id":"gptransfer8src",
            "type":9,
            "maxwidth":2,
            "address":16504
          },
          {
            "id":"gptransfer1in",
            "type":2,
            "describedby":"gptransfer1src",
            "array":32,
            "cols":"gptransfer1pts",
            "address":15556
          },
          {
            "id":"gptransfer1out",
            "type":2,
            "array":32,
            "cols":"gptransfer1pts",
            "address":15620
          },
          {
            "id":"gptransfer1pts",
            "type":1,
            "min":1,
            "max":32,
            "address":15684
          },
          {
            "id":"gptransfer2in",
            "type":2,
            "describedby":"gptransfer2src",
            "array":32,
            "cols":"gptransfer2pts",
            "address":15692
          },
          {
            "id":"gptransfer2out",
            "type":2,
            "array":32,
            "cols":"gptransfer2pts",
            "address":15756
          },
          {
            "id":"gptransfer2pts",
            "type":1,
            "min":1,
            "max":32,
            "address":15820
          },
          {
            "id":"gptransfer3in",
            "type":2,
            "describedby":"gptransfer3src",
            "array":32,
            "cols":"gptransfer3pts",
            "address":15828
          },
          {
            "id":"gptransfer3out",
            "type":2,
            "array":32,
            "cols":"gptransfer3pts",
            "address":15892
          },
          {
            "id":"gptransfer3pts",
            "type":1,
            "min":1,
            "max":32,
            "address":15956
          },
          {
            "id":"gptransfer4in",
            "type":2,
            "describedby":"gptransfer4src",
            "array":32,
            "cols":"gptransfer4pts",
            "address":15964
          },
          {
            "id":"gptransfer4out",
            "type":2,
            "array":32,
            "cols":"gptransfer4pts",
            "address":16028
          },
          {
            "id":"gptransfer4pts",
            "type":1,
            "min":1,
            "max":32,
            "address":16092
          },
          {
            "id":"gptransfer5in",
            "type":2,
            "describedby":"gptransfer5src",
            "array":32,
            "cols":"gptransfer5pts",
            "address":16100
          },
          {
            "id":"gptransfer5out",
            "type":2,
            "array":32,
            "cols":"gptransfer5pts",
            "address":16164
          },
          {
            "id":"gptransfer5pts",
            "type":1,
            "min":1,
            "max":32,
            "address":16228
          },
          {
            "id":"gptransfer6in",
            "type":2,
            "describedby":"gptransfer6src",
            "array":32,
            "cols":"gptransfer6pts",
            "address":16236
          },
          {
            "id":"gptransfer6out",
            "type":2,
            "array":32,
            "cols":"gptransfer6pts",
            "address":16300
          },
          {
            "id":"gptransfer6pts",
            "type":1,
            "min":1,
            "max":32,
            "address":16364
          },
          {
            "id":"gptransfer7in",
            "type":2,
            "describedby":"gptransfer7src",
            "array":32,
            "cols":"gptransfer7pts",
            "address":16372
          },
          {
            "id":"gptransfer7out",
            "type":2,
            "array":32,
            "cols":"gptransfer7pts",
            "address":16436
          },
          {
            "id":"gptransfer7pts",
            "type":1,
            "min":1,
            "max":32,
            "address":16500
          },
          {
            "id":"gptransfer8in",
            "type":2,
            "describedby":"gptransfer8src",
            "array":32,
            "cols":"gptransfer8pts",
            "address":16508
          },
          {
            "id":"gptransfer8out",
            "type":2,
            "array":32,
            "cols":"gptransfer8pts",
            "address":16572
          },
          {
            "id":"gptransfer8pts",
            "type":1,
            "min":1,
            "max":32,
            "address":16636
          },
          {
            "id":"custom2dopts1",
            "type":1,
            "compact":0,
            "address":16637
          },
          {
            "id":"custom2ddecimal1",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16645
          },
          {
            "id":"custom2dsigned1",
            "type":8,
            "address":"custom2dopts1.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned2",
            "type":8,
            "address":"custom2dopts2.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned3",
            "type":8,
            "address":"custom2dopts3.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned4",
            "type":8,
            "address":"custom2dopts4.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned5",
            "type":8,
            "address":"custom2dopts5.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned6",
            "type":8,
            "address":"custom2dopts6.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned7",
            "type":8,
            "address":"custom2dopts7.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"custom2dsigned8",
            "type":8,
            "address":"custom2dopts8.7.7",
            "options":[
              "Unsigned",
              "Signed"
            ],
            "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose."
          },
          {
            "id":"customflextable1",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned1",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned1",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal1",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal1",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal1",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal1",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16656,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable2",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned2",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned2",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal2",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal2",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal2",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal2",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16660,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable3",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned3",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned3",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal3",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal3",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal3",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal3",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16664,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable4",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned4",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned4",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal4",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal4",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal4",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal4",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16668,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable5",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned5",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned5",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal5",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal5",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal5",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal5",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16672,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable6",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned6",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned6",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal6",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal6",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal6",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal6",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16676,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable7",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned7",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned7",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal7",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal7",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal7",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal7",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16680,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"customflextable8",
            "type":11,
            "datatype":2,
            "variations":[
              [
                "custom2dsigned8",
                "=",
                "Signed"
              ],
              {
                "sign":1
              },
              [
                "custom2dsigned8",
                "=",
                "Unsigned"
              ],
              {
                "sign":0
              },
              [
                "custom2ddecimal8",
                "=",
                "0"
              ],
              {
                "digits":0,
                "scale":1,
                "endif":true
              },
              [
                "custom2ddecimal8",
                "=",
                "1"
              ],
              {
                "digits":1,
                "scale":0.100000
              },
              [
                "custom2ddecimal8",
                "=",
                "2"
              ],
              {
                "digits":2,
                "scale":0.010000
              },
              [
                "custom2ddecimal8",
                "=",
                "3"
              ],
              {
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":16684,
            "sign":0,
            "digits":0,
            "scale":1
          },
          {
            "id":"gpaccuoptions0",
            "type":1,
            "compact":0,
            "address":18236
          },
          {
            "id":"gpaccu_overflow0",
            "type":8,
            "address":"gpaccuoptions0.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow1",
            "type":8,
            "address":"gpaccuoptions1.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow2",
            "type":8,
            "address":"gpaccuoptions2.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow3",
            "type":8,
            "address":"gpaccuoptions3.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow4",
            "type":8,
            "address":"gpaccuoptions4.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow5",
            "type":8,
            "address":"gpaccuoptions5.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow6",
            "type":8,
            "address":"gpaccuoptions6.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccu_overflow7",
            "type":8,
            "address":"gpaccuoptions7.0.1",
            "options":[
              "Stop",
              "Overflow",
              "Reset"
            ]
          },
          {
            "id":"gpaccuactivate0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18244
          },
          {
            "id":"gpaccuclear0",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18260
          },
          {
            "id":"gpaccusrc0",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18276
          },
          {
            "id":"gpaccuoffset0",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc0",
            "address":18308
          },
          {
            "id":"gpaccumax0",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc0",
            "address":18324
          },
          {
            "id":"gpaccuinterval0",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18340
          },
          {
            "id":"obd2enable",
            "type":8,
            "address":"bits0.0.0",
            "options":"enum_enabled",
            "descr":"Enables communication with OBD2 CAN bus scan tools. Requires that CAN receiving is enabled and CAN data rate set to 500kbps."
          },
          {
            "id":"obd2bcenable",
            "type":8,
            "address":"bits0.1.1",
            "options":"enum_enabled",
            "descr":"Enables listening for the standard 11 bit OBD2 broadcast ID (0x7DF). May want to disable this to avoid interfering with scanning of the engine's ECU."
          },
          {
            "id":"obdvin",
            "type":7,
            "array":18,
            "descr":"When an OBD2 request is made to read the car's VIN number, this is the string sent back by the ECU.",
            "address":18358
          },
          {
            "id":"customobdcount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"Custom OBD slots used.",
            "address":18357
          },
          {
            "id":"customobdpid",
            "type":1,
            "array":32,
            "rows":"customobdcount",
            "descr":"Specify a value of 0 for all entries that are not to be used.",
            "address":18376
          },
          {
            "id":"customobddata",
            "type":9,
            "array":32,
            "rows":"customobdcount",
            "verbose":1,
            "address":18408
          },
          {
            "id":"customobdformat",
            "type":8,
            "array":32,
            "rows":"customobdcount",
            "options":"map_bedatatypes",
            "address":18536
          },
          {
            "id":"customobdrange",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"customobdcount",
            "cols":2,
            "descr":"If the range is specified as 0 up through 0, no scaling is done. Otherwise, scaling of the output is done using the input range configured here and output range configured in the next map.",
            "address":18568
          },
          {
            "id":"customobdoutput",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"customobdcount",
            "cols":2,
            "descr":"If an input range is configured, this is the range the output will be scaled to for each of these variables.",
            "address":18824
          },
          {
            "id":"obdid",
            "type":3,
            "hex":1,
            "max":536870911,
            "descr":"The ID to listen for OBD requests on. The standard for the first ECU on the bus is 0x7E0, and the following units go all the way up to 0x7E7",
            "address":19080
          },
          {
            "id":"obdresponseid",
            "type":3,
            "hex":1,
            "max":536870911,
            "descr":"The ID to transmit OBD requests to. The standard for the first ECU on the bus is 0x7E8, and the following units go all the way up to 0x7EF",
            "address":19084
          },
          {
            "id":"simplepwmduty1",
            "type":11,
            "datatype":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "compact":0,
            "address":19100
          },
          {
            "id":"simplepwmfreq1",
            "type":11,
            "datatype":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "compact":0,
            "address":19116
          },
          {
            "id":"simplepwmrefreshinterval1",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"The PWM duty and frequency gets updated at this interval. To disable the function set this value to 0.",
            "address":19088
          },
          {
            "id":"simplepwmenable1",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'",
            "address":19092
          },
          {
            "id":"password",
            "type":7,
            "width":32,
            "address":19132
          },
          {
            "id":"password_set",
            "type":3,
            "address":19164
          },
          {
            "id":"password_level",
            "type":8,
            "options":[
              "No access",
              "Diagnostics",
              "Full access"
            ],
            "address":19168
          },
          {
            "id":"crankoutcount",
            "type":1,
            "max":128,
            "descr":"The crank teeth should add up to 360 or 720 degrees. If they add up to 360 the pattern is played twice for each playback of the cam pattern, but if the teeth add up to 720 degrees the pattern is not repeated.",
            "address":16688
          },
          {
            "id":"camoutcount",
            "type":1,
            "max":128,
            "descr":"The cam teeth do not have to add up to 720 degrees, but they are not guaranteed to have any particular behaviour with less.",
            "address":16689
          },
          {
            "id":"crankoutteeth",
            "type":2,
            "array":256,
            "rows":2,
            "cols":128,
            "digits":2,
            "scale":0.010986,
            "address":16690
          },
          {
            "id":"camoutteeth",
            "type":2,
            "array":256,
            "rows":2,
            "cols":128,
            "digits":2,
            "scale":0.010986,
            "address":17202
          },
          {
            "id":"camoutdelay",
            "type":2,
            "digits":1,
            "min":10,
            "scale":0.010986,
            "descr":"How many degrees after the first crank tooth the first cam tooth is scheduled. There is a minimum here as the cam pattern is synchronised to the crank pattern.",
            "address":19170
          },
          {
            "id":"appsrc",
            "type":9,
            "maxwidth":2,
            "address":19172
          },
          {
            "id":"appcal",
            "type":2,
            "array":2,
            "describedby":"appsrc",
            "address":19176
          },
          {
            "id":"mapsrc",
            "type":9,
            "maxwidth":2,
            "address":19180
          },
          {
            "id":"mapvoltrange",
            "type":2,
            "array":2,
            "describedby":"mapsrc",
            "address":19184
          },
          {
            "id":"mapcal",
            "type":2,
            "unit":"mbar",
            "array":2,
            "address":19188
          },
          {
            "id":"blinkkeypadoptions",
            "type":1,
            "address":19208
          },
          {
            "id":"blinkkeypadenable",
            "type":8,
            "address":"blinkkeypadoptions.0.1",
            "options":[
              "Disabled",
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"blinkkeypadsize1",
            "type":1,
            "max":15,
            "compact":0,
            "address":19209
          },
          {
            "id":"blinkkeypad1buttonmodes",
            "type":8,
            "array":15,
            "rows":"blinkkeypadsize1",
            "options":"enum_keypadmodes",
            "descr":"In momentary mode, the button only activates while being pressed. In toggle mode, the button changes state each time it is pressed.\r\nIn non-volatile toggle mode the ECU internal battery keeps the state of the toggled button when ECU is powered off.\r\nIn light independent mode, the button functions as a momentary button but the LED state is controlled separately using the auxiliary light control input.",
            "address":19213
          },
          {
            "id":"blinkkeypad1buttonauxinputs",
            "type":12,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize1",
            "options":"map_inputs",
            "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition",
            "address":19228
          },
          {
            "id":"blinkkeypad1buttonauxlightinputs",
            "type":12,
            "array":15,
            "rows":"blinkkeypadsize1",
            "options":"map_inputs",
            "descr":"The auxiliary light control input allows the LED state to be controlled separately from the button function when the button is configured in light independent mode.",
            "address":19288
          },
          {
            "id":"blinkkeypad1lightstates",
            "type":8,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize1",
            "options":"enum_keypadledcolourwithfunctions",
            "address":19318
          },
          {
            "id":"blinkkeypad2buttonmodes",
            "type":8,
            "array":15,
            "rows":"blinkkeypadsize2",
            "options":"enum_keypadmodes",
            "address":19348
          },
          {
            "id":"blinkkeypad2buttonauxinputs",
            "type":12,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize2",
            "options":"map_inputs",
            "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition",
            "address":19364
          },
          {
            "id":"blinkkeypad2buttonauxlightinputs",
            "type":12,
            "array":15,
            "rows":"blinkkeypadsize2",
            "options":"map_inputs",
            "descr":"The auxiliary light control input allows the LED state to be controlled separately from the button function when the button is configured in light independent mode.",
            "address":19424
          },
          {
            "id":"blinkkeypad2lightstates",
            "type":8,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize2",
            "options":"enum_keypadledcolourwithfunctions",
            "address":19454
          },
          {
            "id":"blinkkeypad3buttonmodes",
            "type":8,
            "array":15,
            "rows":"blinkkeypadsize3",
            "options":"enum_keypadmodes",
            "address":19484
          },
          {
            "id":"blinkkeypad3buttonauxinputs",
            "type":12,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize3",
            "options":"map_inputs",
            "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition",
            "address":19500
          },
          {
            "id":"blinkkeypad3buttonauxlightinputs",
            "type":12,
            "array":15,
            "rows":"blinkkeypadsize3",
            "options":"map_inputs",
            "descr":"The auxiliary light control input allows the LED state to be controlled separately from the button function when the button is configured in light independent mode.",
            "address":19560
          },
          {
            "id":"blinkkeypad3lightstates",
            "type":8,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize3",
            "options":"enum_keypadledcolourwithfunctions",
            "address":19590
          },
          {
            "id":"blinkkeypad4buttonmodes",
            "type":8,
            "array":15,
            "rows":"blinkkeypadsize4",
            "options":"enum_keypadmodes",
            "address":19620
          },
          {
            "id":"blinkkeypad4buttonauxinputs",
            "type":12,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize4",
            "options":"map_inputs",
            "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition",
            "address":19636
          },
          {
            "id":"blinkkeypad4buttonauxlightinputs",
            "type":12,
            "array":15,
            "rows":"blinkkeypadsize4",
            "options":"map_inputs",
            "descr":"The auxiliary light control input allows the LED state to be controlled separately from the button function when the button is configured in light independent mode.",
            "address":19696
          },
          {
            "id":"blinkkeypad4lightstates",
            "type":8,
            "array":30,
            "cols":2,
            "rows":"blinkkeypadsize4",
            "options":"enum_keypadledcolourwithfunctions",
            "address":19726
          },
          {
            "id":"keypadcolourfunction1",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19756
          },
          {
            "id":"analog_high",
            "type":2,
            "unit":"V",
            "scale":0.001221,
            "digits":3,
            "descr":"When an analog input is used as a digital on\/off input, its state is considered high (inactive) if the voltage goes above this threshold.",
            "address":1676
          },
          {
            "id":"analog_low",
            "type":2,
            "unit":"V",
            "scale":0.001221,
            "digits":3,
            "descr":"When an analog input is used as a digital on\/off input, its state is considered low (active) if the voltage goes below this threshold.",
            "address":1678
          },
          {
            "id":"gpioondelay1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":724
          },
          {
            "id":"gpioondelay2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":726
          },
          {
            "id":"gpioondelay3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":728
          },
          {
            "id":"gpioondelay4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":730
          },
          {
            "id":"gpioondelay5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":732
          },
          {
            "id":"gpioondelay6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":734
          },
          {
            "id":"gpioondelay7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":736
          },
          {
            "id":"gpioondelay8",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":738
          },
          {
            "id":"gpioondelay9",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":740
          },
          {
            "id":"gpioondelay10",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":742
          },
          {
            "id":"gpioondelay11",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":744
          },
          {
            "id":"gpioondelay12",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":746
          },
          {
            "id":"gpioondelay13",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":748
          },
          {
            "id":"gpioondelay14",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":750
          },
          {
            "id":"gpioondelay15",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":752
          },
          {
            "id":"gpioondelay16",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":754
          },
          {
            "id":"gpioondelay17",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":756
          },
          {
            "id":"gpiooffdelay1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":760
          },
          {
            "id":"gpiooffdelay2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":762
          },
          {
            "id":"gpiooffdelay3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":764
          },
          {
            "id":"gpiooffdelay4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":766
          },
          {
            "id":"gpiooffdelay5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":768
          },
          {
            "id":"gpiooffdelay6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":770
          },
          {
            "id":"gpiooffdelay7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":772
          },
          {
            "id":"gpiooffdelay8",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":774
          },
          {
            "id":"gpiooffdelay9",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":776
          },
          {
            "id":"gpiooffdelay10",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":778
          },
          {
            "id":"gpiooffdelay11",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":780
          },
          {
            "id":"gpiooffdelay12",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":782
          },
          {
            "id":"gpiooffdelay13",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":784
          },
          {
            "id":"gpiooffdelay14",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":786
          },
          {
            "id":"gpiooffdelay15",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":788
          },
          {
            "id":"gpiooffdelay16",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":790
          },
          {
            "id":"gpiooffdelay17",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "address":792
          },
          {
            "id":"gpiomaxduration1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":796
          },
          {
            "id":"gpiomaxduration2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":798
          },
          {
            "id":"gpiomaxduration3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":800
          },
          {
            "id":"gpiomaxduration4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":802
          },
          {
            "id":"gpiomaxduration5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":804
          },
          {
            "id":"gpiomaxduration6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":806
          },
          {
            "id":"gpiomaxduration7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":808
          },
          {
            "id":"gpiomaxduration8",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":810
          },
          {
            "id":"gpiomaxduration9",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":812
          },
          {
            "id":"gpiomaxduration10",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":814
          },
          {
            "id":"gpiomaxduration11",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":816
          },
          {
            "id":"gpiomaxduration12",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":818
          },
          {
            "id":"gpiomaxduration13",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":820
          },
          {
            "id":"gpiomaxduration14",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":822
          },
          {
            "id":"gpiomaxduration15",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":824
          },
          {
            "id":"gpiomaxduration16",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":826
          },
          {
            "id":"gpiomaxduration17",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the condition will reset to 0 after a given time, and the logic must return a 0 result before it can retrigger back to 1",
            "address":828
          },
          {
            "id":"gpiocond1var1",
            "compact":0,
            "type":9,
            "address":20
          },
          {
            "id":"gpiocond1var2",
            "compact":0,
            "type":9,
            "address":24
          },
          {
            "id":"gpiocond1var3",
            "compact":0,
            "type":9,
            "address":28
          },
          {
            "id":"gpiocond1var4",
            "compact":0,
            "type":9,
            "address":32
          },
          {
            "id":"gpiocond1var5",
            "compact":0,
            "type":9,
            "address":36
          },
          {
            "id":"gpiocond1var6",
            "compact":0,
            "type":9,
            "address":40
          },
          {
            "id":"gpiocond1var7",
            "compact":0,
            "type":9,
            "address":44
          },
          {
            "id":"gpiocond1var8",
            "compact":0,
            "type":9,
            "address":48
          },
          {
            "id":"gpiocond1var9",
            "compact":0,
            "type":9,
            "address":52
          },
          {
            "id":"gpiocond1var10",
            "compact":0,
            "type":9,
            "address":56
          },
          {
            "id":"gpiocond1var11",
            "compact":0,
            "type":9,
            "address":60
          },
          {
            "id":"gpiocond1var12",
            "compact":0,
            "type":9,
            "address":64
          },
          {
            "id":"gpiocond1var13",
            "compact":0,
            "type":9,
            "address":68
          },
          {
            "id":"gpiocond1var14",
            "compact":0,
            "type":9,
            "address":72
          },
          {
            "id":"gpiocond1var15",
            "compact":0,
            "type":9,
            "address":76
          },
          {
            "id":"gpiocond1var16",
            "compact":0,
            "type":9,
            "address":80
          },
          {
            "id":"gpiocond1var17",
            "compact":0,
            "type":9,
            "address":84
          },
          {
            "id":"gpiocond1val1",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var1",
            "address":92
          },
          {
            "id":"gpiocond1val2",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var2",
            "address":96
          },
          {
            "id":"gpiocond1val3",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var3",
            "address":100
          },
          {
            "id":"gpiocond1val4",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var4",
            "address":104
          },
          {
            "id":"gpiocond1val5",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var5",
            "address":108
          },
          {
            "id":"gpiocond1val6",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var6",
            "address":112
          },
          {
            "id":"gpiocond1val7",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var7",
            "address":116
          },
          {
            "id":"gpiocond1val8",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var8",
            "address":120
          },
          {
            "id":"gpiocond1val9",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var9",
            "address":124
          },
          {
            "id":"gpiocond1val10",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var10",
            "address":128
          },
          {
            "id":"gpiocond1val11",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var11",
            "address":132
          },
          {
            "id":"gpiocond1val12",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var12",
            "address":136
          },
          {
            "id":"gpiocond1val13",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var13",
            "address":140
          },
          {
            "id":"gpiocond1val14",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var14",
            "address":144
          },
          {
            "id":"gpiocond1val15",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var15",
            "address":148
          },
          {
            "id":"gpiocond1val16",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var16",
            "address":152
          },
          {
            "id":"gpiocond1val17",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond1var17",
            "address":156
          },
          {
            "id":"gpiocond1hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var1",
            "relative":1,
            "address":164
          },
          {
            "id":"gpiocond1hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var2",
            "relative":1,
            "address":168
          },
          {
            "id":"gpiocond1hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var3",
            "relative":1,
            "address":172
          },
          {
            "id":"gpiocond1hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var4",
            "relative":1,
            "address":176
          },
          {
            "id":"gpiocond1hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var5",
            "relative":1,
            "address":180
          },
          {
            "id":"gpiocond1hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var6",
            "relative":1,
            "address":184
          },
          {
            "id":"gpiocond1hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var7",
            "relative":1,
            "address":188
          },
          {
            "id":"gpiocond1hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var8",
            "relative":1,
            "address":192
          },
          {
            "id":"gpiocond1hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var9",
            "relative":1,
            "address":196
          },
          {
            "id":"gpiocond1hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var10",
            "relative":1,
            "address":200
          },
          {
            "id":"gpiocond1hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var11",
            "relative":1,
            "address":204
          },
          {
            "id":"gpiocond1hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var12",
            "relative":1,
            "address":208
          },
          {
            "id":"gpiocond1hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var13",
            "relative":1,
            "address":212
          },
          {
            "id":"gpiocond1hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var14",
            "relative":1,
            "address":216
          },
          {
            "id":"gpiocond1hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var15",
            "relative":1,
            "address":220
          },
          {
            "id":"gpiocond1hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var16",
            "relative":1,
            "address":224
          },
          {
            "id":"gpiocond1hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var17",
            "relative":1,
            "address":228
          },
          {
            "id":"gpiocond1param1",
            "compact":0,
            "type":1,
            "address":233
          },
          {
            "id":"gpiocond1param2",
            "compact":0,
            "type":1,
            "address":234
          },
          {
            "id":"gpiocond1param3",
            "compact":0,
            "type":1,
            "address":235
          },
          {
            "id":"gpiocond1param4",
            "compact":0,
            "type":1,
            "address":236
          },
          {
            "id":"gpiocond1param5",
            "compact":0,
            "type":1,
            "address":237
          },
          {
            "id":"gpiocond1param6",
            "compact":0,
            "type":1,
            "address":238
          },
          {
            "id":"gpiocond1param7",
            "compact":0,
            "type":1,
            "address":239
          },
          {
            "id":"gpiocond1param8",
            "compact":0,
            "type":1,
            "address":240
          },
          {
            "id":"gpiocond1param9",
            "compact":0,
            "type":1,
            "address":241
          },
          {
            "id":"gpiocond1param10",
            "compact":0,
            "type":1,
            "address":242
          },
          {
            "id":"gpiocond1param11",
            "compact":0,
            "type":1,
            "address":243
          },
          {
            "id":"gpiocond1param12",
            "compact":0,
            "type":1,
            "address":244
          },
          {
            "id":"gpiocond1param13",
            "compact":0,
            "type":1,
            "address":245
          },
          {
            "id":"gpiocond1param14",
            "compact":0,
            "type":1,
            "address":246
          },
          {
            "id":"gpiocond1param15",
            "compact":0,
            "type":1,
            "address":247
          },
          {
            "id":"gpiocond1param16",
            "compact":0,
            "type":1,
            "address":248
          },
          {
            "id":"gpiocond1param17",
            "compact":0,
            "type":1,
            "address":249
          },
          {
            "id":"gpiocond1type1",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param1.0.2"
          },
          {
            "id":"gpiocond1type2",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param2.0.2"
          },
          {
            "id":"gpiocond1type3",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param3.0.2"
          },
          {
            "id":"gpiocond1type4",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param4.0.2"
          },
          {
            "id":"gpiocond1type5",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param5.0.2"
          },
          {
            "id":"gpiocond1type6",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param6.0.2"
          },
          {
            "id":"gpiocond1type7",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param7.0.2"
          },
          {
            "id":"gpiocond1type8",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param8.0.2"
          },
          {
            "id":"gpiocond1type9",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param9.0.2"
          },
          {
            "id":"gpiocond1type10",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param10.0.2"
          },
          {
            "id":"gpiocond1type11",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param11.0.2"
          },
          {
            "id":"gpiocond1type12",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param12.0.2"
          },
          {
            "id":"gpiocond1type13",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param13.0.2"
          },
          {
            "id":"gpiocond1type14",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param14.0.2"
          },
          {
            "id":"gpiocond1type15",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param15.0.2"
          },
          {
            "id":"gpiocond1type16",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param16.0.2"
          },
          {
            "id":"gpiocond1type17",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond1param17.0.2"
          },
          {
            "id":"gpiocond1and1",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param1.3.4"
          },
          {
            "id":"gpiocond1and2",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param2.3.4"
          },
          {
            "id":"gpiocond1and3",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param3.3.4"
          },
          {
            "id":"gpiocond1and4",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param4.3.4"
          },
          {
            "id":"gpiocond1and5",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param5.3.4"
          },
          {
            "id":"gpiocond1and6",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param6.3.4"
          },
          {
            "id":"gpiocond1and7",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param7.3.4"
          },
          {
            "id":"gpiocond1and8",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param8.3.4"
          },
          {
            "id":"gpiocond1and9",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param9.3.4"
          },
          {
            "id":"gpiocond1and10",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param10.3.4"
          },
          {
            "id":"gpiocond1and11",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param11.3.4"
          },
          {
            "id":"gpiocond1and12",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param12.3.4"
          },
          {
            "id":"gpiocond1and13",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param13.3.4"
          },
          {
            "id":"gpiocond1and14",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param14.3.4"
          },
          {
            "id":"gpiocond1and15",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param15.3.4"
          },
          {
            "id":"gpiocond1and16",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param16.3.4"
          },
          {
            "id":"gpiocond1and17",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond1param17.3.4"
          },
          {
            "id":"gpiocond2var1",
            "compact":0,
            "type":9,
            "address":256
          },
          {
            "id":"gpiocond2var2",
            "compact":0,
            "type":9,
            "address":260
          },
          {
            "id":"gpiocond2var3",
            "compact":0,
            "type":9,
            "address":264
          },
          {
            "id":"gpiocond2var4",
            "compact":0,
            "type":9,
            "address":268
          },
          {
            "id":"gpiocond2var5",
            "compact":0,
            "type":9,
            "address":272
          },
          {
            "id":"gpiocond2var6",
            "compact":0,
            "type":9,
            "address":276
          },
          {
            "id":"gpiocond2var7",
            "compact":0,
            "type":9,
            "address":280
          },
          {
            "id":"gpiocond2var8",
            "compact":0,
            "type":9,
            "address":284
          },
          {
            "id":"gpiocond2var9",
            "compact":0,
            "type":9,
            "address":288
          },
          {
            "id":"gpiocond2var10",
            "compact":0,
            "type":9,
            "address":292
          },
          {
            "id":"gpiocond2var11",
            "compact":0,
            "type":9,
            "address":296
          },
          {
            "id":"gpiocond2var12",
            "compact":0,
            "type":9,
            "address":300
          },
          {
            "id":"gpiocond2var13",
            "compact":0,
            "type":9,
            "address":304
          },
          {
            "id":"gpiocond2var14",
            "compact":0,
            "type":9,
            "address":308
          },
          {
            "id":"gpiocond2var15",
            "compact":0,
            "type":9,
            "address":312
          },
          {
            "id":"gpiocond2var16",
            "compact":0,
            "type":9,
            "address":316
          },
          {
            "id":"gpiocond2var17",
            "compact":0,
            "type":9,
            "address":320
          },
          {
            "id":"gpiocond2val1",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var1",
            "address":328
          },
          {
            "id":"gpiocond2val2",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var2",
            "address":332
          },
          {
            "id":"gpiocond2val3",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var3",
            "address":336
          },
          {
            "id":"gpiocond2val4",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var4",
            "address":340
          },
          {
            "id":"gpiocond2val5",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var5",
            "address":344
          },
          {
            "id":"gpiocond2val6",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var6",
            "address":348
          },
          {
            "id":"gpiocond2val7",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var7",
            "address":352
          },
          {
            "id":"gpiocond2val8",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var8",
            "address":356
          },
          {
            "id":"gpiocond2val9",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var9",
            "address":360
          },
          {
            "id":"gpiocond2val10",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var10",
            "address":364
          },
          {
            "id":"gpiocond2val11",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var11",
            "address":368
          },
          {
            "id":"gpiocond2val12",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var12",
            "address":372
          },
          {
            "id":"gpiocond2val13",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var13",
            "address":376
          },
          {
            "id":"gpiocond2val14",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var14",
            "address":380
          },
          {
            "id":"gpiocond2val15",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var15",
            "address":384
          },
          {
            "id":"gpiocond2val16",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var16",
            "address":388
          },
          {
            "id":"gpiocond2val17",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond2var17",
            "address":392
          },
          {
            "id":"gpiocond2hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var1",
            "relative":1,
            "address":400
          },
          {
            "id":"gpiocond2hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var2",
            "relative":1,
            "address":404
          },
          {
            "id":"gpiocond2hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var3",
            "relative":1,
            "address":408
          },
          {
            "id":"gpiocond2hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var4",
            "relative":1,
            "address":412
          },
          {
            "id":"gpiocond2hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var5",
            "relative":1,
            "address":416
          },
          {
            "id":"gpiocond2hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var6",
            "relative":1,
            "address":420
          },
          {
            "id":"gpiocond2hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var7",
            "relative":1,
            "address":424
          },
          {
            "id":"gpiocond2hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var8",
            "relative":1,
            "address":428
          },
          {
            "id":"gpiocond2hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var9",
            "relative":1,
            "address":432
          },
          {
            "id":"gpiocond2hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var10",
            "relative":1,
            "address":436
          },
          {
            "id":"gpiocond2hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var11",
            "relative":1,
            "address":440
          },
          {
            "id":"gpiocond2hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var12",
            "relative":1,
            "address":444
          },
          {
            "id":"gpiocond2hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var13",
            "relative":1,
            "address":448
          },
          {
            "id":"gpiocond2hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var14",
            "relative":1,
            "address":452
          },
          {
            "id":"gpiocond2hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var15",
            "relative":1,
            "address":456
          },
          {
            "id":"gpiocond2hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var16",
            "relative":1,
            "address":460
          },
          {
            "id":"gpiocond2hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var17",
            "relative":1,
            "address":464
          },
          {
            "id":"gpiocond2param1",
            "compact":0,
            "type":1,
            "address":469
          },
          {
            "id":"gpiocond2param2",
            "compact":0,
            "type":1,
            "address":470
          },
          {
            "id":"gpiocond2param3",
            "compact":0,
            "type":1,
            "address":471
          },
          {
            "id":"gpiocond2param4",
            "compact":0,
            "type":1,
            "address":472
          },
          {
            "id":"gpiocond2param5",
            "compact":0,
            "type":1,
            "address":473
          },
          {
            "id":"gpiocond2param6",
            "compact":0,
            "type":1,
            "address":474
          },
          {
            "id":"gpiocond2param7",
            "compact":0,
            "type":1,
            "address":475
          },
          {
            "id":"gpiocond2param8",
            "compact":0,
            "type":1,
            "address":476
          },
          {
            "id":"gpiocond2param9",
            "compact":0,
            "type":1,
            "address":477
          },
          {
            "id":"gpiocond2param10",
            "compact":0,
            "type":1,
            "address":478
          },
          {
            "id":"gpiocond2param11",
            "compact":0,
            "type":1,
            "address":479
          },
          {
            "id":"gpiocond2param12",
            "compact":0,
            "type":1,
            "address":480
          },
          {
            "id":"gpiocond2param13",
            "compact":0,
            "type":1,
            "address":481
          },
          {
            "id":"gpiocond2param14",
            "compact":0,
            "type":1,
            "address":482
          },
          {
            "id":"gpiocond2param15",
            "compact":0,
            "type":1,
            "address":483
          },
          {
            "id":"gpiocond2param16",
            "compact":0,
            "type":1,
            "address":484
          },
          {
            "id":"gpiocond2param17",
            "compact":0,
            "type":1,
            "address":485
          },
          {
            "id":"gpiocond2type1",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param1.0.2"
          },
          {
            "id":"gpiocond2type2",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param2.0.2"
          },
          {
            "id":"gpiocond2type3",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param3.0.2"
          },
          {
            "id":"gpiocond2type4",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param4.0.2"
          },
          {
            "id":"gpiocond2type5",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param5.0.2"
          },
          {
            "id":"gpiocond2type6",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param6.0.2"
          },
          {
            "id":"gpiocond2type7",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param7.0.2"
          },
          {
            "id":"gpiocond2type8",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param8.0.2"
          },
          {
            "id":"gpiocond2type9",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param9.0.2"
          },
          {
            "id":"gpiocond2type10",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param10.0.2"
          },
          {
            "id":"gpiocond2type11",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param11.0.2"
          },
          {
            "id":"gpiocond2type12",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param12.0.2"
          },
          {
            "id":"gpiocond2type13",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param13.0.2"
          },
          {
            "id":"gpiocond2type14",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param14.0.2"
          },
          {
            "id":"gpiocond2type15",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param15.0.2"
          },
          {
            "id":"gpiocond2type16",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param16.0.2"
          },
          {
            "id":"gpiocond2type17",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond2param17.0.2"
          },
          {
            "id":"gpiocond2and1",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param1.3.4"
          },
          {
            "id":"gpiocond2and2",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param2.3.4"
          },
          {
            "id":"gpiocond2and3",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param3.3.4"
          },
          {
            "id":"gpiocond2and4",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param4.3.4"
          },
          {
            "id":"gpiocond2and5",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param5.3.4"
          },
          {
            "id":"gpiocond2and6",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param6.3.4"
          },
          {
            "id":"gpiocond2and7",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param7.3.4"
          },
          {
            "id":"gpiocond2and8",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param8.3.4"
          },
          {
            "id":"gpiocond2and9",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param9.3.4"
          },
          {
            "id":"gpiocond2and10",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param10.3.4"
          },
          {
            "id":"gpiocond2and11",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param11.3.4"
          },
          {
            "id":"gpiocond2and12",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param12.3.4"
          },
          {
            "id":"gpiocond2and13",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param13.3.4"
          },
          {
            "id":"gpiocond2and14",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param14.3.4"
          },
          {
            "id":"gpiocond2and15",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param15.3.4"
          },
          {
            "id":"gpiocond2and16",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param16.3.4"
          },
          {
            "id":"gpiocond2and17",
            "type":8,
            "compact":0,
            "options":"enum_andor",
            "address":"gpiocond2param17.3.4"
          },
          {
            "id":"gpiocond3var1",
            "compact":0,
            "type":9,
            "address":492
          },
          {
            "id":"gpiocond3var2",
            "compact":0,
            "type":9,
            "address":496
          },
          {
            "id":"gpiocond3var3",
            "compact":0,
            "type":9,
            "address":500
          },
          {
            "id":"gpiocond3var4",
            "compact":0,
            "type":9,
            "address":504
          },
          {
            "id":"gpiocond3var5",
            "compact":0,
            "type":9,
            "address":508
          },
          {
            "id":"gpiocond3var6",
            "compact":0,
            "type":9,
            "address":512
          },
          {
            "id":"gpiocond3var7",
            "compact":0,
            "type":9,
            "address":516
          },
          {
            "id":"gpiocond3var8",
            "compact":0,
            "type":9,
            "address":520
          },
          {
            "id":"gpiocond3var9",
            "compact":0,
            "type":9,
            "address":524
          },
          {
            "id":"gpiocond3var10",
            "compact":0,
            "type":9,
            "address":528
          },
          {
            "id":"gpiocond3var11",
            "compact":0,
            "type":9,
            "address":532
          },
          {
            "id":"gpiocond3var12",
            "compact":0,
            "type":9,
            "address":536
          },
          {
            "id":"gpiocond3var13",
            "compact":0,
            "type":9,
            "address":540
          },
          {
            "id":"gpiocond3var14",
            "compact":0,
            "type":9,
            "address":544
          },
          {
            "id":"gpiocond3var15",
            "compact":0,
            "type":9,
            "address":548
          },
          {
            "id":"gpiocond3var16",
            "compact":0,
            "type":9,
            "address":552
          },
          {
            "id":"gpiocond3var17",
            "compact":0,
            "type":9,
            "address":556
          },
          {
            "id":"gpiocond3val1",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var1",
            "address":564
          },
          {
            "id":"gpiocond3val2",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var2",
            "address":568
          },
          {
            "id":"gpiocond3val3",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var3",
            "address":572
          },
          {
            "id":"gpiocond3val4",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var4",
            "address":576
          },
          {
            "id":"gpiocond3val5",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var5",
            "address":580
          },
          {
            "id":"gpiocond3val6",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var6",
            "address":584
          },
          {
            "id":"gpiocond3val7",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var7",
            "address":588
          },
          {
            "id":"gpiocond3val8",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var8",
            "address":592
          },
          {
            "id":"gpiocond3val9",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var9",
            "address":596
          },
          {
            "id":"gpiocond3val10",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var10",
            "address":600
          },
          {
            "id":"gpiocond3val11",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var11",
            "address":604
          },
          {
            "id":"gpiocond3val12",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var12",
            "address":608
          },
          {
            "id":"gpiocond3val13",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var13",
            "address":612
          },
          {
            "id":"gpiocond3val14",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var14",
            "address":616
          },
          {
            "id":"gpiocond3val15",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var15",
            "address":620
          },
          {
            "id":"gpiocond3val16",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var16",
            "address":624
          },
          {
            "id":"gpiocond3val17",
            "compact":0,
            "type":11,
            "datatype":2,
            "describedby":"gpiocond3var17",
            "address":628
          },
          {
            "id":"gpiocond3hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var1",
            "relative":1,
            "address":636
          },
          {
            "id":"gpiocond3hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var2",
            "relative":1,
            "address":640
          },
          {
            "id":"gpiocond3hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var3",
            "relative":1,
            "address":644
          },
          {
            "id":"gpiocond3hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var4",
            "relative":1,
            "address":648
          },
          {
            "id":"gpiocond3hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var5",
            "relative":1,
            "address":652
          },
          {
            "id":"gpiocond3hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var6",
            "relative":1,
            "address":656
          },
          {
            "id":"gpiocond3hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var7",
            "relative":1,
            "address":660
          },
          {
            "id":"gpiocond3hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var8",
            "relative":1,
            "address":664
          },
          {
            "id":"gpiocond3hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var9",
            "relative":1,
            "address":668
          },
          {
            "id":"gpiocond3hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var10",
            "relative":1,
            "address":672
          },
          {
            "id":"gpiocond3hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var11",
            "relative":1,
            "address":676
          },
          {
            "id":"gpiocond3hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var12",
            "relative":1,
            "address":680
          },
          {
            "id":"gpiocond3hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var13",
            "relative":1,
            "address":684
          },
          {
            "id":"gpiocond3hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var14",
            "relative":1,
            "address":688
          },
          {
            "id":"gpiocond3hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var15",
            "relative":1,
            "address":692
          },
          {
            "id":"gpiocond3hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var16",
            "relative":1,
            "address":696
          },
          {
            "id":"gpiocond3hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var17",
            "relative":1,
            "address":700
          },
          {
            "id":"gpiocond3param1",
            "compact":0,
            "type":1,
            "address":705
          },
          {
            "id":"gpiocond3param2",
            "compact":0,
            "type":1,
            "address":706
          },
          {
            "id":"gpiocond3param3",
            "compact":0,
            "type":1,
            "address":707
          },
          {
            "id":"gpiocond3param4",
            "compact":0,
            "type":1,
            "address":708
          },
          {
            "id":"gpiocond3param5",
            "compact":0,
            "type":1,
            "address":709
          },
          {
            "id":"gpiocond3param6",
            "compact":0,
            "type":1,
            "address":710
          },
          {
            "id":"gpiocond3param7",
            "compact":0,
            "type":1,
            "address":711
          },
          {
            "id":"gpiocond3param8",
            "compact":0,
            "type":1,
            "address":712
          },
          {
            "id":"gpiocond3param9",
            "compact":0,
            "type":1,
            "address":713
          },
          {
            "id":"gpiocond3param10",
            "compact":0,
            "type":1,
            "address":714
          },
          {
            "id":"gpiocond3param11",
            "compact":0,
            "type":1,
            "address":715
          },
          {
            "id":"gpiocond3param12",
            "compact":0,
            "type":1,
            "address":716
          },
          {
            "id":"gpiocond3param13",
            "compact":0,
            "type":1,
            "address":717
          },
          {
            "id":"gpiocond3param14",
            "compact":0,
            "type":1,
            "address":718
          },
          {
            "id":"gpiocond3param15",
            "compact":0,
            "type":1,
            "address":719
          },
          {
            "id":"gpiocond3param16",
            "compact":0,
            "type":1,
            "address":720
          },
          {
            "id":"gpiocond3param17",
            "compact":0,
            "type":1,
            "address":721
          },
          {
            "id":"gpiocond3type1",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param1.0.2"
          },
          {
            "id":"gpiocond3type2",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param2.0.2"
          },
          {
            "id":"gpiocond3type3",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param3.0.2"
          },
          {
            "id":"gpiocond3type4",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param4.0.2"
          },
          {
            "id":"gpiocond3type5",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param5.0.2"
          },
          {
            "id":"gpiocond3type6",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param6.0.2"
          },
          {
            "id":"gpiocond3type7",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param7.0.2"
          },
          {
            "id":"gpiocond3type8",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param8.0.2"
          },
          {
            "id":"gpiocond3type9",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param9.0.2"
          },
          {
            "id":"gpiocond3type10",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param10.0.2"
          },
          {
            "id":"gpiocond3type11",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param11.0.2"
          },
          {
            "id":"gpiocond3type12",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param12.0.2"
          },
          {
            "id":"gpiocond3type13",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param13.0.2"
          },
          {
            "id":"gpiocond3type14",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param14.0.2"
          },
          {
            "id":"gpiocond3type15",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param15.0.2"
          },
          {
            "id":"gpiocond3type16",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param16.0.2"
          },
          {
            "id":"gpiocond3type17",
            "type":8,
            "compact":0,
            "options":"enum_moreless",
            "address":"gpiocond3param17.0.2"
          },
          {
            "id":"analogfilter1",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1658
          },
          {
            "id":"analogfilter2",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1660
          },
          {
            "id":"analogfilter3",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1662
          },
          {
            "id":"analogfilter4",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1664
          },
          {
            "id":"analogfilter5",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1666
          },
          {
            "id":"analogfilter6",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1668
          },
          {
            "id":"analogfilter7",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "address":1670
          },
          {
            "id":"freqfilter2",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "address":1673
          },
          {
            "id":"freqfilter3",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "address":1674
          },
          {
            "id":"freqfilter4",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "digits":1,
            "address":1675
          },
          {
            "id":"ffset1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15306
          },
          {
            "id":"ffset2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15308
          },
          {
            "id":"ffset3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15310
          },
          {
            "id":"ffset4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15312
          },
          {
            "id":"ffset5",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15314
          },
          {
            "id":"ffset6",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15316
          },
          {
            "id":"ffset7",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.",
            "address":15318
          },
          {
            "id":"ffreset1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15362
          },
          {
            "id":"ffreset2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15364
          },
          {
            "id":"ffreset3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15366
          },
          {
            "id":"ffreset4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15368
          },
          {
            "id":"ffreset5",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15370
          },
          {
            "id":"ffreset6",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15372
          },
          {
            "id":"ffreset7",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":15374
          },
          {
            "id":"fftoggle1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15330
          },
          {
            "id":"fftoggle2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15332
          },
          {
            "id":"fftoggle3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15334
          },
          {
            "id":"fftoggle4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15336
          },
          {
            "id":"fftoggle5",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15338
          },
          {
            "id":"fftoggle6",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15340
          },
          {
            "id":"fftoggle7",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.",
            "address":15342
          },
          {
            "id":"ffsetdelay1",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15321
          },
          {
            "id":"ffsetdelay2",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15322
          },
          {
            "id":"ffsetdelay3",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15323
          },
          {
            "id":"ffsetdelay4",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15324
          },
          {
            "id":"ffsetdelay5",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15325
          },
          {
            "id":"ffsetdelay6",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15326
          },
          {
            "id":"ffsetdelay7",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The set input must be active for this amount of time before the flip flop assumes a value of 1.",
            "address":15327
          },
          {
            "id":"ffresetdelay1",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15377
          },
          {
            "id":"ffresetdelay2",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15378
          },
          {
            "id":"ffresetdelay3",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15379
          },
          {
            "id":"ffresetdelay4",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15380
          },
          {
            "id":"ffresetdelay5",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15381
          },
          {
            "id":"ffresetdelay6",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15382
          },
          {
            "id":"ffresetdelay7",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The reset input must be active for this amount of time before the flip flop assumes a value of 0.",
            "address":15383
          },
          {
            "id":"fftoggleondelay1",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15345
          },
          {
            "id":"fftoggleondelay2",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15346
          },
          {
            "id":"fftoggleondelay3",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15347
          },
          {
            "id":"fftoggleondelay4",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15348
          },
          {
            "id":"fftoggleondelay5",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15349
          },
          {
            "id":"fftoggleondelay6",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15350
          },
          {
            "id":"fftoggleondelay7",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 0, the toggle input must be active for this amount of time before the flip flop assumes a value of 1.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to reset the state to 0.",
            "address":15351
          },
          {
            "id":"fftoggleoffdelay1",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15353
          },
          {
            "id":"fftoggleoffdelay2",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15354
          },
          {
            "id":"fftoggleoffdelay3",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15355
          },
          {
            "id":"fftoggleoffdelay4",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15356
          },
          {
            "id":"fftoggleoffdelay5",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15357
          },
          {
            "id":"fftoggleoffdelay6",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15358
          },
          {
            "id":"fftoggleoffdelay7",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"If the current state is 1, the toggle input must be active for this amount of time before the flip flop assumes a value of 0.\r\nAfter the button is released the same amount of time will pass before it's possible to press it again to set the state to 1.",
            "address":15359
          },
          {
            "id":"fftimeout1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15394
          },
          {
            "id":"fftimeout2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15396
          },
          {
            "id":"fftimeout3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15398
          },
          {
            "id":"fftimeout4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15400
          },
          {
            "id":"fftimeout5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15402
          },
          {
            "id":"fftimeout6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15404
          },
          {
            "id":"fftimeout7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"Set to zero to allow unlimited on-time. Otherwise the flip flop will self reset to 0 when this duration passes after the last activation of the set or toggle input.",
            "address":15406
          },
          {
            "id":"ffbootstate1",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15385
          },
          {
            "id":"ffbootstate2",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15386
          },
          {
            "id":"ffbootstate3",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15387
          },
          {
            "id":"ffbootstate4",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15388
          },
          {
            "id":"ffbootstate5",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15389
          },
          {
            "id":"ffbootstate6",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15390
          },
          {
            "id":"ffbootstate7",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":15391
          },
          {
            "id":"countresetinput1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.",
            "address":15428
          },
          {
            "id":"countresetinput2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.",
            "address":15430
          },
          {
            "id":"countresetinput3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.",
            "address":15432
          },
          {
            "id":"upcountinput1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.",
            "address":15412
          },
          {
            "id":"upcountinput2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.",
            "address":15414
          },
          {
            "id":"upcountinput3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.",
            "address":15416
          },
          {
            "id":"downcountinput1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15420
          },
          {
            "id":"downcountinput2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15422
          },
          {
            "id":"downcountinput3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15424
          },
          {
            "id":"counterdebounce1",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The increment or decrement inputs must be active for this amount of time before counter value is altered, and deactive for the same amount of time before the value may be altered again. No delay applies to the reset input in any case.",
            "address":15439
          },
          {
            "id":"counterdebounce2",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The increment or decrement inputs must be active for this amount of time before counter value is altered, and deactive for the same amount of time before the value may be altered again. No delay applies to the reset input in any case.",
            "address":15440
          },
          {
            "id":"counterdebounce3",
            "compact":0,
            "type":1,
            "unit":"s",
            "scale":0.016000,
            "digits":2,
            "descr":"The increment or decrement inputs must be active for this amount of time before counter value is altered, and deactive for the same amount of time before the value may be altered again. No delay applies to the reset input in any case.",
            "address":15441
          },
          {
            "id":"downcountinput1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15420
          },
          {
            "id":"downcountinput2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15422
          },
          {
            "id":"downcountinput3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.",
            "address":15424
          },
          {
            "id":"counterresetvalue1",
            "compact":0,
            "type":1,
            "descr":"The counter will assume this value when the controller powers on and also if the counter reset input activates.",
            "address":15443
          },
          {
            "id":"counterresetvalue2",
            "compact":0,
            "type":1,
            "descr":"The counter will assume this value when the controller powers on and also if the counter reset input activates.",
            "address":15444
          },
          {
            "id":"counterresetvalue3",
            "compact":0,
            "type":1,
            "descr":"The counter will assume this value when the controller powers on and also if the counter reset input activates.",
            "address":15445
          },
          {
            "id":"countmaxvalue1",
            "compact":0,
            "type":1,
            "descr":"If the counter reaches this value, the increment input is disabled unless overflow is enabled, in which case the value will roll over to zero on increment.",
            "address":15435
          },
          {
            "id":"countmaxvalue2",
            "compact":0,
            "type":1,
            "descr":"If the counter reaches this value, the increment input is disabled unless overflow is enabled, in which case the value will roll over to zero on increment.",
            "address":15436
          },
          {
            "id":"countmaxvalue3",
            "compact":0,
            "type":1,
            "descr":"If the counter reaches this value, the increment input is disabled unless overflow is enabled, in which case the value will roll over to zero on increment.",
            "address":15437
          },
          {
            "id":"countmode1",
            "compact":0,
            "type":8,
            "options":[
              "No overflows",
              "Overflow enabled",
              "Underflow enabled",
              "Overflow and underflow"
            ],
            "address":"counterconf.2.3"
          },
          {
            "id":"countmode2",
            "compact":0,
            "type":8,
            "options":[
              "No overflows",
              "Overflow enabled",
              "Underflow enabled",
              "Overflow and underflow"
            ],
            "address":"counterconf.4.5"
          },
          {
            "id":"countmode3",
            "compact":0,
            "type":8,
            "options":[
              "No overflows",
              "Overflow enabled",
              "Underflow enabled",
              "Overflow and underflow"
            ],
            "address":"counterconf.6.7"
          },
          {
            "id":"latchmode2",
            "compact":0,
            "type":8,
            "address":"latchconfig.2.3",
            "options":[
              "Set while active",
              "Leading edge",
              "Trailing edge",
              "Multiplex"
            ],
            "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input."
          },
          {
            "id":"latchmode3",
            "compact":0,
            "type":8,
            "address":"latchconfig.4.5",
            "options":[
              "Set while active",
              "Leading edge",
              "Trailing edge",
              "Multiplex"
            ],
            "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input."
          },
          {
            "id":"latchmode4",
            "compact":0,
            "type":8,
            "address":"latchconfig.6.7",
            "options":[
              "Set while active",
              "Leading edge",
              "Trailing edge",
              "Multiplex"
            ],
            "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input."
          },
          {
            "id":"gplatchinput2",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken when the set input activates it.",
            "address":15452
          },
          {
            "id":"gplatchinput3",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken when the set input activates it.",
            "address":15456
          },
          {
            "id":"gplatchinput4",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken when the set input activates it.",
            "address":15460
          },
          {
            "id":"gplatchaltinput2",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken if the latch is configured as a multiplex and both set and reset inputs are inactive.",
            "address":15468
          },
          {
            "id":"gplatchaltinput3",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken if the latch is configured as a multiplex and both set and reset inputs are inactive.",
            "address":15472
          },
          {
            "id":"gplatchaltinput4",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "descr":"This selects the input from where the value for the latch is taken if the latch is configured as a multiplex and both set and reset inputs are inactive.",
            "address":15476
          },
          {
            "id":"gplatchset2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.",
            "address":15482
          },
          {
            "id":"gplatchset3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.",
            "address":15484
          },
          {
            "id":"gplatchset4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.",
            "address":15486
          },
          {
            "id":"gplatchreset2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.",
            "address":15490
          },
          {
            "id":"gplatchreset3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.",
            "address":15492
          },
          {
            "id":"gplatchreset4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.",
            "address":15494
          },
          {
            "id":"gplatchdefaultval2",
            "compact":0,
            "type":2,
            "describedby":"gplatchinput2",
            "descr":"The latch assumes this value when the controller is powered on and also when the reset input is activated.",
            "address":15498
          },
          {
            "id":"gplatchdefaultval3",
            "compact":0,
            "type":2,
            "describedby":"gplatchinput3",
            "descr":"The latch assumes this value when the controller is powered on and also when the reset input is activated.",
            "address":15500
          },
          {
            "id":"gplatchdefaultval4",
            "compact":0,
            "type":2,
            "describedby":"gplatchinput4",
            "descr":"The latch assumes this value when the controller is powered on and also when the reset input is activated.",
            "address":15502
          },
          {
            "id":"customlookupopts2",
            "type":1,
            "compact":0,
            "address":15537
          },
          {
            "id":"customlookupopts3",
            "type":1,
            "compact":0,
            "address":15538
          },
          {
            "id":"customlookupopts4",
            "type":1,
            "compact":0,
            "address":15539
          },
          {
            "id":"customlookupopts5",
            "type":1,
            "compact":0,
            "address":15540
          },
          {
            "id":"customlookupopts6",
            "type":1,
            "compact":0,
            "address":15541
          },
          {
            "id":"customlookupopts7",
            "type":1,
            "compact":0,
            "address":15542
          },
          {
            "id":"customlookupopts8",
            "type":1,
            "compact":0,
            "address":15543
          },
          {
            "id":"customlookupdecimal2",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15545
          },
          {
            "id":"customlookupdecimal3",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15546
          },
          {
            "id":"customlookupdecimal4",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15547
          },
          {
            "id":"customlookupdecimal5",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15548
          },
          {
            "id":"customlookupdecimal6",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15549
          },
          {
            "id":"customlookupdecimal7",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15550
          },
          {
            "id":"customlookupdecimal8",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":15551
          },
          {
            "id":"custom2dopts2",
            "type":1,
            "compact":0,
            "address":16638
          },
          {
            "id":"custom2dopts3",
            "type":1,
            "compact":0,
            "address":16639
          },
          {
            "id":"custom2dopts4",
            "type":1,
            "compact":0,
            "address":16640
          },
          {
            "id":"custom2dopts5",
            "type":1,
            "compact":0,
            "address":16641
          },
          {
            "id":"custom2dopts6",
            "type":1,
            "compact":0,
            "address":16642
          },
          {
            "id":"custom2dopts7",
            "type":1,
            "compact":0,
            "address":16643
          },
          {
            "id":"custom2dopts8",
            "type":1,
            "compact":0,
            "address":16644
          },
          {
            "id":"custom2ddecimal2",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16646
          },
          {
            "id":"custom2ddecimal3",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16647
          },
          {
            "id":"custom2ddecimal4",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16648
          },
          {
            "id":"custom2ddecimal5",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16649
          },
          {
            "id":"custom2ddecimal6",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16650
          },
          {
            "id":"custom2ddecimal7",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16651
          },
          {
            "id":"custom2ddecimal8",
            "type":8,
            "compact":0,
            "options":[
              0,
              1,
              2,
              3
            ],
            "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35",
            "address":16652
          },
          {
            "id":"gpaccuoptions1",
            "type":1,
            "compact":0,
            "address":18237
          },
          {
            "id":"gpaccuoptions2",
            "type":1,
            "compact":0,
            "address":18238
          },
          {
            "id":"gpaccuoptions3",
            "type":1,
            "compact":0,
            "address":18239
          },
          {
            "id":"gpaccuoptions4",
            "type":1,
            "compact":0,
            "address":18240
          },
          {
            "id":"gpaccuoptions5",
            "type":1,
            "compact":0,
            "address":18241
          },
          {
            "id":"gpaccuoptions6",
            "type":1,
            "compact":0,
            "address":18242
          },
          {
            "id":"gpaccuoptions7",
            "type":1,
            "compact":0,
            "address":18243
          },
          {
            "id":"gpaccuactivate1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18246
          },
          {
            "id":"gpaccuactivate2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18248
          },
          {
            "id":"gpaccuactivate3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18250
          },
          {
            "id":"gpaccuactivate4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18252
          },
          {
            "id":"gpaccuactivate5",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18254
          },
          {
            "id":"gpaccuactivate6",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18256
          },
          {
            "id":"gpaccuactivate7",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18258
          },
          {
            "id":"gpaccuclear1",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18262
          },
          {
            "id":"gpaccuclear2",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18264
          },
          {
            "id":"gpaccuclear3",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18266
          },
          {
            "id":"gpaccuclear4",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18268
          },
          {
            "id":"gpaccuclear5",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18270
          },
          {
            "id":"gpaccuclear6",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18272
          },
          {
            "id":"gpaccuclear7",
            "compact":0,
            "type":12,
            "options":"map_inputs",
            "address":18274
          },
          {
            "id":"gpaccusrc1",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18280
          },
          {
            "id":"gpaccusrc2",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18284
          },
          {
            "id":"gpaccusrc3",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18288
          },
          {
            "id":"gpaccusrc4",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18292
          },
          {
            "id":"gpaccusrc5",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18296
          },
          {
            "id":"gpaccusrc6",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18300
          },
          {
            "id":"gpaccusrc7",
            "compact":0,
            "type":9,
            "maxwidth":2,
            "address":18304
          },
          {
            "id":"gpaccuoffset1",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc1",
            "address":18310
          },
          {
            "id":"gpaccuoffset2",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc2",
            "address":18312
          },
          {
            "id":"gpaccuoffset3",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc3",
            "address":18314
          },
          {
            "id":"gpaccuoffset4",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc4",
            "address":18316
          },
          {
            "id":"gpaccuoffset5",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc5",
            "address":18318
          },
          {
            "id":"gpaccuoffset6",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc6",
            "address":18320
          },
          {
            "id":"gpaccuoffset7",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc7",
            "address":18322
          },
          {
            "id":"gpaccumax1",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc1",
            "address":18326
          },
          {
            "id":"gpaccumax2",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc2",
            "address":18328
          },
          {
            "id":"gpaccumax3",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc3",
            "address":18330
          },
          {
            "id":"gpaccumax4",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc4",
            "address":18332
          },
          {
            "id":"gpaccumax5",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc5",
            "address":18334
          },
          {
            "id":"gpaccumax6",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc6",
            "address":18336
          },
          {
            "id":"gpaccumax7",
            "compact":0,
            "type":2,
            "describedby":"gpaccusrc7",
            "address":18338
          },
          {
            "id":"gpaccuinterval1",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18342
          },
          {
            "id":"gpaccuinterval2",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18344
          },
          {
            "id":"gpaccuinterval3",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18346
          },
          {
            "id":"gpaccuinterval4",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18348
          },
          {
            "id":"gpaccuinterval5",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18350
          },
          {
            "id":"gpaccuinterval6",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18352
          },
          {
            "id":"gpaccuinterval7",
            "compact":0,
            "type":2,
            "unit":"ms",
            "address":18354
          },
          {
            "id":"simplepwmduty2",
            "type":11,
            "datatype":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "compact":0,
            "address":19104
          },
          {
            "id":"simplepwmduty3",
            "type":11,
            "datatype":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "compact":0,
            "address":19108
          },
          {
            "id":"simplepwmduty4",
            "type":11,
            "datatype":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "compact":0,
            "address":19112
          },
          {
            "id":"simplepwmfreq2",
            "type":11,
            "datatype":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "compact":0,
            "address":19120
          },
          {
            "id":"simplepwmfreq3",
            "type":11,
            "datatype":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "compact":0,
            "address":19124
          },
          {
            "id":"simplepwmfreq4",
            "type":11,
            "datatype":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "compact":0,
            "address":19128
          },
          {
            "id":"simplepwmrefreshinterval2",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"The PWM duty and frequency gets updated at this interval. To disable the function set this value to 0.",
            "address":19089
          },
          {
            "id":"simplepwmrefreshinterval3",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"The PWM duty and frequency gets updated at this interval. To disable the function set this value to 0.",
            "address":19090
          },
          {
            "id":"simplepwmrefreshinterval4",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"The PWM duty and frequency gets updated at this interval. To disable the function set this value to 0.",
            "address":19091
          },
          {
            "id":"simplepwmenable2",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'",
            "address":19094
          },
          {
            "id":"simplepwmenable3",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'",
            "address":19096
          },
          {
            "id":"simplepwmenable4",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'",
            "address":19098
          },
          {
            "id":"blinkkeypadsize2",
            "type":1,
            "max":15,
            "compact":0,
            "address":19210
          },
          {
            "id":"blinkkeypadsize3",
            "type":1,
            "max":15,
            "compact":0,
            "address":19211
          },
          {
            "id":"blinkkeypadsize4",
            "type":1,
            "max":15,
            "compact":0,
            "address":19212
          },
          {
            "id":"keypadcolourfunction2",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19760
          },
          {
            "id":"keypadcolourfunction3",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19764
          },
          {
            "id":"keypadcolourfunction4",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19768
          },
          {
            "id":"keypadcolourfunction5",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19772
          },
          {
            "id":"keypadcolourfunction6",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19776
          },
          {
            "id":"keypadcolourfunction7",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19780
          },
          {
            "id":"keypadcolourfunction8",
            "type":11,
            "datatype":1,
            "compact":0,
            "max":9,
            "descr":"In this function, a value of 0 means the light is off\r\n1: Red, 2: Green, 3: Blue, 4: Yellow, 5: Cyan, 6: Magenta, 7: White, 8: Amber, 9: Yellow\/green",
            "address":19784
          }
        ]
      },
      {
        "page":1,
        "size":32768,
        "data":[
          {
            "id":"comments",
            "type":13,
            "compressed":1,
            "address":0
          },
          {
            "id":"gpiodescr0",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":4
          },
          {
            "id":"canseqoptions1",
            "type":1,
            "compact":0,
            "address":2724
          },
          {
            "id":"canseq_can2_1",
            "type":8,
            "address":"canseqoptions1.0.0",
            "compact":8,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseqid1",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2628
          },
          {
            "id":"canseqselect1",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2660
          },
          {
            "id":"canseqenable1",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2676
          },
          {
            "id":"canseqlength1",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2692
          },
          {
            "id":"canseqdlc1",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2708
          },
          {
            "id":"canseqinterval1",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2700
          },
          {
            "id":"canseqdatafrom1",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2716
          },
          {
            "id":"canseq1",
            "type":1,
            "array":128,
            "rows":"canseqlength1",
            "cols":8,
            "address":580
          },
          {
            "id":"canseq1alt",
            "type":1,
            "array":128,
            "rows":"canseqlength1",
            "cols":8,
            "address":708
          },
          {
            "id":"canseq2",
            "type":1,
            "array":128,
            "rows":"canseqlength2",
            "cols":8,
            "address":836
          },
          {
            "id":"canseq2alt",
            "type":1,
            "array":128,
            "rows":"canseqlength2",
            "cols":8,
            "address":964
          },
          {
            "id":"canseq3",
            "type":1,
            "array":128,
            "rows":"canseqlength3",
            "cols":8,
            "address":1092
          },
          {
            "id":"canseq3alt",
            "type":1,
            "array":128,
            "rows":"canseqlength3",
            "cols":8,
            "address":1220
          },
          {
            "id":"canseq4",
            "type":1,
            "array":128,
            "rows":"canseqlength4",
            "cols":8,
            "address":1348
          },
          {
            "id":"canseq4alt",
            "type":1,
            "array":128,
            "rows":"canseqlength4",
            "cols":8,
            "address":1476
          },
          {
            "id":"canseq5",
            "type":1,
            "array":128,
            "rows":"canseqlength5",
            "cols":8,
            "address":1604
          },
          {
            "id":"canseq5alt",
            "type":1,
            "array":128,
            "rows":"canseqlength5",
            "cols":8,
            "address":1732
          },
          {
            "id":"canseq6",
            "type":1,
            "array":128,
            "rows":"canseqlength6",
            "cols":8,
            "address":1860
          },
          {
            "id":"canseq6alt",
            "type":1,
            "array":128,
            "rows":"canseqlength6",
            "cols":8,
            "address":1988
          },
          {
            "id":"canseq7",
            "type":1,
            "array":128,
            "rows":"canseqlength7",
            "cols":8,
            "address":2116
          },
          {
            "id":"canseq7alt",
            "type":1,
            "array":128,
            "rows":"canseqlength7",
            "cols":8,
            "address":2244
          },
          {
            "id":"canseq8",
            "type":1,
            "array":128,
            "rows":"canseqlength8",
            "cols":8,
            "address":2372
          },
          {
            "id":"canseq8alt",
            "type":1,
            "array":128,
            "rows":"canseqlength8",
            "cols":8,
            "address":2500
          },
          {
            "id":"transtempsrc",
            "type":9,
            "maxwidth":2,
            "address":2868
          },
          {
            "id":"transtempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "address":2872
          },
          {
            "id":"transtempvoltages",
            "type":2,
            "array":32,
            "describedby":"transtempsrc",
            "cols":"transtempbpcount",
            "address":2938
          },
          {
            "id":"transtempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"transtempbpcount",
            "address":2874
          },
          {
            "id":"oiltempsrc",
            "type":9,
            "maxwidth":2,
            "address":2732
          },
          {
            "id":"oiltempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "address":2736
          },
          {
            "id":"oiltempvoltages",
            "type":2,
            "array":32,
            "describedby":"oiltempsrc",
            "cols":"oiltempbpcount",
            "address":2802
          },
          {
            "id":"oiltempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"oiltempbpcount",
            "address":2738
          },
          {
            "id":"coolanttempsrc",
            "type":9,
            "maxwidth":2,
            "address":3004
          },
          {
            "id":"coolanttempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "address":3008
          },
          {
            "id":"coolanttempvoltages",
            "type":2,
            "array":32,
            "describedby":"coolanttempsrc",
            "cols":"coolanttempbpcount",
            "address":3074
          },
          {
            "id":"coolanttempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"coolanttempbpcount",
            "address":3010
          },
          {
            "id":"customformulainterval1",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3138
          },
          {
            "id":"customformula1",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula1",
                "customformula1compiled"
              ]
            ],
            "address":3156
          },
          {
            "id":"customformula2",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula2",
                "customformula2compiled"
              ]
            ],
            "address":3160
          },
          {
            "id":"customformula3",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula3",
                "customformula3compiled"
              ]
            ],
            "address":3164
          },
          {
            "id":"customformula4",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula4",
                "customformula4compiled"
              ]
            ],
            "address":3168
          },
          {
            "id":"customformula5",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula5",
                "customformula5compiled"
              ]
            ],
            "address":3172
          },
          {
            "id":"customformula6",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula6",
                "customformula6compiled"
              ]
            ],
            "address":3176
          },
          {
            "id":"customformula7",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula7",
                "customformula7compiled"
              ]
            ],
            "address":3180
          },
          {
            "id":"customformula8",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula8",
                "customformula8compiled"
              ]
            ],
            "address":3184
          },
          {
            "id":"customformula9",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula9",
                "customformula9compiled"
              ]
            ],
            "address":3188
          },
          {
            "id":"customformula10",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula10",
                "customformula10compiled"
              ]
            ],
            "address":3192
          },
          {
            "id":"customformula11",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula11",
                "customformula11compiled"
              ]
            ],
            "address":3196
          },
          {
            "id":"customformula12",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula12",
                "customformula12compiled"
              ]
            ],
            "address":3200
          },
          {
            "id":"customformula13",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula13",
                "customformula13compiled"
              ]
            ],
            "address":3204
          },
          {
            "id":"customformula14",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula14",
                "customformula14compiled"
              ]
            ],
            "address":3208
          },
          {
            "id":"customformula15",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula15",
                "customformula15compiled"
              ]
            ],
            "address":3212
          },
          {
            "id":"customformula16",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                2,
                "customformula16",
                "customformula16compiled"
              ]
            ],
            "address":3216
          },
          {
            "id":"customformula1compiled",
            "type":3,
            "array":20,
            "address":3220
          },
          {
            "id":"customformula2compiled",
            "type":3,
            "array":20,
            "address":3300
          },
          {
            "id":"customformula3compiled",
            "type":3,
            "array":20,
            "address":3380
          },
          {
            "id":"customformula4compiled",
            "type":3,
            "array":20,
            "address":3460
          },
          {
            "id":"customformula5compiled",
            "type":3,
            "array":20,
            "address":3540
          },
          {
            "id":"customformula6compiled",
            "type":3,
            "array":20,
            "address":3620
          },
          {
            "id":"customformula7compiled",
            "type":3,
            "array":20,
            "address":3700
          },
          {
            "id":"customformula8compiled",
            "type":3,
            "array":20,
            "address":3780
          },
          {
            "id":"customformula9compiled",
            "type":3,
            "array":20,
            "address":3860
          },
          {
            "id":"customformula10compiled",
            "type":3,
            "array":20,
            "address":3940
          },
          {
            "id":"customformula11compiled",
            "type":3,
            "array":20,
            "address":4020
          },
          {
            "id":"customformula12compiled",
            "type":3,
            "array":20,
            "address":4100
          },
          {
            "id":"customformula13compiled",
            "type":3,
            "array":20,
            "address":4180
          },
          {
            "id":"customformula14compiled",
            "type":3,
            "array":20,
            "address":4260
          },
          {
            "id":"customformula15compiled",
            "type":3,
            "array":20,
            "address":4340
          },
          {
            "id":"customformula16compiled",
            "type":3,
            "array":20,
            "address":4420
          },
          {
            "id":"gpiodescr1",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":36
          },
          {
            "id":"gpiodescr2",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":68
          },
          {
            "id":"gpiodescr3",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":100
          },
          {
            "id":"gpiodescr4",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":132
          },
          {
            "id":"gpiodescr5",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":164
          },
          {
            "id":"gpiodescr6",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":196
          },
          {
            "id":"gpiodescr7",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":228
          },
          {
            "id":"gpiodescr8",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":260
          },
          {
            "id":"gpiodescr9",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":292
          },
          {
            "id":"gpiodescr10",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":324
          },
          {
            "id":"gpiodescr11",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":356
          },
          {
            "id":"gpiodescr12",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":388
          },
          {
            "id":"gpiodescr13",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":420
          },
          {
            "id":"gpiodescr14",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":452
          },
          {
            "id":"gpiodescr15",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":484
          },
          {
            "id":"gpiodescr16",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":516
          },
          {
            "id":"gpiodescr17",
            "type":7,
            "width":32,
            "compact":0,
            "descr":"This field allows you to enter a text description of the general purpose logic, up to 32 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":548
          },
          {
            "id":"canseqoptions2",
            "type":1,
            "compact":0,
            "address":2725
          },
          {
            "id":"canseqoptions3",
            "type":1,
            "compact":0,
            "address":2726
          },
          {
            "id":"canseqoptions4",
            "type":1,
            "compact":0,
            "address":2727
          },
          {
            "id":"canseqoptions5",
            "type":1,
            "compact":0,
            "address":2728
          },
          {
            "id":"canseqoptions6",
            "type":1,
            "compact":0,
            "address":2729
          },
          {
            "id":"canseqoptions7",
            "type":1,
            "compact":0,
            "address":2730
          },
          {
            "id":"canseqoptions8",
            "type":1,
            "compact":0,
            "address":2731
          },
          {
            "id":"canseq_can2_2",
            "type":8,
            "address":"canseqoptions2.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_3",
            "type":8,
            "address":"canseqoptions3.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_4",
            "type":8,
            "address":"canseqoptions4.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_5",
            "type":8,
            "address":"canseqoptions5.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_6",
            "type":8,
            "address":"canseqoptions6.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_7",
            "type":8,
            "address":"canseqoptions7.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseq_can2_8",
            "type":8,
            "address":"canseqoptions8.0.0",
            "compact":0,
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canseqid2",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2632
          },
          {
            "id":"canseqid3",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2636
          },
          {
            "id":"canseqid4",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2640
          },
          {
            "id":"canseqid5",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2644
          },
          {
            "id":"canseqid6",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2648
          },
          {
            "id":"canseqid7",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2652
          },
          {
            "id":"canseqid8",
            "type":3,
            "compact":0,
            "hex":1,
            "address":2656
          },
          {
            "id":"canseqselect2",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2662
          },
          {
            "id":"canseqselect3",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2664
          },
          {
            "id":"canseqselect4",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2666
          },
          {
            "id":"canseqselect5",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2668
          },
          {
            "id":"canseqselect6",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2670
          },
          {
            "id":"canseqselect7",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2672
          },
          {
            "id":"canseqselect8",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.",
            "address":2674
          },
          {
            "id":"canseqenable2",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2678
          },
          {
            "id":"canseqenable3",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2680
          },
          {
            "id":"canseqenable4",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2682
          },
          {
            "id":"canseqenable5",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2684
          },
          {
            "id":"canseqenable6",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2686
          },
          {
            "id":"canseqenable7",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2688
          },
          {
            "id":"canseqenable8",
            "type":12,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":2690
          },
          {
            "id":"canseqlength2",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2693
          },
          {
            "id":"canseqlength3",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2694
          },
          {
            "id":"canseqlength4",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2695
          },
          {
            "id":"canseqlength5",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2696
          },
          {
            "id":"canseqlength6",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2697
          },
          {
            "id":"canseqlength7",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2698
          },
          {
            "id":"canseqlength8",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":2699
          },
          {
            "id":"canseqdlc2",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2709
          },
          {
            "id":"canseqdlc3",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2710
          },
          {
            "id":"canseqdlc4",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2711
          },
          {
            "id":"canseqdlc5",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2712
          },
          {
            "id":"canseqdlc6",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2713
          },
          {
            "id":"canseqdlc7",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2714
          },
          {
            "id":"canseqdlc8",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":2715
          },
          {
            "id":"canseqinterval2",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2701
          },
          {
            "id":"canseqinterval3",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2702
          },
          {
            "id":"canseqinterval4",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2703
          },
          {
            "id":"canseqinterval5",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2704
          },
          {
            "id":"canseqinterval6",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2705
          },
          {
            "id":"canseqinterval7",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2706
          },
          {
            "id":"canseqinterval8",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Transmission interval in milliseconds. Set to 0 for any sequence that is not being used.",
            "address":2707
          },
          {
            "id":"canseqdatafrom2",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2717
          },
          {
            "id":"canseqdatafrom3",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2718
          },
          {
            "id":"canseqdatafrom4",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2719
          },
          {
            "id":"canseqdatafrom5",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2720
          },
          {
            "id":"canseqdatafrom6",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2721
          },
          {
            "id":"canseqdatafrom7",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2722
          },
          {
            "id":"canseqdatafrom8",
            "type":1,
            "compact":0,
            "descr":"Index of custom CAN transmit definition to use to populate the sequence with data. If the sequence is to contain no data set this to 255.",
            "address":2723
          },
          {
            "id":"customformulainterval2",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3139
          },
          {
            "id":"customformulainterval3",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3140
          },
          {
            "id":"customformulainterval4",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3141
          },
          {
            "id":"customformulainterval5",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3142
          },
          {
            "id":"customformulainterval6",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3143
          },
          {
            "id":"customformulainterval7",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3144
          },
          {
            "id":"customformulainterval8",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3145
          },
          {
            "id":"customformulainterval9",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3146
          },
          {
            "id":"customformulainterval10",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3147
          },
          {
            "id":"customformulainterval11",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3148
          },
          {
            "id":"customformulainterval12",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3149
          },
          {
            "id":"customformulainterval13",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3150
          },
          {
            "id":"customformulainterval14",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3151
          },
          {
            "id":"customformulainterval15",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3152
          },
          {
            "id":"customformulainterval16",
            "type":1,
            "unit":"ms",
            "compact":0,
            "descr":"Interval at which user defined math expression is computed, set to 0 to disable the expression.",
            "address":3153
          }
        ]
      },
      {
        "page":2,
        "size":32768,
        "data":[
          {
            "id":"userprogram",
            "type":3,
            "array":8000,
            "address":0
          },
          {
            "id":"userrtdef",
            "type":13,
            "compressed":1,
            "onchange":[
              [
                "applyuserrtdef",
                "userrtdef",
                "userpgmvalues",
                "userrtsize"
              ]
            ],
            "onupdate":[
              [
                "applyuserrtdef",
                "userrtdef",
                "userpgmvalues",
                "userrtsize"
              ]
            ],
            "address":32000
          },
          {
            "id":"userrtsize",
            "type":2,
            "address":32004
          }
        ]
      },
      {
        "page":3,
        "size":32768,
        "data":[
          {
            "id":"userprogramcode",
            "type":13,
            "compressed":1,
            "beforechange":[
              [
                "compileuserprogram",
                2,
                "userprogramcode",
                null,
                "userpgmvalues"
              ],
              [
                "rpc",
                "userprogramstate",
                [
                  0
                ]
              ]
            ],
            "onchange":[
              [
                "rpc",
                "userprogramstate",
                [
                  0
                ]
              ],
              [
                "sleep",
                100,
                [
                  [
                    "compileuserprogram",
                    2,
                    "userprogramcode",
                    "userprogram",
                    "userpgmvalues"
                  ],
                  [
                    "rpc",
                    "userprogramstate",
                    [
                      1
                    ]
                  ]
                ]
              ]
            ],
            "builtinvars":[
              [
                0,
                "callback_1000hz"
              ],
              [
                1,
                "callback_500hz"
              ],
              [
                2,
                "callback_250hz"
              ],
              [
                3,
                "callback_200hz"
              ],
              [
                4,
                "callback_100hz"
              ],
              [
                5,
                "callback_50hz"
              ],
              [
                6,
                "callback_25hz"
              ],
              [
                7,
                "callback_20hz"
              ],
              [
                8,
                "callback_10hz"
              ],
              [
                9,
                "callback_5hz"
              ],
              [
                10,
                "callback_2hz"
              ],
              [
                11,
                "callback_1hz"
              ],
              [
                12,
                "callback_can1rx"
              ],
              [
                13,
                "callback_can2rx"
              ],
              [
                14,
                "callback_uart0rx"
              ],
              [
                15,
                "callback_uart3rx"
              ],
              [
                16,
                "userpwmpw1"
              ],
              [
                17,
                "userpwmpw2"
              ],
              [
                18,
                "userpwmpw3"
              ],
              [
                19,
                "userpwmpw4"
              ],
              [
                20,
                "userpwmpw5"
              ],
              [
                21,
                "userpwmpw6"
              ],
              [
                22,
                "userpwmpw7"
              ],
              [
                23,
                "userpwmpw8"
              ],
              [
                24,
                "userpwmpw9"
              ],
              [
                25,
                "userpwmpw10"
              ],
              [
                26,
                "userpwmpw11"
              ],
              [
                27,
                "userpwmpw12"
              ],
              [
                28,
                "userpwmpw13"
              ],
              [
                29,
                "userpwmpw14"
              ],
              [
                30,
                "userpwmpw15"
              ],
              [
                31,
                "userpwmpw16"
              ],
              [
                32,
                "userpwmperiod1"
              ],
              [
                33,
                "userpwmperiod2"
              ],
              [
                34,
                "userpwmperiod3"
              ],
              [
                35,
                "userpwmperiod4"
              ],
              [
                36,
                "userpwmperiod5"
              ],
              [
                37,
                "userpwmperiod6"
              ],
              [
                38,
                "userpwmperiod7"
              ],
              [
                39,
                "userpwmperiod8"
              ],
              [
                40,
                "userpwmperiod9"
              ],
              [
                41,
                "userpwmperiod10"
              ],
              [
                42,
                "userpwmperiod11"
              ],
              [
                43,
                "userpwmperiod12"
              ],
              [
                44,
                "userpwmperiod13"
              ],
              [
                45,
                "userpwmperiod14"
              ],
              [
                46,
                "userpwmperiod15"
              ],
              [
                47,
                "userpwmperiod16"
              ],
              [
                48,
                "callback_din1event"
              ],
              [
                49,
                "callback_din2event"
              ],
              [
                50,
                "callback_din3event"
              ],
              [
                51,
                "callback_din4event"
              ],
              [
                52,
                "override_attorquelim"
              ],
              [
                53,
                "override_atmintorque"
              ]
            ],
            "programmemory":4096,
            "nvallocation":"usernvdata",
            "builtinfunctions":{
              "sqrt":{
                "opcode":63,
                "arguments":[
                  "uint32 number"
                ],
                "descr":"Returns square root of unsigned 32 bit integer value"
              },
              "can1_tx":{
                "opcode":96,
                "arguments":[
                  "CANID",
                  "dlc",
                  "uint8 data[]"
                ]
              },
              "can2_tx":{
                "opcode":97,
                "arguments":[
                  "CANID",
                  "dlc",
                  "uint8 data[]"
                ]
              },
              "flexlookup":{
                "opcode":87,
                "arguments":[
                  "uint32 flexinfo"
                ],
                "descr":"Look up value from a flex table."
              },
              "curvelookup16":{
                "opcode":88,
                "arguments":[
                  "uint16 curve[]",
                  "uint16 axis[]",
                  "uint8 dims",
                  "uint16 input"
                ]
              },
              "curvelookups16":{
                "opcode":89,
                "arguments":[
                  "int16 curve[]",
                  "uint16 axis[]",
                  "uint8 dims",
                  "uint16 input"
                ]
              },
              "curvelookup8":{
                "opcode":90,
                "arguments":[
                  "uint8 curve[]",
                  "uint16 axis[]",
                  "uint8 dims",
                  "uint16 input"
                ]
              },
              "curvelookups8":{
                "opcode":91,
                "arguments":[
                  "int8 curve[]",
                  "uint16 axis[]",
                  "uint8 dims",
                  "uint16 input"
                ]
              },
              "tablelookup":{
                "opcode":92,
                "arguments":[
                  "auto table[]",
                  "(u)int16 xaxis[]",
                  "(u)int16 yaxis[]",
                  " xdims",
                  "uint8 ydims",
                  "auto xvalue",
                  "auto yvalue"
                ],
                "descr":"Table lookup function that automatically detects whether the table is 8 or 16 bit, signed or unsigned, and whether the axis are signed or unsigned"
              },
              "curvelookup":{
                "opcode":93,
                "arguments":[
                  "auto curve[]",
                  "(u)int16 axis[]",
                  "uint8 dims",
                  "auto input"
                ],
                "descr":"Curve lookup function that automatically detects whether the curve is 8 or 16 bit, signed or unsigned, and whether the axis is signed or unsigned"
              },
              "tablelookup16":{
                "opcode":98,
                "arguments":[
                  "uint16 table[]",
                  "uint16 xaxis[]",
                  "uint16 yaxis[]",
                  "uint8 xdims",
                  "uint8 ydims",
                  "uint16 xvalue",
                  "uint16 yvalue"
                ]
              },
              "tablelookup8":{
                "opcode":99,
                "arguments":[
                  "uint8 table[]",
                  "uint16 xaxis[]",
                  "uint16 yaxis[]",
                  "uint8 xdims",
                  "uint8 ydims",
                  "uint16 xvalue",
                  "uint16 yvalue"
                ]
              },
              "tablelookups16":{
                "opcode":100,
                "arguments":[
                  "int16 table[]",
                  "uint16 xaxis[]",
                  "uint16 yaxis[]",
                  "uint8 xdims",
                  "uint8 ydims",
                  "uint16 xvalue",
                  "uint16 yvalue"
                ]
              },
              "tablelookups8":{
                "opcode":101,
                "arguments":[
                  "int8 table[]",
                  "uint16 xaxis[]",
                  "uint16 yaxis[]",
                  "uint8 xdims",
                  "uint8 ydims",
                  "uint16 xvalue",
                  "uint16 yvalue"
                ]
              },
              "linearinterpolate":{
                "opcode":27,
                "arguments":[
                  "int32 outputlow",
                  "int32 outputhigh",
                  "int32 inputlow",
                  "int32 inputhigh",
                  "int32 inputvalue"
                ]
              },
              "linearinterpolateU16":{
                "opcode":28,
                "arguments":[
                  "uint16 outputlow",
                  "uint16 outputhigh",
                  "uint16 inputlow",
                  "uint16 inputhigh",
                  "uint16 inputvalue"
                ]
              },
              "linearinterpolateS16":{
                "opcode":29,
                "arguments":[
                  "int16 outputlow",
                  "int16 outputhigh",
                  "int16 inputlow",
                  "int16 inputhigh",
                  "int16 inputvalue"
                ]
              },
              "varpicker":{
                "opcode":7,
                "arguments":1
              },
              "wraps8":{
                "opcode":32,
                "arguments":1
              },
              "wrapu8":{
                "opcode":33,
                "arguments":1
              },
              "wraps16":{
                "opcode":34,
                "arguments":1
              },
              "wrapu16":{
                "opcode":35,
                "arguments":1
              },
              "getbit":{
                "opcode":102,
                "arguments":1
              },
              "setbit":{
                "opcode":103,
                "arguments":2
              },
              "startlogging":{
                "opcode":104,
                "arguments":1
              },
              "stoplogging":{
                "opcode":105
              },
              "init_uart":{
                "opcode":106,
                "arguments":[
                  "uint8 uart",
                  "uint32 baud"
                ]
              },
              "uart0tx":{
                "opcode":107,
                "arguments":[
                  "uint8 count",
                  "uint8 buffer[]"
                ]
              },
              "uart3tx":{
                "opcode":108,
                "arguments":[
                  "uint8 count",
                  "uint8 buffer[]"
                ]
              },
              "crc8":{
                "opcode":109,
                "arguments":[
                  "uint8 data[]",
                  "uint8 offset",
                  "uint8 length",
                  "uint8 seed",
                  "uint8 poly"
                ]
              },
              "memcopy":{
                "opcode":110,
                "arguments":[
                  "uint8 destination[]",
                  "uint8 source[]",
                  "uint16 length"
                ]
              },
              "offsetcopy":{
                "opcode":111,
                "arguments":[
                  "uint8 destination[]",
                  "uint16 dstoffset",
                  "uint8 source[]",
                  "uint16 srcoffset",
                  "uint16 length"
                ]
              },
              "strcopy":{
                "opcode":112,
                "arguments":[
                  "uint8 destination[]",
                  "uint8 source[]",
                  "uint16 length"
                ]
              },
              "strlen":{
                "opcode":113,
                "arguments":[
                  "uint8 string[]",
                  "uint16 maxlength"
                ]
              },
              "strformat":{
                "opcode":114,
                "arguments":[
                  "uint8 destination[]",
                  "uint16 maxlength",
                  "uint8 formatstring[]",
                  "..."
                ]
              }
            },
            "systemconstants":{
              "caninterfacecount":2,
              "user_out0":32,
              "user_out1":33,
              "user_out2":34,
              "user_out3":35,
              "user_out4":36,
              "user_out5":37,
              "user_out6":38,
              "user_out7":39,
              "user_out8":40,
              "user_out9":41,
              "user_out10":42,
              "user_out11":43,
              "user_out12":44,
              "user_out13":45,
              "user_out14":46,
              "user_out15":47
            },
            "address":0
          },
          {
            "id":"userconftree",
            "type":13,
            "compressed":1,
            "beforechange":[
              [
                "applyuserconfdef",
                "userconftree"
              ]
            ],
            "onmerge":[
              [
                "applyuserconfdef",
                "userconftree"
              ]
            ],
            "address":4
          }
        ]
      },
      {
        "page":4,
        "size":32768,
        "data":[
          {
            "id":"userconf",
            "type":3,
            "array":4096,
            "address":0
          },
          {
            "id":"userconfdef",
            "type":13,
            "compressed":1,
            "onupdate":[
              [
                "applyuserecudef",
                "userconfdef",
                "userconf"
              ]
            ],
            "address":16384
          }
        ]
      },
      {
        "page":31,
        "notflash":1,
        "size":1200,
        "data":[
          {
            "id":"fw_build",
            "type":3,
            "readonly":1,
            "address":0
          },
          {
            "id":"def_build",
            "type":3,
            "readonly":1,
            "address":4
          },
          {
            "id":"signature",
            "type":3,
            "readonly":1,
            "address":1048
          },
          {
            "id":"nvkeypadstate0",
            "type":3,
            "readonly":1,
            "compact":0,
            "address":8
          },
          {
            "id":"usernvdata",
            "type":1,
            "array":1024,
            "address":24
          },
          {
            "id":"nvkeypadstate1",
            "type":3,
            "readonly":1,
            "compact":0,
            "address":12
          },
          {
            "id":"nvkeypadstate2",
            "type":3,
            "readonly":1,
            "compact":0,
            "address":16
          },
          {
            "id":"nvkeypadstate3",
            "type":3,
            "readonly":1,
            "compact":0,
            "address":20
          }
        ]
      }
    ],
    "datastream":{
      "streamlength":1024,
      "variables":[
        {
          "id":"time",
          "address":"uptime",
          "scale":0.001000,
          "digits":3,
          "unit":"s",
          "type":3
        },
        {
          "id":"analog0",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":92
        },
        {
          "id":"bcd1",
          "type":1,
          "compact":0,
          "address":444
        },
        {
          "id":"supplyvoltage",
          "unit":"V",
          "type":2,
          "digits":2,
          "scale":0.001000,
          "address":108
        },
        {
          "id":"mainfrequency",
          "type":2,
          "unit":"Hz",
          "address":110
        },
        {
          "id":"debugval0",
          "compact":8,
          "type":3,
          "devonly":1,
          "ignore":1
        },
        {
          "id":"logging",
          "type":1,
          "address":432
        },
        {
          "id":"logseq",
          "type":2,
          "address":112
        },
        {
          "id":"date",
          "type":10,
          "address":8
        },
        {
          "id":"outputs",
          "type":3,
          "address":4
        },
        {
          "id":"gplogic1",
          "type":0,
          "address":"outputs.10",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic2",
          "type":0,
          "address":"outputs.11",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic3",
          "type":0,
          "address":"outputs.12",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic4",
          "type":0,
          "address":"outputs.13",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic5",
          "type":0,
          "address":"outputs.15",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic6",
          "type":0,
          "address":"outputs.16",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic7",
          "type":0,
          "address":"outputs.17",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic8",
          "type":0,
          "address":"outputs.18",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic9",
          "type":0,
          "address":"outputs.20",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic10",
          "type":0,
          "address":"outputs.21",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic11",
          "type":0,
          "address":"outputs.22",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic12",
          "type":0,
          "address":"outputs.23",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic13",
          "type":0,
          "address":"outputs.24",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic14",
          "type":0,
          "address":"outputs.25",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic15",
          "type":0,
          "address":"outputs.26",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"gplogic16",
          "type":0,
          "address":"outputs.27",
          "descr":"State of general purpose logic function"
        },
        {
          "id":"din1interval",
          "type":3,
          "unit":"µs",
          "address":16
        },
        {
          "id":"din2interval",
          "type":3,
          "unit":"µs",
          "address":20
        },
        {
          "id":"din3interval",
          "type":3,
          "unit":"µs",
          "address":24
        },
        {
          "id":"din4interval",
          "type":3,
          "unit":"µs",
          "address":28
        },
        {
          "id":"can1rx",
          "type":1,
          "address":428
        },
        {
          "id":"can1errcount",
          "type":1,
          "address":436
        },
        {
          "id":"can2rx",
          "type":1,
          "address":429
        },
        {
          "id":"can2errcount",
          "type":1,
          "address":437
        },
        {
          "id":"can1src0",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.0",
          "descr":"CAN receive channel on CAN bus 1",
          "address":114
        },
        {
          "id":"can2src0",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.0",
          "descr":"CAN receive channel on CAN bus 2",
          "address":178
        },
        {
          "id":"pwm0duty",
          "type":2,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "address":242
        },
        {
          "id":"pwm1duty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 output duty cycle.",
          "address":254
        },
        {
          "id":"pwm1sp",
          "type":2,
          "describedby":"pwm1var",
          "descr":"General purpose PID loop 1 setpoint.",
          "address":250
        },
        {
          "id":"pwm1error",
          "type":2,
          "sign":1,
          "relative":1,
          "describedby":"pwm1var",
          "descr":"General purpose PID loop 1 distance from setpoint.",
          "address":252
        },
        {
          "id":"pwm1P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 proportional effect.",
          "address":244
        },
        {
          "id":"pwm1I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 integral effect.",
          "address":246
        },
        {
          "id":"pwm1D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 differential effect.",
          "address":248
        },
        {
          "id":"pwm2sp",
          "type":2,
          "describedby":"pwm2var",
          "descr":"General purpose PID loop 2 setpoint.",
          "address":262
        },
        {
          "id":"pwm2error",
          "type":2,
          "sign":1,
          "relative":1,
          "describedby":"pwm2var",
          "descr":"General purpose PID loop 2 distance from setpoint.",
          "address":264
        },
        {
          "id":"pwm2duty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 output duty cycle.",
          "address":266
        },
        {
          "id":"pwm2P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 proportional effect.",
          "address":256
        },
        {
          "id":"pwm2I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 integral effect.",
          "address":258
        },
        {
          "id":"pwm2D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 differential effect.",
          "address":260
        },
        {
          "id":"pwm3sp",
          "type":2,
          "describedby":"pwm3var",
          "descr":"General purpose PID loop 3 setpoint.",
          "address":274
        },
        {
          "id":"pwm3error",
          "type":2,
          "sign":1,
          "relative":1,
          "describedby":"pwm3var",
          "descr":"General purpose PID loop 3 distance from setpoint.",
          "address":276
        },
        {
          "id":"pwm3duty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 3 output duty cycle.",
          "address":278
        },
        {
          "id":"pwm3P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 3 proportional effect.",
          "address":268
        },
        {
          "id":"pwm3I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 3 integral effect.",
          "address":270
        },
        {
          "id":"pwm3D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 3 differential effect.",
          "address":272
        },
        {
          "id":"pwm4sp",
          "type":2,
          "describedby":"pwm4var",
          "descr":"General purpose PID loop 4 setpoint.",
          "address":286
        },
        {
          "id":"pwm4error",
          "type":2,
          "sign":1,
          "relative":1,
          "describedby":"pwm4var",
          "descr":"General purpose PID loop 4 distance from setpoint.",
          "address":288
        },
        {
          "id":"pwm4duty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 4 output duty cycle.",
          "address":290
        },
        {
          "id":"pwm4P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 4 proportional effect.",
          "address":280
        },
        {
          "id":"pwm4I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 4 integral effect.",
          "address":282
        },
        {
          "id":"pwm4D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 4 differential effect.",
          "address":284
        },
        {
          "id":"logrecs",
          "type":1,
          "address":435
        },
        {
          "id":"logstatus",
          "type":1,
          "address":433
        },
        {
          "id":"nvvalid",
          "type":1,
          "descr":"This variable indicates that the data contained in the non-volatile memory is valid. If 0 it means the non-volatile memory contents was lost due to the depletion of the memory back up battery, or a firmware update. The back up battery is a CR2032 cell.",
          "address":434
        },
        {
          "id":"error0",
          "type":2,
          "address":88
        },
        {
          "id":"gpin",
          "type":3,
          "address":12
        },
        {
          "id":"din1",
          "address":"gpin.0",
          "descr":"State of digital input 1, a value of 1 means input is grounded."
        },
        {
          "id":"din2",
          "address":"gpin.1",
          "descr":"State of digital input 2, a value of 1 means input is grounded."
        },
        {
          "id":"din3",
          "address":"gpin.2",
          "descr":"State of digital input 3, a value of 1 means input is grounded."
        },
        {
          "id":"din4",
          "address":"gpin.3",
          "descr":"State of digital input 4, a value of 1 means input is grounded."
        },
        {
          "id":"can1rxerr",
          "type":2,
          "address":292
        },
        {
          "id":"can2rxerr",
          "type":2,
          "address":294
        },
        {
          "id":"mempage",
          "type":1,
          "address":426
        },
        {
          "id":"din1freq",
          "type":2,
          "unit":"Hz",
          "address":296
        },
        {
          "id":"din2freq",
          "type":2,
          "unit":"Hz",
          "address":298
        },
        {
          "id":"din3freq",
          "type":2,
          "unit":"Hz",
          "address":300
        },
        {
          "id":"din4freq",
          "type":2,
          "unit":"Hz",
          "address":302
        },
        {
          "id":"canscanaddr",
          "type":3,
          "hex":1,
          "address":80
        },
        {
          "id":"flags0",
          "type":2,
          "address":90
        },
        {
          "id":"scan_running",
          "address":"flags0.0"
        },
        {
          "id":"enginespeed",
          "type":2,
          "unit":"RPM",
          "address":304
        },
        {
          "id":"roadspeed",
          "type":2,
          "unit":"km\/h",
          "scale":0.100000,
          "digits":1,
          "descr":"Speed of the driven wheels",
          "address":306
        },
        {
          "id":"roadspeed2",
          "type":2,
          "unit":"km\/h",
          "scale":0.100000,
          "digits":1,
          "descr":"Speed of the undriven wheels if applicable",
          "address":308
        },
        {
          "id":"wheelspeed_fl",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of front left wheel",
          "address":310
        },
        {
          "id":"wheelspeed_fr",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of front right wheel",
          "address":312
        },
        {
          "id":"wheelspeed_rl",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of rear left wheel",
          "address":314
        },
        {
          "id":"wheelspeed_rr",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of rear right wheel",
          "address":316
        },
        {
          "id":"roaddistance",
          "type":3,
          "unit":"km",
          "scale":0.001000,
          "digits":3,
          "descr":"Distance driven since controller power on, computed as the integral of roadspeed.",
          "address":84
        },
        {
          "id":"din1event",
          "type":3,
          "unit":"µs",
          "address":32
        },
        {
          "id":"din2event",
          "type":3,
          "unit":"µs",
          "address":36
        },
        {
          "id":"din3event",
          "type":3,
          "unit":"µs",
          "address":40
        },
        {
          "id":"din4event",
          "type":3,
          "unit":"µs",
          "address":44
        },
        {
          "id":"wheeldistance1",
          "type":3,
          "compact":0,
          "address":64
        },
        {
          "id":"din1count",
          "type":3,
          "address":48
        },
        {
          "id":"din2count",
          "type":3,
          "address":52
        },
        {
          "id":"din3count",
          "type":3,
          "address":56
        },
        {
          "id":"din4count",
          "type":3,
          "address":60
        },
        {
          "id":"count1",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":440
        },
        {
          "id":"gpaccu1",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc0",
          "address":358
        },
        {
          "id":"gptransfer1",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 1",
          "variations":[
            [
              "customlookupsigned1",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned1",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal1",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal1",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal1",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal1",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":326,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer2",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 2",
          "variations":[
            [
              "customlookupsigned2",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned2",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal2",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal2",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal2",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal2",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":328,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer3",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 3",
          "variations":[
            [
              "customlookupsigned3",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned3",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal3",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal3",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal3",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal3",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":330,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer4",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 4",
          "variations":[
            [
              "customlookupsigned4",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned4",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal4",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal4",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal4",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal4",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":332,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer5",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 5",
          "variations":[
            [
              "customlookupsigned5",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned5",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal5",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal5",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal5",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal5",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":334,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer6",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 6",
          "variations":[
            [
              "customlookupsigned6",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned6",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal6",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal6",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal6",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal6",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":336,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer7",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 7",
          "variations":[
            [
              "customlookupsigned7",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned7",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal7",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal7",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal7",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal7",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":338,
          "digits":0,
          "scale":1
        },
        {
          "id":"gptransfer8",
          "type":2,
          "sign":0,
          "descr":"Output of custom transfer function 8",
          "variations":[
            [
              "customlookupsigned8",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "customlookupsigned8",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "customlookupdecimal8",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "customlookupdecimal8",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "customlookupdecimal8",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "customlookupdecimal8",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":340,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable1",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 1",
          "variations":[
            [
              "custom2dsigned1",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned1",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal1",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal1",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal1",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal1",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":342,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable2",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 2",
          "variations":[
            [
              "custom2dsigned2",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned2",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal2",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal2",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal2",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal2",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":344,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable3",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 3",
          "variations":[
            [
              "custom2dsigned3",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned3",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal3",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal3",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal3",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal3",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":346,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable4",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 4",
          "variations":[
            [
              "custom2dsigned4",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned4",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal4",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal4",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal4",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal4",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":348,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable5",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 4",
          "variations":[
            [
              "custom2dsigned5",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned5",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal5",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal5",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal5",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal5",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":350,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable6",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 4",
          "variations":[
            [
              "custom2dsigned6",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned6",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal6",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal6",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal6",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal6",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":352,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable7",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 4",
          "variations":[
            [
              "custom2dsigned7",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned7",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal7",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal7",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal7",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal7",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":354,
          "digits":0,
          "scale":1
        },
        {
          "id":"customtable8",
          "type":2,
          "sign":0,
          "descr":"Output of custom table 4",
          "variations":[
            [
              "custom2dsigned8",
              "=",
              "Signed"
            ],
            {
              "sign":1
            },
            [
              "custom2dsigned8",
              "=",
              "Unsigned"
            ],
            {
              "sign":0
            },
            [
              "custom2ddecimal8",
              "=",
              "0"
            ],
            {
              "digits":0,
              "scale":1,
              "endif":true
            },
            [
              "custom2ddecimal8",
              "=",
              "1"
            ],
            {
              "digits":1,
              "scale":0.100000
            },
            [
              "custom2ddecimal8",
              "=",
              "2"
            ],
            {
              "digits":2,
              "scale":0.010000
            },
            [
              "custom2ddecimal8",
              "=",
              "3"
            ],
            {
              "digits":3,
              "scale":0.001000
            }
          ],
          "address":356,
          "digits":0,
          "scale":1
        },
        {
          "id":"gplatch1",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput1",
          "descr":"Value of general purpose latch function",
          "address":318
        },
        {
          "id":"flipflops",
          "type":1,
          "descr":"Bit mask of flip flop logic state",
          "address":468
        },
        {
          "id":"flipflop1",
          "type":0,
          "compact":8,
          "address":"flipflops.0",
          "descr":"State of flip flop logic"
        },
        {
          "id":"can1tx",
          "type":1,
          "descr":"This variable counts up every time a packet is transmitted on CAN 1. Rolls over at 255 and starts counting from 0 again.",
          "address":430
        },
        {
          "id":"can2tx",
          "type":1,
          "descr":"This variable counts up every time a packet is transmitted on CAN 2. Rolls over at 255 and starts counting from 0 again.",
          "address":431
        },
        {
          "id":"remotebits",
          "type":1,
          "descr":"Bits that can be toggled by OBD2 commands or from Calibrator",
          "address":450
        },
        {
          "id":"remotebit0",
          "type":0,
          "address":"remotebits.0"
        },
        {
          "id":"remotebit1",
          "type":0,
          "address":"remotebits.1"
        },
        {
          "id":"remotebit2",
          "type":0,
          "address":"remotebits.2"
        },
        {
          "id":"remotebit3",
          "type":0,
          "address":"remotebits.3"
        },
        {
          "id":"remotebit4",
          "type":0,
          "address":"remotebits.4"
        },
        {
          "id":"remotebit5",
          "type":0,
          "address":"remotebits.5"
        },
        {
          "id":"remotebit6",
          "type":0,
          "address":"remotebits.6"
        },
        {
          "id":"remotebit7",
          "type":0,
          "address":"remotebits.7"
        },
        {
          "id":"userpgmstatus",
          "type":1,
          "descr":"If non-zero, this indicates that a user generated program is running on the ECU.",
          "address":448
        },
        {
          "id":"userpgmerror",
          "type":1,
          "descr":"If non-zero this means the virtual machine has had to exit code execution due to an error in the code.",
          "address":449
        },
        {
          "id":"userflags",
          "type":2,
          "descr":"Flags used for outputs from custom strategies into ECU functions.",
          "address":374
        },
        {
          "id":"userflag0",
          "address":"userflags.0",
          "compact":16,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"uservar1",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":376
        },
        {
          "id":"userpgmvalues",
          "type":3,
          "array":64,
          "hidden":1,
          "address":472
        },
        {
          "id":"simplepwmdc1",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":452
        },
        {
          "id":"simplepwmf1",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":460
        },
        {
          "id":"app",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.003052,
          "descr":"Accelerator pedal position",
          "address":408
        },
        {
          "id":"map",
          "type":2,
          "unit":"mbar",
          "descr":"Intake manifold absolute pressure",
          "address":410
        },
        {
          "id":"oiltemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Oil temperature, if such sensor is fitted.",
          "address":414
        },
        {
          "id":"transtemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Transmission temperature, if such sensor is fitted.",
          "address":412
        },
        {
          "id":"coolanttemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Engine coolant temperature, if such sensor is fitted.",
          "address":416
        },
        {
          "id":"timerbits",
          "descr":"Bit mask of bits flipped at different intervals",
          "type":1,
          "address":469
        },
        {
          "id":"0hz5",
          "type":0,
          "address":"timerbits.0",
          "descr":"Half hertz cycle function, 1 for one second and 0 for the next second"
        },
        {
          "id":"1hz",
          "type":0,
          "address":"timerbits.1",
          "descr":"One hertz cycle function, 1 for a half second and 0 for the other half"
        },
        {
          "id":"10hz",
          "type":0,
          "address":"timerbits.2",
          "descr":"Ten hertz cycle function, pulses 10 times per second"
        },
        {
          "id":"keypadstate1",
          "compact":0,
          "type":2,
          "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive",
          "address":418
        },
        {
          "id":"keypad1.1",
          "compact":15,
          "type":0,
          "address":"keypadstate1.1+",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.1",
          "compact":15,
          "type":0,
          "address":"keypadstate2.1+",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.1",
          "compact":15,
          "type":0,
          "address":"keypadstate3.1+",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.1",
          "compact":15,
          "type":0,
          "address":"keypadstate4.1+",
          "descr":"State of keypad button channel"
        },
        {
          "id":"analog1",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":94
        },
        {
          "id":"analog2",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":96
        },
        {
          "id":"analog3",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":98
        },
        {
          "id":"analog4",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":100
        },
        {
          "id":"analog5",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":102
        },
        {
          "id":"analog6",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":104
        },
        {
          "id":"analog7",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "address":106
        },
        {
          "id":"bcd2",
          "type":1,
          "compact":0,
          "address":445
        },
        {
          "id":"bcd3",
          "type":1,
          "compact":0,
          "address":446
        },
        {
          "id":"bcd4",
          "type":1,
          "compact":0,
          "address":447
        },
        {
          "id":"can1src1",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.1",
          "descr":"CAN receive channel on CAN bus 1",
          "address":116
        },
        {
          "id":"can1src2",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.2",
          "descr":"CAN receive channel on CAN bus 1",
          "address":118
        },
        {
          "id":"can1src3",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.3",
          "descr":"CAN receive channel on CAN bus 1",
          "address":120
        },
        {
          "id":"can1src4",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.4",
          "descr":"CAN receive channel on CAN bus 1",
          "address":122
        },
        {
          "id":"can1src5",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.5",
          "descr":"CAN receive channel on CAN bus 1",
          "address":124
        },
        {
          "id":"can1src6",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.6",
          "descr":"CAN receive channel on CAN bus 1",
          "address":126
        },
        {
          "id":"can1src7",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.7",
          "descr":"CAN receive channel on CAN bus 1",
          "address":128
        },
        {
          "id":"can1src8",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.8",
          "descr":"CAN receive channel on CAN bus 1",
          "address":130
        },
        {
          "id":"can1src9",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.9",
          "descr":"CAN receive channel on CAN bus 1",
          "address":132
        },
        {
          "id":"can1src10",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.10",
          "descr":"CAN receive channel on CAN bus 1",
          "address":134
        },
        {
          "id":"can1src11",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.11",
          "descr":"CAN receive channel on CAN bus 1",
          "address":136
        },
        {
          "id":"can1src12",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.12",
          "descr":"CAN receive channel on CAN bus 1",
          "address":138
        },
        {
          "id":"can1src13",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.13",
          "descr":"CAN receive channel on CAN bus 1",
          "address":140
        },
        {
          "id":"can1src14",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.14",
          "descr":"CAN receive channel on CAN bus 1",
          "address":142
        },
        {
          "id":"can1src15",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.15",
          "descr":"CAN receive channel on CAN bus 1",
          "address":144
        },
        {
          "id":"can1src16",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.16",
          "descr":"CAN receive channel on CAN bus 1",
          "address":146
        },
        {
          "id":"can1src17",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.17",
          "descr":"CAN receive channel on CAN bus 1",
          "address":148
        },
        {
          "id":"can1src18",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.18",
          "descr":"CAN receive channel on CAN bus 1",
          "address":150
        },
        {
          "id":"can1src19",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.19",
          "descr":"CAN receive channel on CAN bus 1",
          "address":152
        },
        {
          "id":"can1src20",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.20",
          "descr":"CAN receive channel on CAN bus 1",
          "address":154
        },
        {
          "id":"can1src21",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.21",
          "descr":"CAN receive channel on CAN bus 1",
          "address":156
        },
        {
          "id":"can1src22",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.22",
          "descr":"CAN receive channel on CAN bus 1",
          "address":158
        },
        {
          "id":"can1src23",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.23",
          "descr":"CAN receive channel on CAN bus 1",
          "address":160
        },
        {
          "id":"can1src24",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.24",
          "descr":"CAN receive channel on CAN bus 1",
          "address":162
        },
        {
          "id":"can1src25",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.25",
          "descr":"CAN receive channel on CAN bus 1",
          "address":164
        },
        {
          "id":"can1src26",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.26",
          "descr":"CAN receive channel on CAN bus 1",
          "address":166
        },
        {
          "id":"can1src27",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.27",
          "descr":"CAN receive channel on CAN bus 1",
          "address":168
        },
        {
          "id":"can1src28",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.28",
          "descr":"CAN receive channel on CAN bus 1",
          "address":170
        },
        {
          "id":"can1src29",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.29",
          "descr":"CAN receive channel on CAN bus 1",
          "address":172
        },
        {
          "id":"can1src30",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.30",
          "descr":"CAN receive channel on CAN bus 1",
          "address":174
        },
        {
          "id":"can1src31",
          "type":2,
          "compact":0,
          "appendname":"can1rxalias.31",
          "descr":"CAN receive channel on CAN bus 1",
          "address":176
        },
        {
          "id":"can2src1",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.1",
          "descr":"CAN receive channel on CAN bus 2",
          "address":180
        },
        {
          "id":"can2src2",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.2",
          "descr":"CAN receive channel on CAN bus 2",
          "address":182
        },
        {
          "id":"can2src3",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.3",
          "descr":"CAN receive channel on CAN bus 2",
          "address":184
        },
        {
          "id":"can2src4",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.4",
          "descr":"CAN receive channel on CAN bus 2",
          "address":186
        },
        {
          "id":"can2src5",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.5",
          "descr":"CAN receive channel on CAN bus 2",
          "address":188
        },
        {
          "id":"can2src6",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.6",
          "descr":"CAN receive channel on CAN bus 2",
          "address":190
        },
        {
          "id":"can2src7",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.7",
          "descr":"CAN receive channel on CAN bus 2",
          "address":192
        },
        {
          "id":"can2src8",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.8",
          "descr":"CAN receive channel on CAN bus 2",
          "address":194
        },
        {
          "id":"can2src9",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.9",
          "descr":"CAN receive channel on CAN bus 2",
          "address":196
        },
        {
          "id":"can2src10",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.10",
          "descr":"CAN receive channel on CAN bus 2",
          "address":198
        },
        {
          "id":"can2src11",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.11",
          "descr":"CAN receive channel on CAN bus 2",
          "address":200
        },
        {
          "id":"can2src12",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.12",
          "descr":"CAN receive channel on CAN bus 2",
          "address":202
        },
        {
          "id":"can2src13",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.13",
          "descr":"CAN receive channel on CAN bus 2",
          "address":204
        },
        {
          "id":"can2src14",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.14",
          "descr":"CAN receive channel on CAN bus 2",
          "address":206
        },
        {
          "id":"can2src15",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.15",
          "descr":"CAN receive channel on CAN bus 2",
          "address":208
        },
        {
          "id":"can2src16",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.16",
          "descr":"CAN receive channel on CAN bus 2",
          "address":210
        },
        {
          "id":"can2src17",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.17",
          "descr":"CAN receive channel on CAN bus 2",
          "address":212
        },
        {
          "id":"can2src18",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.18",
          "descr":"CAN receive channel on CAN bus 2",
          "address":214
        },
        {
          "id":"can2src19",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.19",
          "descr":"CAN receive channel on CAN bus 2",
          "address":216
        },
        {
          "id":"can2src20",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.20",
          "descr":"CAN receive channel on CAN bus 2",
          "address":218
        },
        {
          "id":"can2src21",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.21",
          "descr":"CAN receive channel on CAN bus 2",
          "address":220
        },
        {
          "id":"can2src22",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.22",
          "descr":"CAN receive channel on CAN bus 2",
          "address":222
        },
        {
          "id":"can2src23",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.23",
          "descr":"CAN receive channel on CAN bus 2",
          "address":224
        },
        {
          "id":"can2src24",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.24",
          "descr":"CAN receive channel on CAN bus 2",
          "address":226
        },
        {
          "id":"can2src25",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.25",
          "descr":"CAN receive channel on CAN bus 2",
          "address":228
        },
        {
          "id":"can2src26",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.26",
          "descr":"CAN receive channel on CAN bus 2",
          "address":230
        },
        {
          "id":"can2src27",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.27",
          "descr":"CAN receive channel on CAN bus 2",
          "address":232
        },
        {
          "id":"can2src28",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.28",
          "descr":"CAN receive channel on CAN bus 2",
          "address":234
        },
        {
          "id":"can2src29",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.29",
          "descr":"CAN receive channel on CAN bus 2",
          "address":236
        },
        {
          "id":"can2src30",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.30",
          "descr":"CAN receive channel on CAN bus 2",
          "address":238
        },
        {
          "id":"can2src31",
          "type":2,
          "compact":0,
          "appendname":"can2rxalias.31",
          "descr":"CAN receive channel on CAN bus 2",
          "address":240
        },
        {
          "id":"wheeldistance2",
          "type":3,
          "compact":0,
          "address":68
        },
        {
          "id":"wheeldistance3",
          "type":3,
          "compact":0,
          "address":72
        },
        {
          "id":"wheeldistance4",
          "type":3,
          "compact":0,
          "address":76
        },
        {
          "id":"count2",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":441
        },
        {
          "id":"count3",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":442
        },
        {
          "id":"count4",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":443
        },
        {
          "id":"gpaccu2",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc1",
          "address":360
        },
        {
          "id":"gpaccu3",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc2",
          "address":362
        },
        {
          "id":"gpaccu4",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc3",
          "address":364
        },
        {
          "id":"gpaccu5",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc4",
          "address":366
        },
        {
          "id":"gpaccu6",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc5",
          "address":368
        },
        {
          "id":"gpaccu7",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc6",
          "address":370
        },
        {
          "id":"gpaccu8",
          "compact":0,
          "type":2,
          "describedby":"gpaccusrc7",
          "address":372
        },
        {
          "id":"gplatch2",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput2",
          "descr":"Value of general purpose latch function",
          "address":320
        },
        {
          "id":"gplatch3",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput3",
          "descr":"Value of general purpose latch function",
          "address":322
        },
        {
          "id":"gplatch4",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput4",
          "descr":"Value of general purpose latch function",
          "address":324
        },
        {
          "id":"flipflop2",
          "type":0,
          "compact":0,
          "address":"flipflops.1",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop3",
          "type":0,
          "compact":0,
          "address":"flipflops.2",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop4",
          "type":0,
          "compact":0,
          "address":"flipflops.3",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop5",
          "type":0,
          "compact":0,
          "address":"flipflops.4",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop6",
          "type":0,
          "compact":0,
          "address":"flipflops.5",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop7",
          "type":0,
          "compact":0,
          "address":"flipflops.6",
          "descr":"State of flip flop logic"
        },
        {
          "id":"flipflop8",
          "type":0,
          "compact":0,
          "address":"flipflops.7",
          "descr":"State of flip flop logic"
        },
        {
          "id":"userflag1",
          "address":"userflags.1",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag2",
          "address":"userflags.2",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag3",
          "address":"userflags.3",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag4",
          "address":"userflags.4",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag5",
          "address":"userflags.5",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag6",
          "address":"userflags.6",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag7",
          "address":"userflags.7",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag8",
          "address":"userflags.8",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag9",
          "address":"userflags.9",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag10",
          "address":"userflags.10",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag11",
          "address":"userflags.11",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag12",
          "address":"userflags.12",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag13",
          "address":"userflags.13",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag14",
          "address":"userflags.14",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"userflag15",
          "address":"userflags.15",
          "compact":0,
          "descr":"Flags used for outputs from custom strategies into ECU functions."
        },
        {
          "id":"uservar2",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":378
        },
        {
          "id":"uservar3",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":380
        },
        {
          "id":"uservar4",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":382
        },
        {
          "id":"uservar5",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":384
        },
        {
          "id":"uservar6",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":386
        },
        {
          "id":"uservar7",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":388
        },
        {
          "id":"uservar8",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":390
        },
        {
          "id":"uservar9",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":392
        },
        {
          "id":"uservar10",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":394
        },
        {
          "id":"uservar11",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":396
        },
        {
          "id":"uservar12",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":398
        },
        {
          "id":"uservar13",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":400
        },
        {
          "id":"uservar14",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":402
        },
        {
          "id":"uservar15",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":404
        },
        {
          "id":"uservar16",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":406
        },
        {
          "id":"simplepwmdc2",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":454
        },
        {
          "id":"simplepwmdc3",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":456
        },
        {
          "id":"simplepwmdc4",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":458
        },
        {
          "id":"simplepwmf2",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":462
        },
        {
          "id":"simplepwmf3",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":464
        },
        {
          "id":"simplepwmf4",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":466
        },
        {
          "id":"keypadstate2",
          "compact":0,
          "type":2,
          "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive",
          "address":420
        },
        {
          "id":"keypadstate3",
          "compact":0,
          "type":2,
          "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive",
          "address":422
        },
        {
          "id":"keypadstate4",
          "compact":0,
          "type":2,
          "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive",
          "address":424
        },
        {
          "id":"keypad1.2",
          "compact":0,
          "type":0,
          "address":"keypadstate1.2",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.3",
          "compact":0,
          "type":0,
          "address":"keypadstate1.3",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.4",
          "compact":0,
          "type":0,
          "address":"keypadstate1.4",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.5",
          "compact":0,
          "type":0,
          "address":"keypadstate1.5",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.6",
          "compact":0,
          "type":0,
          "address":"keypadstate1.6",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.7",
          "compact":0,
          "type":0,
          "address":"keypadstate1.7",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.8",
          "compact":0,
          "type":0,
          "address":"keypadstate1.8",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.9",
          "compact":0,
          "type":0,
          "address":"keypadstate1.9",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.10",
          "compact":0,
          "type":0,
          "address":"keypadstate1.10",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.11",
          "compact":0,
          "type":0,
          "address":"keypadstate1.11",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.12",
          "compact":0,
          "type":0,
          "address":"keypadstate1.12",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.13",
          "compact":0,
          "type":0,
          "address":"keypadstate1.13",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.14",
          "compact":0,
          "type":0,
          "address":"keypadstate1.14",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad1.15",
          "compact":0,
          "type":0,
          "address":"keypadstate1.15",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.2",
          "compact":0,
          "type":0,
          "address":"keypadstate2.2",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.3",
          "compact":0,
          "type":0,
          "address":"keypadstate2.3",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.4",
          "compact":0,
          "type":0,
          "address":"keypadstate2.4",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.5",
          "compact":0,
          "type":0,
          "address":"keypadstate2.5",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.6",
          "compact":0,
          "type":0,
          "address":"keypadstate2.6",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.7",
          "compact":0,
          "type":0,
          "address":"keypadstate2.7",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.8",
          "compact":0,
          "type":0,
          "address":"keypadstate2.8",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.9",
          "compact":0,
          "type":0,
          "address":"keypadstate2.9",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.10",
          "compact":0,
          "type":0,
          "address":"keypadstate2.10",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.11",
          "compact":0,
          "type":0,
          "address":"keypadstate2.11",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.12",
          "compact":0,
          "type":0,
          "address":"keypadstate2.12",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.13",
          "compact":0,
          "type":0,
          "address":"keypadstate2.13",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.14",
          "compact":0,
          "type":0,
          "address":"keypadstate2.14",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad2.15",
          "compact":0,
          "type":0,
          "address":"keypadstate2.15",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.2",
          "compact":0,
          "type":0,
          "address":"keypadstate3.2",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.3",
          "compact":0,
          "type":0,
          "address":"keypadstate3.3",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.4",
          "compact":0,
          "type":0,
          "address":"keypadstate3.4",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.5",
          "compact":0,
          "type":0,
          "address":"keypadstate3.5",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.6",
          "compact":0,
          "type":0,
          "address":"keypadstate3.6",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.7",
          "compact":0,
          "type":0,
          "address":"keypadstate3.7",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.8",
          "compact":0,
          "type":0,
          "address":"keypadstate3.8",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.9",
          "compact":0,
          "type":0,
          "address":"keypadstate3.9",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.10",
          "compact":0,
          "type":0,
          "address":"keypadstate3.10",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.11",
          "compact":0,
          "type":0,
          "address":"keypadstate3.11",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.12",
          "compact":0,
          "type":0,
          "address":"keypadstate3.12",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.13",
          "compact":0,
          "type":0,
          "address":"keypadstate3.13",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.14",
          "compact":0,
          "type":0,
          "address":"keypadstate3.14",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad3.15",
          "compact":0,
          "type":0,
          "address":"keypadstate3.15",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.2",
          "compact":0,
          "type":0,
          "address":"keypadstate4.2",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.3",
          "compact":0,
          "type":0,
          "address":"keypadstate4.3",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.4",
          "compact":0,
          "type":0,
          "address":"keypadstate4.4",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.5",
          "compact":0,
          "type":0,
          "address":"keypadstate4.5",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.6",
          "compact":0,
          "type":0,
          "address":"keypadstate4.6",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.7",
          "compact":0,
          "type":0,
          "address":"keypadstate4.7",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.8",
          "compact":0,
          "type":0,
          "address":"keypadstate4.8",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.9",
          "compact":0,
          "type":0,
          "address":"keypadstate4.9",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.10",
          "compact":0,
          "type":0,
          "address":"keypadstate4.10",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.11",
          "compact":0,
          "type":0,
          "address":"keypadstate4.11",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.12",
          "compact":0,
          "type":0,
          "address":"keypadstate4.12",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.13",
          "compact":0,
          "type":0,
          "address":"keypadstate4.13",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.14",
          "compact":0,
          "type":0,
          "address":"keypadstate4.14",
          "descr":"State of keypad button channel"
        },
        {
          "id":"keypad4.15",
          "compact":0,
          "type":0,
          "address":"keypadstate4.15",
          "descr":"State of keypad button channel"
        }
      ]
    },
    "remoteprocedures":{
      "outputtest":{
        "cmd":"OT",
        "args":[
          1,
          1
        ],
        "returns":[
          3
        ]
      },
      "transtest":{
        "cmd":"Tt",
        "args":[
          1,
          1,
          9
        ]
      },
      "startlogging":{
        "description":"Manually start internal controller logging",
        "cmd":"LT"
      },
      "stoplogging":{
        "description":"Halt internal data log",
        "cmd":"SL"
      },
      "startscan":{
        "description":"Start CAN scan",
        "cmd":"SS"
      },
      "endscan":{
        "description":"Halt CAN scan",
        "cmd":"HS"
      },
      "prscan":{
        "description":"Resume CAN scan",
        "cmd":"RS"
      },
      "userprogramstate":{
        "cmd":"UP",
        "args":[
          1
        ]
      },
      "canxmit":{
        "cmd":"CX",
        "args":[
          1,
          3,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1
        ]
      },
      "ccantest":{
        "cmd":"CT",
        "args":[
          1,
          1
        ],
        "returns":[
          3,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          1
        ]
      },
      "initcan":{
        "cmd":"CI"
      }
    },
    "scopechannels":[
      [
        0,
        "crank out"
      ],
      [
        1,
        "cam out"
      ],
      [
        10,
        "crank cycle"
      ],
      [
        16,
        "digital in 1"
      ],
      [
        17,
        "digital in 2"
      ],
      [
        18,
        "digital in 3"
      ],
      [
        19,
        "digital in 4"
      ],
      [
        20,
        "digital in 5"
      ],
      [
        21,
        "digital in 6"
      ],
      [
        22,
        "digital in 7"
      ]
    ],
    "scripts":{
      "opentestdialog":{
        "description":"Output test dialog",
        "script":[
          "dialog",
          {
            "title":"Output test mode",
            "id":"outputtester",
            "xsize":800,
            "ysize":200,
            "noresize":true,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                50,
                100
              ],
              "position":[
                0,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":0,
              "activecolour":"green",
              "falsetext":"Output 1",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  0,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                100
              ],
              "position":[
                50,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":1,
              "activecolour":"green",
              "falsetext":"Output 2",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  1,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                100
              ],
              "position":[
                100,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":2,
              "activecolour":"green",
              "falsetext":"Output 3",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  2,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                100
              ],
              "position":[
                150,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":3,
              "activecolour":"green",
              "falsetext":"Output 4",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  3,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            }
          ]
        ]
      },
      "canscan_interactive":{
        "description":"Interactive CAN scan",
        "script":[
          [
            "rpc",
            "startscan"
          ],
          [
            "onexit",
            [
              [
                "rpc",
                "endscan"
              ],
              [
                "alert",
                "Scan ended at address %s",
                "canscanaddr"
              ]
            ]
          ],
          [
            "statusdialog"
          ],
          [
            "sleep",
            200,
            [
              "while",
              "rt(\"scan_running\") > 0",
              [
                "status",
                "Transmitting on address %s",
                "canscanaddr"
              ]
            ]
          ]
        ]
      },
      "ccan1preview":{
        "description":"Custom CAN 1 preview tool",
        "script":[
          "dialog",
          {
            "title":"Custom CAN 1 previewer",
            "id":"ccan1tester",
            "xsize":700,
            "ysize":115,
            "noresize":true,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                25,
                20
              ],
              "position":[
                0,
                0
              ],
              "type":"static",
              "caption":"CAN ID"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                25,
                0
              ],
              "type":"static",
              "caption":"length"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                100,
                0
              ],
              "type":"static",
              "caption":"data"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                180,
                0
              ],
              "type":"static",
              "caption":"offset"
            },
            {
              "size":[
                200,
                40
              ],
              "position":[
                0,
                60
              ],
              "type":"static",
              "caption":"Enter line number from the custom CAN configuration in the offset field and click fetch.\r\nLine 0 is at the bottom, counting upwards."
            },
            {
              "wid":"cc1offset",
              "size":[
                20,
                40
              ],
              "position":[
                180,
                20
              ],
              "type":"edit"
            },
            {
              "wid":"getpreview1",
              "caption":"Fetch",
              "size":[
                20,
                40
              ],
              "position":[
                160,
                20
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "ccantest",
                [
                  0,
                  "widgetval(cc1offset)",
                  [
                    "cc1canid",
                    "cc1plen",
                    "cc1b0",
                    "cc1b1",
                    "cc1b2",
                    "cc1b3",
                    "cc1b4",
                    "cc1b5",
                    "cc1b6",
                    "cc1b7"
                  ]
                ],
                [
                  [
                    "settext",
                    "cc1canid",
                    "%s",
                    "cc1canid"
                  ],
                  [
                    "settext",
                    "cc1plen",
                    "%s",
                    "cc1plen"
                  ],
                  [
                    "settext",
                    "cc1b0",
                    "%s",
                    "cc1b0"
                  ],
                  [
                    "settext",
                    "cc1b1",
                    "%s",
                    "cc1b1"
                  ],
                  [
                    "settext",
                    "cc1b2",
                    "%s",
                    "cc1b2"
                  ],
                  [
                    "settext",
                    "cc1b3",
                    "%s",
                    "cc1b3"
                  ],
                  [
                    "settext",
                    "cc1b4",
                    "%s",
                    "cc1b4"
                  ],
                  [
                    "settext",
                    "cc1b5",
                    "%s",
                    "cc1b5"
                  ],
                  [
                    "settext",
                    "cc1b6",
                    "%s",
                    "cc1b6"
                  ],
                  [
                    "settext",
                    "cc1b7",
                    "%s",
                    "cc1b7"
                  ]
                ]
              ]
            },
            {
              "wid":"cc1canid",
              "size":[
                30,
                40
              ],
              "position":[
                0,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1plen",
              "size":[
                10,
                40
              ],
              "position":[
                30,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b0",
              "size":[
                15,
                40
              ],
              "position":[
                40,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b1",
              "size":[
                15,
                40
              ],
              "position":[
                55,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b2",
              "size":[
                15,
                40
              ],
              "position":[
                70,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b3",
              "size":[
                15,
                40
              ],
              "position":[
                85,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b4",
              "size":[
                15,
                40
              ],
              "position":[
                100,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b5",
              "size":[
                15,
                40
              ],
              "position":[
                115,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b6",
              "size":[
                15,
                40
              ],
              "position":[
                130,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc1b7",
              "size":[
                15,
                40
              ],
              "position":[
                145,
                20
              ],
              "type":"edit",
              "readonly":true
            }
          ]
        ]
      },
      "can1toolbox":{
        "description":"CAN 1 transmit tool",
        "script":[
          "dialog",
          {
            "title":"CAN 1 transmit tool",
            "xsize":700,
            "ysize":230,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                25,
                10
              ],
              "position":[
                0,
                0
              ],
              "type":"static",
              "caption":"CAN ID"
            },
            {
              "size":[
                20,
                10
              ],
              "position":[
                25,
                0
              ],
              "type":"static",
              "caption":"length"
            },
            {
              "size":[
                20,
                10
              ],
              "position":[
                100,
                0
              ],
              "type":"static",
              "caption":"data"
            },
            {
              "wid":"can1xmit1",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                10
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  0,
                  "widgetval(can1canid1)",
                  "widgetval(can1plen1)",
                  "widgetval(can1b10)",
                  "widgetval(can1b11)",
                  "widgetval(can1b12)",
                  "widgetval(can1b13)",
                  "widgetval(can1b14)",
                  "widgetval(can1b15)",
                  "widgetval(can1b16)",
                  "widgetval(can1b17)"
                ]
              ]
            },
            {
              "wid":"can1canid1",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1plen1",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b10",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b11",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b12",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b13",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b14",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b15",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b16",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1b17",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can1xmit2",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                30
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  0,
                  "widgetval(can1canid2)",
                  "widgetval(can1plen2)",
                  "widgetval(can1b20)",
                  "widgetval(can1b21)",
                  "widgetval(can1b22)",
                  "widgetval(can1b23)",
                  "widgetval(can1b24)",
                  "widgetval(can1b25)",
                  "widgetval(can1b26)",
                  "widgetval(can1b27)"
                ]
              ]
            },
            {
              "wid":"can1canid2",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1plen2",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b20",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b21",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b22",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b23",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b24",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b25",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b26",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1b27",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can1xmit3",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                50
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  0,
                  "widgetval(can1canid3)",
                  "widgetval(can1plen3)",
                  "widgetval(can1b30)",
                  "widgetval(can1b31)",
                  "widgetval(can1b32)",
                  "widgetval(can1b33)",
                  "widgetval(can1b34)",
                  "widgetval(can1b35)",
                  "widgetval(can1b36)",
                  "widgetval(can1b37)"
                ]
              ]
            },
            {
              "wid":"can1canid3",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1plen3",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b30",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b31",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b32",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b33",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b34",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b35",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b36",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1b37",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can1xmit4",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                70
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  0,
                  "widgetval(can1canid4)",
                  "widgetval(can1plen4)",
                  "widgetval(can1b40)",
                  "widgetval(can1b41)",
                  "widgetval(can1b42)",
                  "widgetval(can1b43)",
                  "widgetval(can1b44)",
                  "widgetval(can1b45)",
                  "widgetval(can1b46)",
                  "widgetval(can1b47)"
                ]
              ]
            },
            {
              "wid":"can1canid4",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1plen4",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b40",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b41",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b42",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b43",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b44",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b45",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b46",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can1b47",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                70
              ],
              "type":"edit"
            }
          ]
        ]
      },
      "ccan2preview":{
        "description":"Custom CAN 2 preview tool",
        "script":[
          "dialog",
          {
            "title":"Custom CAN 2 previewer",
            "id":"ccan2tester",
            "xsize":700,
            "ysize":115,
            "noresize":true,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                25,
                20
              ],
              "position":[
                0,
                0
              ],
              "type":"static",
              "caption":"CAN ID"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                25,
                0
              ],
              "type":"static",
              "caption":"length"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                100,
                0
              ],
              "type":"static",
              "caption":"data"
            },
            {
              "size":[
                20,
                20
              ],
              "position":[
                180,
                0
              ],
              "type":"static",
              "caption":"offset"
            },
            {
              "size":[
                200,
                40
              ],
              "position":[
                0,
                60
              ],
              "type":"static",
              "caption":"Enter line number from the custom CAN configuration in the offset field and click fetch.\r\nLine 0 is at the bottom, counting upwards."
            },
            {
              "wid":"cc2offset",
              "size":[
                20,
                40
              ],
              "position":[
                180,
                20
              ],
              "type":"edit"
            },
            {
              "wid":"getpreview2",
              "caption":"Fetch",
              "size":[
                20,
                40
              ],
              "position":[
                160,
                20
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "ccantest",
                [
                  1,
                  "widgetval(cc2offset)",
                  [
                    "cc2canid",
                    "cc2plen",
                    "cc2b0",
                    "cc2b1",
                    "cc2b2",
                    "cc2b3",
                    "cc2b4",
                    "ccb25",
                    "cc2b6",
                    "cc2b7"
                  ]
                ],
                [
                  [
                    "settext",
                    "cc2canid",
                    "%s",
                    "cc2canid"
                  ],
                  [
                    "settext",
                    "cc2plen",
                    "%s",
                    "cc2plen"
                  ],
                  [
                    "settext",
                    "cc2b0",
                    "%s",
                    "cc2b0"
                  ],
                  [
                    "settext",
                    "cc2b1",
                    "%s",
                    "cc2b1"
                  ],
                  [
                    "settext",
                    "cc2b2",
                    "%s",
                    "cc2b2"
                  ],
                  [
                    "settext",
                    "cc2b3",
                    "%s",
                    "cc2b3"
                  ],
                  [
                    "settext",
                    "cc2b4",
                    "%s",
                    "cc2b4"
                  ],
                  [
                    "settext",
                    "cc2b5",
                    "%s",
                    "cc2b5"
                  ],
                  [
                    "settext",
                    "cc2b6",
                    "%s",
                    "cc2b6"
                  ],
                  [
                    "settext",
                    "cc2b7",
                    "%s",
                    "cc2b7"
                  ]
                ]
              ]
            },
            {
              "wid":"cc2canid",
              "size":[
                30,
                40
              ],
              "position":[
                0,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2plen",
              "size":[
                10,
                40
              ],
              "position":[
                30,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b0",
              "size":[
                15,
                40
              ],
              "position":[
                40,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b1",
              "size":[
                15,
                40
              ],
              "position":[
                55,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b2",
              "size":[
                15,
                40
              ],
              "position":[
                70,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b3",
              "size":[
                15,
                40
              ],
              "position":[
                85,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b4",
              "size":[
                15,
                40
              ],
              "position":[
                100,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b5",
              "size":[
                15,
                40
              ],
              "position":[
                115,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b6",
              "size":[
                15,
                40
              ],
              "position":[
                130,
                20
              ],
              "type":"edit",
              "readonly":true
            },
            {
              "wid":"cc2b7",
              "size":[
                15,
                40
              ],
              "position":[
                145,
                20
              ],
              "type":"edit",
              "readonly":true
            }
          ]
        ]
      },
      "can2toolbox":{
        "description":"CAN 2 transmit tool",
        "script":[
          "dialog",
          {
            "title":"CAN 2 transmit tool",
            "xsize":700,
            "ysize":230,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                25,
                10
              ],
              "position":[
                0,
                0
              ],
              "type":"static",
              "caption":"CAN ID"
            },
            {
              "size":[
                20,
                10
              ],
              "position":[
                25,
                0
              ],
              "type":"static",
              "caption":"length"
            },
            {
              "size":[
                20,
                10
              ],
              "position":[
                100,
                0
              ],
              "type":"static",
              "caption":"data"
            },
            {
              "wid":"can2xmit1",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                10
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  1,
                  "widgetval(can2canid1)",
                  "widgetval(can2plen1)",
                  "widgetval(can2b10)",
                  "widgetval(can2b11)",
                  "widgetval(can2b12)",
                  "widgetval(can2b13)",
                  "widgetval(can2b14)",
                  "widgetval(can2b15)",
                  "widgetval(can2b16)",
                  "widgetval(can2b17)"
                ]
              ]
            },
            {
              "wid":"can2canid1",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2plen1",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b10",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b11",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b12",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b13",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b14",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b15",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b16",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2b17",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                10
              ],
              "type":"edit"
            },
            {
              "wid":"can2xmit2",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                30
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  1,
                  "widgetval(can2canid2)",
                  "widgetval(can2plen2)",
                  "widgetval(can2b20)",
                  "widgetval(can2b21)",
                  "widgetval(can2b22)",
                  "widgetval(can2b23)",
                  "widgetval(can2b24)",
                  "widgetval(can2b25)",
                  "widgetval(can2b26)",
                  "widgetval(can2b27)"
                ]
              ]
            },
            {
              "wid":"can2canid2",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2plen2",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b20",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b21",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b22",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b23",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b24",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b25",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b26",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2b27",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                30
              ],
              "type":"edit"
            },
            {
              "wid":"can2xmit3",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                50
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  1,
                  "widgetval(can2canid3)",
                  "widgetval(can2plen3)",
                  "widgetval(can2b30)",
                  "widgetval(can2b31)",
                  "widgetval(can2b32)",
                  "widgetval(can2b33)",
                  "widgetval(can2b34)",
                  "widgetval(can2b35)",
                  "widgetval(can2b36)",
                  "widgetval(can2b37)"
                ]
              ]
            },
            {
              "wid":"can2canid3",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2plen3",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b30",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b31",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b32",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b33",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b34",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b35",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b36",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2b37",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                50
              ],
              "type":"edit"
            },
            {
              "wid":"can2xmit4",
              "caption":"Transmit",
              "size":[
                40,
                20
              ],
              "position":[
                160,
                70
              ],
              "type":"button",
              "onclick":[
                "rpc",
                "canxmit",
                [
                  1,
                  "widgetval(can2canid4)",
                  "widgetval(can2plen4)",
                  "widgetval(can2b40)",
                  "widgetval(can2b41)",
                  "widgetval(can2b42)",
                  "widgetval(can2b43)",
                  "widgetval(can2b44)",
                  "widgetval(can2b45)",
                  "widgetval(can2b46)",
                  "widgetval(can2b47)"
                ]
              ]
            },
            {
              "wid":"can2canid4",
              "size":[
                30,
                20
              ],
              "position":[
                0,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2plen4",
              "size":[
                10,
                20
              ],
              "position":[
                30,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b40",
              "size":[
                15,
                20
              ],
              "position":[
                40,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b41",
              "size":[
                15,
                20
              ],
              "position":[
                55,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b42",
              "size":[
                15,
                20
              ],
              "position":[
                70,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b43",
              "size":[
                15,
                20
              ],
              "position":[
                85,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b44",
              "size":[
                15,
                20
              ],
              "position":[
                100,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b45",
              "size":[
                15,
                20
              ],
              "position":[
                115,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b46",
              "size":[
                15,
                20
              ],
              "position":[
                130,
                70
              ],
              "type":"edit"
            },
            {
              "wid":"can2b47",
              "size":[
                15,
                20
              ],
              "position":[
                145,
                70
              ],
              "type":"edit"
            }
          ]
        ]
      }
    },
    "documentation":{
      "canrx":"The controller offers the ability to read any CAN message. Multiple data items\r\ncan be generated from the same incoming CAN packet.\r\n\r\nTo configure a CAN data source, one must configure the CAN ID (address), byte offset inside the packet and data type.\r\nIf desired, the incoming data can be translated by entering a value range and an translation range. If no translation is required, the input range should be set from zero to zero.\r\n\r\nIf desired, an error can be set if a CAN ID is not seen for a period of time from 0.1 to 25 seconds. If the timeout is exceeded the item is given the configured default value. If this is not desired a timeout of zero can be set.\r\nThe check engine lamp can be illuminated if incoming CAN data is lost.\r\n\r\n",
      "gplatches":"The latch funcions provide a facility to copy a value from any input on command and provide that value as an input to any other function.\r\nUseful for periodically updating a displayed value, for sampling the state of a counter before resetting, for copying the current engine speed over to the rev limit or a number of similar tasks.\r\nCan also be used in multiplex mode to switch between two value sources, for example select a spare sensor if fault detected.\r\n",
      "triggersim":"The trigger simulator requires an engine speed source, as it runs off the\r\nenginespeed variable. \r\nThe configuration for the engine speed source can be\r\nfound under the Sensor inputs -> Frequency inputs category.\r\nIf the periods of the defined crank teeth add up to 360 degrees or less (with\r\nsome tolerance) the crank is reset every one simulated rotation and the cam\r\nsignal plays once every two crank rotations.\r\nIf the period of the defined crank teeth add up to 720 degrees or thereabouts\r\nthe crank and cam signals are played at the same rate to simulate a dual\r\nsignal CAS arrangement.\r\nThe crank trigger output is available on output 3.\r\nThe cam trigger output is available on output 4.\r\nTo diagnose the signals the ability to record an event log is provided.\r\n",
      "uservars":"The user defined mathematical expressions allow you to write a mathematical\r\nexpression that runs on the ECU and can be used inside ECU control loops.\r\nIt gives the ability to create some custom strategies without the use of the\r\ncustom strategy compiler, and thus without writing a full program.\r\nIn this mode you can refer to real time variables by their name without a\r\nprefix but configuration variables may be accessed using the \"conf.\" prefix.\r\nThe name of the output variable may be used inside the expression and will\r\nhave the current value of the variable prior to each computation.\r\nExample expression:\r\n(roadspeed + roadspeed2) \/ 2\r\nThis will give the average value of the 2 road speed channels input.\r\n"
    }
  },
  "controller_serialno":"00013",
  "controller_definition":"2",
  "controller_fwversion":"2",
  "controller_signature":"MPC1 v1.0",
  "controller_model":"M1",
  "gaugepanel":[
    {
      "id":"can1rx",
      "size":[
        10,
        40
      ],
      "position":[
        180,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"can1errcount",
      "size":[
        10,
        40
      ],
      "position":[
        190,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"can2rx",
      "size":[
        10,
        40
      ],
      "position":[
        180,
        40
      ],
      "type":"gauge"
    },
    {
      "id":"can2errcount",
      "size":[
        10,
        40
      ],
      "position":[
        190,
        40
      ],
      "type":"gauge"
    }
  ],
  "windowlayout":{
    "tabs":[
    ]
  }
}