{
  "minbuild":"2022-11-11 00:00",
  "rtvars_right":[
    "enginespeed",
    "map",
    "airtemp",
    "coolanttemp",
    "throttle",
    "error0",
    "error1",
    "error2",
    "error3",
    "error4",
    "supplyvoltage",
    "time",
    "roadspeed",
    "roaddistance",
    "fuelmass",
    "injpw1",
    "injangle1",
    "logging",
    "logseq",
    "runtime",
    "date",
    "ecutemp",
    "sparkangle1",
    "dwell",
    "rawenginespeed",
    "synclosscount",
    "lambda",
    "calpot1"
  ],
  "rtgroups":{
    "analog":[
      "analog0",
      "analog1",
      "analog2",
      "analog3",
      "analog4",
      "analog5",
      "analog6",
      "analog7",
      "analog8",
      "analog9",
      "analog10",
      "analog11",
      "analog12",
      "analog13",
      "analog14",
      "analog15",
      "analog16",
      "analog17",
      "analog18",
      "analog19",
      "analog20",
      "analog21",
      "analog22",
      "analog23",
      "throttle",
      "map",
      "barometer",
      "coolanttemp",
      "supplyvoltage"
    ],
    "antilag":[
      "als_active",
      "als_cdidle",
      "ign_alsmod",
      "sparkangle1",
      "fuel_alsmod",
      "alspwmvalve",
      "alsblockers",
      "idlevalve",
      "egt1"
    ],
    "autotrans":[
      "+gearselectorsrc",
      "gearselect",
      "atcmdgear"
    ],
    "oilpress":[
      "oilpress",
      "+oilpsrc"
    ],
    "oiltemp":[
      "oiltemp",
      "+oiltempsrc"
    ],
    "fueltemp":[
      "fueltemp",
      "+fueltempsrc"
    ],
    "fuelcomp":[
      "fuelcomp",
      "+fuelcompsrc"
    ],
    "transtemp":[
      "transtemp",
      "+transtempsrc"
    ],
    "pcpsensor":[
      "pcap",
      "+pcpsrc"
    ],
    "prpsensor":[
      "prap",
      "+prpsrc"
    ],
    "etc":[
      "app",
      "appsec",
      "throttle",
      "throttlesec",
      "etctarget",
      "etcposerr",
      "etcduty",
      "etcP",
      "etcI",
      "etcD",
      "analog0",
      "analog1",
      "analog8",
      "analog9"
    ],
    "errmasks":[
      "error0",
      "error1",
      "error2",
      "error3",
      "faultmask",
      "cel"
    ],
    "idle":[
      "idletargetspeed",
      "ign_idleadvance",
      "idleP",
      "idleI",
      "idleD",
      "idlevalvestep",
      "idlevalvepw",
      "idlevalve"
    ],
    "trigger":[
      "syncstate",
      "crankevent",
      "camevent",
      "synclosscount",
      "synclossreason",
      "camangle",
      "camangle2",
      "camangle3",
      "camangle4",
      "rawcamangle",
      "rawcamangle2",
      "rawcamangle3",
      "rawcamangle4"
    ],
    "fuel":[
      "injpw1",
      "injangle1",
      "injdc1",
      "transientfuel",
      "fuelsecmult",
      "fuel_gpmod1",
      "fuel_gpmod2",
      "fuel_n2oadder",
      "lambdatgt",
      "ltft",
      "warmupmult",
      "airdensity",
      "fuel_ectenrich",
      "fuel_airtempenrich"
    ],
    "fuelpress":[
      "+fpsource",
      "fp_rel_map",
      "fp_rel_baro",
      "fp_abs",
      "map",
      "barometer"
    ],
    "launch":[
      "tcretard",
      "lcretard",
      "lclimit",
      "roadspeed",
      "roadspeed2",
      "slipspeed"
    ],
    "ignition":[
      "tcretard",
      "lcretard",
      "ign_idleadvance",
      "ign_gpmod1",
      "ign_gpmod2",
      "ign_n2oretard",
      "ign_airtempretard",
      "ign_ectmod",
      "ign_alsmod",
      "ign_orfcresumeretard"
    ],
    "cantx":[
      "canerrcount1",
      "cantx1",
      "canrx1",
      "canerrcount2",
      "cantx2",
      "canrx2"
    ],
    "canrx":[
      "canrx1",
      "canerrcount1",
      "can1rxerr",
      "cansrc0",
      "cansrc1",
      "cansrc2",
      "cansrc3",
      "cansrc4",
      "cansrc5",
      "cansrc6",
      "cansrc7",
      "cansrc8",
      "cansrc9",
      "cansrc10",
      "cansrc11",
      "cansrc12",
      "cansrc13",
      "cansrc14",
      "cansrc15",
      "cansrc16",
      "cansrc17",
      "cansrc18",
      "cansrc19",
      "cansrc20",
      "cansrc21",
      "cansrc22",
      "cansrc23",
      "cansrc24",
      "cansrc25",
      "cansrc26",
      "cansrc27",
      "cansrc28",
      "cansrc29",
      "cansrc30",
      "cansrc31"
    ],
    "can2rx":[
      "canrx2",
      "canerrcount2",
      "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"
    ],
    "n2o":[
      "fuel_n2oadder",
      "ign_n2oretard",
      "n2ostage1",
      "n2ostage2",
      "n2otime",
      "n2os2time",
      "n2opwm",
      "n2os2pwm",
      "n2ofuelpwm",
      "n2os2fuelpwm"
    ],
    "intlogging":[
      "logging",
      "logseq",
      "logrecs",
      "logstatus"
    ],
    "io":[
      "din1",
      "din2",
      "din3",
      "din4",
      "din5",
      "din1interval",
      "din3interval",
      "din4interval",
      "din5interval",
      "gpin",
      "outputs",
      "din1freq",
      "din3freq",
      "din4freq",
      "din5freq",
      "flexfreq",
      "flexpw"
    ],
    "mapsensor":[
      "map",
      "analog5",
      "analog6",
      "deltamap"
    ],
    "lambda":[
      "lambda",
      "lambda2",
      "lambdatgt",
      "ltft",
      "ltft2",
      "+lambdasource",
      "+lambda2source",
      "ltft_learning",
      "ltft2_learning",
      "intlambdanr",
      "intlambdaheater",
      "intlambdaheaterP",
      "intlambdaheaterI",
      "intlambdaheaterD",
      "intlambdaipcmd",
      "intlambdaipcorr",
      "intlambdaipfb",
      "intlambdao2",
      "intlambdavn",
      "intlambda2nr",
      "intlambda2heater",
      "intlambda2heaterP",
      "intlambda2heaterI",
      "intlambda2heaterD",
      "intlambda2ipcmd",
      "intlambda2ipcorr",
      "intlambda2ipfb",
      "intlambda2o2",
      "intlambda2vn"
    ],
    "boostctl":[
      "map",
      "boosttarget",
      "boosterror",
      "boostgptrim1",
      "boostgptrim2",
      "boostgptrim3",
      "boostp1duty",
      "boostp2duty",
      "boostp3duty",
      "boostctlcmd",
      "boostduty",
      "boostP",
      "boostI",
      "boostD",
      "turbospeed"
    ],
    "boostctl2":[
      "boostctlcmd",
      "boostp2duty",
      "boostp3duty",
      "boostp2limit",
      "+boostparam2picker",
      "boostp3limit",
      "+boostparam3picker",
      "boostp2P",
      "boostp2I",
      "boostp2D",
      "boostp3P",
      "boostp3I",
      "boostp3D"
    ],
    "ectsensor":[
      "coolanttemp",
      "analog2",
      "runtime"
    ],
    "shiftcut":[
      "gear",
      "roadspeed",
      "scretard",
      "sclimit"
    ],
    "pwm0":[
      "pwm0duty"
    ],
    "gppid":[
      "pwm1duty",
      "pwm1P",
      "pwm1I",
      "pwm1D",
      "+pwm1var",
      "pwm1sp",
      "pwm1error"
    ],
    "gppid2":[
      "pwm2duty",
      "pwm2P",
      "pwm2I",
      "pwm2D",
      "+pwm2var",
      "pwm2sp",
      "pwm2error"
    ],
    "lambdasafety":[
      "lambda",
      "lambda2",
      "lambdatgt"
    ],
    "gplogic":[
      "gplogic1",
      "gplogic2",
      "gplogic3",
      "gplogic4",
      "gplogic5",
      "gplogic6",
      "gplogic7",
      "gplogic8",
      "gplogic9",
      "gplogic10",
      "gplogic11",
      "gplogic12",
      "gplogic13",
      "gplogic14",
      "gplogic15",
      "gplogic16"
    ],
    "canscan":[
      "canscan_running",
      "canscanaddr",
      "canerrcount1",
      "canrx1",
      "cantx1"
    ],
    "calpot":[
      "calpot1",
      "+calpotsrc",
      "calpot2",
      "+calpot2src",
      "calpot3",
      "+calpot3src",
      "calpot4",
      "+calpot4src"
    ],
    "bcd":[
      "bcd1"
    ],
    "cruise":[
      "flag_cruise",
      "+cruisesource",
      "cruiseswitch",
      "roadspeed",
      "cruisespeed",
      "cruiseapp",
      "effectiveapp",
      "cruiseP",
      "cruiseI",
      "cruiseD"
    ],
    "flipflop":[
      "flipflop1",
      "flipflop2",
      "flipflop3",
      "flipflop4",
      "flipflop5",
      "flipflop6",
      "flipflop7",
      "flipflop8"
    ],
    "gpcounters":[
      "count1",
      "count2",
      "count3",
      "count4"
    ],
    "gplatches":[
      "+gplatchinput1",
      "+gplatchaltinput1",
      "gplatch1",
      "+gplatchinput2",
      "+gplatchaltinput2",
      "gplatch2",
      "+gplatchinput3",
      "+gplatchaltinput3",
      "gplatch3",
      "+gplatchinput4",
      "+gplatchaltinput4",
      "gplatch4"
    ],
    "vvt":[
      "vvtintarget",
      "vvtextarget",
      "camangle",
      "camangle2",
      "camangle3",
      "camangle4",
      "vvtduty",
      "vvt2duty",
      "vvt3duty",
      "vvt4duty"
    ],
    "egt":[
      "egt1",
      "egt2",
      "egt3",
      "egt4",
      "egt5",
      "egt6",
      "egt7",
      "egt8",
      "+egtsrc1",
      "+egtsrc2",
      "+egtsrc3",
      "+egtsrc4",
      "+egtsrc5",
      "+egtsrc6",
      "+egtsrc7",
      "+egtsrc8"
    ],
    "gps":[
      "gpsflags",
      "gps_ready",
      "gps_data",
      "gpslat",
      "gpslot",
      "gpsheading",
      "gpsspeed",
      "gpsalt",
      "gpssats",
      "gpshdop"
    ],
    "gptimers":[
      "gptimer1",
      "gptimer2",
      "gptimer3",
      "gptimer4"
    ],
    "knock":[
      "knockthres",
      "knocklevel_max",
      "knockretard_max",
      "knocksum",
      "knocklevel1",
      "knockretard1",
      "knockcount1",
      "knockseverity",
      "knockedcyl"
    ],
    "powerenrich":[
      "powerenrich",
      "ign_pemod",
      "throttle",
      "app",
      "lambdatgt",
      "lambda",
      "lambda2"
    ],
    "customlookup":[
      "+customlookupsrc1",
      "customtransfer1",
      "+customlookupsrc2",
      "customtransfer2",
      "+customlookupsrc3",
      "customtransfer3",
      "+customlookupsrc4",
      "customtransfer4"
    ],
    "customtables":[
      "+custom2dxsrc1",
      "+custom2dysrc1",
      "customtable1",
      "+custom2dxsrc2",
      "+custom2dysrc2",
      "customtable2",
      "+custom2dxsrc3",
      "+custom2dysrc3",
      "customtable3",
      "+custom2dxsrc4",
      "+custom2dysrc4",
      "customtable4"
    ],
    "uservars":[
      "uservar1",
      "uservar2",
      "uservar3",
      "uservar4"
    ],
    "simplepwm":[
      "simplepwmdc1",
      "simplepwmf1",
      "+simplepwmdutyvar1",
      "+simplepwmfreqvar1",
      "simplepwmdc2",
      "simplepwmf2",
      "+simplepwmdutyvar2",
      "+simplepwmfreqvar2",
      "simplepwmdc3",
      "simplepwmf3",
      "+simplepwmdutyvar3",
      "+simplepwmfreqvar3",
      "simplepwmdc4",
      "simplepwmf4",
      "+simplepwmdutyvar4",
      "+simplepwmfreqvar4"
    ],
    "torque":[
      "torque_limited",
      "+torquelimitsrc",
      "torquelimit",
      "sparkanglebase",
      "torquembt",
      "ign_torqueretard",
      "torquecylcutlevel",
      "sparkangleglobal",
      "torque_requestlimited",
      "torquerequestlimit",
      "torquerequest",
      "torquerequestlimited",
      "+torquelimitrequestsrc",
      "torqueapplimit",
      "torqueactual",
      "torquereserve",
      "torquefriction",
      "torqueeffect"
    ],
    "transign":[
      "ign_transretard",
      "deltamap",
      "deltathrottle",
      "sparkangle1"
    ],
    "difp":[
      "difp",
      "difptarget",
      "difperror",
      "difpctlcmd",
      "difpqtyduty",
      "difpbaseduty",
      "difpP",
      "difpI",
      "difpD"
    ],
    "speeds":[
      "roadspeed",
      "roadspeed2",
      "wheelspeed_fl",
      "wheelspeed_fr",
      "wheelspeed_rl",
      "wheelspeed_rr"
    ]
  },
  "config":[
    {
      "name":"Tuning",
      "type":255,
      "value":[
        {
          "name":"Fuel",
          "type":255,
          "value":[
            {
              "name":"Primary fuel map",
              "variations":[
                [
                  "fuelstrategy",
                  "=",
                  "Fuel mass"
                ],
                {
                  "name":"Primary fuel map",
                  "endif":true
                },
                [
                  "fuelstrategy",
                  "=",
                  "Air mass (VE)"
                ],
                {
                  "name":"Primary volumetric efficiency map"
                }
              ],
              "id":"mainfuelmap",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "value":[
                4.710000,
                4.710000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                4.750000,
                6.190000,
                6.140000,
                6.500000,
                6.500000,
                7.000000,
                7.000000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                7.600000,
                9.980000,
                9.930000,
                10.100000,
                11.090000,
                12.070000,
                12.170000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                12.470000,
                16.610000,
                15.710000,
                15.710000,
                15.400000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                16.210000,
                22.080000,
                21.680000,
                19.790000,
                19.710000,
                22.530000,
                23.130000,
                23.300000,
                23.300000,
                23.540000,
                26.220000,
                27.010000,
                27.010000,
                27.010000,
                27.010000,
                27.010000,
                27.010000,
                29.570000,
                29.570000,
                25.290000,
                25.210000,
                26.700000,
                28.000000,
                30.470000,
                33.670000,
                35.000000,
                36.790000,
                38.390000,
                38.390000,
                38.390000,
                45.160000,
                45.160000,
                45.160000,
                36.970000,
                37.000000,
                32.850000,
                32.200000,
                32.300000,
                38.000000,
                38.000000,
                40.000000,
                40.000000,
                40.000000,
                46.190000,
                44.730000,
                44.730000,
                52.620000,
                52.620000,
                52.620000,
                43.000000,
                44.000000,
                44.770000,
                42.000000,
                42.000000,
                45.000000,
                53.570000,
                53.180000,
                51.400000,
                52.700000,
                52.520000,
                51.830000,
                51.830000,
                60.980000,
                60.980000,
                60.980000,
                50.000000,
                50.000000,
                50.000000,
                50.470000,
                47.380000,
                52.150000,
                58.760000,
                60.480000,
                56.120000,
                55.250000,
                55.250000,
                57.020000,
                57.020000,
                67.080000,
                67.080000,
                67.080000,
                53.920000,
                53.920000,
                56.400000,
                56.400000,
                52.840000,
                57.620000,
                64.700000,
                66.570000,
                61.770000,
                59.500000,
                59.500000,
                60.950000,
                60.950000,
                71.710000,
                71.710000,
                71.710000
              ]
            },
            {
              "name":"Alternate primary fuel map",
              "id":"altmainfuelmap",
              "variations":[
                [
                  "fuelstrategy",
                  "=",
                  "Fuel mass"
                ],
                {
                  "name":"Alternate primary fuel map",
                  "endif":true
                },
                [
                  "fuelstrategy",
                  "=",
                  "Air mass (VE)"
                ],
                {
                  "name":"Alternate primary volumetric efficiency map"
                }
              ],
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "value":[
                0.000000,
                80.000000,
                5.000000,
                5.000000,
                5.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                80.000000,
                20.000000,
                17.000000,
                15.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                11.000000,
                0.000000,
                80.000000,
                38.700000,
                23.900000,
                23.900000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                19.500000,
                0.000000,
                80.000000,
                57.300000,
                29.800000,
                29.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                25.800000,
                0.000000,
                80.000000,
                76.000000,
                35.800000,
                35.800000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                32.000000,
                0.000000,
                80.000000,
                94.700000,
                41.700000,
                41.700000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                38.300000,
                0.000000,
                80.000000,
                113.300000,
                47.600000,
                47.600000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                44.500000,
                100.000000,
                80.000000,
                150.700000,
                59.500000,
                59.500000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                57.000000,
                200.000000,
                200.000000,
                188.000000,
                71.400000,
                71.400000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                69.500000,
                200.000000,
                200.000000,
                225.300000,
                83.300000,
                83.300000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                82.000000,
                200.000000,
                250.000000,
                262.700000,
                95.100000,
                95.100000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                94.500000,
                300.000000,
                300.000000,
                300.000000,
                100.000000,
                100.000000,
                100.000000
              ]
            },
            {
              "id":"twofuelmaps",
              "name":"Secondary fuel map used",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Secondary fuel multiplier",
              "applies":[
                "twofuelmaps",
                "=",
                "Enabled"
              ],
              "id":"secondaryfuelmap",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelsecloadbins",
              "value":[
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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 secondary fuel multiplier",
              "applies":[
                "twofuelmaps",
                "=",
                "Enabled"
              ],
              "id":"altsecondaryfuelmap",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelsecloadbins",
              "value":[
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695,
                64.027695
              ]
            },
            {
              "name":"Lambda target",
              "id":"lambdatarget",
              "type":5,
              "xaxis":"lambdatargetspeedbins",
              "yaxis":"lambdatargetloadbins",
              "value":[
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.900000,
                0.900000,
                0.900000,
                0.900000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.900000,
                0.900000,
                0.900000,
                0.900000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.900000,
                0.900000,
                0.900000,
                0.900000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.900000,
                0.900000,
                0.900000,
                0.900000,
                0.920000,
                0.920000,
                0.920000,
                0.920000,
                0.870000,
                0.870000,
                0.870000,
                0.870000,
                0.860000,
                0.860000,
                0.860000,
                0.860000,
                0.840000,
                0.840000,
                0.840000,
                0.840000,
                0.820000,
                0.820000,
                0.820000,
                0.820000,
                0.800000,
                0.800000,
                0.800000,
                0.800000,
                0.820000,
                0.820000,
                0.820000,
                0.820000,
                0.800000,
                0.800000,
                0.800000,
                0.800000
              ]
            },
            {
              "name":"Power enrichment lambda target",
              "id":"pelambdatarget",
              "context":"powerenrich",
              "applies":[
                "lambdainfuelcalc",
                "=",
                "Enabled",
                "powerenrichmentenable",
                "=",
                "Enabled"
              ],
              "type":5,
              "xaxis":"lambdatargetspeedbins",
              "yaxis":"lambdatargetloadbins",
              "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":"Alternate lambda target",
              "id":"altlambdatarget",
              "type":5,
              "xaxis":"lambdatargetspeedbins",
              "yaxis":"lambdatargetloadbins",
              "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":"Fuel composition lambda target blend",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "id":"flexlambdascale",
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Long term fuel trims table (read only)",
              "applies":[
                "closedloop_enable",
                "=",
                "Enabled"
              ],
              "id":"fueltrim",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "scriptbutton":[
                "Apply to main fuel map",
                [
                  [
                    "declare",
                    "ofs",
                    "0"
                  ],
                  [
                    "blockwhile",
                    "ofs < (_rows * _cols)",
                    [
                      [
                        "setasync",
                        "mainfuelmap",
                        "c(mainfuelmap,ofs) * (1 + (c(fueltrim,ofs) \/ 100))",
                        "ofs"
                      ],
                      [
                        "declare",
                        "ofs",
                        "ofs + 1"
                      ]
                    ]
                  ],
                  [
                    "sync",
                    "mainfuelmap"
                  ],
                  [
                    "edit",
                    "mainfuelmap"
                  ],
                  [
                    "rpc",
                    "resetltft"
                  ]
                ]
              ],
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Long term fuel trims table bank 2 (read only)",
              "applies":[
                "closedloop_enable",
                "=",
                "Enabled"
              ],
              "id":"fueltrim2",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Injection angle map",
              "applies_any":[
                "injanglemap_enable",
                "=",
                "Enabled",
                "injectionmode",
                "=",
                "Direct injection"
              ],
              "id":"injangle",
              "type":5,
              "xaxis":"injanglespeedbins",
              "yaxis":"injangleloadbins",
              "value":[
                360.000234,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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 injection angle map",
              "applies_any":[
                "injanglemap_enable",
                "=",
                "Enabled",
                "injectionmode",
                "=",
                "Direct injection"
              ],
              "id":"altinjangle",
              "type":5,
              "xaxis":"injanglespeedbins",
              "yaxis":"injangleloadbins",
              "value":[
                360.000234,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Fuel split map",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"fuelsplitmap",
              "type":5,
              "xaxis":"fuelsplitrpmbins",
              "yaxis":"fuelsplitloadbins",
              "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
              ]
            },
            {
              "name":"Per-cylinder fuel adjustments",
              "id":"percylfueltuning",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Per cylinder adjustments",
              "type":255,
              "value":[
                {
                  "name":"Cylinder 1 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl1fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 2 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl2fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 3 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl3fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 4 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl4fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 5 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl5fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 6 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl6fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 7 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl7fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                },
                {
                  "name":"Cylinder 8 fuel multiplier",
                  "applies":[
                    "percylfueltuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl8fuel",
                  "type":5,
                  "xaxis":"fuelrpmbins",
                  "yaxis":"percylloadbins",
                  "value":[
                    0.999900,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600,
                    0.666600
                  ]
                }
              ]
            },
            {
              "name":"Direct injection fuel pressure target",
              "applies":[
                "injectionmode",
                "=",
                "Direct injection"
              ],
              "id":"difpmap",
              "type":5,
              "xaxis":"rprpmbins",
              "yaxis":"dimapbins",
              "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":"Ignition",
          "type":255,
          "value":[
            {
              "name":"Primary ignition map",
              "id":"mainignmap",
              "type":5,
              "xaxis":"ignrpmbins",
              "yaxis":"ignpriloadbins",
              "value":[
                19.994520,
                19.994520,
                19.994520,
                26.695980,
                33.298566,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                19.994520,
                19.994520,
                19.994520,
                26.102736,
                32.199966,
                38.297196,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                40.000026,
                19.994520,
                19.994520,
                19.994520,
                25.498506,
                31.101366,
                36.605352,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                38.000574,
                19.994520,
                19.994520,
                19.994520,
                25.004136,
                29.903892,
                34.902522,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                36.001122,
                19.994520,
                19.994520,
                19.994520,
                24.399906,
                28.695432,
                33.100818,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                34.001670,
                19.994520,
                19.994520,
                19.994520,
                23.795676,
                27.596832,
                31.397988,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                32.002218,
                19.994520,
                19.994520,
                19.994520,
                23.202432,
                26.498232,
                29.695158,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                19.994520,
                19.994520,
                19.994520,
                22.697076,
                25.300758,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                19.994520,
                19.994520,
                19.994520,
                22.004958,
                26.003862,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                19.994520,
                19.994520,
                19.994520,
                22.004958,
                26.003862,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314,
                28.003314
              ]
            },
            {
              "name":"Alternate primary ignition map",
              "id":"altmainignmap",
              "type":5,
              "xaxis":"ignrpmbins",
              "yaxis":"ignpriloadbins",
              "value":[
                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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Fuel composition ignition map blend",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "id":"flexignscale",
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Power enrichment ignition adder",
              "id":"powerenrichtiming",
              "applies":[
                "lambdainfuelcalc",
                "=",
                "Enabled",
                "powerenrichmentenable",
                "=",
                "Enabled"
              ],
              "type":5,
              "xaxis":"ignrpmbins",
              "yaxis":"ignpriloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "id":"twoignmaps",
              "name":"Secondary ignition adder used",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Secondary ignition adder",
              "applies":[
                "twoignmaps",
                "=",
                "Enabled"
              ],
              "id":"secondaryignmap",
              "type":5,
              "xaxis":"ignrpmbins",
              "yaxis":"ignsecloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Trailing ignition split angle map",
              "applies":[
                "trailcoilcount",
                "!=",
                0
              ],
              "id":"trailingignmap",
              "type":5,
              "xaxis":"trailingrpmbins",
              "yaxis":"trailingloadbins",
              "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":"Per-cylinder ignition timing adjustments",
              "id":"percyligntuning",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Per cylinder adjustments",
              "type":255,
              "value":[
                {
                  "name":"Cylinder 1 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl1spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 2 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl2spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 3 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl3spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 4 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl4spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 5 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl5spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 6 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl6spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 7 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl7spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Cylinder 8 ignition adder",
                  "applies":[
                    "percyligntuning",
                    "=",
                    "Enabled"
                  ],
                  "id":"cyl8spark",
                  "type":5,
                  "xaxis":"ignrpmbins",
                  "yaxis":"percylloadbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Variable valve timing",
          "type":255,
          "value":[
            {
              "name":"Inlet cam target angle",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"inletvvttarget",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            },
            {
              "name":"Exhaust cam target angle",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"exhaustvvttarget",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            },
            {
              "name":"Alternate inlet cam target angle",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"inletvvtalttarget",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            },
            {
              "name":"Alternate exhaust cam target angle",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"exhaustvvtalttarget",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            },
            {
              "name":"Alternate inlet cam target angle 2",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"inletvvtalttarget2",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            },
            {
              "name":"Alternate exhaust cam target angle 2",
              "applies_any":[
                "vvt_enable_primary",
                "=",
                "Enabled",
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "id":"exhaustvvtalttarget2",
              "type":5,
              "xaxis":"vvtspeedbins",
              "yaxis":"vvtloadbins",
              "context":"vvt",
              "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
              ]
            }
          ]
        },
        {
          "name":"Turbocharger control",
          "type":255,
          "value":[
            {
              "name":"Pressure target",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostmap",
              "type":5,
              "xaxis":"boostrpmbins",
              "yaxis":"boostloadbins",
              "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
              ]
            },
            {
              "name":"Base duty cycle",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"wgdutymap",
              "type":5,
              "xaxis":"boostrpmbins",
              "yaxis":"boosttargetbins",
              "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
              ]
            },
            {
              "name":"Alternate pressure target 1",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"altboostmap",
              "type":5,
              "xaxis":"boostrpmbins",
              "yaxis":"boostloadbins",
              "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
              ]
            },
            {
              "name":"Alternate pressure target 2",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"altboostmap2",
              "type":5,
              "xaxis":"boostrpmbins",
              "yaxis":"boostloadbins",
              "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
              ]
            },
            {
              "name":"Alternate base duty cycle",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"altwgdutymap",
              "type":5,
              "xaxis":"boostrpmbins",
              "yaxis":"boosttargetbins",
              "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
              ]
            },
            {
              "name":"Fuel composition pressure target map blend",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "id":"flexboostscale",
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                0.000000
              ]
            },
            {
              "name":"Fuel composition base duty cycle blend",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "id":"flexwgbasepwscale",
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                0.000000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Basic setup and error handling",
      "context":"basic",
      "type":255,
      "value":[
        {
          "name":"Throttle control mode, set to 1234567890 to disable e-throttle",
          "id":"dbwenable",
          "value":1234567890.000000
        },
        {
          "name":"Fuelling model",
          "type":3,
          "id":"fuelstrategy",
          "value":"Fuel mass"
        },
        {
          "name":"Injector outputs used",
          "id":"expinjmode",
          "type":3,
          "value":"Standard"
        },
        {
          "name":"Ignition outputs 5-8 operating mode",
          "id":"ign5mode",
          "type":3,
          "value":"General purpose low side switch"
        },
        {
          "name":"Engine displacement",
          "id":"displacement",
          "value":1994.000000
        },
        {
          "name":"Number of cylinders",
          "id":"cylcount",
          "value":4.000000
        },
        {
          "name":"Number of primary injector outputs",
          "id":"injectorcount",
          "value":4.000000
        },
        {
          "name":"Number of primary ignition outputs",
          "id":"coilcount",
          "value":4.000000
        },
        {
          "name":"Number of second stage injector outputs",
          "id":"secinjcount",
          "value":0.000000
        },
        {
          "name":"Number of trailing ignition outputs",
          "id":"trailcoilcount",
          "value":0.000000
        },
        {
          "name":"Primary ignition coil assignment by cylinder",
          "id":"coilassign",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "value":[
            1.000000,
            2.000000,
            3.000000,
            4.000000
          ]
        },
        {
          "name":"Lambda sensor bank assignment by injector output",
          "id":"lambdaassign",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "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
          ]
        },
        {
          "name":"Trailing ignition coil assignment by cylinder",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailcoilassign",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "value":[
            1.000000,
            2.000000,
            3.000000,
            4.000000
          ]
        },
        {
          "name":"Engine type",
          "type":3,
          "id":"enginestroke",
          "value":"Four stroke"
        },
        {
          "name":"Cylinder angle offset",
          "id":"baseangle",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "value":[
            0.000000,
            539.994858,
            179.994624,
            360.000234
          ]
        },
        {
          "name":"Cylinder contribution offset",
          "id":"firingorderoffset",
          "value":0.000000
        },
        {
          "name":"Spark cut rev limit",
          "id":"sparkrevlimit",
          "value":10000.000000
        },
        {
          "name":"Fuel cut rev limit",
          "id":"fuelrevlimit",
          "value":5500.000000
        },
        {
          "name":"Fuel rev limit hysteresis",
          "id":"fuelrevlimithyster",
          "value":100.000000
        },
        {
          "name":"Fuel pump timeout",
          "id":"fueltimeout",
          "value":2.000000
        },
        {
          "name":"Charge air overpressure fuel cut",
          "id":"overboost",
          "value":3000.000000
        },
        {
          "name":"Overpressure fuel cut hysteresis",
          "id":"overboosthyster",
          "value":500.000000
        },
        {
          "name":"Error masks",
          "context":"errmasks",
          "type":255,
          "value":[
            {
              "name":"Flashing check engine light",
              "id":"celflashenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"MAP sensor circuit low voltage",
              "id":"faultlevel0",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"MAP sensor circuit high voltage",
              "id":"faultlevel1",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Coolant temperature sensor open circuit",
              "id":"faultlevel2",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Coolant temperature sensor short to ground",
              "id":"faultlevel3",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Charge air temperature sensor open circuit",
              "id":"faultlevel4",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Charge air temperature sensor short to ground",
              "id":"faultlevel5",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Lambda sensor 1 voltage out of range",
              "id":"faultlevel6",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Lambda sensor 1 lack of activity",
              "id":"faultlevel7",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Camshaft position sensor error",
              "id":"faultlevel8",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"RTC battery fault or no RTC battery fitted",
              "id":"faultlevel9",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Barometric pressure sensor low voltage",
              "id":"faultlevel10",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Barometric pressure sensor high voltage",
              "id":"faultlevel11",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"EMAP sensor low voltage",
              "id":"faultlevel12",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"EMAP sensor high voltage",
              "id":"faultlevel13",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAP signal implausible",
              "id":"faultlevel14",
              "type":3,
              "value":"Fault mode 2"
            },
            {
              "name":"Engine coolant temperature too high",
              "id":"faultlevel15",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Supply voltage too low",
              "id":"faultlevel16",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Supply voltage too high",
              "id":"faultlevel17",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Charge air temperature too high",
              "id":"faultlevel18",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Overboost protection triggered",
              "id":"faultlevel19",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Fuel pressure sensor low value",
              "id":"faultlevel20",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel pressure sensor high value",
              "id":"faultlevel21",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"DI fuel pressure sensor low value",
              "id":"faultlevel62",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"DI fuel pressure sensor high value",
              "id":"faultlevel63",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Loss of expected CAN input data",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"faultlevel22",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel pressure too low",
              "id":"faultlevel23",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel pressure too high",
              "id":"faultlevel24",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Engine coolant temperature implausible",
              "id":"faultlevel25",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"VVT primary cam off target",
              "id":"faultlevel26",
              "applies":[
                "vvt_enable_primary",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"VVT secondary cam off target",
              "id":"faultlevel27",
              "applies":[
                "vvt_enable_secondary",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Lambda reading too lean",
              "id":"faultlevel28",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Lambda reading too rich",
              "id":"faultlevel29",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"MAF input low value",
              "id":"faultlevel30",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAF input high value",
              "id":"faultlevel31",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAF implausible",
              "id":"faultlevel61",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Lambda sensor 2 voltage out of range",
              "id":"faultlevel32",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Lambda sensor 2 lack of activity",
              "id":"faultlevel33",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Lambda 2 reading too lean",
              "id":"faultlevel34",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Lambda 2 reading too rich",
              "id":"faultlevel35",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Lambda 2 reading too rich",
              "id":"faultlevel35",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"N2O run aborted by low fuel pressure",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"faultlevel36",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Oil pressure sensor low value",
              "id":"faultlevel37",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Oil pressure sensor high value",
              "id":"faultlevel38",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Oil temperature sensor low value",
              "id":"faultlevel39",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Oil temperature sensor high value",
              "id":"faultlevel40",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"VVT cam 3 off target",
              "id":"faultlevel41",
              "applies":[
                "vvt_enable_cam3",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"VVT cam 4 off target",
              "id":"faultlevel42",
              "applies":[
                "vvt_enable_cam4",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Post compressor pressure sensor low value",
              "id":"faultlevel43",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Post compressor pressure sensor high value",
              "id":"faultlevel44",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Post restrictor pressure sensor low value",
              "id":"faultlevel45",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Post restrictor pressure sensor high value",
              "id":"faultlevel46",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Transmission temperature sensor low value",
              "id":"faultlevel47",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Transmission temperature sensor high value",
              "id":"faultlevel48",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"User defined error 1",
              "id":"faultlevel49",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"User defined error 2",
              "id":"faultlevel50",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"User defined error 3",
              "id":"faultlevel51",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"User defined error 4",
              "id":"faultlevel52",
              "type":3,
              "value":"CEL only"
            },
            {
              "name":"Injector duty cycle exceeded 96%",
              "id":"faultlevel53",
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Knock sensor 1 low input signal",
              "id":"faultlevel54",
              "applies":[
                "knockenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Knock sensor 2 low input signal",
              "id":"faultlevel55",
              "applies":[
                "knockenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Excessive knock detected",
              "id":"faultlevel56",
              "applies":[
                "knockenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"Fault mode 1"
            },
            {
              "name":"Fuel temperature sensor low value",
              "id":"faultlevel57",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel temperature sensor high value",
              "id":"faultlevel58",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel composition sensor low value",
              "id":"faultlevel59",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"Fuel composition sensor high value",
              "id":"faultlevel60",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAP sensor 2 low value",
              "id":"faultlevel64",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAP sensor 2 high value",
              "id":"faultlevel65",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"MAP sensor 2 implausible",
              "id":"faultlevel66",
              "type":3,
              "value":"Ignored"
            },
            {
              "name":"User defined errors",
              "type":255,
              "value":[
                {
                  "name":"User defined error 1 trigger",
                  "id":"usererrorsource1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"User defined error 1 type",
                  "id":"usererrortype1",
                  "type":3,
                  "value":"Non-latching"
                },
                {
                  "name":"User defined error 1 description",
                  "id":"usererrordescr1",
                  "type":6,
                  "value":""
                },
                {
                  "name":"User defined error 2 trigger",
                  "id":"usererrorsource2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"User defined error 2 type",
                  "id":"usererrortype2",
                  "type":3,
                  "value":"Non-latching"
                },
                {
                  "name":"User defined error 2 description",
                  "id":"usererrordescr2",
                  "type":6,
                  "value":""
                },
                {
                  "name":"User defined error 3 trigger",
                  "id":"usererrorsource3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"User defined error 3 type",
                  "id":"usererrortype3",
                  "type":3,
                  "value":"Non-latching"
                },
                {
                  "name":"User defined error 3 description",
                  "id":"usererrordescr3",
                  "type":6,
                  "value":""
                },
                {
                  "name":"User defined error 4 trigger",
                  "id":"usererrorsource4",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"User defined error 4 type",
                  "id":"usererrortype4",
                  "type":3,
                  "value":"Non-latching"
                },
                {
                  "name":"User defined error 4 description",
                  "id":"usererrordescr4",
                  "type":6,
                  "value":""
                }
              ]
            }
          ]
        },
        {
          "name":"Fault handling",
          "type":255,
          "context":"errmasks",
          "value":[
            {
              "name":"Fault rev limit method",
              "id":"faultsparkcut",
              "type":3,
              "value":"Fuel cut"
            },
            {
              "name":"Fault rev limits",
              "id":"faultrevlimits",
              "type":5,
              "colwidth":2.000000,
              "xaxis":[
                "Fault 1",
                "Fault 2",
                "Fault 3",
                "Fault 4",
                "Fault 5",
                "Fault 6"
              ],
              "value":[
                4000.000000,
                4000.000000,
                4000.000000,
                4000.000000,
                4000.000000,
                4000.000000
              ]
            },
            {
              "name":"Fault boost target limits",
              "id":"faultboostlimits",
              "type":5,
              "colwidth":2.000000,
              "xaxis":[
                "Fault 1",
                "Fault 2",
                "Fault 3",
                "Fault 4",
                "Fault 5",
                "Fault 6"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Fault electronic throttle limits",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"faultetclimits",
              "type":5,
              "colwidth":2.000000,
              "xaxis":[
                "Fault 1",
                "Fault 2",
                "Fault 3",
                "Fault 4",
                "Fault 5",
                "Fault 6"
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Engine enable input",
          "id":"engineenableinput",
          "type":3,
          "value":"Always on"
        },
        {
          "name":"General purpose rev limit",
          "type":255,
          "value":[
            {
              "name":"Enable condition",
              "id":"gprevlimcondition",
              "type":3,
              "value":"Always off"
            },
            {
              "name":"Limit method",
              "id":"gprevlimspark",
              "type":3,
              "value":"Fuel"
            },
            {
              "name":"Input variable",
              "id":"gprevlimsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Curve breakpoint count",
              "id":"gprevlimbpcount",
              "value":1.000000
            },
            {
              "name":"Input breakpoints",
              "id":"gprevliminput",
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Rev limit values",
              "type":5,
              "id":"gprevlimoutput",
              "xaxis":"gprevliminput",
              "value":[
                0.000000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Calibration pot",
      "context":"calpot",
      "type":255,
      "value":[
        {
          "name":"Cal pot enable",
          "id":"calpotenable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Cal pot service interval",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotint",
          "value":50.000000
        },
        {
          "name":"Cal pot input",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotsrc",
          "type":7,
          "value":"analog7"
        },
        {
          "name":"Cal pot position count",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotnpos",
          "value":6.000000
        },
        {
          "name":"Cal pot voltage thresholds",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotvolts",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "value":[
            4.999995,
            4.300362,
            3.300363,
            2.300364,
            1.300365,
            0.500610
          ]
        },
        {
          "name":"Second cal pot input",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot2src",
          "type":7,
          "value":"analog7"
        },
        {
          "name":"Second cal pot position count",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot2npos",
          "value":6.000000
        },
        {
          "name":"Second cal pot voltage thresholds",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot2volts",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "value":[
            4.999995,
            4.300362,
            3.300363,
            2.300364,
            1.300365,
            0.500610
          ]
        },
        {
          "name":"Third cal pot input",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot3src",
          "type":7,
          "value":"analog7"
        },
        {
          "name":"Third cal pot position count",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot3npos",
          "value":6.000000
        },
        {
          "name":"Third cal pot voltage thresholds",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot3volts",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "value":[
            4.999995,
            4.300362,
            3.300363,
            2.300364,
            1.300365,
            0.500610
          ]
        },
        {
          "name":"Fourth cal pot input",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot4src",
          "type":7,
          "value":"analog7"
        },
        {
          "name":"Fourth cal pot position count",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot4npos",
          "value":6.000000
        },
        {
          "name":"Fourth cal pot voltage thresholds",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpot4volts",
          "type":5,
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "value":[
            4.999995,
            4.300362,
            3.300363,
            2.300364,
            1.300365,
            0.500610
          ]
        },
        {
          "name":"Cal pot assignment",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotassign",
          "type":5,
          "colwidth":3.000000,
          "yaxis":[
            "Fuelling",
            "Ignition",
            "Boost control",
            "Anti lag",
            "Launch control",
            "Traction control",
            "Variable valve timing",
            "Rev limits"
          ],
          "value":[
            1.000000,
            1.000000,
            1.000000,
            1.000000,
            1.000000,
            1.000000,
            1.000000,
            1.000000
          ]
        },
        {
          "name":"Cal pot fuel map selection",
          "variations":[
            [
              "fuelstrategy",
              "=",
              "Fuel mass"
            ],
            {
              "name":"Cal pot fuel map selection",
              "endif":true
            },
            [
              "fuelstrategy",
              "=",
              "Air mass (VE)"
            ],
            {
              "name":"Cal pot volumetric efficiency map selection"
            }
          ],
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"fuelcalselect",
          "type":5,
          "xvariable":[
            "calpotassign.0",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Alternate",
            "Alternate",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot lambda target map selection",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"lambdacalselect",
          "type":5,
          "xvariable":[
            "calpotassign.0",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot injection angle map selection",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injanglecalselect",
          "type":5,
          "xvariable":[
            "calpotassign.0",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Alternate",
            "Alternate",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot ignition map selection",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"igncalselect",
          "type":5,
          "xvariable":[
            "calpotassign.1",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Alternate",
            "Alternate",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot traction control options",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "tcenable",
            "=",
            "Enabled"
          ],
          "id":"tccalselect",
          "type":5,
          "xvariable":[
            "calpotassign.5",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Disabled",
            "Map 1",
            "Map 2",
            "Map 3",
            "Disabled",
            "Disabled"
          ]
        },
        {
          "name":"Cal pot launch control options",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "launchenable",
            "=",
            "Enabled"
          ],
          "id":"launchcalselect",
          "type":5,
          "xvariable":[
            "calpotassign.4",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Disabled",
            "Normal",
            "Alternate",
            "Alternate 2",
            "Disabled",
            "Disabled"
          ]
        },
        {
          "name":"Cal pot boost control options",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostmapselect",
          "type":5,
          "xvariable":[
            "calpotassign.2",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Alternate",
            "Alternate 2",
            "Alternate 2",
            "Alternate 2"
          ]
        },
        {
          "name":"Cal pot wastegate base duty select",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"wgdutymapselect",
          "type":5,
          "xvariable":[
            "calpotassign.2",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot anti lag options",
          "applies":[
            "calpotenable",
            "=",
            "Enabled",
            "als_enable",
            "=",
            "Enabled"
          ],
          "id":"alscalselect",
          "type":5,
          "xvariable":[
            "calpotassign.3",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot VVT target select",
          "id":"vvtmapselect",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "type":5,
          "xvariable":[
            "calpotassign.6",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "colwidth":2.000000,
          "value":[
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal",
            "Normal"
          ]
        },
        {
          "name":"Cal pot rev limit select",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotrevlimit",
          "type":5,
          "xvariable":[
            "calpotassign.7",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            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
          ]
        },
        {
          "name":"Reduced rev limit method",
          "applies":[
            "calpotenable",
            "=",
            "Enabled"
          ],
          "id":"calpotrevlimittype",
          "type":5,
          "xvariable":[
            "calpotassign.7",
            "calpot1",
            "calpot2",
            "calpot3",
            "calpot4"
          ],
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16
          ],
          "value":[
            "Fuel",
            "Fuel",
            "Fuel",
            "Fuel",
            "Fuel",
            "Fuel"
          ]
        }
      ]
    },
    {
      "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":"Variable 1",
              "id":"gpiocond1var4",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Condition 1",
              "type":3,
              "id":"gpiocond1type4",
              "value":">"
            },
            {
              "name":"Value 1",
              "id":"gpiocond1val4",
              "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":"throttle"
            },
            {
              "name":"Condition 2",
              "type":7,
              "id":"gpiocond2type4",
              "value":">"
            },
            {
              "name":"Value 2",
              "id":"gpiocond2val4",
              "value":59.960784
            },
            {
              "name":"Hysteresis 2",
              "id":"gpiocond2hyster4",
              "value":9.960912
            },
            {
              "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",
              "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":"Variable 1",
              "id":"gpiocond1var9",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Condition 1",
              "type":3,
              "id":"gpiocond1type9",
              "value":">"
            },
            {
              "name":"Value 1",
              "id":"gpiocond1val9",
              "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":"throttle"
            },
            {
              "name":"Condition 2",
              "type":7,
              "id":"gpiocond2type9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":">"
            },
            {
              "name":"Value 2",
              "id":"gpiocond2val9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":59.960784
            },
            {
              "name":"Hysteresis 2",
              "id":"gpiocond2hyster9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition"
              ],
              "value":9.960912
            },
            {
              "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"
              ],
              "value":0.000000
            },
            {
              "name":"Hysteresis 3",
              "id":"gpiocond3hyster9",
              "applies":[
                "gpiocond1and9",
                "!=",
                "No other condition",
                "gpiocond2and9",
                "!=",
                "No other condition"
              ],
              "value":0.000000
            }
          ]
        },
        {
          "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":"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
          ],
          "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":"Inputs",
      "type":255,
      "context":"analog",
      "value":[
        {
          "name":"Pedal\/throttle position inputs",
          "type":255,
          "value":[
            {
              "name":"Throttle position voltage sensing range",
              "id":"throttlerange",
              "type":4,
              "xaxis":[
                "0%",
                "100%"
              ],
              "value":[
                0.749694,
                3.849813
              ]
            },
            {
              "name":"Throttle position error limits",
              "id":"throttlelimits",
              "type":4,
              "value":[
                0.200244,
                4.799751
              ]
            },
            {
              "name":"Throttle position input selection",
              "type":7,
              "id":"appsrc",
              "variations":[
                [
                  "dbwenable",
                  "=",
                  1234567890
                ],
                {
                  "name":"Throttle position input selection"
                },
                [
                  "dbwenable",
                  "!=",
                  1234567890
                ],
                {
                  "name":"Accelerator pedal input selection"
                }
              ],
              "value":"analog0"
            },
            {
              "name":"Accelerator pedal secondary input selection",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "type":7,
              "id":"appsecsrc",
              "value":"analog1"
            },
            {
              "name":"Throttle position input selection",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "type":7,
              "id":"etpsrc",
              "value":"analog8"
            },
            {
              "name":"Throttle position secondary input selection",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "type":7,
              "id":"etpsecsrc",
              "value":"analog9"
            },
            {
              "name":"Accelerator pedal position primary voltage range",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalprimaryrange",
              "type":4,
              "xaxis":[
                "low",
                "high"
              ],
              "value":[
                0.699633,
                3.799752
              ]
            },
            {
              "name":"Accelerator pedal position primary voltage limits",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalprimarylimits",
              "type":4,
              "xaxis":[
                "low",
                "high"
              ],
              "value":[
                0.500610,
                4.200240
              ]
            },
            {
              "name":"Accelerator pedal position secondary curve breakpoint count",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalsecondarypoints",
              "value":2.000000
            },
            {
              "name":"Accelerator pedal position secondary curve breakpoints",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalsecondaryvolts",
              "type":4,
              "value":[
                0.999999,
                3.999996
              ]
            },
            {
              "name":"Accelerator pedal secondary transfer function",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalsecondarypos",
              "type":5,
              "xaxis":"pedalsecondaryvolts",
              "value":[
                100.000000,
                0.000000
              ]
            },
            {
              "name":"Accelerator pedal position secondary voltage limits",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"pedalsecondarylimits",
              "type":4,
              "value":[
                0.500610,
                4.500606
              ]
            },
            {
              "name":"Throttle position secondary curve breakpoint count",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"throttlesecpoints",
              "value":2.000000
            },
            {
              "name":"Throttle position secondary curve breakpoints",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"throttlesecvolts",
              "type":4,
              "value":[
                0.999999,
                3.999996
              ]
            },
            {
              "name":"Throttle position secondary transfer function",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"throttlesecpos",
              "type":5,
              "value":[
                100.000000,
                0.000000
              ]
            },
            {
              "name":"Throttle position secondary voltage limits",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"throttleseclimits",
              "type":4,
              "value":[
                0.500610,
                4.500606
              ]
            },
            {
              "name":"Secondary sensor limited range mode",
              "id":"etcdumbsecondary",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Maximum reliable value from secondary position sensor",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdumbsecondary",
                "=",
                "Enabled"
              ],
              "id":"etcsecondarymax",
              "value":49.951272
            }
          ]
        },
        {
          "name":"Analog inputs",
          "context":"analog",
          "type":255,
          "value":[
            {
              "name":"MAP sensor",
              "type":255,
              "context":"mapsensor",
              "value":[
                {
                  "name":"MAP sensor integration filter",
                  "type":3,
                  "id":"mapintegration",
                  "value":"Enabled"
                },
                {
                  "name":"MAP sensor source",
                  "type":3,
                  "id":"mapsource",
                  "value":"Internal"
                },
                {
                  "name":"MAP sensor voltage span",
                  "id":"mapadcrange",
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                },
                {
                  "name":"MAP sensor calibration",
                  "id":"mapvaluerange",
                  "type":5,
                  "xaxis":"mapadcrange",
                  "value":[
                    9.000000,
                    4139.000000
                  ]
                },
                {
                  "name":"MAP sensor valid input range",
                  "id":"mapvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                },
                {
                  "name":"MAP sensor failure value",
                  "id":"mapdefault",
                  "value":1000.000000
                },
                {
                  "name":"MAP sensor failure alpha-N fall back",
                  "type":255,
                  "value":[
                    {
                      "id":"fallbackenable",
                      "name":"Enable fall back to alpha-N on MAP sensor fault",
                      "type":3,
                      "value":"Disabled"
                    },
                    {
                      "name":"Engine speed breakpoints for alpha-N fall back",
                      "id":"fallbackrpmbins",
                      "type":4,
                      "value":[
                        0.000000,
                        500.000000,
                        1000.000000,
                        1500.000000,
                        2000.000000,
                        3000.000000,
                        4000.000000,
                        5000.000000
                      ]
                    },
                    {
                      "name":"Throttle position breakpoints for alpha-N fall back",
                      "id":"fallbacktpsbins",
                      "type":4,
                      "value":[
                        0.000000,
                        1.955040,
                        4.985352,
                        9.970704,
                        20.039160,
                        39.980568,
                        60.019728,
                        79.961136
                      ]
                    },
                    {
                      "name":"Fall back alpha-N map",
                      "id":"fallbackmap",
                      "type":5,
                      "xaxis":"fallbackrpmbins",
                      "yaxis":"fallbacktpsbins",
                      "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":"Internal MAP sensor low pass rate",
                  "id":"analogfilter6",
                  "value":90.000428
                },
                {
                  "name":"Reference pressure for plausibility check",
                  "applies":[
                    "faultlevel14",
                    "!=",
                    "Ignored"
                  ],
                  "id":"mapoverrunpressure",
                  "value":600.000000
                },
                {
                  "name":"Cross over engine speed for high\/low plausibility check",
                  "applies":[
                    "faultlevel14",
                    "!=",
                    "Ignored"
                  ],
                  "id":"mapcheckrpm",
                  "value":2500.000000
                },
                {
                  "name":"MAP sensor 2 source",
                  "type":7,
                  "id":"map2source",
                  "value":"const_zero"
                },
                {
                  "name":"MAP sensor 2 voltage span",
                  "id":"map2adcrange",
                  "applies":[
                    "map2source",
                    "!=",
                    "const_zero"
                  ],
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                },
                {
                  "name":"MAP sensor 2 calibration",
                  "id":"map2valuerange",
                  "type":5,
                  "applies":[
                    "map2source",
                    "!=",
                    "const_zero"
                  ],
                  "xaxis":"mapadcrange",
                  "value":[
                    35.000000,
                    4165.000000
                  ]
                },
                {
                  "name":"MAP sensor 2 valid input range",
                  "id":"map2validrange",
                  "applies":[
                    "map2source",
                    "!=",
                    "const_zero"
                  ],
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                }
              ]
            },
            {
              "name":"Mass air flow sensor",
              "type":255,
              "context":"maf",
              "value":[
                {
                  "name":"MAF sensor input",
                  "id":"mafsource",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"MAF valid input range",
                  "id":"mafrange",
                  "xaxis":[
                    "Low",
                    "High"
                  ],
                  "type":4,
                  "value":[
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"MAF curve breakpoint count",
                  "id":"mafptcount",
                  "value":1.000000
                },
                {
                  "name":"MAF curve breakpoints",
                  "id":"mafbreakpts",
                  "type":4,
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"MAF transfer function",
                  "id":"mafcurve",
                  "type":5,
                  "xaxis":"mafbreakpts",
                  "value":[
                    0.000000
                  ]
                },
                {
                  "name":"MAF operating range restriction",
                  "id":"mafconditional",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"MAF enable conditions",
                  "type":255,
                  "value":[
                    {
                      "name":"Minimum engine speed",
                      "id":"mafminrpm",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":0.000000
                    },
                    {
                      "name":"Maximum engine speed",
                      "id":"mafmaxrpm",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":15000.000000
                    },
                    {
                      "name":"Minimum throttle position",
                      "id":"mafmintps",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":0.000000
                    },
                    {
                      "name":"Maximum throttle position",
                      "id":"mafmaxtps",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":100.000296
                    },
                    {
                      "name":"Minimum indicated air flow",
                      "id":"mafminflow",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":0.000000
                    },
                    {
                      "name":"Maximum indicated air flow",
                      "id":"mafmaxflow",
                      "applies":[
                        "mafconditional",
                        "=",
                        "Enabled"
                      ],
                      "value":500.000000
                    }
                  ]
                },
                {
                  "name":"MAF plausibility cross over speed",
                  "id":"maftestrpm",
                  "value":2000.000000
                },
                {
                  "name":"MAF plausibility high flow threshold",
                  "id":"maftesthighflow",
                  "value":1.000000
                },
                {
                  "name":"MAF plausibility low flow threshold",
                  "id":"maftestlowflow",
                  "value":20.000000
                }
              ]
            },
            {
              "name":"Coolant temperature sensor",
              "type":255,
              "context":"ectsensor",
              "value":[
                {
                  "name":"Coolant temperature sensor input",
                  "id":"ectsource",
                  "type":7,
                  "value":"analog2"
                },
                {
                  "name":"Coolant temperature sensor transfer function breakpoint count",
                  "id":"coolantbpcount",
                  "value":16.000000
                },
                {
                  "name":"Coolant temperature sensor voltage span",
                  "id":"coolantadc",
                  "type":4,
                  "value":[
                    0.181929,
                    0.791208,
                    1.053723,
                    1.385835,
                    1.786323,
                    2.245419,
                    2.737482,
                    3.224661,
                    3.671547,
                    4.050057,
                    4.347981,
                    4.567761,
                    4.722828,
                    4.827834,
                    4.894989,
                    4.937724
                  ]
                },
                {
                  "name":"Coolant temperature sensor values",
                  "id":"coolantvalues",
                  "type":5,
                  "xaxis":"coolantadc",
                  "value":[
                    150.000000,
                    100.000000,
                    90.000000,
                    80.000000,
                    70.000000,
                    60.000000,
                    50.000000,
                    40.000000,
                    30.000000,
                    20.000000,
                    10.000000,
                    0.000000,
                    -10.000000,
                    -20.000000,
                    -30.000000,
                    -40.000000
                  ]
                },
                {
                  "name":"Coolant temperature limits",
                  "id":"coolantlimits",
                  "type":4,
                  "value":[
                    -30.000000,
                    140.000000
                  ]
                },
                {
                  "name":"Coolant temperature default value",
                  "id":"coolantdefault",
                  "value":130.000000
                },
                {
                  "name":"Engine overheating temperature",
                  "id":"engineovertemp",
                  "value":115.000000
                },
                {
                  "name":"Engine overheating hysteresis",
                  "id":"engineovertemphyster",
                  "value":10.000000
                },
                {
                  "name":"Engine warm up time",
                  "id":"warmuptime",
                  "value":600.000000
                },
                {
                  "name":"Minimum coolant temperature when warmed up",
                  "id":"minwarmect",
                  "value":45.000000
                }
              ]
            },
            {
              "name":"Charge air temperature sensor",
              "type":255,
              "value":[
                {
                  "name":"Air temperature sensor input",
                  "id":"airtempsource",
                  "type":7,
                  "value":"analog3"
                },
                {
                  "name":"Air temperature sensor transfer function breakpoint count",
                  "id":"airtempbpcount",
                  "value":16.000000
                },
                {
                  "name":"Air temperature sensor voltage span",
                  "id":"airtempadc",
                  "type":4,
                  "value":[
                    0.181929,
                    0.791208,
                    1.053723,
                    1.385835,
                    1.786323,
                    2.245419,
                    2.737482,
                    3.224661,
                    3.671547,
                    4.050057,
                    4.347981,
                    4.567761,
                    4.722828,
                    4.827834,
                    4.894989,
                    4.937724
                  ]
                },
                {
                  "name":"Air temperature sensor values",
                  "id":"airtempvalues",
                  "type":5,
                  "xaxis":"airtempadc",
                  "value":[
                    150.000000,
                    100.000000,
                    90.000000,
                    80.000000,
                    70.000000,
                    60.000000,
                    50.000000,
                    40.000000,
                    30.000000,
                    20.000000,
                    10.000000,
                    0.000000,
                    -10.000000,
                    -20.000000,
                    -30.000000,
                    -40.000000
                  ]
                },
                {
                  "name":"Air temperature limits",
                  "id":"airtemplimits",
                  "type":4,
                  "value":[
                    -30.000000,
                    140.000000
                  ]
                },
                {
                  "name":"Air temperature default value",
                  "id":"airtempdefault",
                  "value":21.000000
                },
                {
                  "name":"Intake air overheating value",
                  "id":"iatovertemp",
                  "value":100.000000
                },
                {
                  "name":"Intake air overheating hysteresis",
                  "id":"iatovertemphyster",
                  "value":10.000000
                }
              ]
            },
            {
              "name":"Lambda sensors",
              "context":"lambda",
              "type":255,
              "value":[
                {
                  "name":"Lambda sensor input",
                  "id":"lambdasource",
                  "type":7,
                  "value":"intlambdaipcorr"
                },
                {
                  "name":"Lambda sensor characteristic curve points",
                  "id":"lambdaptcount",
                  "value":11.000000
                },
                {
                  "name":"Lambda sensor voltage breakpoints",
                  "id":"lambdavoltages",
                  "type":4,
                  "value":[
                    -2.220000,
                    -1.850000,
                    -1.080000,
                    -0.760000,
                    -0.470000,
                    0.000000,
                    0.340000,
                    0.680000,
                    0.950000,
                    1.400000,
                    2.000000
                  ]
                },
                {
                  "name":"Lambda sensor values",
                  "id":"lambdavalues",
                  "type":5,
                  "xaxis":"lambdavoltages",
                  "value":[
                    0.650000,
                    0.700000,
                    0.800000,
                    0.850000,
                    0.900000,
                    1.009000,
                    1.180000,
                    1.430000,
                    1.700000,
                    2.420000,
                    3.600000
                  ]
                },
                {
                  "name":"Lambda sensor input validation range",
                  "id":"lambdavrange",
                  "type":4,
                  "value":[
                    -32.000000,
                    3.000000
                  ]
                },
                {
                  "name":"Lambda sensor lean validation value",
                  "id":"lambdaleanvalue",
                  "value":1.300000
                },
                {
                  "name":"Lambda sensor accel validation engine speed",
                  "id":"lambdacheckspeed",
                  "value":3000.000000
                },
                {
                  "name":"Lambda sensor lean validation timeout",
                  "id":"lambdaacttimeout",
                  "value":2.500000
                },
                {
                  "name":"Second lambda sensor input",
                  "id":"lambda2source",
                  "type":7,
                  "value":"intlambda2ipcorr"
                },
                {
                  "name":"Lambda 2 sensor characteristic curve points",
                  "id":"lambda2ptcount",
                  "value":11.000000
                },
                {
                  "name":"Lambda 2 sensor voltage breakpoints",
                  "id":"lambda2voltages",
                  "type":4,
                  "value":[
                    -2.220000,
                    -1.850000,
                    -1.080000,
                    -0.760000,
                    -0.470000,
                    0.000000,
                    0.340000,
                    0.680000,
                    0.950000,
                    1.400000,
                    2.000000
                  ]
                },
                {
                  "name":"Lambda 2 sensor values",
                  "id":"lambda2values",
                  "type":5,
                  "xaxis":"lambda2voltages",
                  "value":[
                    0.650000,
                    0.700000,
                    0.800000,
                    0.850000,
                    0.900000,
                    1.009000,
                    1.180000,
                    1.430000,
                    1.700000,
                    2.420000,
                    3.600000
                  ]
                },
                {
                  "name":"Lambda 2 sensor input validation range",
                  "id":"lambda2vrange",
                  "type":4,
                  "value":[
                    -32.000000,
                    32.000000
                  ]
                },
                {
                  "name":"Internal lambda sensor control enable",
                  "id":"intlambdaenable",
                  "type":7,
                  "value":"Enabled"
                },
                {
                  "name":"Internal lambda sensor 2 control enable",
                  "id":"intlambda2enable",
                  "type":7,
                  "value":"Enabled"
                },
                {
                  "name":"Sensor sensitivity calibration factor",
                  "id":"intlambdaical",
                  "scriptbutton":[
                    "Start lambda heaters",
                    [
                      "rpc",
                      "startlambdaheaters"
                    ]
                  ],
                  "value":1.000448
                },
                {
                  "name":"Sensor 2 sensitivity calibration factor",
                  "id":"intlambda2ical",
                  "scriptbutton":[
                    "Start lambda heaters",
                    [
                      "rpc",
                      "startlambdaheaters"
                    ]
                  ],
                  "value":1.000448
                },
                {
                  "name":"Heater control",
                  "type":255,
                  "value":[
                    {
                      "name":"Internal lambda heater start-up delay",
                      "id":"intlambdastartdelay",
                      "value":45.000000
                    },
                    {
                      "name":"Minimum coolant temperature to skip start up delay",
                      "id":"intlambdaimmediatetemp",
                      "value":70.000000
                    },
                    {
                      "name":"Internal lambda controller nernst cell resistance target",
                      "id":"intlambdartarget",
                      "value":80.000000
                    },
                    {
                      "name":"Internal lambda heater P gain",
                      "id":"intlambdaheaterKp",
                      "value":-0.999912
                    },
                    {
                      "name":"Internal lambda heater I gain",
                      "id":"intlambdaheaterKi",
                      "value":-0.100040
                    },
                    {
                      "name":"Internal lambda heater D gain",
                      "id":"intlambdaheaterKd",
                      "value":-0.200080
                    },
                    {
                      "name":"Sensor 1 heater initial voltage",
                      "id":"intlambdaheaterinitial",
                      "value":5.000000
                    },
                    {
                      "name":"Sensor 1 heater maximum voltage",
                      "id":"intlambdaheatermax",
                      "value":12.000000
                    },
                    {
                      "name":"Sensor 1 heater ramp time",
                      "id":"intlambdaheaterramp",
                      "value":25.000000
                    },
                    {
                      "name":"Sensor 1 heater standby voltage",
                      "id":"intlambdaheaterlow",
                      "value":2.000000
                    },
                    {
                      "name":"Internal lambda controller sensor 2 nernst cell resistance target",
                      "id":"intlambda2rtarget",
                      "value":80.000000
                    },
                    {
                      "name":"Internal lambda sensor 2 heater P gain",
                      "id":"intlambda2heaterKp",
                      "value":-0.999912
                    },
                    {
                      "name":"Internal lambda sensor 2 heater I gain",
                      "id":"intlambda2heaterKi",
                      "value":-0.100040
                    },
                    {
                      "name":"Internal lambda sensor 2 heater D gain",
                      "id":"intlambda2heaterKd",
                      "value":-0.200080
                    },
                    {
                      "name":"Sensor 2 heater initial voltage",
                      "id":"intlambda2heaterinitial",
                      "value":5.000000
                    },
                    {
                      "name":"Sensor 2 heater maximum voltage",
                      "id":"intlambda2heatermax",
                      "value":12.000000
                    },
                    {
                      "name":"Sensor 2 heater ramp time",
                      "id":"intlambda2heaterramp",
                      "value":25.000000
                    },
                    {
                      "name":"Sensor 2 heater standby voltage",
                      "id":"intlambda2heaterlow",
                      "value":2.000000
                    }
                  ]
                },
                {
                  "name":"Advanced options",
                  "type":255,
                  "value":[
                    {
                      "name":"Hardware calibration",
                      "type":9,
                      "id":"hwcalpanel",
                      "layout":[
                        {
                          "wid":"getcaldata",
                          "caption":"Fetch",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            0,
                            80
                          ],
                          "type":"button",
                          "onclick":[
                            "rpc",
                            "getslavecal",
                            [
                              1,
                              [
                                "cal0",
                                "cal1",
                                "cal2",
                                "cal3",
                                "cal4",
                                "cal5",
                                "cal6",
                                "cal7",
                                "cal8",
                                "cal9",
                                "cal10",
                                "cal11",
                                "cal12",
                                "cal13",
                                "cal14",
                                "cal15",
                                "cal16",
                                "cal17",
                                "cal18",
                                "cal19"
                              ]
                            ],
                            [
                              [
                                "settext",
                                "cal0",
                                "%s",
                                "cal0"
                              ],
                              [
                                "settext",
                                "cal1",
                                "%s",
                                "cal1"
                              ],
                              [
                                "settext",
                                "cal2",
                                "%s",
                                "cal2"
                              ],
                              [
                                "settext",
                                "cal3",
                                "%s",
                                "cal3"
                              ],
                              [
                                "settext",
                                "cal4",
                                "%s",
                                "cal4"
                              ],
                              [
                                "settext",
                                "cal5",
                                "%s",
                                "cal5"
                              ],
                              [
                                "settext",
                                "cal6",
                                "%s",
                                "cal6"
                              ],
                              [
                                "settext",
                                "cal7",
                                "%s",
                                "cal7"
                              ],
                              [
                                "settext",
                                "cal8",
                                "%s",
                                "cal8"
                              ],
                              [
                                "settext",
                                "cal9",
                                "%s",
                                "cal9"
                              ],
                              [
                                "settext",
                                "cal10",
                                "%s",
                                "cal10"
                              ],
                              [
                                "settext",
                                "cal11",
                                "%s",
                                "cal11"
                              ],
                              [
                                "settext",
                                "cal12",
                                "%s",
                                "cal12"
                              ],
                              [
                                "settext",
                                "cal13",
                                "%s",
                                "cal13"
                              ],
                              [
                                "settext",
                                "cal14",
                                "%s",
                                "cal14"
                              ],
                              [
                                "settext",
                                "cal15",
                                "%s",
                                "cal15"
                              ],
                              [
                                "settext",
                                "cal16",
                                "%s",
                                "cal16"
                              ],
                              [
                                "settext",
                                "cal17",
                                "%s",
                                "cal17"
                              ],
                              [
                                "settext",
                                "cal18",
                                "%s",
                                "cal18"
                              ],
                              [
                                "settext",
                                "cal19",
                                "%s",
                                "cal19"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"putcaldata",
                          "caption":"Put",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            20,
                            80
                          ],
                          "type":"button",
                          "onclick":[
                            "rpc",
                            "setslavecal",
                            [
                              "widgetval(cal0)",
                              "widgetval(cal1)",
                              "widgetval(cal2)",
                              "widgetval(cal3)",
                              "widgetval(cal4)",
                              "widgetval(cal5)",
                              "widgetval(cal6)",
                              "widgetval(cal7)",
                              "widgetval(cal8)",
                              "widgetval(cal9)",
                              "widgetval(cal10)",
                              "widgetval(cal11)",
                              "widgetval(cal12)",
                              "widgetval(cal13)",
                              "widgetval(cal14)",
                              "widgetval(cal15)",
                              "widgetval(cal16)",
                              "widgetval(cal17)",
                              "widgetval(cal18)",
                              "widgetval(cal19)"
                            ]
                          ]
                        },
                        {
                          "wid":"burncaldata",
                          "caption":"Burn",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            40,
                            80
                          ],
                          "type":"button",
                          "onclick":[
                            "rpc",
                            "burnslavecal",
                            [
                              11640647
                            ]
                          ]
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            0,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 full neg"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            2,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "-5000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal0",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            0,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            20,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 full pos"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            22,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "5000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal1",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            20,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            40,
                            10
                          ],
                          "type":"static",
                          "caption":"L1FB full neg"
                        },
                        {
                          "wid":"cal2",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            40,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            60,
                            10
                          ],
                          "type":"static",
                          "caption":"L1FB full pos"
                        },
                        {
                          "wid":"cal3",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            60,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            0,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 full neg"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            2,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "-5000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal4",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            0,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            20,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 full pos"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            22,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "5000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal5",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            20,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            40,
                            30
                          ],
                          "type":"static",
                          "caption":"L2FB full neg"
                        },
                        {
                          "wid":"cal6",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            40,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            60,
                            30
                          ],
                          "type":"static",
                          "caption":"L2FB full pos"
                        },
                        {
                          "wid":"cal7",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            60,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "wid":"cal8",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            0,
                            40
                          ],
                          "type":"edit"
                        },
                        {
                          "wid":"cal9",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            20,
                            40
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            80,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 -500µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            82,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "-500"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal10",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            80,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            100,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 +500µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            102,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "500"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal11",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            100,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            80,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 -500µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            82,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "-500"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal12",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            80,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            100,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 +500µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            102,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "500"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal13",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            100,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            120,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 zero"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            122,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "0"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal14",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            120,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            120,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 zero"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            122,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "0"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal15",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            120,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            140,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 -1000µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            142,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "-1000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal16",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            140,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            160,
                            10
                          ],
                          "type":"static",
                          "caption":"L1 +1000µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            162,
                            15
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent1",
                              "1000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal17",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            160,
                            0
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            140,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 -1000µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            142,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "-1000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal18",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            140,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "size":[
                            20,
                            5
                          ],
                          "position":[
                            160,
                            30
                          ],
                          "type":"static",
                          "caption":"L2 +1000µA"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            16,
                            5
                          ],
                          "position":[
                            162,
                            35
                          ],
                          "type":"button",
                          "onclick":[
                            [
                              "settext",
                              "testcurrent2",
                              "1000"
                            ],
                            [
                              "rpc",
                              "lambdatest",
                              [
                                "widgetval(testcurrent1)",
                                "widgetval(testcurrent2)"
                              ]
                            ]
                          ]
                        },
                        {
                          "wid":"cal19",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            160,
                            20
                          ],
                          "type":"edit"
                        },
                        {
                          "wid":"testcurrent1",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            180,
                            0
                          ],
                          "value":"32767",
                          "type":"edit"
                        },
                        {
                          "type":"gauge",
                          "size":[
                            25,
                            10
                          ],
                          "position":[
                            175,
                            10
                          ],
                          "id":"intlambdaipfb"
                        },
                        {
                          "type":"gauge",
                          "size":[
                            25,
                            10
                          ],
                          "position":[
                            175,
                            30
                          ],
                          "id":"intlambda2ipfb"
                        },
                        {
                          "type":"gauge",
                          "size":[
                            25,
                            10
                          ],
                          "position":[
                            0,
                            50
                          ],
                          "id":"intlambdanr"
                        },
                        {
                          "type":"gauge",
                          "size":[
                            25,
                            10
                          ],
                          "position":[
                            25,
                            50
                          ],
                          "id":"intlambda2nr"
                        },
                        {
                          "wid":"testcurrent2",
                          "size":[
                            20,
                            10
                          ],
                          "position":[
                            180,
                            20
                          ],
                          "value":"32767",
                          "type":"edit"
                        },
                        {
                          "wid":"settestcurrent",
                          "caption":"Set current",
                          "size":[
                            25,
                            10
                          ],
                          "position":[
                            175,
                            40
                          ],
                          "type":"button",
                          "onclick":[
                            "rpc",
                            "lambdatest",
                            [
                              "widgetval(testcurrent1)",
                              "widgetval(testcurrent2)"
                            ]
                          ]
                        }
                      ]
                    },
                    {
                      "name":"Sensor 1 control proportional sensitivity",
                      "id":"intlambdactlPgain",
                      "value":1.000448
                    },
                    {
                      "name":"Sensor 1 control integral sensitivity",
                      "id":"intlambdactlIgain",
                      "value":0.099654
                    },
                    {
                      "name":"Sensor 2 control proportional sensitivity",
                      "id":"intlambda2ctlPgain",
                      "value":1.000448
                    },
                    {
                      "name":"Sensor 2 control integral sensitivity",
                      "id":"intlambda2ctlIgain",
                      "value":0.099654
                    },
                    {
                      "name":"Sensor 1 indicated pump current low pass filter",
                      "id":"intlambdalowpass",
                      "value":90.000428
                    },
                    {
                      "name":"Sensor 2 indicated pump current low pass filter",
                      "id":"intlambda2lowpass",
                      "value":90.000428
                    },
                    {
                      "name":"Sensor 1 nernst impedance sensing low pass filter",
                      "id":"intlambdaimplowpass",
                      "value":90.000428
                    },
                    {
                      "name":"Sensor 2 nernst impedance sensing low pass filter",
                      "id":"intlambda2implowpass",
                      "value":90.000428
                    },
                    {
                      "name":"Sensor 1 nernst voltage setpoint",
                      "id":"intlambdavnsetpoint",
                      "value":450.000000
                    },
                    {
                      "name":"Sensor 2 nernst voltage setpoint",
                      "id":"intlambda2vnsetpoint",
                      "value":450.000000
                    },
                    {
                      "name":"Sensor 1 20µA nernst bias current",
                      "id":"intlambdarefcur",
                      "type":3,
                      "value":"Disabled"
                    },
                    {
                      "name":"Sensor 2 20µA nernst bias current",
                      "id":"intlambda2refcur",
                      "type":3,
                      "value":"Disabled"
                    },
                    {
                      "name":"Sensor 1 valid nernst impedance range",
                      "id":"intlambdatemprange",
                      "type":5,
                      "xaxis":[
                        "min",
                        "max"
                      ],
                      "value":[
                        50.000000,
                        120.000000
                      ]
                    },
                    {
                      "name":"Sensor 2 valid nernst impedance range",
                      "id":"intlambda2temprange",
                      "type":5,
                      "xaxis":[
                        "min",
                        "max"
                      ],
                      "value":[
                        50.000000,
                        120.000000
                      ]
                    },
                    {
                      "name":"Sensor 1 permissible commanded pump current range",
                      "id":"intlambdaiprange",
                      "type":5,
                      "xaxis":[
                        "min",
                        "max"
                      ],
                      "value":[
                        -6.000000,
                        6.000000
                      ]
                    },
                    {
                      "name":"Sensor 2 permissible commanded pump current range",
                      "id":"intlambda2iprange",
                      "type":5,
                      "xaxis":[
                        "min",
                        "max"
                      ],
                      "value":[
                        -6.000000,
                        6.000000
                      ]
                    },
                    {
                      "name":"Correction factors",
                      "type":255,
                      "value":[
                        {
                          "name":"Sensor 1 nernst temperature (impedance) breakpoint count",
                          "id":"intlambdatcompbpcount",
                          "value":4.000000
                        },
                        {
                          "name":"Sensor 1 nernst impedance breakpoints",
                          "id":"intlambdatcompbps",
                          "type":4,
                          "value":[
                            53.500000,
                            80.000000,
                            106.500000,
                            133.500000
                          ]
                        },
                        {
                          "name":"Sensor 1 nernst impedance compensation",
                          "id":"intlambdatcomp",
                          "type":5,
                          "xaxis":"intlambdatcompbps",
                          "value":[
                            0.973092,
                            1.000448,
                            1.016080,
                            1.027804
                          ]
                        },
                        {
                          "name":"Sensor 1 pressure compensation source",
                          "type":7,
                          "id":"intlambdapsource",
                          "value":"const_zero"
                        },
                        {
                          "name":"Sensor 1 pressure breakpoint count",
                          "id":"intlambdapcompbpcount",
                          "value":8.000000
                        },
                        {
                          "name":"Sensor 1 pressure breakpoints",
                          "id":"intlambdapcompbps",
                          "type":4,
                          "value":[
                            500.000000,
                            700.000000,
                            900.000000,
                            1100.000000,
                            1300.000000,
                            1500.000000,
                            2500.000000,
                            5000.000000
                          ]
                        },
                        {
                          "name":"Sensor 1 pump current pressure compensation",
                          "id":"intlambdapcomp",
                          "type":5,
                          "xaxis":"intlambdapcompbps",
                          "yaxis":[
                            "Rich",
                            "Lean"
                          ],
                          "value":[
                            1.279870,
                            1.109872,
                            1.024873,
                            0.975046,
                            0.942805,
                            0.926196,
                            0.888093,
                            0.793324,
                            1.299410,
                            1.122573,
                            1.024873,
                            0.975046,
                            0.930104,
                            0.894932,
                            0.818726,
                            0.649705
                          ]
                        },
                        {
                          "name":"Sensor 2 nernst temperature (impedance) breakpoint count",
                          "id":"intlambda2tcompbpcount",
                          "value":4.000000
                        },
                        {
                          "name":"Sensor 2 nernst impedance breakpoints",
                          "id":"intlambda2tcompbps",
                          "type":4,
                          "value":[
                            53.500000,
                            80.000000,
                            106.500000,
                            133.500000
                          ]
                        },
                        {
                          "name":"Sensor 2 nernst impedance compensation",
                          "id":"intlambda2tcomp",
                          "type":5,
                          "xaxis":"intlambda2tcompbps",
                          "value":[
                            0.973092,
                            1.000448,
                            1.016080,
                            1.027804
                          ]
                        },
                        {
                          "name":"Sensor 2 pressure compensation source",
                          "type":7,
                          "id":"intlambda2psource",
                          "value":"const_zero"
                        },
                        {
                          "name":"Sensor 2 pressure breakpoint count",
                          "id":"intlambda2pcompbpcount",
                          "value":8.000000
                        },
                        {
                          "name":"Sensor 2 pressure breakpoints",
                          "id":"intlambda2pcompbps",
                          "type":4,
                          "value":[
                            500.000000,
                            700.000000,
                            900.000000,
                            1100.000000,
                            1300.000000,
                            1500.000000,
                            2500.000000,
                            5000.000000
                          ]
                        },
                        {
                          "name":"Sensor 2 pump current pressure compensation",
                          "id":"intlambda2pcomp",
                          "type":5,
                          "xaxis":"intlambda2pcompbps",
                          "yaxis":[
                            "Rich",
                            "Lean"
                          ],
                          "value":[
                            1.279870,
                            1.109872,
                            1.024873,
                            0.975046,
                            0.942805,
                            0.926196,
                            0.888093,
                            0.793324,
                            1.299410,
                            1.122573,
                            1.024873,
                            0.975046,
                            0.930104,
                            0.894932,
                            0.818726,
                            0.649705
                          ]
                        }
                      ]
                    },
                    {
                      "name":"Sensor 1 O2 concentration curve breakpoint count",
                      "id":"intlambdao2bpcount",
                      "value":7.000000
                    },
                    {
                      "name":"Sensor 1 O2 concentration breakpoints",
                      "id":"intlambdao2bps",
                      "type":4,
                      "value":[
                        0.000000,
                        0.330000,
                        0.670000,
                        0.940000,
                        1.380000,
                        2.540000,
                        3.120000
                      ]
                    },
                    {
                      "name":"Sensor 1 O2 concentration curve",
                      "id":"intlambdao2curve",
                      "type":5,
                      "xaxis":"intlambdao2bps",
                      "value":[
                        0.000000,
                        3.000000,
                        6.000000,
                        8.300000,
                        12.000000,
                        21.000000,
                        25.500000
                      ]
                    },
                    {
                      "name":"Sensor 2 O2 concentration curve breakpoint count",
                      "id":"intlambda2o2bpcount",
                      "value":7.000000
                    },
                    {
                      "name":"Sensor 2 O2 concentration breakpoints",
                      "id":"intlambda2o2bps",
                      "type":4,
                      "value":[
                        0.000000,
                        0.330000,
                        0.670000,
                        0.940000,
                        1.380000,
                        2.540000,
                        3.120000
                      ]
                    },
                    {
                      "name":"Sensor 2 O2 concentration curve",
                      "id":"intlambda2o2curve",
                      "type":5,
                      "xaxis":"intlambdao2bps",
                      "value":[
                        0.000000,
                        3.000000,
                        6.000000,
                        8.300000,
                        12.000000,
                        21.000000,
                        25.500000
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name":"Analog input smoothing",
              "type":255,
              "value":[
                {
                  "name":"analog0 low pass rate",
                  "id":"analogfilter0",
                  "value":90.000428
                },
                {
                  "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":"Supply voltage low pass rate",
                  "id":"analogfilter7",
                  "value":98.999250
                },
                {
                  "name":"analog8 low pass rate",
                  "id":"analogfilter8",
                  "value":98.999250
                },
                {
                  "name":"analog9 low pass rate",
                  "id":"analogfilter9",
                  "value":98.999250
                },
                {
                  "name":"analog10 low pass rate",
                  "id":"analogfilter10",
                  "value":98.999250
                },
                {
                  "name":"analog11 low pass rate",
                  "id":"analogfilter11",
                  "value":98.999250
                },
                {
                  "name":"analog12 low pass rate",
                  "id":"analogfilter12",
                  "value":98.999250
                },
                {
                  "name":"analog13 low pass rate",
                  "id":"analogfilter13",
                  "value":49.999390
                },
                {
                  "name":"analog14 low pass rate",
                  "id":"analogfilter14",
                  "value":98.999250
                },
                {
                  "name":"analog15 low pass rate",
                  "id":"analogfilter15",
                  "value":98.999250
                },
                {
                  "name":"analog16 low pass rate",
                  "id":"analogfilter16",
                  "value":49.999390
                },
                {
                  "name":"analog17 low pass rate",
                  "id":"analogfilter17",
                  "value":98.999250
                },
                {
                  "name":"analog18 low pass rate",
                  "id":"analogfilter18",
                  "value":98.999250
                },
                {
                  "name":"analog19 low pass rate",
                  "id":"analogfilter19",
                  "value":98.999250
                },
                {
                  "name":"analog20 low pass rate",
                  "id":"analogfilter20",
                  "value":98.999250
                },
                {
                  "name":"analog21 low pass rate",
                  "id":"analogfilter21",
                  "value":98.999250
                },
                {
                  "name":"analog22 low pass rate",
                  "id":"analogfilter22",
                  "value":98.999250
                },
                {
                  "name":"analog23 low pass rate",
                  "id":"analogfilter23",
                  "value":98.999250
                }
              ]
            },
            {
              "name":"Analog input pull ups",
              "type":255,
              "value":[
                {
                  "name":"Analog 10 pull up value",
                  "id":"pullup_analog10",
                  "type":7,
                  "value":"51k Ohm"
                },
                {
                  "name":"Analog 11 pull up value",
                  "id":"pullup_analog11",
                  "type":7,
                  "value":"51k Ohm"
                }
              ]
            },
            {
              "name":"Barometric pressure sensor",
              "type":255,
              "value":[
                {
                  "name":"Barometric pressure sensor input",
                  "id":"barosource",
                  "type":7,
                  "value":"analog15"
                },
                {
                  "name":"Barometric pressure sensor voltage breakpoints",
                  "id":"barovoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                },
                {
                  "name":"Barometric pressure sensor values",
                  "id":"barovalues",
                  "type":5,
                  "xaxis":"barovoltages",
                  "value":[
                    84.000000,
                    1195.000000
                  ]
                },
                {
                  "name":"Barometric pressure sensor input validation range",
                  "id":"barovalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    4.999995
                  ]
                },
                {
                  "name":"Barometric pressure error value",
                  "id":"barodefault",
                  "value":1000.000000
                }
              ]
            },
            {
              "name":"Exhaust manifold absolute pressure sensor",
              "type":255,
              "value":[
                {
                  "name":"EMAP sensor input",
                  "id":"emapsource",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EMAP sensor voltage breakpoints",
                  "id":"emapvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"EMAP sensor values",
                  "id":"emapvalues",
                  "type":5,
                  "xaxis":"emapvoltages",
                  "value":[
                    0.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"EMAP sensor input validation range",
                  "id":"emapvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"EMAP error value",
                  "id":"emapdefault",
                  "value":1000.000000
                }
              ]
            },
            {
              "name":"Fuel pressure sensor",
              "context":"fuelpress",
              "type":255,
              "value":[
                {
                  "name":"FP sensor input",
                  "id":"fpsource",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"FP sensor type",
                  "id":"fptype",
                  "type":3,
                  "value":"Baro referenced"
                },
                {
                  "name":"FP sensor voltage breakpoints",
                  "id":"fpvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"FP sensor values",
                  "id":"fpvalues",
                  "type":5,
                  "xaxis":"fpvoltages",
                  "value":[
                    0.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"FP sensor input validation range",
                  "id":"fpvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"FP error value",
                  "id":"fpdefault",
                  "value":1000.000000
                },
                {
                  "name":"Acceptable fp_rel_map range when engine running",
                  "id":"fpacceptable",
                  "type":4,
                  "value":[
                    0.000000,
                    65535.000000
                  ]
                }
              ]
            },
            {
              "name":"Exhaust temperature sensors",
              "type":255,
              "context":"egt",
              "value":[
                {
                  "name":"EGT1 source",
                  "id":"egtsrc1",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT2 source",
                  "id":"egtsrc2",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT3 source",
                  "id":"egtsrc3",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT4 source",
                  "id":"egtsrc4",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT5 source",
                  "id":"egtsrc5",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT6 source",
                  "id":"egtsrc6",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT7 source",
                  "id":"egtsrc7",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT8 source",
                  "id":"egtsrc8",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"EGT1 calibration breakpoint count",
                  "id":"egtbpcount1",
                  "value":2.000000
                },
                {
                  "name":"EGT2 calibration breakpoint count",
                  "id":"egtbpcount2",
                  "value":2.000000
                },
                {
                  "name":"EGT3 calibration breakpoint count",
                  "id":"egtbpcount3",
                  "value":2.000000
                },
                {
                  "name":"EGT4 calibration breakpoint count",
                  "id":"egtbpcount4",
                  "value":2.000000
                },
                {
                  "name":"EGT5 calibration breakpoint count",
                  "id":"egtbpcount5",
                  "value":2.000000
                },
                {
                  "name":"EGT6 calibration breakpoint count",
                  "id":"egtbpcount6",
                  "value":2.000000
                },
                {
                  "name":"EGT7 calibration breakpoint count",
                  "id":"egtbpcount7",
                  "value":2.000000
                },
                {
                  "name":"EGT8 calibration breakpoint count",
                  "id":"egtbpcount8",
                  "value":2.000000
                },
                {
                  "name":"EGT1 calibration breakpoints",
                  "id":"egtinput1",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT2 calibration breakpoints",
                  "id":"egtinput2",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT3 calibration breakpoints",
                  "id":"egtinput3",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT4 calibration breakpoints",
                  "id":"egtinput4",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT5 calibration breakpoints",
                  "id":"egtinput5",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT6 calibration breakpoints",
                  "id":"egtinput6",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT7 calibration breakpoints",
                  "id":"egtinput7",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT8 calibration breakpoints",
                  "id":"egtinput8",
                  "type":4,
                  "value":[
                    0.000000,
                    1.000000
                  ]
                },
                {
                  "name":"EGT1 calibration",
                  "type":5,
                  "id":"egtval1",
                  "xaxis":"egtinput1",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT2 calibration",
                  "type":5,
                  "id":"egtval2",
                  "xaxis":"egtinput2",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT3 calibration",
                  "type":5,
                  "id":"egtval3",
                  "xaxis":"egtinput3",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT4 calibration",
                  "type":5,
                  "id":"egtval4",
                  "xaxis":"egtinput4",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT5 calibration",
                  "type":5,
                  "id":"egtval5",
                  "xaxis":"egtinput5",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT6 calibration",
                  "type":5,
                  "id":"egtval6",
                  "xaxis":"egtinput6",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT7 calibration",
                  "type":5,
                  "id":"egtval7",
                  "xaxis":"egtinput7",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                },
                {
                  "name":"EGT8 calibration",
                  "type":5,
                  "id":"egtval8",
                  "xaxis":"egtinput8",
                  "value":[
                    -273.100000,
                    -273.100000
                  ]
                }
              ]
            },
            {
              "name":"Oil pressure sensor",
              "context":"oilpress",
              "type":255,
              "value":[
                {
                  "name":"Oil pressure sensor input",
                  "id":"oilpsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Oil pressure sensor voltage breakpoints",
                  "id":"oilpvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Oil pressure sensor values",
                  "id":"oilpvalues",
                  "type":5,
                  "xaxis":"oilpvoltages",
                  "value":[
                    0.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"Oil pressure sensor input validation range",
                  "id":"oilpvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Oil pressure sensor error value",
                  "id":"oilpdefault",
                  "value":0.000000
                },
                {
                  "name":"Oil pressure engine speed breakpoints",
                  "id":"opspeedbins",
                  "type":4,
                  "value":[
                    0.000000,
                    500.000000,
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    3000.000000,
                    4000.000000,
                    5000.000000
                  ]
                },
                {
                  "name":"Minimum oil pressure Y axis input",
                  "id":"opyaxsrc",
                  "type":7,
                  "value":"oiltemp"
                },
                {
                  "name":"Minimum oil pressure Y axis",
                  "id":"opyaxis",
                  "type":4,
                  "value":[
                    0.000000,
                    20.000000,
                    40.000000,
                    60.000000,
                    80.000000,
                    100.000000,
                    120.000000,
                    140.000000
                  ]
                },
                {
                  "name":"Minimum acceptable oil pressure",
                  "id":"opminvalue",
                  "type":5,
                  "xaxis":"opspeedbins",
                  "yaxis":"opyaxis",
                  "value":[
                    0.000000,
                    700.000000,
                    700.000000,
                    1500.000000,
                    3000.000000,
                    6000.000000,
                    6000.000000,
                    6000.000000,
                    0.000000,
                    660.000000,
                    660.000000,
                    1414.000000,
                    2829.000000,
                    5657.000000,
                    5657.000000,
                    5657.000000,
                    0.000000,
                    620.000000,
                    620.000000,
                    1329.000000,
                    2657.000000,
                    5314.000000,
                    5314.000000,
                    5314.000000,
                    0.000000,
                    580.000000,
                    580.000000,
                    1243.000000,
                    2486.000000,
                    4971.000000,
                    4971.000000,
                    4971.000000,
                    0.000000,
                    540.000000,
                    540.000000,
                    1157.000000,
                    2314.000000,
                    4629.000000,
                    4629.000000,
                    4629.000000,
                    0.000000,
                    500.000000,
                    500.000000,
                    1071.000000,
                    2143.000000,
                    4286.000000,
                    4286.000000,
                    4286.000000,
                    0.000000,
                    460.000000,
                    460.000000,
                    986.000000,
                    1971.000000,
                    3943.000000,
                    3943.000000,
                    3943.000000,
                    0.000000,
                    420.000000,
                    420.000000,
                    900.000000,
                    1800.000000,
                    3600.000000,
                    3600.000000,
                    3600.000000
                  ]
                },
                {
                  "name":"Low oil pressure time before shut off",
                  "id":"optimeout",
                  "value":0.000000
                },
                {
                  "name":"Engine run time before oil pressure shut off activates",
                  "id":"opcheckminruntime",
                  "value":5.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":"Oil temperature sensor valid temperature range",
                  "id":"oiltempvalidrange",
                  "type":4,
                  "value":[
                    -30.000000,
                    130.000000
                  ]
                },
                {
                  "name":"Oil temperature sensor error value",
                  "id":"oiltempdefault",
                  "value":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":[
                    3833.000000,
                    3079.000000,
                    2684.000000,
                    2253.000000,
                    1828.000000,
                    1454.000000,
                    1126.000000,
                    868.000000,
                    661.000000,
                    505.000000,
                    387.000000,
                    298.000000,
                    233.000000,
                    182.000000,
                    144.000000,
                    114.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":"Transmission temperature sensor valid temperature range",
                  "id":"transtempvalidrange",
                  "type":4,
                  "value":[
                    -30.000000,
                    130.000000
                  ]
                },
                {
                  "name":"Transmission temperature sensor error value",
                  "id":"transtempdefault",
                  "value":130.000000
                }
              ]
            },
            {
              "name":"Supply voltage sensing and error checking",
              "type":255,
              "context":"supplyvoltage",
              "value":[
                {
                  "name":"Maximum supply voltage permitted",
                  "id":"maxvoltage",
                  "value":19.000000
                },
                {
                  "name":"Minimum voltage when engine off or cranking",
                  "id":"minvoltagecranking",
                  "value":9.000000
                },
                {
                  "name":"Minimum voltage when engine at idle speed",
                  "id":"minvoltageidle",
                  "value":12.500000
                },
                {
                  "name":"Minimum voltage when engine above idle",
                  "id":"minvoltagerunning",
                  "value":13.000000
                }
              ]
            },
            {
              "name":"Post compressor pressure sensor",
              "type":255,
              "context":"pcpsensor",
              "value":[
                {
                  "name":"Input select",
                  "id":"pcpsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Voltage breakpoints",
                  "id":"pcpvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Values",
                  "id":"pcpvalues",
                  "type":5,
                  "xaxis":"tipvoltages",
                  "value":[
                    0.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"Input validation range",
                  "id":"pcpvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Error value",
                  "id":"pcpdefault",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Post restrictor pressure sensor",
              "type":255,
              "context":"prpsensor",
              "value":[
                {
                  "name":"Input select",
                  "id":"prpsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Voltage breakpoints",
                  "id":"prpvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Values",
                  "id":"prpvalues",
                  "type":5,
                  "xaxis":"prpvoltages",
                  "value":[
                    0.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"Input validation range",
                  "id":"prpvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Error value",
                  "id":"prpdefault",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Fuel temperature sensor",
              "context":"fueltemp",
              "type":255,
              "value":[
                {
                  "name":"Fuel temperature sensor input",
                  "id":"fueltempsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Fuel temperature transfer function breakpoint count",
                  "id":"fueltempbpcount",
                  "value":16.000000
                },
                {
                  "name":"Fuel temperature sensor voltage breakpoints",
                  "id":"fueltempraw",
                  "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":"Fuel temperature sensor values",
                  "id":"fueltempvalues",
                  "type":5,
                  "xaxis":"fueltempraw",
                  "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":"Fuel temperature sensor valid temperature range",
                  "id":"fueltempvalidrange",
                  "type":4,
                  "value":[
                    -30.000000,
                    130.000000
                  ]
                },
                {
                  "name":"Fuel temperature sensor error value",
                  "id":"fueltempdefault",
                  "value":70.000000
                }
              ]
            },
            {
              "name":"Fuel composition sensor",
              "context":"fuelcomp",
              "type":255,
              "value":[
                {
                  "name":"Fuel composition sensor input",
                  "id":"fuelcompsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Fuel composition transfer function breakpoint count",
                  "id":"fuelcompcalptcount",
                  "value":2.000000
                },
                {
                  "name":"Fuel composition sensor input breakpoints",
                  "id":"fuelcompraw",
                  "type":4,
                  "value":[
                    100.000000,
                    1000.000000
                  ]
                },
                {
                  "name":"Fuel composition sensor values",
                  "id":"fuelcompcal",
                  "type":5,
                  "xaxis":"fuelcompraw",
                  "value":[
                    0.000000,
                    100.000000
                  ]
                },
                {
                  "name":"Fuel composition sensor valid composition range",
                  "id":"fuelcompvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5000.000000
                  ]
                },
                {
                  "name":"Fuel composition sensor error value",
                  "id":"fuelcompdefault",
                  "value":0.000000
                }
              ]
            },
            {
              "name":"Direct injection fuel pressure sensor",
              "type":255,
              "context":"difpsens",
              "value":[
                {
                  "name":"Input select",
                  "id":"difpsrc",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Voltage breakpoints",
                  "id":"difpvoltages",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Values",
                  "id":"difpvalues",
                  "type":5,
                  "xaxis":"difpvoltages",
                  "value":[
                    0.000000,
                    200.000000
                  ]
                },
                {
                  "name":"Input validation range",
                  "id":"difpvalidrange",
                  "type":4,
                  "value":[
                    0.000000,
                    5.000000
                  ]
                },
                {
                  "name":"Error value",
                  "id":"difpdefault",
                  "value":0.000000
                }
              ]
            }
          ]
        },
        {
          "name":"Engine speed inputs",
          "type":255,
          "context":"trigger",
          "value":[
            {
              "name":"Trigger mode",
              "type":3,
              "id":"triggermode",
              "value":"Basic"
            },
            {
              "name":"Trigger angle offset",
              "id":"syncangle",
              "value":89.997312
            },
            {
              "name":"Crank trigger active edge",
              "id":"invertcrank",
              "type":3,
              "value":"Falling"
            },
            {
              "name":"Cam sync active edge",
              "applies":[
                "camsyncmode",
                "!=",
                "No cam",
                "triggermode",
                "!=",
                "Basic"
              ],
              "id":"invertcam",
              "type":3,
              "value":"Falling"
            },
            {
              "name":"Multi tooth jitter filter",
              "applies":[
                "triggermode",
                "!=",
                "Basic"
              ],
              "id":"jitterfix",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Trigger pulses skipped when starting",
              "id":"ignoredteeth",
              "value":2.000000
            },
            {
              "name":"Engine speed calculation delay",
              "id":"rpmcalcdelay",
              "value":0.000000
            },
            {
              "name":"Number of trigger tooth config slots",
              "applies_any":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "triggermode",
                "=",
                "Dual edge",
                "triggermode",
                "=",
                "Duty cycle coded",
                "triggermode",
                "=",
                "Clueless missing tooth"
              ],
              "id":"triggertoothcount",
              "type":0,
              "value":2.000000
            },
            {
              "name":"Trigger teeth",
              "id":"triggerteeth",
              "applies_any":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "triggermode",
                "=",
                "Dual edge",
                "triggermode",
                "=",
                "Duty cycle coded",
                "triggermode",
                "=",
                "Clueless missing tooth"
              ],
              "type":5,
              "xaxis":[
                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,
                128
              ],
              "value":[
                59.994546,
                30.002766
              ]
            },
            {
              "name":"Trigger tooth repeat count",
              "applies_any":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "triggermode",
                "=",
                "Dual edge",
                "triggermode",
                "=",
                "Duty cycle coded",
                "triggermode",
                "=",
                "Clueless missing tooth"
              ],
              "id":"repeattooth",
              "type":5,
              "xaxis":[
                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,
                128
              ],
              "value":[
                0.000000,
                21.000000
              ]
            },
            {
              "name":"Crank sync mode for multitooth",
              "applies_any":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "triggermode",
                "=",
                "Dual edge",
                "triggermode",
                "=",
                "Clueless missing tooth"
              ],
              "type":3,
              "id":"cranksyncmode",
              "value":"Missing tooth"
            },
            {
              "name":"Crank sync threshold ratio",
              "applies_any":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "triggermode",
                "=",
                "Dual edge",
                "triggermode",
                "=",
                "Clueless missing tooth"
              ],
              "id":"syncratio",
              "value":1.699980
            },
            {
              "name":"Crank tooth gap distance",
              "applies":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "cranksyncmode",
                "=",
                "Count between long gaps"
              ],
              "id":"crankgapinterval",
              "value":1.000000
            },
            {
              "name":"Cam sync mode",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS"
              ],
              "type":3,
              "id":"camsyncmode",
              "value":"Primary trigger is cam"
            },
            {
              "name":"Require cam sync to start",
              "type":3,
              "id":"requirecamsync",
              "value":"Disabled"
            },
            {
              "name":"Cam sync count",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS",
                "camsyncmode",
                "=",
                "Count cam impulses"
              ],
              "id":"camcount",
              "value":1.000000
            },
            {
              "name":"Crank impulse count range for cam sync",
              "type":4,
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS",
                "camsyncmode",
                "=",
                "Count crank impulses"
              ],
              "id":"camcountrange",
              "value":[
                0.000000,
                2.000000
              ]
            },
            {
              "name":"Cam window filter",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS",
                "camsyncmode",
                "=",
                "Count crank impulses"
              ],
              "id":"camwindowfilter_enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Cam window",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "camsyncmode",
                "=",
                "Count cam impulses",
                "camwindowfilter_enable",
                "=",
                "Enabled"
              ],
              "id":"camwindow",
              "type":5,
              "xaxis":[
                "Begins",
                "Ends"
              ],
              "value":[
                150.002844,
                99.994572
              ]
            },
            {
              "name":"Cam sync delayed evaluation",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS"
              ],
              "id":"camsyncdelayed",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Ignore cam after start",
              "applies":[
                "triggermode",
                "!=",
                "Basic",
                "triggermode",
                "!=",
                "Nissan 360 window CAS"
              ],
              "id":"camignoredpoststart",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Count pattern length",
              "applies":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "camsyncmode",
                "=",
                "Cam count pattern"
              ],
              "id":"campatternsize",
              "value":4.000000
            },
            {
              "name":"Count pattern",
              "applies":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "camsyncmode",
                "=",
                "Cam count pattern"
              ],
              "id":"camcountpattern",
              "type":5,
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Crank duty cycle pattern length",
              "applies":[
                "triggermode",
                "=",
                "Duty cycle coded"
              ],
              "id":"crankpatternsize",
              "value":4.000000
            },
            {
              "name":"Crank duty cycle pattern",
              "applies":[
                "triggermode",
                "=",
                "Duty cycle coded"
              ],
              "id":"crankpattern",
              "type":5,
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Primary trigger filter period",
              "id":"rpmfilter",
              "value":100.000000
            },
            {
              "name":"Cam sync filter period",
              "applies":[
                "camsyncmode",
                "!=",
                "No cam",
                "triggermode",
                "!=",
                "Basic"
              ],
              "id":"camfilter",
              "value":100.000000
            },
            {
              "name":"Crank state for cam sync on crank state",
              "applies":[
                "triggermode",
                "=",
                "Versatile multi tooth",
                "camsyncmode",
                "=",
                "Crank state on cam impulse"
              ],
              "id":"cranksyncstate",
              "value":0.000000
            },
            {
              "name":"Number of base teeth for missing tooth or ring gear mode",
              "applies_any":[
                "triggermode",
                "=",
                "Equal spacing missing tooth",
                "triggermode",
                "=",
                "Ring gear + home"
              ],
              "id":"nminustoothcount",
              "value":36.000000
            },
            {
              "name":"Number of missing teeth for missing tooth mode",
              "applies":[
                "triggermode",
                "=",
                "Equal spacing missing tooth"
              ],
              "id":"nminusmissing",
              "value":1.000000
            },
            {
              "name":"First tooth inaccurate in missing tooth mode",
              "applies":[
                "triggermode",
                "=",
                "Equal spacing missing tooth"
              ],
              "id":"nminusignorefirst",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Last tooth inaccurate in missing tooth mode",
              "applies":[
                "triggermode",
                "=",
                "Equal spacing missing tooth"
              ],
              "id":"nminusignorelast",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Fuel scheduling look-ahead distance",
              "id":"safezone",
              "value":24.960192
            },
            {
              "name":"Event logging mode",
              "type":3,
              "id":"hsloglevel",
              "value":"Everything"
            },
            {
              "name":"Event log extra channel 1",
              "type":7,
              "id":"evtlogchan1",
              "applies":[
                "hsloglevel",
                "=",
                "Everything"
              ],
              "value":"const_zero"
            },
            {
              "name":"Event log extra channel 2",
              "type":7,
              "id":"evtlogchan2",
              "applies":[
                "hsloglevel",
                "=",
                "Everything"
              ],
              "value":"const_zero"
            }
          ]
        },
        {
          "name":"Speed inputs",
          "type":255,
          "context":"speeds",
          "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":"Driven wheel speed source",
              "id":"vsssource",
              "type":3,
              "value":"Digital input 5"
            },
            {
              "name":"Driven wheel speed source if other",
              "applies":[
                "vsssource",
                "=",
                "Other"
              ],
              "id":"vssvarpicker",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"VSS pulses per kilometre",
              "applies":[
                "vsssource",
                "=",
                "Wheel speed input"
              ],
              "id":"pulseperkm",
              "type":0,
              "value":4000.000000
            },
            {
              "name":"Undriven wheel speed source",
              "id":"vsssource2",
              "type":3,
              "value":"Other"
            },
            {
              "name":"Undriven wheel speed source if other",
              "applies":[
                "vsssource2",
                "=",
                "Other"
              ],
              "id":"vssvarpicker2",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Undriven VSS pulses per kilometre",
              "applies":[
                "vsssource2",
                "=",
                "Undriven wheel speed input"
              ],
              "id":"undrivenppkm",
              "type":0,
              "value":2000.000000
            },
            {
              "name":"Speed at 3000RPM per gear",
              "id":"gearratios",
              "type":5,
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "value":[
                20.000000,
                40.000000,
                70.000000,
                100.000000,
                120.000000,
                140.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Turbocharger blade count for speed sensing",
              "id":"turbobladecount",
              "value":11.000000
            },
            {
              "name":"Turbocharger speed sensor frequency divider",
              "id":"turbospeeddivider",
              "value":1.000000
            }
          ]
        },
        {
          "name":"Digital inputs",
          "type":255,
          "context":"io",
          "value":[
            {
              "name":"Digital input 1",
              "type":255,
              "value":[
                {
                  "name":"Digital input 1 function",
                  "id":"din1function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Digital input 1 pull down",
                  "id":"din1pd",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Digital input 1 capture edge",
                  "id":"din1rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Digital input 1 frequency divider",
                  "id":"din1skip",
                  "value":1.000000
                },
                {
                  "name":"Digital input 1 filter period",
                  "id":"din1filter",
                  "value":1.000000
                },
                {
                  "name":"Digital input 1 low pass rate",
                  "id":"freqfilter1",
                  "value":50.000000
                }
              ]
            },
            {
              "name":"Digital input 2",
              "type":255,
              "value":[
                {
                  "name":"Digital input 2 mode",
                  "id":"din2mode",
                  "type":3,
                  "context":"gps",
                  "value":"General purpose digital input"
                },
                {
                  "name":"Digital input 2 baud rate",
                  "id":"din2baud",
                  "applies":[
                    "din2mode",
                    "!=",
                    "General purpose digital input"
                  ],
                  "type":3,
                  "context":"gps",
                  "value":"115200"
                },
                {
                  "name":"Digital input 2 pull down",
                  "id":"din2pd",
                  "type":3,
                  "value":"Disabled"
                }
              ]
            },
            {
              "name":"Digital input 3",
              "type":255,
              "value":[
                {
                  "name":"Digital input 3 function",
                  "id":"din3function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Digital input 3 pull down",
                  "id":"din3pd",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Digital input 3 capture edge",
                  "id":"din3rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Digital input 3 frequency divider",
                  "id":"din3skip",
                  "value":1.000000
                },
                {
                  "name":"Digital input 3 filter period",
                  "id":"din3filter",
                  "value":1.000000
                },
                {
                  "name":"Digital input 3 low pass rate",
                  "id":"freqfilter3",
                  "value":50.000000
                }
              ]
            },
            {
              "name":"Digital input 4",
              "type":255,
              "value":[
                {
                  "name":"Digital input 4 function",
                  "id":"din4function",
                  "type":3,
                  "value":"General purpose digital input"
                },
                {
                  "name":"Digital input 4 pull down",
                  "id":"din4pd",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Digital input 4 capture edge",
                  "id":"din4rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Digital input 4 frequency divider",
                  "id":"din4skip",
                  "value":1.000000
                },
                {
                  "name":"Digital input 4 filter period",
                  "id":"din4filter",
                  "value":1.000000
                },
                {
                  "name":"Digital input 4 low pass rate",
                  "id":"freqfilter4",
                  "value":50.000000
                }
              ]
            },
            {
              "name":"Digital input 5",
              "type":255,
              "value":[
                {
                  "name":"Digital input 5 function",
                  "id":"din5function",
                  "type":3,
                  "value":""
                },
                {
                  "name":"Digital input 5 capture edge",
                  "id":"din5rising",
                  "type":3,
                  "value":"Falling"
                },
                {
                  "name":"Digital input 5 frequency divider",
                  "id":"din5skip",
                  "value":1.000000
                },
                {
                  "name":"Digital input 5 filter period",
                  "id":"din5filter",
                  "value":1.000000
                },
                {
                  "name":"Digital input 5 low pass rate",
                  "id":"freqfilter0",
                  "value":50.000000
                }
              ]
            },
            {
              "name":"Internal UART inputs",
              "type":255,
              "value":[
                {
                  "name":"UART0 (internal) mode",
                  "id":"uart0mode",
                  "type":3,
                  "context":"gps",
                  "value":"Disabled"
                },
                {
                  "name":"UART0 baud rate",
                  "id":"uart0baud",
                  "type":3,
                  "context":"gps",
                  "applies":[
                    "uart0mode",
                    "!=",
                    "Disabled"
                  ],
                  "value":"115200"
                },
                {
                  "name":"UART3 (internal) mode",
                  "id":"uart3mode",
                  "type":3,
                  "applies":[
                    "din2mode",
                    "=",
                    "General purpose digital input"
                  ],
                  "context":"gps",
                  "value":"Disabled"
                },
                {
                  "name":"UART3 baud rate",
                  "id":"uart3baud",
                  "type":3,
                  "context":"gps",
                  "applies":[
                    "uart3mode",
                    "!=",
                    "Disabled"
                  ],
                  "value":"115200"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"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":"Output 5 function",
              "id":"output.4",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 6 function",
              "id":"output.5",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 7 function",
              "id":"output.6",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 8 function",
              "id":"output.7",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 9 function",
              "id":"output.24",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 10 function",
              "id":"output.25",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 11 function",
              "id":"output.26",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Output 12 function",
              "id":"output.27",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 1 alternate function",
              "id":"output.8",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 2 alternate function",
              "id":"output.9",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 3 alternate function",
              "id":"output.10",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 4 alternate function",
              "id":"output.11",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 5 alternate function",
              "id":"output.12",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 6 alternate function",
              "id":"output.13",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 7 alternate function",
              "id":"output.14",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Injector output 8 alternate function",
              "id":"output.15",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"H bridge 1 alternate function",
              "id":"hbridge1function",
              "applies":[
                "dbwenable",
                "=",
                "1234567890"
              ],
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Ignition output 1 allow alternate function",
              "id":"altign.0",
              "value":0.000000
            },
            {
              "name":"Ignition output 1 alternate function",
              "id":"output.16",
              "type":3,
              "applies":[
                "altign.0",
                "=",
                10101010
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 2 allow alternate function",
              "id":"altign.1",
              "value":0.000000
            },
            {
              "name":"Ignition output 2 alternate function",
              "id":"output.17",
              "type":3,
              "applies":[
                "altign.1",
                "=",
                20202020
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 3 allow alternate function",
              "id":"altign.2",
              "value":0.000000
            },
            {
              "name":"Ignition output 3 alternate function",
              "id":"output.18",
              "type":3,
              "applies":[
                "altign.2",
                "=",
                30303030
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 4 allow alternate function",
              "id":"altign.3",
              "value":0.000000
            },
            {
              "name":"Ignition output 4 alternate function",
              "id":"output.19",
              "type":3,
              "applies":[
                "altign.3",
                "=",
                40404040
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 5 allow alternate function",
              "id":"altign.4",
              "value":0.000000
            },
            {
              "name":"Ignition output 5 alternate function",
              "id":"output.20",
              "type":3,
              "applies":[
                "altign.4",
                "=",
                50505050
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 6 allow alternate function",
              "id":"altign.5",
              "value":0.000000
            },
            {
              "name":"Ignition output 6 alternate function",
              "id":"output.21",
              "type":3,
              "applies":[
                "altign.5",
                "=",
                60606060
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 7 allow alternate function",
              "id":"altign.6",
              "value":0.000000
            },
            {
              "name":"Ignition output 7 alternate function",
              "id":"output.22",
              "type":3,
              "applies":[
                "altign.6",
                "=",
                70707070
              ],
              "value":"Disabled"
            },
            {
              "name":"Ignition output 8 allow alternate function",
              "id":"altign.7",
              "value":0.000000
            },
            {
              "name":"Ignition output 8 alternate function",
              "id":"output.23",
              "type":3,
              "applies":[
                "altign.7",
                "=",
                80808080
              ],
              "value":"Disabled"
            }
          ]
        },
        {
          "name":"Tach output cylinder count",
          "id":"tachcylcount",
          "value":4.000000
        },
        {
          "name":"Tachometer output test speed",
          "id":"tachotest",
          "value":0.000000
        },
        {
          "name":"Speedometer output pulses per kilometre",
          "id":"outputpulseperkm",
          "value":0.000000
        },
        {
          "name":"Speedometer output test speed",
          "id":"speedotestspeed",
          "value":0.000000
        },
        {
          "name":"Fan turn-on temperature",
          "id":"fantemperature",
          "value":90.000000
        },
        {
          "name":"Fan turn-off hysteresis",
          "id":"fanhysteresis",
          "value":5.000000
        }
      ]
    },
    {
      "name":"Idle control",
      "context":"idle",
      "type":255,
      "value":[
        {
          "name":"Closed loop idle ignition angle control",
          "id":"idleignenable",
          "type":3,
          "value":"Enabled"
        },
        {
          "name":"Idle control loop setup",
          "type":255,
          "value":[
            {
              "name":"Delay after start",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idlesrvdelay",
              "value":2.000000
            },
            {
              "name":"Delay after enable conditions met",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idledelay",
              "value":1.000000
            },
            {
              "name":"Idle advance PID service interval",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleserviceinterval",
              "value":50.000000
            },
            {
              "name":"Idle control maximum advance",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idlemaxadv",
              "value":14.995890
            },
            {
              "name":"Idle control minimum advance",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleminadv",
              "value":-14.995890
            },
            {
              "name":"Idle advance control maximum engine speed",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleminrpm",
              "value":1800.000000
            },
            {
              "name":"P factor",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleKp",
              "value":0.200080
            },
            {
              "name":"I factor",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleKi",
              "value":0.250100
            },
            {
              "name":"D factor",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleKd",
              "value":0.080032
            },
            {
              "name":"Max I value",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleImax",
              "value":44.989091
            },
            {
              "name":"Min I value",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idleImin",
              "value":-44.990464
            },
            {
              "name":"Idle max throttle",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idlemaxtps",
              "value":0.976560
            },
            {
              "name":"Idle valve closed loop",
              "applies":[
                "idleignenable",
                "=",
                "Enabled"
              ],
              "id":"idlevalvecl",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Idle valve closed loop gain",
              "applies":[
                "idleignenable",
                "=",
                "Enabled",
                "idlevalvecl",
                "=",
                "Enabled"
              ],
              "id":"idlevalvegain",
              "value":0.049827
            },
            {
              "name":"Idle valve maximum feedback",
              "applies":[
                "idleignenable",
                "=",
                "Enabled",
                "idlevalvecl",
                "=",
                "Enabled"
              ],
              "id":"idlevalveImax",
              "value":49.999390
            },
            {
              "name":"Idle valve minimum feedback",
              "applies":[
                "idleignenable",
                "=",
                "Enabled",
                "idlevalvecl",
                "=",
                "Enabled"
              ],
              "id":"idlevalveImin",
              "value":-49.999390
            }
          ]
        },
        {
          "name":"Idle control outputs",
          "type":255,
          "value":[
            {
              "name":"PWM idle valve frequency",
              "applies":[
                "output.2",
                "=",
                "PWM idle"
              ],
              "id":"pwmidleperiod",
              "value":300.030003
            },
            {
              "name":"PWM idle valve supply voltage compensation",
              "applies":[
                "output.2",
                "=",
                "PWM idle"
              ],
              "id":"idlepwmvoltcorr",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"PWM idle valve operating range",
              "applies":[
                "output.2",
                "=",
                "PWM idle"
              ],
              "id":"idledcrange",
              "type":5,
              "xaxis":[
                "Closed",
                "Open"
              ],
              "value":[
                0.000000,
                99.999744
              ]
            },
            {
              "name":"Idle valve start to run taper",
              "id":"idlestarttaper",
              "value":2.000000
            },
            {
              "name":"Stepper valve drive interval",
              "id":"stepinterval",
              "value":2.000000
            },
            {
              "name":"Stepper valve holds current when stopped",
              "id":"idlehold",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Idle valve stays open when throttle open",
              "id":"idlestaysopen",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Stepper valve homing direction",
              "type":3,
              "id":"idlehomedir",
              "value":"Open"
            },
            {
              "name":"Stepper valve homing steps",
              "id":"homesteps",
              "value":300.000000
            },
            {
              "name":"Stepper valve full-open steps",
              "id":"fullopensteps",
              "value":250.000000
            },
            {
              "name":"Stepper command input",
              "type":3,
              "id":"steppergp",
              "value":"Idle control"
            }
          ]
        },
        {
          "name":"Open loop idle valve running position",
          "id":"idlevalverunning",
          "type":5,
          "xaxis":"ectbins",
          "value":[
            99.999744,
            76.952928,
            71.777160,
            68.359200,
            64.941240,
            61.523280,
            58.593600,
            55.175640,
            51.660024,
            48.339720,
            44.824104,
            40.234272,
            34.960848,
            34.960848,
            34.960848,
            34.960848
          ]
        },
        {
          "name":"Idle valve cranking position",
          "id":"idlevalvecranking",
          "type":5,
          "xaxis":"ectbins",
          "value":[
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            90.038832,
            89.745864,
            79.296672,
            65.527176,
            54.980328,
            54.980328,
            54.980328,
            54.980328
          ]
        },
        {
          "name":"Idle speed target",
          "applies":[
            "idleignenable",
            "=",
            "Enabled"
          ],
          "id":"idletarget",
          "type":5,
          "xaxis":"ectbins",
          "value":[
            1400.000000,
            1400.000000,
            1400.000000,
            1300.000000,
            1250.000000,
            1200.000000,
            1100.000000,
            1050.000000,
            1000.000000,
            900.000000,
            900.000000,
            900.000000,
            850.000000,
            800.000000,
            800.000000,
            800.000000
          ]
        },
        {
          "name":"Idle throttle follower",
          "type":255,
          "value":[
            {
              "name":"On-throttle idle speed target adder",
              "id":"idlespeedtpsadder",
              "type":5,
              "xaxis":"ectbins",
              "value":[
                300.000000,
                300.000000,
                300.000000,
                300.000000,
                300.000000,
                300.000000,
                300.000000,
                300.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"On-throttle idle valve position adder",
              "id":"idlevalvetpsadder",
              "type":5,
              "xaxis":"ectbins",
              "value":[
                9.960912,
                9.960912,
                9.960912,
                8.007792,
                5.957016,
                4.980456,
                4.980456,
                4.980456,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Adder hold time after throttle shuts",
              "id":"idleadderhold",
              "value":500.000000
            },
            {
              "name":"Adder decay time after hold expires",
              "id":"idleadderdecay",
              "value":500.000000
            }
          ]
        },
        {
          "name":"Auxiliary idle speed increase inputs",
          "type":255,
          "value":[
            {
              "name":"Idle up command input 1",
              "id":"idleupin1",
              "type":3,
              "value":"Always off"
            },
            {
              "name":"Idle up mode 1",
              "id":"idleupadder1",
              "type":3,
              "value":"Minimum target"
            },
            {
              "name":"Idle up speed 1",
              "id":"idleuprpm1",
              "value":1500.000000
            },
            {
              "name":"Idle up valve position 1",
              "id":"idleupiac1",
              "value":59.960784
            },
            {
              "name":"Idle up command input 2",
              "id":"idleupin2",
              "type":3,
              "value":"Always off"
            },
            {
              "name":"Idle up mode 2",
              "id":"idleupadder2",
              "type":3,
              "value":"Minimum target"
            },
            {
              "name":"Idle up speed 2",
              "id":"idleuprpm2",
              "value":1500.000000
            },
            {
              "name":"Idle up valve position 2",
              "id":"idleupiac2",
              "value":59.960784
            }
          ]
        }
      ]
    },
    {
      "name":"Fuelling",
      "type":255,
      "context":"fuel",
      "value":[
        {
          "name":"Global fuel multiplier",
          "id":"globalfuelmult",
          "value":1.000448
        },
        {
          "name":"Lambda target rich limit",
          "id":"maxrich",
          "value":0.650000
        },
        {
          "name":"Lambda target lean limit",
          "id":"maxlean",
          "value":1.150000
        },
        {
          "name":"Cranking and warm-up modifiers",
          "type":255,
          "value":[
            {
              "name":"Warm-up fuel multiplier",
              "id":"warmupmap",
              "type":5,
              "xaxis":"ectbins",
              "yaxis":"runtimebins",
              "value":[
                1.800000,
                1.700000,
                1.630000,
                1.620000,
                1.570000,
                1.450000,
                1.340000,
                1.230000,
                1.230000,
                1.200000,
                1.170000,
                1.140000,
                1.090000,
                1.000000,
                1.000000,
                1.000000,
                1.790000,
                1.690000,
                1.620000,
                1.610000,
                1.560000,
                1.450000,
                1.320000,
                1.230000,
                1.230000,
                1.200000,
                1.170000,
                1.140000,
                1.090000,
                1.000000,
                1.000000,
                1.000000,
                1.770000,
                1.680000,
                1.610000,
                1.560000,
                1.510000,
                1.390000,
                1.310000,
                1.230000,
                1.230000,
                1.190000,
                1.170000,
                1.140000,
                1.090000,
                1.000000,
                1.000000,
                1.000000,
                1.750000,
                1.660000,
                1.590000,
                1.540000,
                1.500000,
                1.380000,
                1.300000,
                1.230000,
                1.220000,
                1.190000,
                1.170000,
                1.140000,
                1.090000,
                1.000000,
                1.000000,
                1.000000,
                1.700000,
                1.610000,
                1.550000,
                1.510000,
                1.460000,
                1.370000,
                1.290000,
                1.220000,
                1.210000,
                1.180000,
                1.180000,
                1.140000,
                1.080000,
                1.000000,
                1.000000,
                1.000000,
                1.650000,
                1.570000,
                1.510000,
                1.470000,
                1.400000,
                1.350000,
                1.290000,
                1.220000,
                1.200000,
                1.170000,
                1.180000,
                1.120000,
                1.080000,
                1.000000,
                1.000000,
                1.000000,
                1.600000,
                1.530000,
                1.470000,
                1.430000,
                1.350000,
                1.300000,
                1.250000,
                1.220000,
                1.200000,
                1.170000,
                1.180000,
                1.120000,
                1.080000,
                1.000000,
                1.000000,
                1.000000,
                1.500000,
                1.440000,
                1.390000,
                1.360000,
                1.330000,
                1.300000,
                1.250000,
                1.210000,
                1.180000,
                1.180000,
                1.170000,
                1.120000,
                1.070000,
                1.000000,
                1.000000,
                1.000000
              ]
            },
            {
              "name":"Alternate fuel warm-up fuel multiplier",
              "id":"flexwarmupmap",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "type":5,
              "xaxis":"ectbins",
              "yaxis":"runtimebins",
              "value":[
                1.000000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000,
                0.700000
              ]
            },
            {
              "name":"Engine run-time breakpoints",
              "id":"runtimebins",
              "type":4,
              "value":[
                0.000000,
                2.000000,
                5.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                60.000000
              ]
            },
            {
              "name":"Maximum cranking speed",
              "id":"crankingspeed",
              "value":400.000000
            },
            {
              "name":"Cranking fuel quantity",
              "id":"startingfuelmap",
              "type":5,
              "xaxis":"startingfuelrpmbins",
              "yaxis":"startingfueltpsbins",
              "value":[
                45.000000,
                45.000000,
                45.000000,
                45.000000,
                45.000000,
                45.000000,
                45.000000,
                45.000000,
                15.000000,
                15.000000,
                15.000000,
                15.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Alternate fuel cranking fuel quantity",
              "id":"flexstartingfuelmap",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "type":5,
              "xaxis":"startingfuelrpmbins",
              "yaxis":"startingfueltpsbins",
              "value":[
                20.000000,
                20.000000,
                25.000000,
                30.000000,
                20.000000,
                20.000000,
                25.000000,
                30.000000,
                10.000000,
                10.000000,
                12.000000,
                15.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Cranking fuel coolant temp modifier",
              "id":"startingfuelcltcorr",
              "type":5,
              "xaxis":"ectbins",
              "value":[
                3.000000,
                2.870000,
                2.660000,
                2.500000,
                2.300000,
                2.100000,
                1.960000,
                1.730000,
                1.400000,
                1.220000,
                1.170000,
                1.100000,
                1.000000,
                0.920000,
                0.800000,
                0.800000
              ]
            },
            {
              "name":"Alternate fuel cranking fuel coolant temp modifier",
              "id":"flexstartingfuelcltcorr",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "type":5,
              "xaxis":"ectbins",
              "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":"Cranking fuel engine speed breakpoints",
              "id":"startingfuelrpmbins",
              "type":4,
              "value":[
                100.000000,
                200.000000,
                300.000000,
                400.000000
              ]
            },
            {
              "name":"Cranking fuel throttle breakpoints",
              "id":"startingfueltpsbins",
              "type":4,
              "value":[
                0.000000,
                40.038960,
                59.960784,
                79.980264
              ]
            },
            {
              "name":"Fuel composition warm-up and cranking fuel blending",
              "id":"flexwarmupscale",
              "applies":[
                "fuelcompbpcount",
                "!=",
                1
              ],
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Run-mode modifiers",
          "type":255,
          "value":[
            {
              "name":"Charge air density temperature multiplier",
              "id":"airtempcorr",
              "type":5,
              "xaxis":"airtempbins",
              "value":[
                1.236882,
                1.183147,
                1.146021,
                1.120619,
                1.096194,
                1.070792,
                1.050275,
                1.024873,
                1.000448,
                0.979931,
                0.961368,
                0.936943,
                0.911541,
                0.874415,
                0.818726,
                0.697578
              ]
            },
            {
              "name":"Temperature modifier load source",
              "id":"lambdatrimloadsource",
              "type":7,
              "value":"map"
            },
            {
              "name":"Load breakpoints for temperature modifiers",
              "id":"lambdatrimloadbins",
              "type":4,
              "value":[
                600.000000,
                800.000000,
                1000.000000,
                1400.000000,
                1800.000000,
                2200.000000,
                2600.000000,
                3000.000000
              ]
            },
            {
              "name":"Engine speed breakpoints for temperature modifiers",
              "id":"lambdatrimrpmbins",
              "type":4,
              "value":[
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000,
                7000.000000,
                8000.000000
              ]
            },
            {
              "name":"Air temperature breakpoints",
              "id":"airtemplambdabins",
              "type":4,
              "value":[
                -20.000000,
                0.000000,
                20.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                120.000000
              ]
            },
            {
              "name":"Air temperature enrichment",
              "id":"airtemplambdatrim",
              "type":5,
              "xaxis":"airtemplambdabins",
              "yaxis":"lambdatrimloadbins",
              "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":"Air temperature enrichment engine speed modifier",
              "id":"airtempltrpm",
              "type":5,
              "xaxis":"lambdatrimrpmbins",
              "value":[
                0.500224,
                0.800163,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.899817,
                0.800163
              ]
            },
            {
              "name":"Coolant temperature breakpoints",
              "id":"cooltemplambdabins",
              "type":4,
              "value":[
                0.000000,
                20.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                110.000000,
                120.000000
              ]
            },
            {
              "name":"Coolant temperature enrichment",
              "id":"cooltemplambdatrim",
              "type":5,
              "xaxis":"cooltemplambdabins",
              "yaxis":"lambdatrimloadbins",
              "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":"Coolant temperature enrichment engine speed modifier",
              "id":"cooltempltrpm",
              "type":5,
              "xaxis":"lambdatrimrpmbins",
              "value":[
                0.500224,
                0.800163,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.899817,
                0.800163
              ]
            },
            {
              "name":"General purpose modifier enable",
              "id":"gpfuelmod1enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose fuel modifier conditional",
              "id":"gpfuelmod1switch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose fuel modifier input",
              "applies":[
                "gpfuelmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod1var",
              "type":7,
              "value":"analog7"
            },
            {
              "name":"General purpose fuel modifier breakpoints",
              "applies":[
                "gpfuelmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod1bins",
              "type":4,
              "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 fuel modifier",
              "applies":[
                "gpfuelmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod1",
              "type":5,
              "xaxis":"gpfuelmod1bins",
              "value":[
                1.000448,
                0.000000,
                0.000000,
                0.000000,
                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 modifier 2 enable",
              "id":"gpfuelmod2enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose fuel modifier 2 conditional",
              "id":"gpfuelmod2switch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose fuel modifier 2 input",
              "applies":[
                "gpfuelmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod2var",
              "type":7,
              "value":"analog7"
            },
            {
              "name":"General purpose fuel modifier 2 breakpoints",
              "applies":[
                "gpfuelmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod2bins",
              "type":4,
              "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 fuel modifier 2",
              "applies":[
                "gpfuelmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpfuelmod2",
              "type":5,
              "xaxis":"gpfuelmod2bins",
              "value":[
                1.000448,
                0.000000,
                0.000000,
                0.000000,
                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":"Injector phasing",
          "id":"injphase",
          "xaxis":[
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8
          ],
          "type":5,
          "value":[
            360.000234,
            360.000234,
            360.000234,
            360.000234,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000
          ]
        },
        {
          "name":"Mapped injection angle enable",
          "id":"injanglemap_enable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Injection angle control mode",
          "id":"injanglemode",
          "type":3,
          "value":"Start of injection"
        },
        {
          "name":"Injection angle maximum inter cycle variation",
          "id":"injanglemaxcyclevar",
          "value":9.997260
        },
        {
          "name":"Transient fuelling",
          "type":255,
          "value":[
            {
              "name":"Breakpoints and thresholds",
              "type":255,
              "value":[
                {
                  "name":"Use new transient fuelling strategy",
                  "type":3,
                  "id":"newtransientmaps",
                  "value":"Disabled"
                },
                {
                  "name":"Minimum throttle rate of change",
                  "id":"transfuelmindelta",
                  "value":19.550000
                },
                {
                  "name":"Minimum MAP rate of change",
                  "id":"transfuelminmapdelta",
                  "value":500.000000
                },
                {
                  "name":"Maximum throttle position",
                  "id":"transfuelmaxthrottle",
                  "value":59.960784
                },
                {
                  "name":"Delay after start before enable",
                  "id":"transfuelstartdelay",
                  "value":0.100000
                },
                {
                  "name":"Warmup modifier",
                  "id":"transcoldmult",
                  "value":1.300387
                },
                {
                  "name":"Per event decay hold off",
                  "id":"transfueleventdecayholdoff",
                  "value":3.000000
                },
                {
                  "name":"Engine speed breakpoints",
                  "id":"transfuelspeedbins",
                  "type":4,
                  "value":[
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    2500.000000,
                    3000.000000,
                    3500.000000,
                    4000.000000,
                    5000.000000
                  ]
                },
                {
                  "name":"Throttle positive rate breakpoints",
                  "id":"transfueldtpposbins",
                  "type":4,
                  "applies":[
                    "newtransientmaps",
                    "=",
                    "Enabled"
                  ],
                  "value":[
                    19.550000,
                    39.100000,
                    60.605000,
                    80.155000,
                    99.705000,
                    199.410000,
                    400.775000,
                    799.595000
                  ]
                },
                {
                  "name":"Throttle negative rate breakpoints",
                  "id":"transfueldtpnegbins",
                  "type":4,
                  "applies":[
                    "newtransientmaps",
                    "=",
                    "Enabled"
                  ],
                  "value":[
                    -19.550000,
                    -39.100000,
                    -60.605000,
                    -80.155000,
                    -99.705000,
                    -199.410000,
                    -400.775000,
                    -799.595000
                  ]
                },
                {
                  "name":"MAP positive rate breakpoints",
                  "id":"transfueldmapposbins",
                  "type":4,
                  "applies":[
                    "newtransientmaps",
                    "=",
                    "Enabled"
                  ],
                  "value":[
                    200.000000,
                    400.000000,
                    600.000000,
                    800.000000,
                    1000.000000,
                    2000.000000,
                    4000.000000,
                    8000.000000
                  ]
                },
                {
                  "name":"MAP negative rate breakpoints",
                  "id":"transfueldmapnegbins",
                  "type":4,
                  "applies":[
                    "newtransientmaps",
                    "=",
                    "Enabled"
                  ],
                  "value":[
                    -200.000000,
                    -400.000000,
                    -600.000000,
                    -800.000000,
                    -1000.000000,
                    -2000.000000,
                    -4000.000000,
                    -8000.000000
                  ]
                }
              ]
            },
            {
              "name":"Throttle rate of change positive gain",
              "type":5,
              "id":"transfuelposgain",
              "xaxis":"transfuelspeedbins",
              "variations":[
                [
                  "newtransientmaps",
                  "=",
                  "Disabled"
                ],
                {
                  "yaxis":null,
                  "name":"Throttle rate of change positive gain"
                },
                [
                  "newtransientmaps",
                  "=",
                  "Enabled"
                ],
                {
                  "yaxis":"transfueldtpposbins",
                  "name":"Transient fuel throttle positive rate adder"
                }
              ],
              "yaxis":null,
              "value":[
                6.912275,
                5.760392,
                3.000367,
                0.960391,
                0.540281,
                0.431834,
                0.395685,
                0.395685
              ]
            },
            {
              "name":"Throttle rate of change negative gain",
              "id":"transfuelneggain",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "variations":[
                [
                  "newtransientmaps",
                  "=",
                  "Disabled"
                ],
                {
                  "yaxis":null,
                  "name":"Throttle rate of change negative gain"
                },
                [
                  "newtransientmaps",
                  "=",
                  "Enabled"
                ],
                {
                  "yaxis":"transfueldtpnegbins",
                  "name":"Transient fuel throttle negative rate subtraction"
                }
              ],
              "yaxis":null,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"MAP rate of change positive gain",
              "type":5,
              "id":"transfuelmapposgain",
              "xaxis":"transfuelspeedbins",
              "variations":[
                [
                  "newtransientmaps",
                  "=",
                  "Disabled"
                ],
                {
                  "yaxis":null,
                  "name":"MAP rate of change positive gain"
                },
                [
                  "newtransientmaps",
                  "=",
                  "Enabled"
                ],
                {
                  "yaxis":"transfueldmapposbins",
                  "name":"MAP rate of change positive rate adder"
                }
              ],
              "yaxis":null,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"MAP rate of change negative gain",
              "id":"transfuelmapneggain",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "variations":[
                [
                  "newtransientmaps",
                  "=",
                  "Disabled"
                ],
                {
                  "yaxis":null,
                  "name":"MAP rate of change negative gain"
                },
                [
                  "newtransientmaps",
                  "=",
                  "Enabled"
                ],
                {
                  "yaxis":"transfueldmapnegbins",
                  "name":"MAP rate of change negative rate subtraction"
                }
              ],
              "yaxis":null,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Positive decay rate over time",
              "id":"transfuelposdecay",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                0.500000,
                0.500000,
                0.500000,
                0.500000,
                0.500000,
                0.500000,
                0.500000,
                0.500000
              ]
            },
            {
              "name":"Negative decay rate over time",
              "id":"transfuelnegdecay",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                1.000000
              ]
            },
            {
              "name":"Positive decay rate per injected event",
              "id":"transfuelpereventposdecay",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471
              ]
            },
            {
              "name":"Negative decay rate per injected event",
              "id":"transfuelpereventnegdecay",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471,
                1.176471
              ]
            },
            {
              "name":"Maximum fuel added",
              "id":"transfuelmaxpos",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                20.000000,
                15.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                5.000000,
                0.000000
              ]
            },
            {
              "name":"Maximum fuel removed",
              "id":"transfuelmaxneg",
              "type":5,
              "xaxis":"transfuelspeedbins",
              "value":[
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                5.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Overrun fuel cut",
          "type":255,
          "value":[
            {
              "name":"Overrun fuel cut enable",
              "id":"overrunenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Engine speed breakpoints",
              "id":"overrunrpmbins",
              "type":4,
              "value":[
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000,
                7000.000000,
                8000.000000
              ]
            },
            {
              "name":"Throttle threshold",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "type":5,
              "xaxis":"overrunrpmbins",
              "id":"overrunthrottle",
              "value":[
                1.953120,
                1.953120,
                3.027336,
                4.980456,
                7.031232,
                9.960912,
                15.039024,
                20.019480
              ]
            },
            {
              "name":"Overrun resume ignition retard",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "type":5,
              "xaxis":"overrunrpmbins",
              "id":"overrunresumeretard",
              "value":[
                0.000000,
                9.997260,
                9.997260,
                9.997260,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Overrun resume ignition retard decay time",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrunretarddecay",
              "value":200.000000
            },
            {
              "name":"Overrun resume ignition retard maximum throttle position",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrunretardmaxthrottle",
              "value":49.999872
            },
            {
              "name":"MAP threshold",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrunmap",
              "value":300.000000
            },
            {
              "name":"Minimum speed to activate",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overruninitrpm",
              "value":2400.000000
            },
            {
              "name":"Speed to resume",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrunresumerpm",
              "value":1800.000000
            },
            {
              "name":"Minimum coolant temperature",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrunect",
              "value":60.000000
            },
            {
              "name":"Activation delay",
              "applies":[
                "overrunenable",
                "=",
                "Enabled"
              ],
              "id":"overrundelay",
              "value":500.000000
            }
          ]
        },
        {
          "id":"lambdainfuelcalc",
          "name":"Include lambda target in fuel mass formula when using fuel mass strategy",
          "type":3,
          "applies":[
            "fuelstrategy",
            "=",
            "Fuel mass"
          ],
          "value":"Disabled"
        },
        {
          "name":"Closed loop",
          "context":"lambda",
          "type":255,
          "value":[
            {
              "name":"Lambda safety checks",
              "context":"lambdasafety",
              "type":255,
              "value":[
                {
                  "name":"Minimum engine speed for safety check",
                  "id":"lambdasafetyminrpm",
                  "value":3000.000000
                },
                {
                  "name":"Minimum MAP for safety check",
                  "id":"lambdasafetyminmap",
                  "value":1500.000000
                },
                {
                  "name":"Minimum throttle for safety check",
                  "id":"lambdasafetymintps",
                  "value":24.999936
                },
                {
                  "name":"Maximum deviation lean of target",
                  "id":"lambdasafetymaxlean",
                  "value":0.100000
                },
                {
                  "name":"Maximum time to tolerate lean condition",
                  "id":"lambdasafetymaxleantime",
                  "value":1.500000
                },
                {
                  "name":"Maximum deviation rich of target",
                  "id":"lambdasafetymaxrich",
                  "value":0.150000
                },
                {
                  "name":"Maximum time to tolerate rich condition",
                  "id":"lambdasafetymaxrichtime",
                  "value":2.500000
                }
              ]
            },
            {
              "name":"Long term fuel trims enable",
              "id":"ltft_enable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Lambda sensor validity checks",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"lambdacheckenable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Engine speed breakpoints for feedback sensitivity",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"cl_gain_rpmbins",
              "type":4,
              "value":[
                500.000000,
                800.000000,
                1000.000000,
                1500.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000
              ]
            },
            {
              "name":"Feedback sensitivity",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"cl_gain",
              "type":5,
              "xaxis":"cl_gain_rpmbins",
              "value":[
                0.099654,
                0.200285,
                0.299939,
                0.399593,
                0.399593,
                0.599878,
                0.599878,
                0.599878
              ]
            },
            {
              "name":"Maximum single step change",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"cl_maxstep",
              "value":1.000000
            },
            {
              "name":"LTFT Service interval",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"ltftserviceintcurve",
              "type":5,
              "xaxis":"cl_gain_rpmbins",
              "value":[
                200.000000,
                200.000000,
                200.000000,
                170.000000,
                150.000000,
                120.000000,
                100.000000,
                80.000000
              ]
            },
            {
              "name":"Cycles to hold off after transient events",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"transienttrimholdoff",
              "value":5.000000
            },
            {
              "name":"Enable conditions",
              "type":255,
              "value":[
                {
                  "name":"After start delay",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_minruntime",
                  "value":30.000000
                },
                {
                  "name":"Minimum coolant temperature",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_minect",
                  "value":70.000000
                },
                {
                  "name":"Minimum engine speed",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_minrpm",
                  "value":600.000000
                },
                {
                  "name":"Maximum engine speed",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_maxrpm",
                  "value":5000.000000
                },
                {
                  "name":"Minimum load",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_minload",
                  "value":250.000000
                },
                {
                  "name":"Maximum load",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_maxload",
                  "value":1300.000000
                },
                {
                  "name":"Richest lambda target",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_richlimit",
                  "value":0.700000
                },
                {
                  "name":"Leanest lambda target",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_leanlimit",
                  "value":1.200000
                },
                {
                  "name":"Richest indicated lambda",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_minlambda",
                  "value":0.690000
                },
                {
                  "name":"Leanest indicated lambda",
                  "applies":[
                    "ltft_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"cl_maxlambda",
                  "value":1.500000
                },
                {
                  "name":"Extra condition to enable use of learned data",
                  "id":"ltftcondition",
                  "type":3,
                  "value":"Always on"
                },
                {
                  "name":"Extra condition to allow learning",
                  "id":"learncondition",
                  "type":3,
                  "value":"Always on"
                }
              ]
            },
            {
              "name":"Maximum fuel added",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"cl_maxadded",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Maximum fuel removed",
              "applies":[
                "ltft_enable",
                "=",
                "Enabled"
              ],
              "id":"cl_maxremoved",
              "type":5,
              "xaxis":"fuelrpmbins",
              "yaxis":"fuelpriloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Fuel system configuration",
          "type":255,
          "value":[
            {
              "name":"Primary fuel specific gravity",
              "id":"primaryfuelgravity",
              "value":0.700000
            },
            {
              "name":"Primary injector location",
              "id":"injectionmode",
              "type":3,
              "value":"Inlet tract"
            },
            {
              "name":"Secondary injectors present on slave device",
              "id":"secinjremote",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Primary injector flow rate",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "id":"primaryinjectorfullflow",
              "value":230.100000
            },
            {
              "name":"Primary injector low pulse width flow rate",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "id":"primaryinjectorlowflow",
              "value":245.100000
            },
            {
              "name":"Primary injector linear flow threshold",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "id":"primaryinjectorlowthresh",
              "value":5.000000
            },
            {
              "name":"Primary injector pulses per engine cycle",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "id":"priminjdivs",
              "type":3,
              "value":"One"
            },
            {
              "name":"Primary injector voltage compensation breakpoints",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "id":"primaryvbatbreakpoints",
              "type":4,
              "value":[
                8.000000,
                9.000000,
                10.000000,
                11.000000,
                12.000000,
                13.000000,
                14.000000,
                15.000000,
                16.000000,
                17.000000,
                18.000000,
                19.000000
              ]
            },
            {
              "name":"Primary injector offset",
              "id":"primaryinjectoroffset",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "xaxis":"primaryvbatbreakpoints",
              "type":5,
              "value":[
                1.500000,
                1.400000,
                1.300000,
                1.200000,
                1.100000,
                1.000000,
                0.900000,
                0.800000,
                0.700000,
                0.600000,
                0.500000,
                0.000000
              ]
            },
            {
              "name":"Primary injector fuel pressure modifier enable",
              "id":"fpmod_enable",
              "applies":[
                "injectionmode",
                "!=",
                "Direct injection"
              ],
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Fuel pressure modifier breakpoint count",
              "applies":[
                "fpmod_enable",
                "=",
                "Enabled"
              ],
              "id":"fpmodifierbincount",
              "value":8.000000
            },
            {
              "name":"Fuel pressure breakpoints",
              "applies":[
                "fpmod_enable",
                "=",
                "Enabled"
              ],
              "id":"fpmodifierbreakpoints",
              "type":4,
              "value":[
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000,
                7000.000000,
                8000.000000
              ]
            },
            {
              "name":"Fuel pressure flow modifier",
              "applies":[
                "fpmod_enable",
                "=",
                "Enabled"
              ],
              "id":"flowmodifier",
              "type":5,
              "xaxis":"fpmodifierbreakpoints",
              "value":[
                0.577407,
                0.816772,
                1.000448,
                1.154814,
                1.290617,
                1.414696,
                1.527051,
                1.632567
              ]
            },
            {
              "name":"Fuel pressure injector latency modifier",
              "applies":[
                "fpmod_enable",
                "=",
                "Enabled"
              ],
              "id":"openingtimemodifier",
              "type":5,
              "xaxis":"fpmodifierbreakpoints",
              "value":[
                0.800163,
                0.899817,
                1.000448,
                1.100102,
                1.199756,
                1.300387,
                1.400041,
                1.499695
              ]
            },
            {
              "name":"Second stage fuel specific gravity",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secfuelgravity",
              "value":0.700000
            },
            {
              "name":"Second stage injector flow rate",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secinjectorfullflow",
              "value":1200.000000
            },
            {
              "name":"Second stage injector low pulse width flow rate",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secinjectorlowflow",
              "value":1500.000000
            },
            {
              "name":"Second stage injector linear flow threshold",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secinjectorlowthresh",
              "value":2.000000
            },
            {
              "name":"Second stage injector voltage compensation breakpoints",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secvbatbreakpoints",
              "type":4,
              "value":[
                8.000000,
                9.000000,
                10.000000,
                11.000000,
                12.000000,
                13.000000,
                14.000000,
                15.000000,
                16.000000,
                17.000000,
                18.000000,
                19.000000
              ]
            },
            {
              "name":"Second stage injector offset",
              "applies":[
                "secinjcount",
                "!=",
                0
              ],
              "id":"secinjectoroffset",
              "xaxis":"secvbatbreakpoints",
              "type":5,
              "value":[
                1.500000,
                1.400000,
                1.300000,
                1.200000,
                1.100000,
                1.000000,
                0.900000,
                0.800000,
                0.700000,
                0.600000,
                0.500000,
                0.000000
              ]
            },
            {
              "name":"Direct injection parameters",
              "type":255,
              "value":[
                {
                  "name":"Minimum rail pressure to operate direct injectors",
                  "id":"mindirailp",
                  "value":60.000000
                },
                {
                  "name":"Earliest allowed start of injection",
                  "id":"distartangle",
                  "value":360.000234
                },
                {
                  "name":"Latest allowed end of injection",
                  "id":"diendangle",
                  "value":89.997312
                },
                {
                  "name":"Longest allowed injection duration",
                  "id":"dimaxduration",
                  "value":240.000156
                },
                {
                  "name":"Direct injector flow model",
                  "id":"diflowmodel",
                  "type":5,
                  "xaxis":"difmvolbins",
                  "yaxis":"difmpressbins",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Fuel quantity breakpoints",
                  "id":"difmvolbins",
                  "type":4,
                  "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":"Fuel quantity breakpoint count",
                  "id":"difmvbcount",
                  "value":16.000000
                },
                {
                  "name":"Rail pressure breakpoints",
                  "id":"difmpressbins",
                  "type":4,
                  "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":"Rail pressure breakpoint count",
                  "id":"difmpbcount",
                  "value":16.000000
                }
              ]
            },
            {
              "name":"Direct injection fuel rail pressure control",
              "type":255,
              "context":"difp",
              "value":[
                {
                  "name":"Rail pressure control base effort",
                  "type":5,
                  "id":"difpbasedutymap",
                  "xaxis":"rprpmbins",
                  "yaxis":"railpressurebins",
                  "yvariable":"difptarget",
                  "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":"Rail pressure PID control service interval",
                  "id":"difppidserviceperiod",
                  "value":50.000000
                },
                {
                  "name":"Proportional gain",
                  "id":"difpKp",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "yaxis":"difperrbins",
                  "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":"Integral gain",
                  "id":"difpKi",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "yaxis":"difperrbins",
                  "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":"Derivative gain",
                  "id":"difpKd",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "value":[
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000
                  ]
                },
                {
                  "name":"Proportional gain injection quantity modifier",
                  "id":"difpKpiqmod",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "yaxis":"difuelmassbins",
                  "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":"Integral gain injection quantity modifier",
                  "id":"difpKiiqmod",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "yaxis":"difuelmassbins",
                  "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":"Integral maximum value",
                  "id":"difpImax",
                  "value":50.000916
                },
                {
                  "name":"Integral minimum value",
                  "id":"difpImin",
                  "value":-50.000916
                },
                {
                  "name":"Rail pressure control fuel quantity compensation",
                  "id":"difpqtyadder",
                  "type":5,
                  "xaxis":"rprpmbins",
                  "yaxis":"difuelmassbins",
                  "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":"Engine speed breakpoints for rail pressure control",
                  "id":"rprpmbins",
                  "type":4,
                  "value":[
                    500.000000,
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    3000.000000,
                    4000.000000,
                    5000.000000,
                    6000.000000
                  ]
                },
                {
                  "name":"Rail pressure error breakpoints",
                  "id":"difperrbins",
                  "type":4,
                  "value":[
                    -300.000000,
                    -200.000000,
                    -100.000000,
                    -50.000000,
                    50.000000,
                    100.000000,
                    200.000000,
                    300.000000
                  ]
                },
                {
                  "name":"Fuel quantity breakpoints for rail pressure control",
                  "id":"difuelmassbins",
                  "type":4,
                  "value":[
                    0.000000,
                    20.000000,
                    40.000000,
                    60.000000,
                    80.000000,
                    100.000000,
                    120.000000,
                    140.000000
                  ]
                },
                {
                  "name":"Rail pressure target breakpoints for secondary control",
                  "id":"difptargetbins",
                  "type":4,
                  "value":[
                    300.000000,
                    500.000000,
                    700.000000,
                    900.000000,
                    1100.000000,
                    1300.000000,
                    1500.000000,
                    1700.000000
                  ]
                },
                {
                  "name":"MAP breakpoints for direct injection pressure control",
                  "id":"dimapbins",
                  "type":4,
                  "value":[
                    400.000000,
                    600.000000,
                    800.000000,
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    2500.000000,
                    3000.000000
                  ]
                },
                {
                  "name":"Synchronous suction valve control",
                  "type":255,
                  "value":[
                    {
                      "name":"Synchronised suction control valve base angle",
                      "id":"scvbaseangle",
                      "value":0.000000
                    },
                    {
                      "name":"Synchronised suction control valve maximum advance angle",
                      "id":"scvmaxadvance",
                      "value":0.000000
                    },
                    {
                      "name":"Single synchronised suction control valve opening events per engine cycle",
                      "id":"scvpercycle",
                      "value":2.000000
                    },
                    {
                      "name":"Engine speed breakpoints for suction control valve",
                      "id":"scvrpmbins",
                      "type":4,
                      "value":[
                        1000.000000,
                        2000.000000,
                        3000.000000,
                        4000.000000,
                        5000.000000,
                        6000.000000,
                        7000.000000,
                        8000.000000
                      ]
                    },
                    {
                      "name":"Y axis variable for suction control valve advance",
                      "id":"scvangleyaxvar",
                      "type":7,
                      "value":"const_zero"
                    },
                    {
                      "name":"Y axis for suction control valve advance",
                      "id":"scvangleyaxis",
                      "type":4,
                      "value":[
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000
                      ]
                    },
                    {
                      "name":"Y axis variable for suction control valve duration",
                      "id":"scvdurayaxvar",
                      "type":7,
                      "value":"const_zero"
                    },
                    {
                      "name":"Y axis for suction control valve duration",
                      "id":"scvdurayaxis",
                      "type":4,
                      "value":[
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000,
                        0.000000
                      ]
                    },
                    {
                      "name":"Suction control valve advance",
                      "id":"scvanglemap",
                      "type":5,
                      "xaxis":"scvrpmbins",
                      "yaxis":"scvangleyaxis",
                      "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":"Suction control valve duration",
                      "id":"scvdurationmap",
                      "type":5,
                      "xaxis":"scvrpmbins",
                      "yaxis":"scvdurayaxis",
                      "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":"Duration mode",
                      "id":"scvdurmode",
                      "type":3,
                      "value":"Crank angle"
                    },
                    {
                      "name":"Angle reference mode",
                      "id":"scvanglemode",
                      "type":3,
                      "value":"TDC cylinder 1"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name":"Power enrichment mode",
          "type":255,
          "context":"powerenrich",
          "value":[
            {
              "name":"Power enrichment mode enable",
              "applies":[
                "lambdainfuelcalc",
                "=",
                "Enabled"
              ],
              "id":"powerenrichmentenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Power enrichment start throttle position",
              "applies":[
                "lambdainfuelcalc",
                "=",
                "Enabled",
                "powerenrichmentenable",
                "=",
                "Enabled"
              ],
              "id":"peminthrottle",
              "value":59.960784
            },
            {
              "name":"Power enrichment full throttle position",
              "applies":[
                "lambdainfuelcalc",
                "=",
                "Enabled",
                "powerenrichmentenable",
                "=",
                "Enabled"
              ],
              "id":"pefullthrottle",
              "value":90.038832
            }
          ]
        },
        {
          "name":"Air mass strategy parameters",
          "type":255,
          "value":[
            {
              "name":"Fuel composition breakpoint count",
              "id":"fuelcompbpcount",
              "value":1.000000
            },
            {
              "name":"Fuel composition breakpoints",
              "id":"fuelcompbreakpoints",
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Stoichiometric air\/fuel ratio of primary fuel system",
              "id":"primaryfuelstoich",
              "type":5,
              "xaxis":"fuelcompbreakpoints",
              "value":[
                14.700000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Ignition",
      "context":"ignition",
      "type":255,
      "value":[
        {
          "name":"Cranking spark angle",
          "id":"crankingsparkangle",
          "value":9.997260
        },
        {
          "name":"Static test timing",
          "id":"staticign_enable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Static test timing value",
          "applies":[
            "staticign_enable",
            "=",
            "Enabled"
          ],
          "id":"staticignangle",
          "value":19.994520
        },
        {
          "name":"Max spark angle",
          "id":"maxsparkadvance",
          "value":49.997286
        },
        {
          "name":"Min spark angle",
          "id":"minsparkadvance",
          "value":-49.997286
        },
        {
          "name":"Primary spark duration",
          "id":"sparkduration",
          "value":1.000000
        },
        {
          "name":"Trailing spark duration",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailsparkduration",
          "value":1.000000
        },
        {
          "name":"Dwell battery voltage breakpoints",
          "id":"dwellvbatbins",
          "type":4,
          "value":[
            8.000000,
            10.000000,
            11.000000,
            12.000000,
            13.000000,
            14.000000,
            15.000000,
            18.000000
          ]
        },
        {
          "name":"Primary dwell time",
          "id":"dwelltime",
          "type":5,
          "xaxis":"dwellvbatbins",
          "value":[
            8.000000,
            7.000000,
            6.000000,
            4.000000,
            3.500000,
            3.000000,
            2.800000,
            2.500000
          ]
        },
        {
          "name":"Trailing ignition dwell time",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"traildwelltime",
          "type":5,
          "xaxis":"dwellvbatbins",
          "value":[
            8.000000,
            7.000000,
            6.000000,
            5.000000,
            4.000000,
            3.000000,
            2.800000,
            2.500000
          ]
        },
        {
          "name":"Dwell multiplier during cranking",
          "id":"crankingdwellmodifier",
          "value":1.500000
        },
        {
          "name":"Primary coil duty cycle limit",
          "id":"coildclimit",
          "value":50.000000
        },
        {
          "name":"Trailing coil duty cycle limit",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailcoildclimit",
          "value":50.000000
        },
        {
          "name":"Dwell modifier engine speed breakpoints",
          "id":"dwellrpmbins",
          "type":4,
          "value":[
            2000.000000,
            4000.000000,
            6000.000000,
            8000.000000
          ]
        },
        {
          "name":"Dwell modifier MAP breakpoints",
          "id":"dwellmapbins",
          "type":4,
          "value":[
            500.000000,
            1000.000000,
            1500.000000,
            2000.000000
          ]
        },
        {
          "name":"Dwell modifier",
          "id":"dwellmod",
          "type":5,
          "xaxis":"dwellrpmbins",
          "yaxis":"dwellmapbins",
          "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":"Ignition modifiers",
          "type":255,
          "value":[
            {
              "name":"Temperature modifier load source",
              "id":"igntrimloadsource",
              "type":7,
              "value":"map"
            },
            {
              "name":"Load breakpoints for temperature modifiers",
              "id":"airtempignmapbins",
              "type":4,
              "value":[
                600.000000,
                1000.000000,
                1400.000000,
                1800.000000,
                2200.000000,
                2600.000000,
                3000.000000,
                0.000000
              ]
            },
            {
              "name":"Engine speed breakpoints for temperature modifiers",
              "id":"igntrimrpmbins",
              "type":4,
              "value":[
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000,
                7000.000000,
                8000.000000
              ]
            },
            {
              "name":"Air temperature breakpoints",
              "id":"airtempignbins",
              "type":4,
              "value":[
                -20.000000,
                0.000000,
                20.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                120.000000
              ]
            },
            {
              "name":"Air temperature timing retard",
              "id":"airtempign",
              "type":5,
              "xaxis":"airtempignbins",
              "yaxis":"airtempignmapbins",
              "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":"Air temperature timing retard engine speed modifier",
              "id":"airtempitrpm",
              "type":5,
              "xaxis":"igntrimrpmbins",
              "value":[
                0.500224,
                0.800163,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.899817,
                0.800163
              ]
            },
            {
              "name":"Coolant temperature breakpoints",
              "id":"cooltempignbins",
              "type":4,
              "value":[
                0.000000,
                20.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                110.000000,
                120.000000
              ]
            },
            {
              "name":"Coolant temperature ignition modifier",
              "id":"cooltempigntrim",
              "type":5,
              "xaxis":"cooltempignbins",
              "yaxis":"airtempignmapbins",
              "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":"Coolant temperature timing retard engine speed modifier",
              "id":"cooltempitrpm",
              "type":5,
              "xaxis":"igntrimrpmbins",
              "value":[
                0.500224,
                0.800163,
                1.000000,
                1.000000,
                1.000000,
                1.000000,
                0.899817,
                0.800163
              ]
            },
            {
              "name":"General purpose modifier enable",
              "id":"gpignmod1enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose ignition modifier conditional",
              "id":"gpignmod1switch",
              "applies":[
                "gpignmod1enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose ignition modifier input",
              "applies":[
                "gpignmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod1var",
              "type":7,
              "value":"analog7"
            },
            {
              "name":"General purpose ignition modifier breakpoints",
              "applies":[
                "gpignmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod1bins",
              "type":4,
              "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 ignition modifier",
              "applies":[
                "gpignmod1enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod1",
              "type":5,
              "xaxis":"gpignmod1bins",
              "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 modifier 2 enable",
              "id":"gpignmod2enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose ignition modifier 2 conditional",
              "id":"gpignmod2switch",
              "applies":[
                "gpignmod2enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose ignition modifier 2 input",
              "applies":[
                "gpignmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod2var",
              "type":7,
              "value":"analog7"
            },
            {
              "name":"General purpose ignition modifier 2 breakpoints",
              "applies":[
                "gpignmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod2bins",
              "type":4,
              "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 ignition modifier 2",
              "applies":[
                "gpignmod2enable",
                "=",
                "Enabled"
              ],
              "id":"gpignmod2",
              "type":5,
              "xaxis":"gpignmod2bins",
              "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":"Transient ignition",
          "context":"transign",
          "type":255,
          "value":[
            {
              "name":"Transient ignition retard enable",
              "id":"transientign_enable",
              "type":7,
              "value":"Disabled"
            },
            {
              "name":"Breakpoints and settings",
              "type":255,
              "value":[
                {
                  "name":"Throttle rate of change threshold",
                  "id":"transignmintprate",
                  "value":50.830000
                },
                {
                  "name":"MAP rate of change threshold",
                  "id":"transignminmaprate",
                  "value":500.000000
                },
                {
                  "name":"Decay hold off cycles",
                  "id":"transigndecayholdoff",
                  "value":3.000000
                },
                {
                  "name":"Engine speed breakpoints",
                  "id":"transignspeedbins",
                  "type":4,
                  "value":[
                    1000.000000,
                    2000.000000,
                    3000.000000,
                    4000.000000,
                    5000.000000,
                    6000.000000,
                    7000.000000,
                    8000.000000
                  ]
                },
                {
                  "name":"MAP breakpoints",
                  "id":"transignmapbins",
                  "type":4,
                  "value":[
                    400.000000,
                    600.000000,
                    800.000000,
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    2500.000000,
                    3000.000000
                  ]
                },
                {
                  "name":"Throttle rate of change breakpoints",
                  "id":"transigndtpbins",
                  "type":4,
                  "value":[
                    50.830000,
                    99.705000,
                    150.535000,
                    199.410000,
                    400.775000,
                    600.185000,
                    799.595000,
                    1000.960000
                  ]
                },
                {
                  "name":"MAP rate of change breakpoints",
                  "id":"transigndmapbins",
                  "type":4,
                  "value":[
                    200.000000,
                    400.000000,
                    600.000000,
                    800.000000,
                    1000.000000,
                    2000.000000,
                    4000.000000,
                    8000.000000
                  ]
                }
              ]
            },
            {
              "name":"Throttle activated ignition retard",
              "id":"transigndtp",
              "type":5,
              "xaxis":"transignspeedbins",
              "yaxis":"transigndtpbins",
              "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":"MAP activated ignition retard",
              "id":"transigndmap",
              "type":5,
              "xaxis":"transignspeedbins",
              "yaxis":"transigndmapbins",
              "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":"Sensitivity adjustment",
              "id":"transignmapsens",
              "type":5,
              "xaxis":"transignspeedbins",
              "yaxis":"transignmapbins",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                25.098048,
                25.098048,
                25.098048,
                25.098048,
                12.549024,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000,
                0.000000,
                74.901987,
                100.000035,
                100.000035,
                100.000035,
                66.666690,
                33.333345,
                0.000000
              ]
            },
            {
              "name":"Decay rate",
              "id":"transigndecay",
              "type":5,
              "xaxis":"transignspeedbins",
              "value":[
                0.999726,
                0.999726,
                0.999726,
                0.999726,
                0.999726,
                0.999726,
                0.999726,
                0.999726
              ]
            }
          ]
        },
        {
          "name":"Knock management",
          "type":255,
          "context":"knock",
          "value":[
            {
              "name":"Knock sensing enable",
              "id":"knockenable",
              "type":7,
              "value":"Disabled"
            },
            {
              "name":"Breakpoints",
              "type":255,
              "value":[
                {
                  "name":"Knock tables engine speed breakpoint count",
                  "id":"knockrpmbincount",
                  "value":12.000000
                },
                {
                  "name":"Knock management engine load source",
                  "id":"knockloadsrc",
                  "type":7,
                  "value":"map"
                },
                {
                  "name":"Knock tables engine load breakpoint count",
                  "id":"knockloadbincount",
                  "value":10.000000
                },
                {
                  "name":"Knock tables engine speed breakpoints",
                  "id":"knockrpmbins",
                  "type":4,
                  "value":[
                    800.000000,
                    1000.000000,
                    1500.000000,
                    2000.000000,
                    2500.000000,
                    3000.000000,
                    3500.000000,
                    4000.000000,
                    4500.000000,
                    5000.000000,
                    5500.000000,
                    6000.000000
                  ]
                },
                {
                  "name":"Knock tables engine load breakpoints",
                  "id":"knockloadbins",
                  "type":4,
                  "value":[
                    200.000000,
                    300.000000,
                    400.000000,
                    500.000000,
                    600.000000,
                    700.000000,
                    800.000000,
                    900.000000,
                    1000.000000,
                    1100.000000
                  ]
                }
              ]
            },
            {
              "name":"Sensor setup",
              "type":255,
              "value":[
                {
                  "name":"Knock sensor assignment",
                  "id":"knocksensorassign",
                  "type":5,
                  "xaxis":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "value":[
                    1.000000,
                    1.000000,
                    1.000000,
                    1.000000
                  ]
                },
                {
                  "name":"Knock sensor bandpass frequency",
                  "id":"knockbpf",
                  "type":7,
                  "value":"6.12 kHz"
                },
                {
                  "name":"Knock sensor 1 gain",
                  "id":"knockgain",
                  "type":7,
                  "value":"0.4"
                },
                {
                  "name":"Knock sensor 2 gain",
                  "id":"knock2gain",
                  "type":7,
                  "value":"0.111"
                },
                {
                  "name":"Knock sensor integrator time constant",
                  "id":"knockitc",
                  "type":7,
                  "value":"150 µs"
                },
                {
                  "name":"Knock sensing window start",
                  "id":"knockwindowstart",
                  "value":4.998630
                },
                {
                  "name":"Knock sensing window duration",
                  "id":"knockwindowduration",
                  "value":35.001396
                },
                {
                  "name":"Minimum engine speed to enable sensor diagnostics",
                  "id":"knocksensortestrpm",
                  "value":2000.000000
                },
                {
                  "name":"Minimum engine load to enable sensor diagnostics",
                  "id":"knocksensortestload",
                  "value":600.000000
                },
                {
                  "name":"Minimum sensor diagnostic noise level",
                  "id":"knocksensortestvalue",
                  "value":30.000000
                }
              ]
            },
            {
              "name":"Knock management mode",
              "id":"knockctlmode",
              "type":7,
              "value":"Blended"
            },
            {
              "name":"Erase learned knock data when ECU powers off",
              "id":"knockvolatile",
              "type":7,
              "value":"Disabled"
            },
            {
              "name":"Knock retard step size",
              "id":"knockretstep",
              "value":0.527346
            },
            {
              "name":"Intense knock retard step size",
              "id":"knockretbigstep",
              "value":0.966801
            },
            {
              "name":"Intense knock amplitude threshold",
              "id":"bigknockthreshold",
              "value":250.000000
            },
            {
              "name":"Knock retard decay step size",
              "id":"knockadvstep",
              "value":0.175782
            },
            {
              "name":"Minimum coolant temperature to enable knock detection",
              "id":"knockminect",
              "value":30.000000
            },
            {
              "name":"Minimum engine run time to enable knock detection",
              "id":"knockminruntime",
              "value":10.000000
            },
            {
              "name":"Knock retard decay interval",
              "id":"knockrecoverdelay",
              "value":20.000000
            },
            {
              "name":"Knock retard decay minimum engine speed",
              "id":"knockrecoverminrpm",
              "value":1700.000000
            },
            {
              "name":"Knock retard decay maximum engine speed",
              "id":"knockrecovermaxrpm",
              "value":4000.000000
            },
            {
              "name":"Knock retard decay minimum engine load",
              "id":"knockrecoverminload",
              "value":750.000000
            },
            {
              "name":"Excessive knock error threshold",
              "id":"knockerrorval",
              "value":15.029361
            },
            {
              "name":"Knock retard authority",
              "id":"knockignauthority",
              "type":5,
              "xaxis":"knockrpmbins",
              "yaxis":"knockloadbins",
              "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,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                5.976588,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067,
                12.041067
              ]
            },
            {
              "name":"Knock detection threshold",
              "id":"knockthreshold",
              "type":5,
              "xaxis":"knockrpmbins",
              "yaxis":"knockloadbins",
              "value":[
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                1020.000000,
                1020.000000,
                500.000000,
                500.000000,
                500.000000,
                500.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000,
                600.000000
              ]
            },
            {
              "name":"Knock threshold offset by cylinder",
              "id":"knockthresholdadjust",
              "type":5,
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Knock retard applied on sensor fault",
              "id":"knockfailmap",
              "type":5,
              "xaxis":"knockrpmbins",
              "yaxis":"knockloadbins",
              "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,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                5.009787,
                2.988294,
                2.988294,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Knock trims table (read only)",
              "id":"knocktrim",
              "type":5,
              "xaxis":"ignrpmbins",
              "yaxis":"ignpriloadbins",
              "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Cylinder knock index (read only)",
              "id":"cylknockindex",
              "type":5,
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Common breakpoints",
      "type":255,
      "value":[
        {
          "name":"Engine speed breakpoints for fuelling",
          "id":"fuelrpmbins",
          "type":4,
          "variable":"rpm",
          "value":[
            500.000000,
            1000.000000,
            1500.000000,
            2000.000000,
            2500.000000,
            3000.000000,
            3500.000000,
            4000.000000,
            4500.000000,
            5000.000000,
            5500.000000,
            6000.000000,
            6500.000000,
            7000.000000,
            7500.000000,
            8000.000000
          ]
        },
        {
          "name":"Engine speed breakpoints for ignition",
          "id":"ignrpmbins",
          "type":4,
          "variable":"rpm",
          "value":[
            500.000000,
            1000.000000,
            1500.000000,
            2000.000000,
            2500.000000,
            3000.000000,
            3500.000000,
            4000.000000,
            4500.000000,
            5000.000000,
            5500.000000,
            6000.000000,
            6500.000000,
            7000.000000,
            7500.000000,
            8000.000000
          ]
        },
        {
          "name":"Fuel primary load breakpoints",
          "id":"fuelpriloadbins",
          "type":4,
          "value":[
            200.000000,
            300.000000,
            400.000000,
            500.000000,
            600.000000,
            700.000000,
            800.000000,
            900.000000,
            1000.000000,
            1100.000000
          ]
        },
        {
          "name":"Fuel secondary load breakpoints",
          "applies":[
            "twofuelmaps",
            "=",
            "Enabled"
          ],
          "id":"fuelsecloadbins",
          "type":4,
          "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
          ]
        },
        {
          "name":"Lambda target engine speed breakpoints",
          "id":"lambdatargetspeedbins",
          "type":4,
          "value":[
            1000.000000,
            2000.000000,
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000,
            7000.000000,
            8000.000000
          ]
        },
        {
          "name":"Lambda target load breakpoints",
          "id":"lambdatargetloadbins",
          "type":4,
          "value":[
            200.000000,
            500.000000,
            800.000000,
            1100.000000,
            1400.000000,
            1700.000000,
            2000.000000,
            2300.000000
          ]
        },
        {
          "name":"Ignition primary load breakpoints",
          "id":"ignpriloadbins",
          "type":4,
          "value":[
            200.000000,
            300.000000,
            400.000000,
            500.000000,
            600.000000,
            700.000000,
            800.000000,
            900.000000,
            1000.000000,
            1100.000000
          ]
        },
        {
          "name":"Ignition secondary load breakpoints",
          "id":"ignsecloadbins",
          "applies":[
            "twoignmaps",
            "=",
            "Enabled"
          ],
          "type":4,
          "value":[
            0.195312,
            0.488280,
            0.976560,
            1.464840,
            1.953120,
            2.441400,
            2.929680,
            3.906240,
            4.882800,
            5.859360,
            6.835920,
            7.812480
          ]
        },
        {
          "name":"Per cylinder load breakpoints",
          "applies_any":[
            "percylfueltuning",
            "=",
            "Enabled",
            "percyligntuning",
            "=",
            "Enabled"
          ],
          "id":"percylloadbins",
          "type":4,
          "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
          ]
        },
        {
          "name":"Charge air temperature breakpoints",
          "id":"airtempbins",
          "type":4,
          "variable":"airtemp",
          "value":[
            -32.000000,
            -19.000000,
            -10.000000,
            -4.000000,
            2.000000,
            8.000000,
            13.000000,
            19.000000,
            25.000000,
            31.000000,
            37.000000,
            45.000000,
            54.000000,
            68.000000,
            91.000000,
            154.000000
          ]
        },
        {
          "name":"Coolant temperature breakpoints",
          "id":"ectbins",
          "type":4,
          "value":[
            -32.000000,
            -19.000000,
            -10.000000,
            -4.000000,
            2.000000,
            8.000000,
            13.000000,
            19.000000,
            25.000000,
            31.000000,
            37.000000,
            45.000000,
            54.000000,
            68.000000,
            91.000000,
            154.000000
          ]
        },
        {
          "name":"Injection angle load breakpoints",
          "applies":[
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injangleloadbins",
          "type":4,
          "value":[
            400.000000,
            600.000000,
            800.000000,
            1000.000000,
            1200.000000,
            1500.000000,
            2000.000000,
            2500.000000
          ]
        },
        {
          "name":"Injection angle speed breakpoints",
          "applies":[
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injanglespeedbins",
          "type":4,
          "value":[
            1000.000000,
            2000.000000,
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000,
            7000.000000,
            8000.000000
          ]
        },
        {
          "name":"Fuel split load breakpoints",
          "applies":[
            "secinjcount",
            "!=",
            0
          ],
          "id":"fuelsplitloadbins",
          "type":4,
          "value":[
            800.000000,
            1000.000000,
            1200.000000,
            1500.000000,
            2000.000000,
            2200.000000,
            2500.000000,
            3000.000000,
            3500.000000,
            4000.000000
          ]
        },
        {
          "name":"Fuel split engine speed breakpoints",
          "applies":[
            "secinjcount",
            "!=",
            0
          ],
          "id":"fuelsplitrpmbins",
          "type":4,
          "value":[
            1000.000000,
            2000.000000,
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000,
            7000.000000,
            8000.000000,
            9000.000000
          ]
        },
        {
          "name":"Trailing ignition load breakpoints",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailingloadbins",
          "type":4,
          "value":[
            600.000000,
            1000.000000,
            1200.000000,
            1500.000000,
            2000.000000,
            2400.000000,
            2700.000000,
            3000.000000
          ]
        },
        {
          "name":"Trailing ignition engine speed breakpoints",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailingrpmbins",
          "type":4,
          "value":[
            1000.000000,
            2000.000000,
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000,
            7000.000000,
            8000.000000
          ]
        },
        {
          "name":"Variable valve timing load breakpoints",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "id":"vvtloadbins",
          "type":4,
          "value":[
            600.000000,
            800.000000,
            1000.000000,
            1500.000000,
            2000.000000,
            2500.000000
          ]
        },
        {
          "name":"Variable valve timing speed breakpoints",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "id":"vvtspeedbins",
          "type":4,
          "value":[
            1000.000000,
            1500.000000,
            2000.000000,
            2500.000000,
            3000.000000,
            3500.000000,
            4000.000000,
            4500.000000,
            5000.000000,
            5500.000000,
            6000.000000,
            6500.000000,
            7000.000000
          ]
        },
        {
          "name":"Fuelling primary load source",
          "id":"fuelpriloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Fuelling secondary load source",
          "applies":[
            "twofuelmaps",
            "=",
            "Enabled"
          ],
          "id":"fuelsecloadsource",
          "type":7,
          "value":"throttle"
        },
        {
          "name":"Lambda target load source",
          "id":"lambdatargetloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Ignition primary load source",
          "id":"ignpriloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Ignition secondary load source",
          "applies":[
            "twoignmaps",
            "=",
            "Enabled"
          ],
          "id":"ignsecloadsource",
          "type":7,
          "value":"throttle"
        },
        {
          "name":"Per-cylinder tuning load source",
          "applies_any":[
            "percylfueltuning",
            "=",
            "Enabled",
            "percyligntuning",
            "=",
            "Enabled"
          ],
          "id":"percylloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Injection angle tuning load source",
          "applies":[
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injangleloadsrc",
          "type":7,
          "value":"map"
        },
        {
          "name":"Fuel split load source",
          "applies":[
            "secinjcount",
            "!=",
            0
          ],
          "id":"fuelsplitloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Trailing ignition load source",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailingloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Variable valve timing load source",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "id":"vvtloadsource",
          "type":7,
          "value":"map"
        },
        {
          "name":"Fuel speed breakpoint count",
          "id":"fuelrpmbincount",
          "type":0,
          "value":16.000000
        },
        {
          "name":"Fuel primary load breakpoint count",
          "id":"fuelpribincount",
          "type":0,
          "value":10.000000
        },
        {
          "name":"Fuel secondary load breakpoint count",
          "applies":[
            "twofuelmaps",
            "=",
            "Enabled"
          ],
          "id":"fuelsecbincount",
          "type":0,
          "value":12.000000
        },
        {
          "name":"Lambda target engine speed breakpoint count",
          "id":"lambdatargetspeedbincount",
          "value":8.000000
        },
        {
          "name":"Lambda target load breakpoint count",
          "id":"lambdatargetloadbincount",
          "value":8.000000
        },
        {
          "name":"Ignition speed breakpoint count",
          "id":"ignrpmbincount",
          "type":0,
          "value":16.000000
        },
        {
          "name":"Ignition primary load breakpoint count",
          "id":"ignpribincount",
          "type":0,
          "value":10.000000
        },
        {
          "name":"Ignition secondary load breakpoint count",
          "applies":[
            "twoignmaps",
            "=",
            "Enabled"
          ],
          "id":"ignsecbincount",
          "type":0,
          "value":12.000000
        },
        {
          "name":"Per-cylinder load breakpoint count",
          "applies_any":[
            "percylfueltuning",
            "=",
            "Enabled",
            "percyligntuning",
            "=",
            "Enabled"
          ],
          "id":"percylbincount",
          "value":12.000000
        },
        {
          "name":"Injection angle load breakpoint count",
          "applies":[
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injangleloadbincount",
          "value":8.000000
        },
        {
          "name":"Injection angle speed breakpoint count",
          "applies":[
            "injanglemap_enable",
            "=",
            "Enabled"
          ],
          "id":"injanglespeedbincount",
          "value":8.000000
        },
        {
          "name":"Fuel split load breakpoint count",
          "applies":[
            "secinjcount",
            "!=",
            0
          ],
          "id":"fuelsplitloadbincount",
          "value":10.000000
        },
        {
          "name":"Fuel split engine speed breakpoint count",
          "applies":[
            "secinjcount",
            "!=",
            0
          ],
          "id":"fuelsplitrpmbincount",
          "value":9.000000
        },
        {
          "name":"Trailing ignition load breakpoint count",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailingloadbincount",
          "value":8.000000
        },
        {
          "name":"Trailing ignition speed breakpoint count",
          "applies":[
            "trailcoilcount",
            "!=",
            0
          ],
          "id":"trailingrpmbincount",
          "value":8.000000
        },
        {
          "name":"Variable valve timing speed breakpoint count",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "id":"vvtspeedbincount",
          "value":13.000000
        },
        {
          "name":"Variable valve timing load breakpoint count",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "id":"vvtloadbincount",
          "value":6.000000
        }
      ]
    },
    {
      "name":"User defined functions",
      "type":255,
      "value":[
        {
          "name":"General purpose logic",
          "type":255,
          "value":[
            {
              "name":"General purpose logic 1",
              "type":255,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var0",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type0",
                  "value":">"
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val0",
                  "value":700.000000
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster0",
                  "value":150.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and0",
                  "value":"AND"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var0",
                  "type":7,
                  "value":"throttle"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type0",
                  "value":"<"
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val0",
                  "value":70.019352
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and0",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster0",
                  "value":9.960912
                },
                {
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var1",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type1",
                  "value":"<"
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val1",
                  "value":800.000000
                },
                {
                  "name":"Hysteresis 1",
                  "id":"gpiocond1hyster1",
                  "value":100.000000
                },
                {
                  "name":"Next condition",
                  "type":7,
                  "id":"gpiocond1and1",
                  "value":"AND"
                },
                {
                  "name":"Variable 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2var1",
                  "type":7,
                  "value":"throttle"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type1",
                  "value":">"
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val1",
                  "value":9.960912
                },
                {
                  "name":"Hysteresis 2",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2hyster1",
                  "value":3.027336
                },
                {
                  "name":"Next condition",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2and1",
                  "value":"AND"
                },
                {
                  "name":"Variable 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3var1",
                  "type":7,
                  "value":"throttle"
                },
                {
                  "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",
                  "value":49.999872
                },
                {
                  "name":"Hysteresis 3",
                  "applies":[
                    "gpiocond1and1",
                    "!=",
                    "No other condition",
                    "gpiocond2and1",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond3hyster1",
                  "value":3.027336
                }
              ]
            },
            {
              "name":"General purpose logic 3",
              "type":255,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var2",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type2",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val2",
                  "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",
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var3",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type3",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val3",
                  "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",
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var5",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type5",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val5",
                  "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",
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var6",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type6",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val6",
                  "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",
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var7",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type7",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val7",
                  "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",
                  "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",
                  "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,
              "context":"gplogic",
              "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":"Variable 1",
                  "id":"gpiocond1var8",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type8",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val8",
                  "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",
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var10",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type10",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val10",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type10",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and10",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val10",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var11",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type11",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val11",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type11",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and11",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val11",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var12",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type12",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val12",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type12",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and12",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val12",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var13",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type13",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val13",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type13",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and13",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val13",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var14",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type14",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val14",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type14",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and14",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val14",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var15",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type15",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val15",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type15",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and15",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val15",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var16",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type16",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val16",
                  "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":"time"
                },
                {
                  "name":"Condition 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "type":7,
                  "id":"gpiocond2type16",
                  "value":"="
                },
                {
                  "name":"Value 2",
                  "applies":[
                    "gpiocond1and16",
                    "!=",
                    "No other condition"
                  ],
                  "id":"gpiocond2val16",
                  "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":"time"
                },
                {
                  "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",
                  "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":"Variable 1",
                  "id":"gpiocond1var17",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Condition 1",
                  "type":3,
                  "id":"gpiocond1type17",
                  "value":"="
                },
                {
                  "name":"Value 1",
                  "id":"gpiocond1val17",
                  "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",
                  "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",
                  "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":"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":"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":"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":"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":"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":"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":"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":"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":"rawenginespeed"
                }
              ]
            },
            {
              "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":"rawenginespeed"
                }
              ]
            },
            {
              "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":"rawenginespeed"
                }
              ]
            },
            {
              "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":"rawenginespeed"
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose timers",
          "type":255,
          "context":"gptimers",
          "value":[
            {
              "name":"General purpose timer 1",
              "type":255,
              "value":[
                {
                  "name":"Timer mode",
                  "id":"timermode1",
                  "type":3,
                  "value":"Normal"
                },
                {
                  "name":"Timer resets when not enabled",
                  "id":"timerautoreset1",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Enable input",
                  "id":"timerenable1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"timerreset1",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Edge sensitive reset input",
                  "id":"timeredgereset1",
                  "type":3,
                  "value":"Always off"
                }
              ]
            },
            {
              "name":"General purpose timer 2",
              "type":255,
              "value":[
                {
                  "name":"Timer mode",
                  "id":"timermode2",
                  "type":3,
                  "value":"Normal"
                },
                {
                  "name":"Timer resets when not enabled",
                  "id":"timerautoreset2",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Enable input",
                  "id":"timerenable2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"timerreset2",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Edge sensitive reset input",
                  "id":"timeredgereset2",
                  "type":3,
                  "value":"Always off"
                }
              ]
            },
            {
              "name":"General purpose timer 3",
              "type":255,
              "value":[
                {
                  "name":"Timer mode",
                  "id":"timermode3",
                  "type":3,
                  "value":"Normal"
                },
                {
                  "name":"Timer resets when not enabled",
                  "id":"timerautoreset3",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Enable input",
                  "id":"timerenable3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"timerreset3",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Edge sensitive reset input",
                  "id":"timeredgereset3",
                  "type":3,
                  "value":"Always off"
                }
              ]
            },
            {
              "name":"General purpose timer 4",
              "type":255,
              "value":[
                {
                  "name":"Timer mode",
                  "id":"timermode4",
                  "type":3,
                  "value":"Normal"
                },
                {
                  "name":"Timer resets when not enabled",
                  "id":"timerautoreset4",
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Enable input",
                  "id":"timerenable4",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Reset input",
                  "id":"timerreset4",
                  "type":3,
                  "value":"Always off"
                },
                {
                  "name":"Edge sensitive reset input",
                  "id":"timeredgereset4",
                  "type":3,
                  "value":"Always off"
                }
              ]
            }
          ]
        },
        {
          "name":"General purpose logic service interval",
          "id":"gposervicetime",
          "value":20.000000
        },
        {
          "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 breakpoints",
              "id":"simplepwmfreqptcount1",
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Frequency control variable",
              "id":"simplepwmfreqvar1",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0,
                "simplepwmfreqptcount1",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Frequency control breakpoints",
              "id":"simplepwmfreqpts1",
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0,
                "simplepwmfreqptcount1",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq1",
              "type":5,
              "xaxis":"simplepwmfreqpts1",
              "value":[
                2000.000000
              ]
            },
            {
              "name":"Duty cycle breakpoints",
              "id":"simplepwmdutyptcount1",
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Duty cycle control variable",
              "id":"simplepwmdutyvar1",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0,
                "simplepwmdutyptcount1",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Duty cycle control breakpoints",
              "id":"simplepwmdutypts1",
              "applies":[
                "simplepwmrefreshinterval1",
                "!=",
                0,
                "simplepwmdutyptcount1",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty1",
              "type":5,
              "xaxis":"simplepwmdutypts1",
              "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 breakpoints",
              "id":"simplepwmfreqptcount2",
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Frequency control variable",
              "id":"simplepwmfreqvar2",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0,
                "simplepwmfreqptcount2",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Frequency control breakpoints",
              "id":"simplepwmfreqpts2",
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0,
                "simplepwmfreqptcount2",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq2",
              "type":5,
              "xaxis":"simplepwmfreqpts2",
              "value":[
                2000.000000
              ]
            },
            {
              "name":"Duty cycle breakpoints",
              "id":"simplepwmdutyptcount2",
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Duty cycle control variable",
              "id":"simplepwmdutyvar2",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0,
                "simplepwmdutyptcount2",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Duty cycle control breakpoints",
              "id":"simplepwmdutypts2",
              "applies":[
                "simplepwmrefreshinterval2",
                "!=",
                0,
                "simplepwmdutyptcount2",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty2",
              "type":5,
              "xaxis":"simplepwmdutypts2",
              "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 breakpoints",
              "id":"simplepwmfreqptcount3",
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Frequency control variable",
              "id":"simplepwmfreqvar3",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0,
                "simplepwmfreqptcount3",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Frequency control breakpoints",
              "id":"simplepwmfreqpts3",
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0,
                "simplepwmfreqptcount3",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq3",
              "type":5,
              "xaxis":"simplepwmfreqpts3",
              "value":[
                2000.000000
              ]
            },
            {
              "name":"Duty cycle breakpoints",
              "id":"simplepwmdutyptcount3",
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Duty cycle control variable",
              "id":"simplepwmdutyvar3",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0,
                "simplepwmdutyptcount3",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Duty cycle control breakpoints",
              "id":"simplepwmdutypts3",
              "applies":[
                "simplepwmrefreshinterval3",
                "!=",
                0,
                "simplepwmdutyptcount3",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty3",
              "type":5,
              "xaxis":"simplepwmdutypts3",
              "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 breakpoints",
              "id":"simplepwmfreqptcount4",
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Frequency control variable",
              "id":"simplepwmfreqvar4",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0,
                "simplepwmfreqptcount4",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Frequency control breakpoints",
              "id":"simplepwmfreqpts4",
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0,
                "simplepwmfreqptcount4",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Frequency",
              "id":"simplepwmfreq4",
              "type":5,
              "xaxis":"simplepwmfreqpts4",
              "value":[
                2000.000000
              ]
            },
            {
              "name":"Duty cycle breakpoints",
              "id":"simplepwmdutyptcount4",
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0
              ],
              "value":1.000000
            },
            {
              "name":"Duty cycle control variable",
              "id":"simplepwmdutyvar4",
              "type":7,
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0,
                "simplepwmdutyptcount4",
                "!=",
                0
              ],
              "value":"const_zero"
            },
            {
              "name":"Duty cycle control breakpoints",
              "id":"simplepwmdutypts4",
              "applies":[
                "simplepwmrefreshinterval4",
                "!=",
                0,
                "simplepwmdutyptcount4",
                "!=",
                0
              ],
              "type":4,
              "value":[
                0.000000
              ]
            },
            {
              "name":"Duty cycle",
              "id":"simplepwmduty4",
              "type":5,
              "xaxis":"simplepwmdutypts4",
              "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":200.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":"roadspeed"
            },
            {
              "name":"Primary Y axis variable",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryyvar",
              "type":7,
              "value":"throttle"
            },
            {
              "name":"Primary X axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryxaxis",
              "type":4,
              "value":[
                0.000000,
                20.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                120.000000,
                140.000000
              ]
            },
            {
              "name":"Primary Y axis",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primaryyaxis",
              "type":4,
              "value":[
                0.000000,
                9.960912,
                20.019480,
                29.980392,
                40.038960,
                49.999872,
                70.019352,
                90.038832
              ]
            },
            {
              "name":"Duty cycle",
              "applies":[
                "pwm0enable",
                "=",
                "Enabled"
              ],
              "id":"pwm0primary",
              "type":5,
              "xaxis":"pwm0primaryxaxis",
              "yaxis":"pwm0primaryyaxis",
              "value":[
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                29.803932,
                25.882362,
                21.176478,
                16.862751,
                12.156867,
                0.000000,
                0.000000,
                0.000000,
                39.607857,
                36.078444,
                31.372560,
                27.058833,
                22.352949,
                0.000000,
                0.000000,
                0.000000,
                39.607857,
                36.078444,
                31.372560,
                27.058833,
                22.352949,
                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":"map"
            },
            {
              "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":"coolanttemp"
            },
            {
              "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":10.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm1enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm1defaultduty",
              "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":"X axis variable",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1xvar",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Y axis variable",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1yvar",
              "type":7,
              "value":"throttle"
            },
            {
              "name":"X axis",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1xaxis",
              "type":4,
              "value":[
                200.000000,
                500.000000,
                800.000000,
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000
              ]
            },
            {
              "name":"Y axis",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1yaxis",
              "type":4,
              "value":[
                0.000000,
                9.960912,
                20.019480,
                29.980392,
                40.038960,
                49.999872,
                70.019352,
                90.038832
              ]
            },
            {
              "name":"Set point",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1target",
              "type":5,
              "xaxis":"pwm1xaxis",
              "yaxis":"pwm1yaxis",
              "value":[
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "type":5,
              "id":"pwm1base",
              "xaxis":"pwm1xaxis",
              "yaxis":"pwm1yaxis",
              "value":[
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756
              ]
            },
            {
              "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",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Kp",
              "value":0.399916
            },
            {
              "name":"I factor",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Ki",
              "value":0.040016
            },
            {
              "name":"D factor",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Kd",
              "value":0.050020
            },
            {
              "name":"Integrator max",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Imax",
              "value":50.000916
            },
            {
              "name":"Integrator min",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Imin",
              "value":0.000000
            },
            {
              "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",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1slewlimit_enable",
                "=",
                "Enabled"
              ],
              "id":"pwm1slewlimit",
              "value":0.000000
            },
            {
              "name":"Limit integral based on control parameter value",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Ilimittarget",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Control parameter breakpoints",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Ilimittarget",
                "=",
                "Enabled"
              ],
              "id":"pwm1targetpts",
              "type":4,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Integral limit based on control parameter value",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Ilimittarget",
                "=",
                "Enabled"
              ],
              "id":"pwm1Itgtlimit",
              "type":5,
              "xaxis":"pwm1targetpts",
              "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":"Limit integral based on error distance",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm1Ilimiterror",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Error distance breakpoints",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Ilimiterror",
                "=",
                "Enabled"
              ],
              "id":"pwm1errorpts",
              "type":4,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Integral limit based on error distance",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Ilimiterror",
                "=",
                "Enabled"
              ],
              "id":"pwm1Ierrlimit",
              "type":5,
              "xaxis":"pwm1errorpts",
              "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 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":"Input variable for general purpose duty multiplier",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igpmod",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm1gpdutymodsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty multiplier",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igpmod",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm1gpdutypts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm1pidserviceperiod",
                "!=",
                0,
                "pwm1Igpmod",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm1gpdutymod",
              "xaxis":"pwm1gpdutypts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"General purpose PID control 2",
          "type":255,
          "context":"gppid2",
          "value":[
            {
              "name":"PID service interval",
              "id":"pwm2pidserviceperiod",
              "value":10.000000
            },
            {
              "name":"Control loop enable input",
              "id":"pwm2enable",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Duty cycle when control loop disabled",
              "id":"pwm2defaultduty",
              "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":"X axis variable",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2xvar",
              "type":7,
              "value":"enginespeed"
            },
            {
              "name":"Y axis variable",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2yvar",
              "type":7,
              "value":"throttle"
            },
            {
              "name":"X axis",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2xaxis",
              "type":4,
              "value":[
                200.000000,
                500.000000,
                800.000000,
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000
              ]
            },
            {
              "name":"Y axis",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2yaxis",
              "type":4,
              "value":[
                0.000000,
                9.960912,
                20.019480,
                29.980392,
                40.038960,
                49.999872,
                70.019352,
                90.038832
              ]
            },
            {
              "name":"Set point",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2target",
              "type":5,
              "xaxis":"pwm2xaxis",
              "yaxis":"pwm2yaxis",
              "value":[
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                0.000000,
                12.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000,
                14.000000
              ]
            },
            {
              "name":"Base duty",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "type":5,
              "id":"pwm2base",
              "xaxis":"pwm2xaxis",
              "yaxis":"pwm2yaxis",
              "value":[
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756,
                0.000000,
                35.000336,
                30.001160,
                24.998932,
                19.999756,
                19.999756,
                19.999756,
                19.999756
              ]
            },
            {
              "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",
              "value":0.399916
            },
            {
              "name":"I factor",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Ki",
              "value":0.040016
            },
            {
              "name":"D factor",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Kd",
              "value":0.050020
            },
            {
              "name":"Integrator max",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Imax",
              "value":50.000916
            },
            {
              "name":"Integrator min",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Imin",
              "value":0.000000
            },
            {
              "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",
              "value":0.000000
            },
            {
              "name":"Limit integral based on control parameter value",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Ilimittarget",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Control parameter breakpoints",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Ilimittarget",
                "=",
                "Enabled"
              ],
              "id":"pwm2targetpts",
              "type":4,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Integral limit based on control parameter value",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Ilimittarget",
                "=",
                "Enabled"
              ],
              "id":"pwm2Itgtlimit",
              "type":5,
              "xaxis":"pwm2targetpts",
              "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":"Limit integral based on error distance",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0
              ],
              "id":"pwm2Ilimiterror",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Error distance breakpoints",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Ilimiterror",
                "=",
                "Enabled"
              ],
              "id":"pwm2errorpts",
              "type":4,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Integral limit based on error distance",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Ilimiterror",
                "=",
                "Enabled"
              ],
              "id":"pwm2Ierrlimit",
              "type":5,
              "xaxis":"pwm2errorpts",
              "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 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":"Input variable for general purpose duty multiplier",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igpmod",
                "=",
                "Enabled"
              ],
              "type":7,
              "id":"pwm2gpdutymodsrc",
              "value":"const_zero"
            },
            {
              "name":"Breakpoints for general purpose duty multiplier",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igpmod",
                "=",
                "Enabled"
              ],
              "type":4,
              "id":"pwm2gpdutypts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General pupose duty multiplier",
              "applies":[
                "pwm2pidserviceperiod",
                "!=",
                0,
                "pwm2Igpmod",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"pwm2gpdutymod",
              "xaxis":"pwm2gpdutypts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"User defined transfer functions",
          "context":"customlookup",
          "type":255,
          "value":[
            {
              "name":"User defined transfer function 1",
              "type":255,
              "value":[
                {
                  "name":"Input variable",
                  "id":"customlookupsrc1",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Breakpoint count",
                  "id":"customlookupcount1",
                  "value":32.000000
                },
                {
                  "name":"Breakpoints",
                  "id":"customlookup1axis",
                  "type":4,
                  "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":"Function",
                  "id":"customlookup1",
                  "type":5,
                  "xaxis":"customlookup1axis",
                  "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":"User defined transfer function 2",
              "type":255,
              "value":[
                {
                  "name":"Input variable",
                  "id":"customlookupsrc2",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Breakpoint count",
                  "id":"customlookupcount2",
                  "value":32.000000
                },
                {
                  "name":"Breakpoints",
                  "id":"customlookup2axis",
                  "type":4,
                  "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":"Function",
                  "id":"customlookup2",
                  "type":5,
                  "xaxis":"customlookup2axis",
                  "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":"User defined transfer function 3",
              "type":255,
              "value":[
                {
                  "name":"Input variable",
                  "id":"customlookupsrc3",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Breakpoint count",
                  "id":"customlookupcount3",
                  "value":32.000000
                },
                {
                  "name":"Breakpoints",
                  "id":"customlookup3axis",
                  "type":4,
                  "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":"Function",
                  "id":"customlookup3",
                  "type":5,
                  "xaxis":"customlookup3axis",
                  "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":"User defined transfer function 4",
              "type":255,
              "value":[
                {
                  "name":"Input variable",
                  "id":"customlookupsrc4",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Breakpoint count",
                  "id":"customlookupcount4",
                  "value":32.000000
                },
                {
                  "name":"Breakpoints",
                  "id":"customlookup4axis",
                  "type":4,
                  "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":"Function",
                  "id":"customlookup4",
                  "type":5,
                  "xaxis":"customlookup4axis",
                  "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":"User defined tables",
          "context":"customtables",
          "type":255,
          "value":[
            {
              "name":"User defined table 1",
              "type":255,
              "value":[
                {
                  "name":"X axis input variable",
                  "id":"custom2dxsrc1",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"X axis breakpoint count",
                  "id":"custom2dxcount1",
                  "value":16.000000
                },
                {
                  "name":"X axis reakpoints",
                  "id":"custom2dxaxis1",
                  "type":4,
                  "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":"Y axis input variable",
                  "id":"custom2dysrc1",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Y axis breakpoint count",
                  "id":"custom2dycount1",
                  "value":16.000000
                },
                {
                  "name":"Y axis reakpoints",
                  "id":"custom2dyaxis1",
                  "type":4,
                  "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":"Table",
                  "id":"custom2dtable1",
                  "type":5,
                  "xaxis":"custom2dxaxis1",
                  "yaxis":"custom2dyaxis1",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"User defined table 2",
              "type":255,
              "value":[
                {
                  "name":"X axis input variable",
                  "id":"custom2dxsrc2",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"X axis breakpoint count",
                  "id":"custom2dxcount2",
                  "value":16.000000
                },
                {
                  "name":"X axis reakpoints",
                  "id":"custom2dxaxis2",
                  "type":4,
                  "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":"Y axis input variable",
                  "id":"custom2dysrc2",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Y axis breakpoint count",
                  "id":"custom2dycount2",
                  "value":16.000000
                },
                {
                  "name":"Y axis reakpoints",
                  "id":"custom2dyaxis2",
                  "type":4,
                  "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":"Table",
                  "id":"custom2dtable2",
                  "type":5,
                  "xaxis":"custom2dxaxis2",
                  "yaxis":"custom2dyaxis2",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"User defined table 3",
              "type":255,
              "value":[
                {
                  "name":"X axis input variable",
                  "id":"custom2dxsrc3",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"X axis breakpoint count",
                  "id":"custom2dxcount3",
                  "value":16.000000
                },
                {
                  "name":"X axis reakpoints",
                  "id":"custom2dxaxis3",
                  "type":4,
                  "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":"Y axis input variable",
                  "id":"custom2dysrc3",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Y axis breakpoint count",
                  "id":"custom2dycount3",
                  "value":16.000000
                },
                {
                  "name":"Y axis reakpoints",
                  "id":"custom2dyaxis3",
                  "type":4,
                  "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":"Table",
                  "id":"custom2dtable3",
                  "type":5,
                  "xaxis":"custom2dxaxis3",
                  "yaxis":"custom2dyaxis3",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"User defined table 4",
              "type":255,
              "value":[
                {
                  "name":"X axis input variable",
                  "id":"custom2dxsrc4",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"X axis breakpoint count",
                  "id":"custom2dxcount4",
                  "value":16.000000
                },
                {
                  "name":"X axis reakpoints",
                  "id":"custom2dxaxis4",
                  "type":4,
                  "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":"Y axis input variable",
                  "id":"custom2dysrc4",
                  "type":7,
                  "value":"const_zero"
                },
                {
                  "name":"Y axis breakpoint count",
                  "id":"custom2dycount4",
                  "value":16.000000
                },
                {
                  "name":"Y axis reakpoints",
                  "id":"custom2dyaxis4",
                  "type":4,
                  "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":"Table",
                  "id":"custom2dtable4",
                  "type":5,
                  "xaxis":"custom2dxaxis4",
                  "yaxis":"custom2dyaxis4",
                  "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,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"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":"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",
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    1,
                    "customformula1",
                    "customformula1compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 2 computation interval",
              "id":"customformulainterval2",
              "value":0.000000
            },
            {
              "name":"User defined math expression 2",
              "id":"customformula2",
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    1,
                    "customformula2",
                    "customformula2compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 3 computation interval",
              "id":"customformulainterval3",
              "value":0.000000
            },
            {
              "name":"User defined math expression 3",
              "id":"customformula3",
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    1,
                    "customformula3",
                    "customformula3compiled"
                  ]
                ]
              ],
              "value":""
            },
            {
              "name":"User defined math expression 4 computation interval",
              "id":"customformulainterval4",
              "value":0.000000
            },
            {
              "name":"User defined math expression 4",
              "id":"customformula4",
              "type":6,
              "scriptbutton":[
                "Test compile",
                [
                  [
                    "updateconfig"
                  ],
                  [
                    "compileexpression",
                    1,
                    "customformula4",
                    "customformula4compiled"
                  ]
                ]
              ],
              "value":""
            }
          ]
        }
      ]
    },
    {
      "name":"Turbocharger control",
      "context":"boostctl",
      "type":255,
      "value":[
        {
          "name":"Turbocharger control enable",
          "id":"boostctl_enable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"PWM control frequency",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostperiod",
          "value":25.000000
        },
        {
          "name":"PID service interval",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostserviceinterval",
          "value":50.000000
        },
        {
          "name":"Breakpoints and variable selections",
          "type":255,
          "value":[
            {
              "name":"Pressure source",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostpressuresource",
              "type":7,
              "value":"map"
            },
            {
              "name":"Primary boost request input",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostloadsource",
              "type":7,
              "value":"throttle"
            },
            {
              "name":"Boost request breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostloadbincount",
              "value":8.000000
            },
            {
              "name":"Engine speed breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostrpmbincount",
              "value":14.000000
            },
            {
              "name":"Boost request breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostloadbins",
              "type":4,
              "value":[
                9.960912,
                20.019480,
                29.980392,
                40.038960,
                49.999872,
                59.960784,
                70.019352,
                79.980264
              ]
            },
            {
              "name":"Engine speed breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boostrpmbins",
              "type":4,
              "value":[
                2000.000000,
                2500.000000,
                3000.000000,
                3500.000000,
                4000.000000,
                4500.000000,
                5000.000000,
                5500.000000,
                6000.000000,
                6500.000000,
                7000.000000,
                7500.000000,
                8000.000000,
                8500.000000
              ]
            },
            {
              "name":"Boost target breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boosttargetbincount",
              "value":8.000000
            },
            {
              "name":"Boost target breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boosttargetbins",
              "type":4,
              "value":[
                1000.000000,
                1500.000000,
                1800.000000,
                2000.000000,
                2200.000000,
                2400.000000,
                2600.000000,
                2800.000000
              ]
            },
            {
              "name":"Boost error breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boosterrorbincount",
              "value":12.000000
            },
            {
              "name":"Boost error breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled"
              ],
              "id":"boosterrorbins",
              "type":4,
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                100.000000,
                200.000000,
                400.000000,
                800.000000,
                1200.000000,
                1600.000000
              ]
            }
          ]
        },
        {
          "name":"P gain",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostKp",
          "xaxis":"boosterrorbins",
          "type":5,
          "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
          ]
        },
        {
          "name":"I gain",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostKi",
          "xaxis":"boosterrorbins",
          "type":5,
          "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
          ]
        },
        {
          "name":"D gain",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostKd",
          "value":0.000000
        },
        {
          "name":"Integrator max value",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostImax",
          "value":1.001056
        },
        {
          "name":"Integrator min value",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostImin",
          "value":-1.001056
        },
        {
          "name":"Zero integrator below target",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled"
          ],
          "id":"boostzerointbelow",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Minimum error below target to enable integrator",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled",
            "boostzerointbelow",
            "=",
            "Enabled"
          ],
          "id":"boostienablerange",
          "value":300.000000
        },
        {
          "name":"General purpose trims",
          "type":255,
          "value":[
            {
              "name":"General purpose trim 1 mode",
              "id":"boostgp1mode",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose trim 1 conditional",
              "id":"boostgp1switch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose trim 1 source",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp1mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp1source",
              "type":7,
              "value":"gear"
            },
            {
              "name":"General purpose trim 1 breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp1mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp1bpcount",
              "value":5.000000
            },
            {
              "name":"General purpose trim 1 breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp1mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp1breakpts",
              "type":4,
              "value":[
                1.000000,
                2.000000,
                3.000000,
                4.000000,
                5.000000
              ]
            },
            {
              "name":"General purpose trim 1",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp1mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp1",
              "type":5,
              "xaxis":"boostgp1breakpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose trim 2 mode",
              "id":"boostgp2mode",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose trim 2 conditional",
              "id":"boostgp2switch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose trim 2 source",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp2mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp2source",
              "type":7,
              "value":"barometer"
            },
            {
              "name":"General purpose trim 2 breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp2mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp2bpcount",
              "value":5.000000
            },
            {
              "name":"General purpose trim 2 breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp2mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp2breakpts",
              "type":4,
              "value":[
                500.000000,
                1000.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose trim 2",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp2mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp2",
              "type":5,
              "xaxis":"boostgp2breakpts",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"General purpose trim 3 mode",
              "id":"boostgp3mode",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"General purpose trim 3 conditional",
              "id":"boostgp3switch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"General purpose trim 3 source",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp3mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp3source",
              "type":7,
              "value":"roadspeed"
            },
            {
              "name":"General purpose trim 3 breakpoint count",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp3mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp3bpcount",
              "value":5.000000
            },
            {
              "name":"General purpose trim 3 breakpoints",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp3mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp3breakpts",
              "type":4,
              "value":[
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000
              ]
            },
            {
              "name":"General purpose trim 3",
              "applies":[
                "boostctl_enable",
                "=",
                "Enabled",
                "boostgp3mode",
                "!=",
                "Disabled"
              ],
              "id":"boostgp3",
              "type":5,
              "xaxis":"boostgp3breakpts",
              "value":[
                1500.000000,
                2000.000000,
                2000.000000,
                2000.000000,
                5000.000000
              ]
            }
          ]
        },
        {
          "name":"Auxiliary control loops",
          "type":255,
          "context":"boostctl2",
          "value":[
            {
              "name":"Control parameter 2",
              "type":255,
              "value":[
                {
                  "name":"Control parameter 2 enable",
                  "id":"boostp2enable",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled"
                  ],
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Control variable 2 selection",
                  "id":"boostparam2picker",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":7,
                  "value":"turbospeed"
                },
                {
                  "name":"Control variable 2 target map",
                  "id":"boostparam2map",
                  "type":5,
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "xaxis":"boostrpmbins",
                  "yaxis":"boostloadbins",
                  "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
                  ]
                },
                {
                  "name":"Proportional gain",
                  "id":"boostparam2Kp",
                  "type":5,
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "xaxis":"boostparam2errorbins",
                  "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
                  ]
                },
                {
                  "name":"Integral gain",
                  "id":"boostparam2Ki",
                  "type":5,
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "xaxis":"boostparam2errorbins",
                  "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
                  ]
                },
                {
                  "name":"Derivative gain",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "id":"boostparam2Kd",
                  "value":0.000000
                },
                {
                  "name":"Integral minimum value",
                  "id":"boostparam2Imin",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "value":0.000000
                },
                {
                  "name":"Integral maximum value",
                  "id":"boostparam2Imax",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "value":99.998780
                },
                {
                  "name":"Error breakpoint count",
                  "id":"boostparam2errorbincount",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "value":12.000000
                },
                {
                  "name":"Error breakpoints",
                  "id":"boostparam2errorbins",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp2enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":4,
                  "value":[
                    -50000.000000,
                    -40000.000000,
                    -30000.000000,
                    -20000.000000,
                    -10000.000000,
                    -5000.000000,
                    5000.000000,
                    10000.000000,
                    20000.000000,
                    30000.000000,
                    40000.000000,
                    50000.000000
                  ]
                }
              ]
            },
            {
              "name":"Control parameter 3",
              "type":255,
              "value":[
                {
                  "name":"Control parameter 3 enable",
                  "id":"boostp3enable",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled"
                  ],
                  "type":3,
                  "value":"Disabled"
                },
                {
                  "name":"Control variable 3 selection",
                  "id":"boostparam3picker",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":7,
                  "value":"turbospeed"
                },
                {
                  "name":"Control variable 3 target map",
                  "id":"boostparam3map",
                  "type":5,
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "xaxis":"boostrpmbins",
                  "yaxis":"boostloadbins",
                  "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
                  ]
                },
                {
                  "name":"Proportional gain",
                  "id":"boostparam3Kp",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":5,
                  "xaxis":"boostparam3errorbins",
                  "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
                  ]
                },
                {
                  "name":"Integral gain",
                  "id":"boostparam3Ki",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":5,
                  "xaxis":"boostparam3errorbins",
                  "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
                  ]
                },
                {
                  "name":"Derivative gain",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "id":"boostparam3Kd",
                  "value":0.000000
                },
                {
                  "name":"Integral minimum value",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "id":"boostparam3Imin",
                  "value":0.000000
                },
                {
                  "name":"Integral maximum value",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "id":"boostparam3Imax",
                  "value":99.998780
                },
                {
                  "name":"Error breakpoint count",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "id":"boostparam3errorbincount",
                  "value":12.000000
                },
                {
                  "name":"Error breakpoints",
                  "id":"boostparam3errorbins",
                  "applies":[
                    "boostctl_enable",
                    "=",
                    "Enabled",
                    "boostp3enable",
                    "!=",
                    "Disabled"
                  ],
                  "type":4,
                  "value":[
                    -50000.000000,
                    -40000.000000,
                    -30000.000000,
                    -20000.000000,
                    -10000.000000,
                    -5000.000000,
                    5000.000000,
                    10000.000000,
                    20000.000000,
                    30000.000000,
                    40000.000000,
                    50000.000000
                  ]
                }
              ]
            }
          ]
        },
        {
          "name":"Boost duty translation curve",
          "id":"boost_nonlinear",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Boost actuation breakpoint count",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled",
            "boost_nonlinear",
            "=",
            "Enabled"
          ],
          "id":"boostdutybpcount",
          "value":11.000000
        },
        {
          "name":"Boost actuation breakpoints",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled",
            "boost_nonlinear",
            "=",
            "Enabled"
          ],
          "id":"boostdutybreakpts",
          "type":4,
          "value":[
            0.000000,
            10.001404,
            19.999756,
            30.001160,
            39.999512,
            50.000916,
            59.999268,
            70.000672,
            79.999024,
            90.000428,
            99.998780
          ]
        },
        {
          "name":"Boost duty output",
          "applies":[
            "boostctl_enable",
            "=",
            "Enabled",
            "boost_nonlinear",
            "=",
            "Enabled"
          ],
          "id":"boostdutycurve",
          "type":5,
          "xaxis":"boostdutybreakpts",
          "value":[
            0.000000,
            10.001404,
            19.999756,
            30.001160,
            39.999512,
            50.000916,
            59.999268,
            70.000672,
            79.999024,
            90.000428,
            99.998780
          ]
        },
        {
          "name":"Anti lag system",
          "context":"antilag",
          "type":255,
          "value":[
            {
              "name":"Anti lag enable",
              "id":"als_enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Anti lag switch input",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"alsswitch",
              "value":"Always on"
            },
            {
              "name":"Anti lag ignition trim mode",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"als_timingmode",
              "value":"Additive trim"
            },
            {
              "name":"Anti lag overrides idle valve position",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"als_override_idle",
              "value":"Enabled"
            },
            {
              "name":"Anti lag overrides wastegate duty cycle",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"als_override_wastegate",
              "value":"Enabled"
            },
            {
              "name":"Breakpoints",
              "type":255,
              "value":[
                {
                  "name":"Engine speed breakpoint count",
                  "id":"alsrpmbincount",
                  "value":12.000000
                },
                {
                  "name":"Throttle breakpoint count",
                  "id":"alstpbincount",
                  "value":5.000000
                },
                {
                  "name":"Engine speed breakpoints",
                  "id":"alsrpmbins",
                  "type":4,
                  "value":[
                    1500.000000,
                    2000.000000,
                    2500.000000,
                    3000.000000,
                    3500.000000,
                    4000.000000,
                    4500.000000,
                    5000.000000,
                    5500.000000,
                    6000.000000,
                    6500.000000,
                    7000.000000
                  ]
                },
                {
                  "name":"Throttle position breakpoints",
                  "id":"alstpbins",
                  "type":4,
                  "value":[
                    0.000000,
                    4.980456,
                    9.960912,
                    15.039024,
                    20.019480
                  ]
                }
              ]
            },
            {
              "name":"Cool down idle enable",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"als_coolidle",
              "value":"Disabled"
            },
            {
              "name":"Cool down idle options",
              "type":255,
              "value":[
                {
                  "name":"Cool down idle active",
                  "id":"als_coolidle_always",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "type":3,
                  "value":"After anti lag use"
                },
                {
                  "name":"Cool down idle accelerator pedal position breakpoints",
                  "id":"alscdidletpsbins",
                  "type":4,
                  "value":[
                    4.980456,
                    9.960912,
                    15.039024,
                    20.019480
                  ]
                },
                {
                  "name":"Cool down idle speed",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlespeed",
                  "type":5,
                  "xaxis":"alscdidletpsbins",
                  "value":[
                    1200.000000,
                    1500.000000,
                    2000.000000,
                    2500.000000
                  ]
                },
                {
                  "name":"Cool down idle control range",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlerange",
                  "value":200.000000
                },
                {
                  "name":"Cool down idle cylinder rotate interval",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlerotate",
                  "value":500.000000
                },
                {
                  "name":"Cool down idle maximum throttle position",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlemaxtp",
                  "value":0.976560
                },
                {
                  "name":"Idle valve position during cool down idle",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled",
                    "als_override_idle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlevalve",
                  "value":74.999808
                },
                {
                  "name":"Fuel trim during cool down idle",
                  "id":"alscdidlefuel",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "value":1.100102
                },
                {
                  "name":"Ignition advance during cool down idle",
                  "id":"alscdidleignadv",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "value":25.004136
                },
                {
                  "name":"Cool down idle activation after engine start",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled"
                  ],
                  "id":"alscdidlert",
                  "value":1.000000
                },
                {
                  "name":"Time after anti lag use to enable cool down idle",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_coolidle",
                    "=",
                    "Enabled",
                    "als_coolidle_always",
                    "!=",
                    "Always"
                  ],
                  "id":"alscdidletimeout",
                  "value":180.000000
                }
              ]
            },
            {
              "name":"Anti lag PWM valve frequency",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "id":"alspwmfreq",
              "value":50.000000
            },
            {
              "name":"PWM duty cycle when anti lag inactive",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "id":"alspwmoff",
              "value":0.000000
            },
            {
              "name":"Conditions",
              "type":255,
              "value":[
                {
                  "name":"Anti lag timeout",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alstimeout",
                  "value":5.000000
                },
                {
                  "name":"Minimum throttle to clear timeout",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alstimeoutcleartps",
                  "value":59.960784
                },
                {
                  "name":"Engine speed to activate above",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsminrpmenable",
                  "value":2000.000000
                },
                {
                  "name":"Engine speed to deactivate below",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsminrpmdisable",
                  "value":1700.000000
                },
                {
                  "name":"Activate when throttle drops below",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsentrytps",
                  "value":9.960912
                },
                {
                  "name":"Deactivate when throttle opens past",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsexittps",
                  "value":20.019480
                },
                {
                  "name":"Deactivate above coolant temperature",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsect_exit",
                  "value":108.000000
                },
                {
                  "name":"Reactivate below coolant temperature",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsect_reset",
                  "value":97.000000
                },
                {
                  "name":"Deactivate above charge air temperature",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsiat_exit",
                  "value":75.000000
                },
                {
                  "name":"Reactivate below charge air temperature",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsiat_reset",
                  "value":65.000000
                },
                {
                  "name":"Deactivate when egt1 above",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsegt_exit",
                  "value":1000.000000
                },
                {
                  "name":"Reactivate when egt1 below",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsegt_reset",
                  "value":900.000000
                }
              ]
            },
            {
              "name":"Wastegate duty when anti lag active",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"alswgduty",
              "xaxis":"alsrpmbins",
              "value":[
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780,
                99.998780
              ]
            },
            {
              "name":"PWM bypass valve duty",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"alsbypass",
              "xaxis":"alsrpmbins",
              "value":[
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035,
                100.000035
              ]
            },
            {
              "name":"Idle valve opening",
              "applies":[
                "als_enable",
                "=",
                "Enabled",
                "als_override_idle",
                "=",
                "Enabled"
              ],
              "id":"alsidle",
              "type":5,
              "xaxis":"alsrpmbins",
              "value":[
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744,
                99.999744
              ]
            },
            {
              "name":"Fuel modifier",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "id":"alsfuel",
              "type":5,
              "xaxis":"alsrpmbins",
              "yaxis":"alstpbins",
              "value":[
                1.000448,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.199756,
                1.000448,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.149929,
                1.000448,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.100102,
                1.000448,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.050275,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.000448
              ]
            },
            {
              "name":"Ignition modifier",
              "applies":[
                "als_enable",
                "=",
                "Enabled"
              ],
              "id":"alsign",
              "type":5,
              "xaxis":"alsrpmbins",
              "yaxis":"alstpbins",
              "value":[
                0.000000,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                -49.997286,
                0.000000,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                -37.495218,
                0.000000,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                -25.004136,
                0.000000,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                -12.502068,
                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 calibrations for cal pot selection",
              "type":255,
              "value":[
                {
                  "name":"Alternate PWM bypass valve duty",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "type":5,
                  "id":"alsbypass2",
                  "xaxis":"alsrpmbins",
                  "value":[
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035
                  ]
                },
                {
                  "name":"Alternate idle valve opening",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_override_idle",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsidle2",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "value":[
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744
                  ]
                },
                {
                  "name":"Alternate fuel modifier",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsfuel2",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "yaxis":"alstpbins",
                  "value":[
                    1.000448,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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 ignition modifier",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsign2",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "yaxis":"alstpbins",
                  "value":[
                    0.999726,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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 PWM bypass valve duty 2",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "type":5,
                  "id":"alsbypass3",
                  "xaxis":"alsrpmbins",
                  "value":[
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035,
                    100.000035
                  ]
                },
                {
                  "name":"Alternate idle valve opening 2",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "als_override_idle",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsidle3",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "value":[
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744,
                    99.999744
                  ]
                },
                {
                  "name":"Alternate fuel modifier 2",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsfuel3",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "yaxis":"alstpbins",
                  "value":[
                    1.000448,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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 ignition modifier 2",
                  "applies":[
                    "als_enable",
                    "=",
                    "Enabled",
                    "calpotenable",
                    "=",
                    "Enabled"
                  ],
                  "id":"alsign3",
                  "type":5,
                  "xaxis":"alsrpmbins",
                  "yaxis":"alstpbins",
                  "value":[
                    0.999726,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    0.000000,
                    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":"Launch\/traction",
      "type":255,
      "context":"launch",
      "value":[
        {
          "name":"Launch control",
          "type":255,
          "value":[
            {
              "name":"Launch enable",
              "id":"launchenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Launch switch input",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"launchswitch",
              "value":"Always on"
            },
            {
              "name":"Launch rev limit method",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"launchsparkcut",
              "value":"Fuel"
            },
            {
              "name":"Road speed to disable launch control",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchmaxspeed",
              "value":10.000000
            },
            {
              "name":"Road speed to re-enable launch control",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchinitspeed",
              "value":0.000000
            },
            {
              "name":"Road speed source to disable launch",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchspeedsource",
              "type":3,
              "value":"Driven"
            },
            {
              "name":"Launch rev limit modifier",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchvariable",
              "type":3,
              "value":"Fixed"
            },
            {
              "name":"Launch rev limit",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchlimit",
              "value":4000.000000
            },
            {
              "name":"Launch rev window",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchwindow",
              "value":300.000000
            },
            {
              "name":"Launch modifier variable",
              "applies":[
                "launchenable",
                "=",
                "Enabled",
                "launchvariable",
                "!=",
                "Fixed"
              ],
              "id":"launchvaryvar",
              "type":7,
              "value":"roadspeed"
            },
            {
              "name":"Launch modifier breakpoints",
              "applies":[
                "launchenable",
                "=",
                "Enabled",
                "launchvariable",
                "!=",
                "Fixed"
              ],
              "id":"launchvarybins",
              "type":4,
              "value":[
                0.000000,
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                50.000000,
                60.000000,
                70.000000
              ]
            },
            {
              "name":"Launch modifier",
              "applies":[
                "launchenable",
                "=",
                "Enabled",
                "launchvariable",
                "!=",
                "Fixed"
              ],
              "id":"launchvary",
              "type":5,
              "xaxis":"launchvarybins",
              "value":[
                1.000448,
                1.000448,
                1.000448,
                1.000448,
                1.999919,
                1.999919,
                1.999919,
                1.999919
              ]
            },
            {
              "name":"Launch ignition timing method",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchabstiming",
              "type":3,
              "value":"Relative"
            },
            {
              "name":"Launch ignition retard",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchretard",
              "value":30.002766
            },
            {
              "name":"Launch fuel multiplier",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"launchfuel",
              "value":1.100102
            },
            {
              "name":"Alternate launch rev limit 1",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchlimit",
              "value":4000.000000
            },
            {
              "name":"Alternate launch rev limit 2",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchlimit2",
              "value":4000.000000
            },
            {
              "name":"Alternate launch ignition retard",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchretard",
              "value":30.002766
            },
            {
              "name":"Alternate launch ignition retard 2",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchretard2",
              "value":30.002766
            },
            {
              "name":"Alternate launch fuel multiplier",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchfuel",
              "value":1.100102
            },
            {
              "name":"Alternate launch fuel multiplier 2",
              "applies":[
                "launchenable",
                "=",
                "Enabled"
              ],
              "id":"altlaunchfuel2",
              "value":1.100102
            }
          ]
        },
        {
          "name":"Traction control",
          "type":255,
          "value":[
            {
              "name":"Traction control enable",
              "id":"tcenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Traction control switch input",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcswitch",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Traction control hard cut",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcsparkcut",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Minimum throttle position to enable",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcminthrottle",
              "value":24.999936
            },
            {
              "name":"Disable traction control above speed",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcmaxspeed",
              "value":100.000000
            },
            {
              "name":"Traction control re-enable speed",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcinitspeed",
              "value":30.000000
            },
            {
              "name":"Traction control maximum ignition retard",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcmaxretard",
              "value":30.002766
            },
            {
              "name":"Traction control speed breakpoints",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcspeedbins",
              "type":4,
              "value":[
                10.000000,
                20.000000,
                30.000000,
                40.000000,
                60.000000,
                80.000000,
                100.000000,
                120.000000
              ]
            },
            {
              "name":"Traction control allowed slippage",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcallowedslipspeed",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                20.000000,
                15.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000
              ]
            },
            {
              "name":"Traction control max slippage",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcmaxslipspeed",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                35.000000,
                30.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000
              ]
            },
            {
              "name":"Traction control allowed slippage 2",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcallowedslipspeed2",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                20.000000,
                15.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000
              ]
            },
            {
              "name":"Traction control max slippage 2",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcmaxslipspeed2",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                35.000000,
                30.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000
              ]
            },
            {
              "name":"Traction control allowed slippage 3",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcallowedslipspeed3",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                20.000000,
                15.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000,
                10.000000
              ]
            },
            {
              "name":"Traction control max slippage 3",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "id":"tcmaxslipspeed3",
              "type":5,
              "xaxis":"tcspeedbins",
              "value":[
                35.000000,
                30.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000,
                25.000000
              ]
            },
            {
              "name":"Traction control modifier enable",
              "applies":[
                "tcenable",
                "=",
                "Enabled"
              ],
              "type":3,
              "id":"tcgpmod",
              "value":"Disabled"
            },
            {
              "name":"Modifier input",
              "applies":[
                "tcenable",
                "=",
                "Enabled",
                "tcgpmod",
                "=",
                "Enabled"
              ],
              "id":"tcmodifiervar",
              "type":7,
              "value":"analog7"
            },
            {
              "name":"Modifier breakpoint count",
              "applies":[
                "tcenable",
                "=",
                "Enabled",
                "tcgpmod",
                "=",
                "Enabled"
              ],
              "id":"tcmodifierpts",
              "value":8.000000
            },
            {
              "name":"Modifier breakpoints",
              "applies":[
                "tcenable",
                "=",
                "Enabled",
                "tcgpmod",
                "=",
                "Enabled"
              ],
              "id":"tcmodifierbins",
              "type":4,
              "value":[
                0.999999,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Slip threshold multiplicative modifier",
              "applies":[
                "tcenable",
                "=",
                "Enabled",
                "tcgpmod",
                "=",
                "Enabled"
              ],
              "id":"tcmodifier",
              "type":5,
              "xaxis":"tcmodifierbins",
              "value":[
                1.000448,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            }
          ]
        },
        {
          "name":"Gear shift cut",
          "type":255,
          "context":"shiftcut",
          "value":[
            {
              "name":"Shift cut enable",
              "id":"sc_enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Cut fuel",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"sc_cutfuel",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Cut ignition",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"sc_cutign",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"One shot timer",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"sc_oneshot",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Resume on speed drop",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"sc_rpmresume",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Shift cut trigger",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"scinput",
              "type":3,
              "value":"Digital in 2"
            },
            {
              "name":"Minimum throttle position",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"scminthrottle",
              "value":49.999872
            },
            {
              "name":"Minimum engine speed",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"scminrpm",
              "value":3500.000000
            },
            {
              "name":"Minimum road speed",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"scminspeed",
              "value":30.000000
            },
            {
              "name":"Minimum engine speed to resume",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "id":"scminresumerpm",
              "value":2000.000000
            },
            {
              "name":"Engine speed fraction before resuming",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"shiftcutrpmdrop",
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "xvariable":"gear",
              "value":[
                49.999872,
                59.960784,
                70.019352,
                70.019352,
                70.019352,
                70.019352,
                70.019352,
                70.019352
              ]
            },
            {
              "name":"Maximum cut duration",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"shiftcuttime",
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "xvariable":"gear",
              "value":[
                500.000000,
                500.000000,
                400.000000,
                300.000000,
                250.000000,
                250.000000,
                250.000000,
                250.000000
              ]
            },
            {
              "name":"Ignition retard",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"shiftcutretard",
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "xvariable":"gear",
              "value":[
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766,
                30.002766
              ]
            },
            {
              "name":"Ignition retard decay time",
              "applies":[
                "sc_enable",
                "=",
                "Enabled"
              ],
              "type":5,
              "id":"scretarddecay",
              "xaxis":[
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8
              ],
              "xvariable":"gear",
              "value":[
                200.000000,
                200.000000,
                150.000000,
                100.000000,
                100.000000,
                100.000000,
                100.000000,
                100.000000
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"Nitrous oxide",
      "type":255,
      "context":"n2o",
      "value":[
        {
          "name":"N2O control",
          "id":"n2o_enable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Allow closed loop fuelling while on nitrous",
          "id":"n2o_closedloop",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Activation conditions",
          "type":255,
          "value":[
            {
              "name":"Inhibit N2O if CEL present",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2o_disableoncel",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Minimum fuel pressure on N2O engagement",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oenablefp",
              "value":0.000000
            },
            {
              "name":"Minimum fuel pressure to sustain N2O use",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2odisablefp",
              "value":0.000000
            },
            {
              "name":"N2O stage 1 input",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oinput",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"N2O stage 1 extra condition",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oinput2",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"N2O stage 1 during launch control",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2o_duringlaunch",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Stage 1 delay after launch release",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2o_duringlaunch",
                "=",
                "Disabled"
              ],
              "id":"n2odelay",
              "value":0.000000
            },
            {
              "name":"Stage 1 minimum throttle position",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2omintps",
              "value":79.980264
            },
            {
              "name":"Stage 1 minimum engine speed",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2ominrpm",
              "value":3000.000000
            },
            {
              "name":"Stage 1 maximum engine speed",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2omaxrpm",
              "value":6000.000000
            },
            {
              "name":"Engine speed hysteresis",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2orpmhyster",
              "value":200.000000
            },
            {
              "name":"Stage 1 minimum MAP",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2ominmap",
              "value":700.000000
            },
            {
              "name":"Stage 1 maximum MAP",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2omaxmap",
              "value":2000.000000
            },
            {
              "name":"MAP hysteresis",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2omaphyster",
              "value":100.000000
            },
            {
              "name":"Minimum coolant temperature",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2ominect",
              "value":50.000000
            },
            {
              "name":"Maximum coolant temperature",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2omaxect",
              "value":110.000000
            },
            {
              "name":"N2O stage 2",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2_enable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"N2O stage 2 input",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2input",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"N2O stage 2 extra condition",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2input2",
              "type":3,
              "value":"Always on"
            },
            {
              "name":"Stage 2 independent of stage 1",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2_independent",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"N2O stage 2 during launch control",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2_duringlaunch",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Stage 2 delay after launch release",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled",
                "n2os2_duringlaunch",
                "=",
                "Disabled"
              ],
              "id":"n2os2delay",
              "value":1000.000000
            },
            {
              "name":"Stage 2 minimum throttle position",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2mintps",
              "value":79.980264
            },
            {
              "name":"Stage 2 minimum engine speed",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2minrpm",
              "value":3000.000000
            },
            {
              "name":"Stage 2 maximum engine speed",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2maxrpm",
              "value":6000.000000
            },
            {
              "name":"Stage 2 minimum MAP",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2minmap",
              "value":700.000000
            },
            {
              "name":"Stage 2 maximum MAP",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2maxmap",
              "value":2000.000000
            }
          ]
        },
        {
          "name":"N2O stage 1 engine speed breakpoint count",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2optcount",
          "value":4.000000
        },
        {
          "name":"N2O stage 1 engine speed breakpoints",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2ospeedbins",
          "type":4,
          "value":[
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000
          ]
        },
        {
          "name":"N2O stage 1 fuel adder",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2ofuelcurve",
          "type":5,
          "xaxis":"n2ospeedbins",
          "value":[
            50.000000,
            40.000000,
            30.000000,
            25.000000
          ]
        },
        {
          "name":"N2O stage 1 ignition retard",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2oretardcurve",
          "type":5,
          "xaxis":"n2ospeedbins",
          "value":[
            9.997260,
            9.997260,
            7.997808,
            6.998082
          ]
        },
        {
          "name":"Stage 1 nitrous onset latency",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2olag_on",
          "value":0.000000
        },
        {
          "name":"Stage 1 nitrous decay latency",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled"
          ],
          "id":"n2olag_off",
          "value":50.000000
        },
        {
          "name":"N2O stage 2 engine speed breakpoint count",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2ptcount",
          "value":4.000000
        },
        {
          "name":"N2O stage 2 engine speed breakpoints",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2speedbins",
          "type":4,
          "value":[
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000
          ]
        },
        {
          "name":"N2O stage 2 fuel adder",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2fuelcurve",
          "type":5,
          "xaxis":"n2os2speedbins",
          "value":[
            50.000000,
            40.000000,
            30.000000,
            25.000000
          ]
        },
        {
          "name":"N2O stage 2 ignition retard",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2retardcurve",
          "type":5,
          "xaxis":"n2os2speedbins",
          "value":[
            9.997260,
            9.997260,
            7.997808,
            6.998082
          ]
        },
        {
          "name":"Stage 2 nitrous onset latency",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2lag_on",
          "value":0.000000
        },
        {
          "name":"Stage 2 nitrous decay latency",
          "applies":[
            "n2o_enable",
            "=",
            "Enabled",
            "n2os2_enable",
            "=",
            "Enabled"
          ],
          "id":"n2os2lag_off",
          "value":50.000000
        },
        {
          "name":"Stage 1 accumulated run time (read only)",
          "id":"n2os1runtime",
          "value":0.000000
        },
        {
          "name":"Stage 2 accumulated run time (read only)",
          "id":"n2os2runtime",
          "value":0.000000
        },
        {
          "name":"Progressive outputs",
          "type":255,
          "value":[
            {
              "name":"Stage 1 PWM frequency",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2opwmfreq",
              "value":20.000000
            },
            {
              "name":"Stage 1 fuel solenoid PWM frequency",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2ofuelpwmfreq",
              "value":20.000000
            },
            {
              "name":"Stage 1 PWM parameter",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oprogressparam",
              "type":7,
              "value":"n2os2time"
            },
            {
              "name":"Stage 1 PWM curve breakpoints",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oprogressbins",
              "type":4,
              "value":[
                0.000000,
                0.500000,
                1.000000,
                1.500000,
                2.000000,
                2.500000,
                3.000000,
                4.000000
              ]
            },
            {
              "name":"Stage 1 PWM curve",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2oprogress",
              "type":5,
              "xaxis":"n2oprogressbins",
              "value":[
                0.000000,
                20.000007,
                40.000014,
                60.000021,
                80.000028,
                100.000035,
                100.000035,
                100.000035
              ]
            },
            {
              "name":"Stage 1 fuel PWM curve",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled"
              ],
              "id":"n2ofuelprogress",
              "type":5,
              "xaxis":"n2oprogressbins",
              "value":[
                0.000000,
                20.000007,
                40.000014,
                60.000021,
                80.000028,
                100.000035,
                100.000035,
                100.000035
              ]
            },
            {
              "name":"Stage 2 PWM frequency",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2pwmfreq",
              "value":20.000000
            },
            {
              "name":"Stage 2 fuel solenoid PWM frequency",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2fuelpwmfreq",
              "value":20.000000
            },
            {
              "name":"Stage 2 PWM parameter",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2progressparam",
              "type":7,
              "value":"n2os2time"
            },
            {
              "name":"Stage 2 PWM curve breakpoints",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2progressbins",
              "type":4,
              "value":[
                0.000000,
                0.500000,
                1.000000,
                1.500000,
                2.000000,
                2.500000,
                3.000000,
                4.000000
              ]
            },
            {
              "name":"Stage 2 PWM curve",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2progress",
              "type":5,
              "xaxis":"n2os2progressbins",
              "value":[
                0.000000,
                20.000007,
                40.000014,
                60.000021,
                80.000028,
                100.000035,
                100.000035,
                100.000035
              ]
            },
            {
              "name":"Stage 2 fuel PWM curve",
              "applies":[
                "n2o_enable",
                "=",
                "Enabled",
                "n2os2_enable",
                "=",
                "Enabled"
              ],
              "id":"n2os2fuelprogress",
              "type":5,
              "xaxis":"n2os2progressbins",
              "value":[
                0.000000,
                20.000007,
                40.000014,
                60.000021,
                80.000028,
                100.000035,
                100.000035,
                100.000035
              ]
            }
          ]
        }
      ]
    },
    {
      "name":"CAN bus",
      "type":255,
      "value":[
        {
          "name":"CAN bus 1 data rate",
          "id":"canmode",
          "type":3,
          "value":"500kbit"
        },
        {
          "name":"CAN bus 2 data rate",
          "id":"can2mode",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"CAN bus 1 broadcasting",
          "type":255,
          "value":[
            {
              "name":"CAN broadcasting enable",
              "applies":[
                "canmode",
                "!=",
                "Disabled"
              ],
              "id":"canbcenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Broadcast slot count",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canbcenable",
                "=",
                "Enabled"
              ],
              "id":"cantxcount",
              "value":16.000000
            },
            {
              "name":"CAN broadcast content",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canbcenable",
                "=",
                "Enabled"
              ],
              "id":"cantxformat",
              "type":5,
              "xaxis":[
                0,
                2,
                4,
                6
              ],
              "yaxis":"cantxaddress",
              "scriptbutton":[
                "Export DBC file",
                [
                  [
                    "exportdbc",
                    "cantxaddress",
                    "cantxinterval",
                    "cantxformat",
                    "LPC8"
                  ]
                ]
              ],
              "value":[
                "const_zero",
                "analog0",
                "enginespeed",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "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":[
                "canmode",
                "!=",
                "Disabled",
                "canbcenable",
                "=",
                "Enabled"
              ],
              "id":"cantxaddress",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canbcenable",
                "=",
                "Enabled"
              ],
              "id":"cantxinterval",
              "type":5,
              "yaxis":"cantxaddress",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            }
          ]
        },
        {
          "name":"Custom CAN broadcast on CAN bus 1",
          "type":255,
          "value":[
            {
              "name":"Custom CAN enable",
              "applies":[
                "canmode",
                "!=",
                "Disabled"
              ],
              "id":"customcanenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Broadcast slot count",
              "applies":[
                "canmode",
                "!=",
                "Disabled"
              ],
              "id":"customcancount",
              "value":16.000000
            },
            {
              "name":"Transmission frequency",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcaninterval",
              "type":5,
              "yaxis":"customcanaddr",
              "value":[
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled",
                "Disabled"
              ]
            },
            {
              "name":"CAN addresses",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanaddr",
              "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"
                ]
              ],
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                4294967295.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"CAN frame lengths",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcantxbytes",
              "type":5,
              "novisual":1,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanfiller",
              "type":5,
              "yaxis":"customcanaddr",
              "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",
              "id":"customcanlength",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "type":5,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanoffsets",
              "type":5,
              "novisual":1,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcandata",
              "type":5,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanformat",
              "type":5,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanbitshifts",
              "type":5,
              "novisual":1,
              "yaxis":"customcanaddr",
              "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 item width shortening",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanbitshort",
              "type":5,
              "novisual":1,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanrange",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcanaddr",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanoutput",
              "type":5,
              "colwidth":1.500000,
              "yaxis":"customcanaddr",
              "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,
                -16775216.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcantxconds",
              "type":5,
              "yaxis":"customcanaddr",
              "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":"Packet checksums",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "customcanenable",
                "=",
                "Enabled"
              ],
              "id":"customcanchecksums",
              "type":5,
              "yaxis":"customcanaddr",
              "value":[
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None"
              ]
            }
          ]
        },
        {
          "name":"CAN receiving on CAN bus 1",
          "context":"canrx",
          "type":255,
          "value":[
            {
              "name":"CAN receiving enable",
              "applies":[
                "canmode",
                "!=",
                "Disabled"
              ],
              "id":"canrxenable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Receive slot count",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxcount",
              "value":16.000000
            },
            {
              "name":"Descriptions",
              "id":"canrxname",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "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
              ],
              "value":[
                "wbo2 left",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Format",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxdescr",
              "type":5,
              "yaxis":"canrxname",
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"Addresses",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxaddr",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxoffset",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxbits",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxrange",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxoutput",
              "type":5,
              "xaxis":[
                "min",
                "max"
              ],
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxtimeout",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxdefault",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"canrxfilter",
              "type":5,
              "yaxis":"canrxname",
              "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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"obd2enable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"OBD2 broadcast ID enable",
              "applies":[
                "obd2enable",
                "=",
                "Enabled",
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled"
              ],
              "id":"obd2bcenable",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"OBD2 listening ID",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdid",
              "value":2016.000000
            },
            {
              "name":"OBD2 response ID",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdresponseid",
              "value":2024.000000
            },
            {
              "name":"OBD2 VIN number reported",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"obdvin",
              "type":6,
              "value":"REALLYFASTRACECAR"
            },
            {
              "name":"Custom PID slot count",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobdcount",
              "value":16.000000
            },
            {
              "name":"OBD2 custom PIDs",
              "id":"customobdpid",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"OBD2 custom PID contents",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "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",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero"
              ]
            },
            {
              "name":"OBD2 custom PID format",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "Enabled",
                "obd2enable",
                "=",
                "Enabled"
              ],
              "id":"customobdformat",
              "type":5,
              "yaxis":"customobdpid",
              "colwidth":3,
              "value":[
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit",
                "bit"
              ]
            },
            {
              "name":"OBD2 custom PID input range",
              "applies":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":[
                "canmode",
                "!=",
                "Disabled",
                "canrxenable",
                "=",
                "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,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                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":"Broadcast slot count",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2bcenable",
                "=",
                "Enabled"
              ],
              "id":"can2txcount",
              "value":16.000000
            },
            {
              "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",
                    "LPC8"
                  ]
                ]
              ],
              "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",
              "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",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "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",
              "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"
                ]
              ],
              "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":"CAN item width shortening",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "customcan2enable",
                "=",
                "Enabled"
              ],
              "id":"customcan2bitshort",
              "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
              ],
              "value":[
                "wbo2 left",
                "wbo2 right",
                "gps speed",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                ""
              ]
            },
            {
              "name":"Format",
              "applies":[
                "can2mode",
                "!=",
                "Disabled",
                "can2rxenable",
                "=",
                "Enabled"
              ],
              "id":"can2rxdescr",
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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",
              "type":5,
              "yaxis":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":[
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15
              ],
              "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":"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",
                  "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":"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":"Number of packets to send before advancing to the next address",
              "id":"canscanrepeat",
              "value":1.000000
            },
            {
              "name":"Scan packet adder bytes",
              "applies":[
                "canscanrepeat",
                "!=",
                "1"
              ],
              "id":"canscanadder",
              "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":"Variable valve timing",
      "type":255,
      "context":"vvt",
      "value":[
        {
          "name":"Angle sensing",
          "type":255,
          "value":[
            {
              "name":"Primary cam angle offset",
              "id":"camoffset",
              "value":0.000000
            },
            {
              "name":"Maximum angle to read on primary cam",
              "id":"maxcamangle",
              "value":719.967510
            },
            {
              "name":"Primary cam angle divisions",
              "id":"vvtcount",
              "value":4.000000
            },
            {
              "name":"Secondary cam angle offset",
              "id":"camoffset2",
              "value":0.000000
            },
            {
              "name":"Maximum angle to read on secondary cam",
              "id":"maxcamangle2",
              "value":719.967510
            },
            {
              "name":"Secondary cam angle divisions",
              "id":"vvtcount2",
              "value":4.000000
            },
            {
              "name":"Third cam angle offset",
              "id":"camoffset3",
              "value":0.000000
            },
            {
              "name":"Maximum angle to read on third cam",
              "id":"maxcamangle3",
              "value":719.967510
            },
            {
              "name":"Third cam angle divisions",
              "id":"vvtcount3",
              "value":4.000000
            },
            {
              "name":"Fourth cam angle offset",
              "id":"camoffset4",
              "value":0.000000
            },
            {
              "name":"Maximum angle to read on fourth cam",
              "id":"maxcamangle4",
              "value":719.967510
            },
            {
              "name":"Fourth cam angle divisions",
              "id":"vvtcount4",
              "value":4.000000
            }
          ]
        },
        {
          "name":"Angle control of primary cam",
          "type":3,
          "id":"vvt_enable_primary",
          "value":"Disabled"
        },
        {
          "name":"Angle control of secondary cam",
          "type":3,
          "id":"vvt_enable_secondary",
          "value":"Disabled"
        },
        {
          "name":"Angle control of third cam",
          "type":3,
          "id":"vvt_enable_cam3",
          "value":"Disabled"
        },
        {
          "name":"Angle control of fourth cam",
          "type":3,
          "id":"vvt_enable_cam4",
          "value":"Disabled"
        },
        {
          "name":"Primary cam type",
          "applies":[
            "vvt_enable_primary",
            "=",
            "Enabled"
          ],
          "type":3,
          "id":"vvt_primary_exhaust",
          "value":"Inlet"
        },
        {
          "name":"Secondary cam type",
          "applies":[
            "vvt_enable_secondary",
            "=",
            "Enabled"
          ],
          "type":3,
          "id":"vvt_secondary_exhaust",
          "value":"Exhaust"
        },
        {
          "name":"Third cam type",
          "applies":[
            "vvt_enable_cam3",
            "=",
            "Enabled"
          ],
          "type":3,
          "id":"vvt_cam3_exhaust",
          "value":"Inlet"
        },
        {
          "name":"Fourth cam type",
          "applies":[
            "vvt_enable_cam4",
            "=",
            "Enabled"
          ],
          "type":3,
          "id":"vvt_cam4_exhaust",
          "value":"Exhaust"
        },
        {
          "name":"Inlet cam control parameters",
          "type":255,
          "value":[
            {
              "name":"PWM frequency",
              "id":"inletvvtpwmfreq",
              "value":120.004800
            },
            {
              "name":"PID service interval",
              "id":"inletvvtpidinterval",
              "value":25.000000
            },
            {
              "name":"P gain",
              "id":"inletvvtKp",
              "value":0.100040
            },
            {
              "name":"I gain",
              "id":"inletvvtKi",
              "value":0.030012
            },
            {
              "name":"D gain",
              "id":"inletvvtKd",
              "value":0.050020
            },
            {
              "name":"Integrator max",
              "id":"inletvvtImax",
              "value":50.000916
            },
            {
              "name":"Integrator min",
              "id":"inletvvtImin",
              "value":-50.000916
            },
            {
              "name":"Base duty cycle",
              "id":"inletvvtbaseduty",
              "value":50.000916
            }
          ]
        },
        {
          "name":"Exhaust cam control parameters",
          "type":255,
          "value":[
            {
              "name":"PWM frequency",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtpwmfreq",
              "value":120.004800
            },
            {
              "name":"PID service interval",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtpidinterval",
              "value":25.000000
            },
            {
              "name":"P gain",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtKp",
              "value":0.100040
            },
            {
              "name":"I gain",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtKi",
              "value":0.030012
            },
            {
              "name":"D gain",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtKd",
              "value":0.050020
            },
            {
              "name":"Integrator max",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtImax",
              "value":50.000916
            },
            {
              "name":"Integrator min",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtImin",
              "value":-50.000916
            },
            {
              "name":"Base duty cycle",
              "applies_any":[
                "vvt_primary_exhaust",
                "=",
                "Exhaust",
                "vvt_secondary_exhaust",
                "=",
                "Exhaust",
                "vvt_cam3_exhaust",
                "=",
                "Exhaust",
                "vvt_cam4_exhaust",
                "=",
                "Exhaust"
              ],
              "id":"exhaustvvtbaseduty",
              "value":50.000916
            }
          ]
        },
        {
          "name":"VVT error tolerance",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled",
            "vvt_enable_cam3",
            "=",
            "Enabled",
            "vvt_enable_cam4",
            "=",
            "Enabled"
          ],
          "id":"vvterrtolerance",
          "value":9.997260
        },
        {
          "name":"VVT error check minimum engine speed",
          "applies_any":[
            "vvt_enable_primary",
            "=",
            "Enabled",
            "vvt_enable_secondary",
            "=",
            "Enabled",
            "vvt_enable_cam3",
            "=",
            "Enabled",
            "vvt_enable_cam4",
            "=",
            "Enabled"
          ],
          "id":"vvtcheckspeed",
          "value":1500.000000
        }
      ]
    },
    {
      "name":"Electronic throttle control",
      "context":"etc",
      "type":255,
      "value":[
        {
          "name":"PWM frequency",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcpwmfreq",
          "value":500.000000
        },
        {
          "name":"PID service interval",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcserviceinterval",
          "value":20.000000
        },
        {
          "name":"Throttle position error breakpoints",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcerrbins",
          "type":4,
          "value":[
            -49.951272,
            -39.980568,
            -30.009864,
            -20.039160,
            -9.970704,
            -4.985352,
            4.985352,
            9.970704,
            20.039160,
            30.009864,
            39.980568,
            49.951272
          ]
        },
        {
          "name":"P gain",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcKp",
          "type":5,
          "xaxis":"etcerrbins",
          "value":[
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080
          ]
        },
        {
          "name":"I gain",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcKi",
          "type":5,
          "xaxis":"etcerrbins",
          "value":[
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080,
            0.200080
          ]
        },
        {
          "name":"D gain",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcKd",
          "value":0.300120
        },
        {
          "name":"Integrator minimum value",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcImin",
          "value":-30.001160
        },
        {
          "name":"Integrator maximum value",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcImax",
          "value":30.001160
        },
        {
          "name":"PWM minimum duty",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcminduty",
          "value":-85.000000
        },
        {
          "name":"PWM maximum duty",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcmaxduty",
          "value":85.000000
        },
        {
          "name":"Idle control authority",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcidlerange",
          "value":14.956056
        },
        {
          "name":"Minimum throttle position target",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcmintgt",
          "value":3.030312
        },
        {
          "name":"Maximum throttle position target",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcmaxtgt",
          "value":90.029592
        },
        {
          "name":"Minimum throttle position target when overrun fuel cut active",
          "id":"overrunetctarget",
          "type":5,
          "xaxis":"overrunrpmbins",
          "value":[
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000
          ]
        },
        {
          "name":"Throttle position breakpoints for base duty",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcbdtpbins",
          "type":4,
          "value":[
            0.000000,
            4.985337,
            9.970674,
            14.956012,
            20.039101,
            25.024438,
            30.009775,
            34.995112,
            39.980450,
            44.965787,
            50.048876,
            60.019550,
            69.990225,
            79.960899,
            90.029326,
            100.000000
          ]
        },
        {
          "name":"Base duty cycle",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcbaseduty",
          "xaxis":"etcbdtpbins",
          "type":5,
          "value":[
            -4.999176,
            0.000000,
            3.000116,
            6.000232,
            9.000348,
            12.000464,
            15.000580,
            19.999756,
            24.998932,
            27.999048,
            30.001160,
            32.000220,
            35.000336,
            38.000452,
            41.000568,
            44.000684
          ]
        },
        {
          "name":"Throttle targets engine speed breakpoint count",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcspeedbincount",
          "value":6.000000
        },
        {
          "name":"Throttle targets pedal position breakpoint count",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcpedalbincount",
          "value":12.000000
        },
        {
          "name":"Throttle targets engine speed breakpoints",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcspeedbins",
          "type":4,
          "value":[
            1000.000000,
            2000.000000,
            3000.000000,
            4000.000000,
            5000.000000,
            6000.000000
          ]
        },
        {
          "name":"Throttle targets accelerator pedal position breakpoints",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcpedalbins",
          "type":4,
          "value":[
            0.000000,
            4.985352,
            14.956056,
            20.039160,
            25.024512,
            30.009864,
            39.980568,
            49.951272,
            60.019728,
            69.990432,
            79.961136,
            90.029592
          ]
        },
        {
          "name":"Throttle targets",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etctargets",
          "type":5,
          "xaxis":"etcspeedbins",
          "yaxis":"etcpedalbins",
          "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
          ]
        },
        {
          "name":"Throttle target positive lag factor",
          "id":"etctargetposfilter",
          "value":49.999390
        },
        {
          "name":"Throttle target negative lag factor",
          "id":"etctargetnegfilter",
          "value":49.999390
        },
        {
          "name":"Position breakpoints for throttle angle based modifiers",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "applies_any":[
            "etcditherenable",
            "=",
            "Enabled",
            "etcmodenable",
            "=",
            "Enabled"
          ],
          "id":"etcmodposbins",
          "type":4,
          "value":[
            0.977517,
            1.955034,
            4.007820,
            5.962854,
            8.015640,
            9.970674,
            20.039101,
            30.009775,
            39.980450,
            50.048876,
            60.019550,
            79.960899
          ]
        },
        {
          "name":"Throttle PWM dither enable",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcditherenable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Dither frequency",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890",
            "etcditherenable",
            "=",
            "Enabled"
          ],
          "id":"etcditherfrequency",
          "value":50.000000
        },
        {
          "name":"Dither value",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890",
            "etcditherenable",
            "=",
            "Enabled"
          ],
          "id":"etcdither",
          "type":5,
          "xaxis":"etcmodposbins",
          "value":[
            4.999176,
            4.001172,
            3.000116,
            1.999060,
            1.001056,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000
          ]
        },
        {
          "name":"Throttle angle based PID sensitivity modifiers",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890"
          ],
          "id":"etcmodenable",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Proportional modifier",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890",
            "etcmodenable",
            "=",
            "Enabled"
          ],
          "id":"etcPmod",
          "type":5,
          "xaxis":"etcmodposbins",
          "value":[
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516
          ]
        },
        {
          "name":"Integral modifier",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890",
            "etcmodenable",
            "=",
            "Enabled"
          ],
          "id":"etcImod",
          "type":5,
          "xaxis":"etcmodposbins",
          "value":[
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516
          ]
        },
        {
          "name":"Differential modifier",
          "applies":[
            "dbwenable",
            "!=",
            "1234567890",
            "etcmodenable",
            "=",
            "Enabled"
          ],
          "id":"etcDmod",
          "type":5,
          "xaxis":"etcmodposbins",
          "value":[
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516,
            0.999516
          ]
        },
        {
          "name":"Second throttle body control",
          "type":255,
          "value":[
            {
              "name":"Enable second throttle body control",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890"
              ],
              "id":"etcdual",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Second throttle body configuration mode",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled"
              ],
              "id":"etc_dual_unidentical",
              "type":3,
              "value":"Identical"
            },
            {
              "name":"PWM frequency",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2pwmfreq",
              "value":500.000000
            },
            {
              "name":"Throttle position error breakpoints",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2errbins",
              "type":4,
              "value":[
                -49.951272,
                -39.980568,
                -30.009864,
                -20.039160,
                -9.970704,
                -4.985352,
                4.985352,
                9.970704,
                20.039160,
                30.009864,
                39.980568,
                49.951272
              ]
            },
            {
              "name":"P gain",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2Kp",
              "type":5,
              "xaxis":"etc2errbins",
              "value":[
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080
              ]
            },
            {
              "name":"I gain",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2Ki",
              "type":5,
              "xaxis":"etc2errbins",
              "value":[
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080,
                0.200080
              ]
            },
            {
              "name":"D gain",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2Kd",
              "value":0.300120
            },
            {
              "name":"Integrator minimum value",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2Imin",
              "value":-30.001160
            },
            {
              "name":"Integrator maximum value",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2Imax",
              "value":30.001160
            },
            {
              "name":"PWM minimum duty",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2minduty",
              "value":-85.000000
            },
            {
              "name":"PWM maximum duty",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2maxduty",
              "value":85.000000
            },
            {
              "name":"Idle control authority",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2idlerange",
              "value":14.956056
            },
            {
              "name":"Minimum throttle position target",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2mintgt",
              "value":3.030312
            },
            {
              "name":"Maximum throttle position target",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2maxtgt",
              "value":90.029592
            },
            {
              "name":"Minimum throttle position target when overrun fuel cut active",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"overrunetc2target",
              "type":5,
              "xaxis":"overrunrpmbins",
              "value":[
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Throttle position breakpoints for base duty",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2bdtpbins",
              "type":4,
              "value":[
                0.000000,
                4.985337,
                9.970674,
                14.956012,
                20.039101,
                25.024438,
                30.009775,
                34.995112,
                39.980450,
                44.965787,
                50.048876,
                60.019550,
                69.990225,
                79.960899,
                90.029326,
                100.000000
              ]
            },
            {
              "name":"Base duty cycle",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2baseduty",
              "xaxis":"etc2bdtpbins",
              "type":5,
              "value":[
                -4.999176,
                0.000000,
                3.000116,
                6.000232,
                9.000348,
                12.000464,
                15.000580,
                19.999756,
                24.998932,
                27.999048,
                30.001160,
                32.000220,
                35.000336,
                38.000452,
                41.000568,
                44.000684
              ]
            },
            {
              "name":"Throttle targets",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2targets",
              "type":5,
              "xaxis":"etcspeedbins",
              "yaxis":"etcpedalbins",
              "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
              ]
            },
            {
              "name":"Throttle target positive lag factor",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2targetposfilter",
              "value":49.999390
            },
            {
              "name":"Throttle target negative lag factor",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2targetnegfilter",
              "value":49.999390
            },
            {
              "name":"Position breakpoints for throttle angle based modifiers",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "applies_any":[
                "etc2ditherenable",
                "=",
                "Enabled",
                "etc2modenable",
                "=",
                "Enabled"
              ],
              "id":"etc2modposbins",
              "type":4,
              "value":[
                0.977517,
                1.955034,
                4.007820,
                5.962854,
                8.015640,
                9.970674,
                20.039101,
                30.009775,
                39.980450,
                50.048876,
                60.019550,
                79.960899
              ]
            },
            {
              "name":"Throttle PWM dither enable",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2ditherenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Dither frequency",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2ditherfrequency",
              "value":50.000000
            },
            {
              "name":"Dither value",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2dither",
              "type":5,
              "xaxis":"etcmodposbins",
              "value":[
                4.999176,
                4.001172,
                3.000116,
                1.999060,
                1.001056,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000
              ]
            },
            {
              "name":"Throttle angle based PID sensitivity modifiers",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical"
              ],
              "id":"etc2modenable",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Proportional modifier",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical",
                "etc2modenable",
                "=",
                "Enabled"
              ],
              "id":"etc2Pmod",
              "type":5,
              "xaxis":"etcmodposbins",
              "value":[
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516
              ]
            },
            {
              "name":"Integral modifier",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical",
                "etc2modenable",
                "=",
                "Enabled"
              ],
              "id":"etc2Imod",
              "type":5,
              "xaxis":"etc2modposbins",
              "value":[
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516
              ]
            },
            {
              "name":"Differential modifier",
              "applies":[
                "dbwenable",
                "!=",
                "1234567890",
                "etcdual",
                "=",
                "Enabled",
                "etc_dual_unidentical",
                "!=",
                "Identical",
                "etc2modenable",
                "=",
                "Enabled"
              ],
              "id":"etc2Dmod",
              "type":5,
              "xaxis":"etc2modposbins",
              "value":[
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516,
                0.999516
              ]
            }
          ]
        },
        {
          "name":"Cruise control",
          "context":"cruise",
          "type":255,
          "value":[
            {
              "name":"Cruise control enable",
              "type":3,
              "id":"cruiseenable",
              "value":"Disabled"
            },
            {
              "name":"Cruise control service interval",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseserviceinterval",
              "value":200.000000
            },
            {
              "name":"Use engine speed instead of road speed",
              "type":3,
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruise_enginespeedbased",
              "value":"Disabled"
            },
            {
              "name":"P factor",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseKp",
              "value":0.999912
            },
            {
              "name":"I factor",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseKi",
              "value":0.100040
            },
            {
              "name":"D factor",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseKd",
              "value":0.999912
            },
            {
              "name":"Integrator minimum",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseImin",
              "value":0.000000
            },
            {
              "name":"Integrator maximum",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseImax",
              "value":10000.000000
            },
            {
              "name":"Maximum engine speed",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisemaxrpm",
              "value":4000.000000
            },
            {
              "name":"Maximum effective throttle",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisemaxthrottle",
              "value":70.019352
            },
            {
              "name":"Accel\/decel mode",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "type":3,
              "id":"cruise_continuous",
              "value":"Step"
            },
            {
              "name":"Accel\/decel step size",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisestep",
              "value":1.000000
            },
            {
              "name":"Accel\/decel rate in continuous mode",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled",
                "cruise_continuous",
                "=",
                "Continuous"
              ],
              "id":"cruiseaccelrate",
              "value":2.000000
            },
            {
              "name":"Accel\/decel continuous mode delay",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled",
                "cruise_continuous",
                "=",
                "Continuous"
              ],
              "id":"cruisecontinuousdelay",
              "value":0.500000
            },
            {
              "name":"Minimum vehicle speed",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseminspeed",
              "value":50.000000
            },
            {
              "name":"Control loop smoothing filter",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisesmoothing",
              "value":0.000000
            },
            {
              "name":"Default cruise speed",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisedefaultspeed",
              "value":0.000000
            },
            {
              "name":"Cruise switch input",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisesource",
              "type":7,
              "value":"analog4"
            },
            {
              "name":"Cruise switch values",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruisebuttonmap",
              "type":5,
              "colwidth":2.000000,
              "xaxis":[
                "Inactive",
                "Stop",
                "Set\/Decel",
                "Resume\/Accel"
              ],
              "value":[
                4.999995,
                0.999999,
                1.999998,
                2.999997
              ]
            },
            {
              "name":"Overspeed threshold",
              "applies":[
                "cruiseenable",
                "!=",
                "Disabled"
              ],
              "id":"cruiseoverspeed",
              "value":5.000000
            },
            {
              "name":"Brake pedal input",
              "id":"brakeinput",
              "type":3,
              "value":"Always off"
            }
          ]
        }
      ]
    },
    {
      "name":"Transmission control",
      "type":255,
      "context":"autotrans",
      "value":[
        {
          "name":"Transmission control mode",
          "id":"transctlmode",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Shift control load source",
          "id":"shiftloadsrc",
          "type":7,
          "value":"throttle"
        },
        {
          "name":"Shift control speed source",
          "id":"shiftspeedsrc",
          "type":7,
          "value":"roadspeed"
        },
        {
          "name":"Hold off time after commanding shift",
          "id":"aftershiftholdoff",
          "value":250.000000
        },
        {
          "name":"Gear selection logic",
          "id":"shiftlogic",
          "type":5,
          "xaxis":[
            "R",
            "N",
            1,
            2,
            3,
            4
          ],
          "yaxis":[
            "Sol A",
            "Sol B",
            "Sol C"
          ],
          "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
          ]
        },
        {
          "name":"Gear selector input",
          "id":"gearselectorsrc",
          "type":7,
          "value":"analog5"
        },
        {
          "name":"Gear selector input service interval",
          "id":"gselserviceint",
          "value":20.000000
        },
        {
          "name":"Gear selector positions",
          "id":"gearselvoltages",
          "xaxis":[
            "P",
            "N",
            "R",
            "1",
            "2",
            "3",
            "4"
          ],
          "type":5,
          "value":[
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000,
            0.000000
          ]
        },
        {
          "name":"Shift control load breakpoints",
          "id":"shiftloadbins",
          "type":4,
          "value":[
            4.980456,
            9.960912,
            15.039024,
            20.019480,
            29.980392,
            40.038960,
            49.999872,
            59.960784,
            70.019352,
            79.980264
          ]
        },
        {
          "name":"Forced upshift engine speeds",
          "id":"shiftmaxrpm",
          "type":5,
          "xaxis":[
            "1 -> 2",
            "2 -> 3",
            "3 -> 4"
          ],
          "value":[
            6000.000000,
            6000.000000,
            6000.000000
          ]
        },
        {
          "name":"Shift speeds",
          "id":"shiftspeeds",
          "type":5,
          "xaxis":"shiftloadbins",
          "yaxis":[
            "2 -> 1",
            "1 -> 2",
            "3 -> 2",
            "2 -> 3",
            "4 -> 3",
            "3 -> 4"
          ],
          "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
          ]
        },
        {
          "name":"Lock up clutch minimum speed",
          "id":"lockupminspeed",
          "type":5,
          "xvariable":"atcmdgear",
          "xaxis":[
            1,
            2,
            3,
            4
          ],
          "value":[
            0.000000,
            0.000000,
            0.000000,
            0.000000
          ]
        },
        {
          "name":"Lock up minimum load",
          "id":"lockupminload",
          "value":0.000000
        },
        {
          "name":"Lock up maximum load",
          "id":"lockupmaxload",
          "value":99.999744
        },
        {
          "name":"Lock up speed hysteresis",
          "id":"lockupspeedhysteresis",
          "value":3.000000
        },
        {
          "name":"Lock up load hysteresis",
          "id":"lockuploadhysteresis",
          "value":1.953120
        },
        {
          "name":"Lock up activation delay after shift",
          "id":"lockupdelay",
          "value":800.000000
        },
        {
          "name":"Manual mode input",
          "id":"atmanualmodeinput",
          "type":3,
          "value":"Always off"
        },
        {
          "name":"Upshift input",
          "type":3,
          "id":"atupshifttoggle",
          "value":"Always off"
        },
        {
          "name":"Downshift input",
          "type":3,
          "id":"atdownshifttoggle",
          "value":"Always off"
        }
      ]
    },
    {
      "name":"Torque model",
      "context":"torque",
      "type":255,
      "value":[
        {
          "name":"Torque model enable",
          "id":"torqueoption_enabled",
          "type":3,
          "value":"Disabled"
        },
        {
          "name":"Setup and breakpoints",
          "type":255,
          "value":[
            {
              "name":"Torque model computation interval",
              "id":"torqueinterval",
              "value":20.000000
            },
            {
              "name":"Minimum torque indicated",
              "id":"torquemin",
              "value":-100.000000
            },
            {
              "name":"Maximum torque indicated",
              "id":"torquemax",
              "value":1000.000000
            },
            {
              "name":"Torque request limit source",
              "id":"torquelimitrequestsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Torque request limit enable input",
              "id":"torquelimitrequestenable",
              "type":3,
              "value":"Always off"
            },
            {
              "name":"Torque limit source",
              "id":"torquelimitsrc",
              "type":7,
              "value":"const_zero"
            },
            {
              "name":"Torque limit enable input",
              "id":"torquelimitenable",
              "type":3,
              "value":"Always off"
            },
            {
              "name":"Engine speed breakpoints",
              "id":"torquerpmbins",
              "type":4,
              "value":[
                1000.000000,
                2000.000000,
                3000.000000,
                4000.000000,
                5000.000000,
                6000.000000,
                7000.000000,
                8000.000000
              ]
            },
            {
              "name":"MAP breakpoints",
              "id":"torquemapbins",
              "type":4,
              "value":[
                200.000000,
                400.000000,
                600.000000,
                1000.000000,
                1400.000000,
                1800.000000,
                2200.000000,
                2600.000000
              ]
            },
            {
              "name":"Accelerator pedal breakpoints",
              "id":"torqueappbins",
              "type":4,
              "value":[
                0.000000,
                4.980456,
                9.960912,
                20.019480,
                40.038960,
                59.960784,
                79.980264,
                99.999744
              ]
            },
            {
              "name":"Lambda target breakpoints",
              "id":"torquelambdabins",
              "type":4,
              "value":[
                0.700000,
                0.750000,
                0.800000,
                0.850000,
                0.900000,
                0.950000,
                1.000000,
                1.050000
              ]
            },
            {
              "name":"Excessive torque injector shut off",
              "id":"torqueoption_injcut",
              "type":3,
              "value":"Enabled"
            },
            {
              "name":"Excessive torque ignition shut off",
              "id":"torqueoption_igncut",
              "type":3,
              "value":"Disabled"
            },
            {
              "name":"Ignition retard decay rate",
              "id":"torqueignresumerate",
              "value":1.999452
            }
          ]
        },
        {
          "name":"Torque request map",
          "type":5,
          "id":"torquerequestmap",
          "xaxis":"torqueappbins",
          "yaxis":"torquerpmbins",
          "value":[
            0.000000,
            50.000000,
            100.000000,
            200.000000,
            400.000000,
            400.000000,
            400.000000,
            400.000000,
            -14.200000,
            28.800000,
            78.600000,
            171.400000,
            357.200000,
            500.000000,
            500.000000,
            500.000000,
            -28.600000,
            4.400000,
            57.200000,
            143.000000,
            314.400000,
            450.000000,
            500.000000,
            500.000000,
            -42.800000,
            -15.600000,
            35.800000,
            114.400000,
            271.400000,
            400.000000,
            460.000000,
            500.000000,
            -57.000000,
            -29.000000,
            14.400000,
            85.800000,
            228.600000,
            350.000000,
            420.000000,
            500.000000,
            -71.400000,
            -44.400000,
            -7.000000,
            57.200000,
            185.800000,
            300.000000,
            380.000000,
            466.800000,
            -85.600000,
            -59.600000,
            -28.600000,
            28.600000,
            143.000000,
            250.000000,
            340.000000,
            433.400000,
            -100.000000,
            -75.000000,
            -50.000000,
            0.000000,
            100.000000,
            200.000000,
            300.000000,
            400.000000
          ]
        },
        {
          "name":"Engine friction map",
          "type":5,
          "id":"frictionmap",
          "xaxis":"torquerpmbins",
          "yaxis":"torquemapbins",
          "value":[
            10.000000,
            30.000000,
            50.000000,
            70.000000,
            90.000000,
            110.000000,
            130.000000,
            150.000000,
            10.000000,
            28.200000,
            46.600000,
            64.800000,
            82.800000,
            101.000000,
            119.400000,
            137.600000,
            10.000000,
            26.400000,
            42.800000,
            59.200000,
            76.000000,
            92.200000,
            109.000000,
            126.400000,
            10.000000,
            23.600000,
            37.400000,
            51.000000,
            64.800000,
            78.000000,
            92.000000,
            110.000000,
            10.000000,
            23.400000,
            36.800000,
            50.600000,
            63.800000,
            77.000000,
            90.800000,
            107.800000,
            10.000000,
            25.200000,
            40.600000,
            56.000000,
            71.000000,
            86.200000,
            101.600000,
            118.200000,
            10.000000,
            27.600000,
            45.200000,
            63.000000,
            80.600000,
            98.000000,
            115.800000,
            133.600000,
            10.000000,
            30.000000,
            50.000000,
            70.000000,
            90.000000,
            110.000000,
            130.000000,
            150.000000
          ]
        },
        {
          "name":"Combustion effect map",
          "type":5,
          "id":"efficiencymap",
          "xaxis":"torquerpmbins",
          "yaxis":"torquemapbins",
          "value":[
            600.000000,
            616.800000,
            633.200000,
            650.000000,
            666.800000,
            683.200000,
            660.000000,
            660.000000,
            625.000000,
            641.800000,
            658.200000,
            675.000000,
            691.800000,
            708.200000,
            685.000000,
            685.000000,
            650.000000,
            666.800000,
            683.200000,
            700.000000,
            716.800000,
            733.200000,
            710.000000,
            710.000000,
            700.000000,
            716.800000,
            733.200000,
            750.000000,
            766.800000,
            763.200000,
            760.000000,
            760.000000,
            700.000000,
            716.800000,
            733.200000,
            750.000000,
            766.800000,
            763.200000,
            760.000000,
            760.000000,
            666.800000,
            683.600000,
            700.200000,
            716.800000,
            733.600000,
            750.200000,
            726.800000,
            726.800000,
            633.200000,
            649.800000,
            666.600000,
            683.200000,
            699.800000,
            716.600000,
            693.200000,
            693.200000,
            600.000000,
            616.800000,
            633.200000,
            650.000000,
            666.800000,
            683.200000,
            660.000000,
            660.000000
          ]
        },
        {
          "name":"Ideal ignition timing map",
          "type":5,
          "id":"mbtmap",
          "xaxis":"torquerpmbins",
          "yaxis":"torquemapbins",
          "value":[
            30.002766,
            37.495218,
            44.998656,
            44.998656,
            44.998656,
            44.998656,
            44.998656,
            44.998656,
            27.497958,
            34.397166,
            41.296374,
            41.296374,
            41.296374,
            41.296374,
            41.296374,
            41.296374,
            25.004136,
            31.299114,
            37.495218,
            37.495218,
            37.495218,
            37.495218,
            37.495218,
            37.495218,
            19.994520,
            25.004136,
            30.002766,
            30.002766,
            30.002766,
            30.002766,
            30.002766,
            30.002766,
            16.303224,
            20.203254,
            24.103284,
            24.301032,
            24.498780,
            24.597654,
            24.795402,
            25.004136,
            12.502068,
            15.402372,
            18.203802,
            18.500424,
            18.994794,
            19.302402,
            19.599024,
            19.994520,
            8.799786,
            10.502616,
            12.304320,
            12.798690,
            13.402920,
            13.897290,
            14.501520,
            14.995890,
            4.998630,
            5.701734,
            6.404838,
            7.096956,
            7.898934,
            8.602038,
            9.305142,
            9.997260
          ]
        },
        {
          "name":"Ignition timing sensitivity map",
          "type":5,
          "id":"timinglossmap",
          "xaxis":"torquerpmbins",
          "yaxis":"torquemapbins",
          "value":[
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460,
            1.944460
          ]
        },
        {
          "name":"Maximum permitted ignition timing retard",
          "type":5,
          "id":"torquemaxretardmap",
          "xaxis":"torquerpmbins",
          "yaxis":"torquemapbins",
          "value":[
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520,
            19.994520
          ]
        },
        {
          "name":"Coolant temperature effect on combustion effect",
          "type":5,
          "id":"torqueectmultiplier",
          "xaxis":"ectbins",
          "value":[
            0.800163,
            0.838266,
            0.864645,
            0.882231,
            0.895909,
            0.906656,
            0.912518,
            0.919357,
            0.926196,
            0.933035,
            0.938897,
            0.947690,
            0.958437,
            0.974069,
            1.000448,
            0.949644
          ]
        },
        {
          "name":"Lambda effect on combustion effect",
          "type":5,
          "id":"torquelambdaefficiency",
          "xaxis":"torquelambdabins",
          "value":[
            0.899817,
            0.949644,
            0.979931,
            1.000000,
            1.000000,
            0.979931,
            0.949644,
            0.920334
          ]
        },
        {
          "name":"Coolant temperature effect on engine friction",
          "type":5,
          "id":"torqueectfrictionmultiplier",
          "xaxis":"ectbins",
          "value":[
            1.499695,
            1.402972,
            1.339467,
            1.300387,
            1.266192,
            1.235905,
            1.222227,
            1.204641,
            1.188032,
            1.171423,
            1.153837,
            1.131366,
            1.104987,
            1.064930,
            1.000448,
            1.000448
          ]
        }
      ]
    },
    {
      "name":"Custom strategies",
      "type":255,
      "userlevel":200,
      "value":[
        {
          "name":"User program code",
          "type":6,
          "id":"userprogramcode",
          "scriptbutton":[
            "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":[
    "enginespeed",
    "throttle",
    "map"
  ],
  "definition":{
    "commsmode":"usbhid",
    "signature":"LPC8 v2.15",
    "usbid":"Baldur's LPC8ECU",
    "firmwarebuild":51,
    "defbuild":51,
    "candumpcapable":2,
    "preburnscript":[
      "if",
      "enginespeed > 1",
      [
        [
          "statusdialog",
          "ECU needs to swap configuration pages in the volatile memory. Engine operation will be interrupted briefly (200 milliseconds). Close this dialog to proceed (press space bar or click Proceed button). Dialog will close automatically if engine is brought to overrun condition.",
          true,
          16,
          "Writing ECU memory. Engine may stall",
          "Proceed"
        ],
        [
          "halt",
          "(enginespeed > 1) & (enginespeed < 1800) | (throttle > 10) & (overrun = 0)"
        ]
      ]
    ],
    "enumerators":{
      "enum_moreless":[
        "=",
        "not =",
        ">",
        "<",
        "bit",
        "not bit"
      ],
      "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",
        "125kbit",
        "250kbit",
        "500kbit",
        "1Mbit"
      ],
      "enum_cantxfreq":[
        "Disabled",
        "1Hz",
        "2Hz",
        "5Hz",
        "10Hz",
        "20Hz",
        "25Hz",
        "50Hz",
        "100Hz"
      ],
      "enum_ccantxfreq":[
        "Disabled",
        "1Hz",
        "2Hz",
        "5Hz",
        "10Hz",
        "20Hz",
        "25Hz",
        "50Hz",
        "100Hz"
      ],
      "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_uartbaud":[
        [
          0,
          "4800"
        ],
        [
          1,
          "9600"
        ],
        [
          2,
          "19200"
        ],
        [
          3,
          "38400"
        ],
        [
          4,
          "57600"
        ],
        [
          5,
          "115200"
        ]
      ],
      "map_inputs":[
        [
          255,
          "Always off"
        ],
        [
          127,
          "Always on"
        ],
        [
          0,
          "Digital in 1"
        ],
        [
          1,
          "Digital in 2"
        ],
        [
          5,
          "Digital in 3"
        ],
        [
          6,
          "Digital in 4"
        ],
        [
          4,
          "Digital in 5"
        ],
        [
          7,
          "Analog 0"
        ],
        [
          8,
          "Analog 1"
        ],
        [
          9,
          "Analog 2"
        ],
        [
          10,
          "Analog 3"
        ],
        [
          2,
          "Analog 4"
        ],
        [
          3,
          "Analog 5"
        ],
        [
          11,
          "Analog 8"
        ],
        [
          12,
          "Analog 9"
        ],
        [
          13,
          "Analog 10"
        ],
        [
          14,
          "Analog 11"
        ],
        [
          15,
          "Analog 12"
        ],
        [
          21,
          "Analog 18"
        ],
        [
          22,
          "Analog 19"
        ],
        [
          23,
          "Analog 20"
        ],
        [
          24,
          "Analog 21"
        ],
        [
          25,
          "Analog 22"
        ],
        [
          26,
          "Analog 23"
        ],
        [
          27,
          "Ignition switch"
        ],
        [
          32,
          "General purpose logic 1"
        ],
        [
          33,
          "General purpose logic 2"
        ],
        [
          34,
          "General purpose logic 3"
        ],
        [
          35,
          "General purpose logic 4"
        ],
        [
          37,
          "General purpose logic 5"
        ],
        [
          38,
          "General purpose logic 6"
        ],
        [
          39,
          "General purpose logic 7"
        ],
        [
          40,
          "General purpose logic 8"
        ],
        [
          42,
          "General purpose logic 9"
        ],
        [
          43,
          "General purpose logic 10"
        ],
        [
          44,
          "General purpose logic 11"
        ],
        [
          45,
          "General purpose logic 12"
        ],
        [
          46,
          "General purpose logic 13"
        ],
        [
          47,
          "General purpose logic 14"
        ],
        [
          48,
          "General purpose logic 15"
        ],
        [
          49,
          "General purpose logic 16"
        ],
        [
          53,
          "Cruise control overspeed"
        ],
        [
          56,
          "Flip flop logic 1"
        ],
        [
          57,
          "Flip flop logic 2"
        ],
        [
          58,
          "Flip flop logic 3"
        ],
        [
          59,
          "Flip flop logic 4"
        ],
        [
          60,
          "Flip flop logic 5"
        ],
        [
          61,
          "Flip flop logic 6"
        ],
        [
          62,
          "Flip flop logic 7"
        ],
        [
          63,
          "Flip flop logic 8"
        ],
        [
          64,
          "CAN source 0"
        ],
        [
          65,
          "CAN source 1"
        ],
        [
          66,
          "CAN source 2"
        ],
        [
          67,
          "CAN source 3"
        ],
        [
          68,
          "CAN source 4"
        ],
        [
          69,
          "CAN source 5"
        ],
        [
          70,
          "CAN source 6"
        ],
        [
          71,
          "CAN source 7"
        ],
        [
          72,
          "CAN source 8"
        ],
        [
          73,
          "CAN source 9"
        ],
        [
          74,
          "CAN source 10"
        ],
        [
          75,
          "CAN source 11"
        ],
        [
          76,
          "CAN source 12"
        ],
        [
          77,
          "CAN source 13"
        ],
        [
          78,
          "CAN source 14"
        ],
        [
          79,
          "CAN source 15"
        ],
        [
          96,
          "User program output 0"
        ],
        [
          97,
          "User program output 1"
        ],
        [
          98,
          "User program output 2"
        ],
        [
          99,
          "User program output 3"
        ],
        [
          100,
          "User program output 4"
        ],
        [
          101,
          "User program output 5"
        ],
        [
          102,
          "User program output 6"
        ],
        [
          103,
          "User program output 7"
        ],
        [
          104,
          "User program output 8"
        ],
        [
          105,
          "User program output 9"
        ],
        [
          106,
          "User program output 10"
        ],
        [
          107,
          "User program output 11"
        ],
        [
          108,
          "User program output 12"
        ],
        [
          109,
          "User program output 13"
        ],
        [
          110,
          "User program output 14"
        ],
        [
          111,
          "User program output 15"
        ],
        [
          112,
          "Remote bit 0"
        ],
        [
          113,
          "Remote bit 1"
        ],
        [
          114,
          "Remote bit 2"
        ],
        [
          115,
          "Remote bit 3"
        ],
        [
          116,
          "Remote bit 4"
        ],
        [
          117,
          "Remote bit 5"
        ],
        [
          118,
          "Remote bit 6"
        ],
        [
          119,
          "Remote bit 7"
        ],
        [
          128,
          "Digital in 1 inverted"
        ],
        [
          129,
          "Digital in 2 inverted"
        ],
        [
          133,
          "Digital in 3 inverted"
        ],
        [
          134,
          "Digital in 4 inverted"
        ],
        [
          132,
          "Digital in 5 inverted"
        ],
        [
          135,
          "Analog 0 inverted"
        ],
        [
          136,
          "Analog 1 inverted"
        ],
        [
          137,
          "Analog 2 inverted"
        ],
        [
          138,
          "Analog 3 inverted"
        ],
        [
          130,
          "Analog 4 inverted"
        ],
        [
          131,
          "Analog 5 inverted"
        ],
        [
          139,
          "Analog 8 inverted"
        ],
        [
          140,
          "Analog 9 inverted"
        ],
        [
          141,
          "Analog 10 inverted"
        ],
        [
          142,
          "Analog 11 inverted"
        ],
        [
          143,
          "Analog 12 inverted"
        ],
        [
          149,
          "Analog 18 inverted"
        ],
        [
          150,
          "Analog 19 inverted"
        ],
        [
          151,
          "Analog 20 inverted"
        ],
        [
          152,
          "Analog 21 inverted"
        ],
        [
          153,
          "Analog 22 inverted"
        ],
        [
          154,
          "Analog 23 inverted"
        ],
        [
          155,
          "Ignition switch inverted"
        ],
        [
          160,
          "General purpose 1 inverted"
        ],
        [
          161,
          "General purpose 2 inverted"
        ],
        [
          162,
          "General purpose 3 inverted"
        ],
        [
          163,
          "General purpose 4 inverted"
        ],
        [
          165,
          "General purpose 5 inverted"
        ],
        [
          166,
          "General purpose 6 inverted"
        ],
        [
          167,
          "General purpose 7 inverted"
        ],
        [
          168,
          "General purpose 8 inverted"
        ],
        [
          170,
          "General purpose 9 inverted"
        ],
        [
          171,
          "General purpose 10 inverted"
        ],
        [
          172,
          "General purpose 11 inverted"
        ],
        [
          173,
          "General purpose 12 inverted"
        ],
        [
          174,
          "General purpose 13 inverted"
        ],
        [
          175,
          "General purpose 14 inverted"
        ],
        [
          176,
          "General purpose 15 inverted"
        ],
        [
          177,
          "General purpose 16 inverted"
        ],
        [
          181,
          "Cruise control overspeed inverted"
        ],
        [
          184,
          "Flip flop 1 inverted"
        ],
        [
          185,
          "Flip flop 2 inverted"
        ],
        [
          186,
          "Flip flop 3 inverted"
        ],
        [
          187,
          "Flip flop 4 inverted"
        ],
        [
          188,
          "Flip flop 5 inverted"
        ],
        [
          189,
          "Flip flop 6 inverted"
        ],
        [
          190,
          "Flip flop 7 inverted"
        ],
        [
          191,
          "Flip flop 8 inverted"
        ],
        [
          192,
          "CAN source 0 inverted"
        ],
        [
          193,
          "CAN source 1 inverted"
        ],
        [
          194,
          "CAN source 2 inverted"
        ],
        [
          195,
          "CAN source 3 inverted"
        ],
        [
          196,
          "CAN source 4 inverted"
        ],
        [
          197,
          "CAN source 5 inverted"
        ],
        [
          198,
          "CAN source 6 inverted"
        ],
        [
          199,
          "CAN source 7 inverted"
        ],
        [
          200,
          "CAN source 8 inverted"
        ],
        [
          201,
          "CAN source 9 inverted"
        ],
        [
          202,
          "CAN source 10 inverted"
        ],
        [
          203,
          "CAN source 11 inverted"
        ],
        [
          204,
          "CAN source 12 inverted"
        ],
        [
          205,
          "CAN source 13 inverted"
        ],
        [
          206,
          "CAN source 14 inverted"
        ],
        [
          207,
          "CAN source 15 inverted"
        ],
        [
          224,
          "User program output 0 inverted"
        ],
        [
          225,
          "User program output 1 inverted"
        ],
        [
          226,
          "User program output 2 inverted"
        ],
        [
          227,
          "User program output 3 inverted"
        ],
        [
          228,
          "User program output 4 inverted"
        ],
        [
          229,
          "User program output 5 inverted"
        ],
        [
          230,
          "User program output 6 inverted"
        ],
        [
          231,
          "User program output 7 inverted"
        ],
        [
          232,
          "User program output 8 inverted"
        ],
        [
          233,
          "User program output 9 inverted"
        ],
        [
          234,
          "User program output 10 inverted"
        ],
        [
          235,
          "User program output 11 inverted"
        ],
        [
          236,
          "User program output 12 inverted"
        ],
        [
          237,
          "User program output 13 inverted"
        ],
        [
          238,
          "User program output 14 inverted"
        ],
        [
          239,
          "User program output 15 inverted"
        ],
        [
          240,
          "Remote bit 0 inverted"
        ],
        [
          241,
          "Remote bit 1 inverted"
        ],
        [
          242,
          "Remote bit 2 inverted"
        ],
        [
          243,
          "Remote bit 3 inverted"
        ],
        [
          244,
          "Remote bit 4 inverted"
        ],
        [
          245,
          "Remote bit 5 inverted"
        ],
        [
          246,
          "Remote bit 6 inverted"
        ],
        [
          247,
          "Remote bit 7 inverted"
        ]
      ],
      "map_outputs":[
        [
          0,
          "Disabled"
        ],
        [
          128,
          "Always on"
        ],
        [
          1,
          "Fuel pump relay"
        ],
        [
          2,
          "Fan relay"
        ],
        [
          3,
          "Check engine light"
        ],
        [
          4,
          "Nitrous oxide solenoid"
        ],
        [
          5,
          "Nitrous oxide stage 2"
        ],
        [
          6,
          "Cruise control light"
        ],
        [
          10,
          "General purpose out 1"
        ],
        [
          11,
          "General purpose out 2"
        ],
        [
          12,
          "General purpose out 3"
        ],
        [
          13,
          "General purpose out 4"
        ],
        [
          15,
          "General purpose out 5"
        ],
        [
          16,
          "General purpose out 6"
        ],
        [
          17,
          "General purpose out 7"
        ],
        [
          18,
          "General purpose out 8"
        ],
        [
          20,
          "General purpose out 9"
        ],
        [
          21,
          "General purpose out 10"
        ],
        [
          22,
          "General purpose out 11"
        ],
        [
          23,
          "General purpose out 12"
        ],
        [
          24,
          "General purpose out 13"
        ],
        [
          25,
          "General purpose out 14"
        ],
        [
          26,
          "General purpose out 15"
        ],
        [
          27,
          "General purpose out 16"
        ],
        [
          31,
          "Cruise control overspeed"
        ],
        [
          32,
          "User program output 0"
        ],
        [
          33,
          "User program output 1"
        ],
        [
          34,
          "User program output 2"
        ],
        [
          35,
          "User program output 3"
        ],
        [
          36,
          "User program output 4"
        ],
        [
          37,
          "User program output 5"
        ],
        [
          38,
          "User program output 6"
        ],
        [
          39,
          "User program output 7"
        ],
        [
          40,
          "User program output 8"
        ],
        [
          41,
          "User program output 9"
        ],
        [
          42,
          "User program output 10"
        ],
        [
          43,
          "User program output 11"
        ],
        [
          44,
          "User program output 12"
        ],
        [
          45,
          "User program output 13"
        ],
        [
          46,
          "User program output 14"
        ],
        [
          47,
          "User program output 15"
        ],
        [
          48,
          "Idle stepper 1A"
        ],
        [
          49,
          "Idle stepper 1B"
        ],
        [
          50,
          "Idle stepper 2A"
        ],
        [
          51,
          "Idle stepper 2B"
        ],
        [
          52,
          "Anti lag output"
        ],
        [
          53,
          "Shift solenoid A"
        ],
        [
          54,
          "Shift solenoid B"
        ],
        [
          55,
          "Shift solenoid C"
        ],
        [
          28,
          "Lock up solenoid"
        ],
        [
          56,
          "GP PID 1 polarity output"
        ],
        [
          57,
          "GP PID 2 polarity output"
        ],
        [
          58,
          "Second electronic throttle polarity"
        ]
      ],
      "map_pwmoutputs":[
        [
          65,
          "Boost control"
        ],
        [
          66,
          "Generic PWM"
        ],
        [
          69,
          "Generic PID control"
        ],
        [
          70,
          "Generic PID control 2"
        ],
        [
          71,
          "VVT primary cam"
        ],
        [
          72,
          "VVT secondary cam"
        ],
        [
          78,
          "VVT cam 3"
        ],
        [
          79,
          "VVT cam 4"
        ],
        [
          73,
          "N2O PWM solenoid"
        ],
        [
          74,
          "N2O stage 2 PWM solenoid"
        ],
        [
          75,
          "Anti lag PWM valve"
        ],
        [
          76,
          "N2O PWM fuel solenoid"
        ],
        [
          77,
          "N2O stage 2 PWM fuel solenoid"
        ],
        [
          80,
          "Speedometer output"
        ],
        [
          81,
          "User program PWM 1"
        ],
        [
          82,
          "User program PWM 2"
        ],
        [
          83,
          "User program PWM 3"
        ],
        [
          84,
          "User program PWM 4"
        ],
        [
          85,
          "User program PWM 5"
        ],
        [
          86,
          "User program PWM 6"
        ],
        [
          87,
          "User program PWM 7"
        ],
        [
          88,
          "User program PWM 8"
        ],
        [
          90,
          "Second electronic throttle PWM"
        ],
        [
          91,
          "Simple PWM 1"
        ],
        [
          92,
          "Simple PWM 2"
        ],
        [
          93,
          "Simple PWM 3"
        ],
        [
          94,
          "Simple PWM 4"
        ]
      ],
      "enum_dinfunctions":[
        "General purpose digital input",
        "Wheel speed input",
        "Turbocharger speed input",
        "Alternate cam sync",
        "Cam angle 3",
        "Cam angle 4",
        "General purpose frequency input",
        "Flex fuel frequency\/pw sensor"
      ],
      "enum_faultlevels":[
        "Ignored",
        "CEL only",
        "Fault mode 1",
        "Fault mode 2",
        "Fault mode 3",
        "Fault mode 4",
        "Fault mode 5",
        "Fault mode 6"
      ]
    },
    "presets":[
      {
        "category":"Common firing orders",
        "data":[
          {
            "name":"3 cyl 2 stroke 1-2-3",
            "data":{
              "cylcount":3,
              "enginestroke":"Two stroke",
              "baseangle":[
                0,
                120,
                240
              ]
            }
          },
          {
            "name":"3 cyl 4 stroke 1-3-2",
            "data":{
              "cylcount":3,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                480,
                240
              ]
            }
          },
          {
            "name":"4 cyl 4 stroke 1-3-4-2",
            "data":{
              "cylcount":4,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                540,
                180,
                360
              ]
            }
          },
          {
            "name":"4 cyl 4 stroke 1-3-2-4 (Subaru EJ20)",
            "data":{
              "cylcount":4,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                360,
                180,
                540
              ]
            }
          },
          {
            "name":"V6 4 stroke 1-2-3-4-5-6",
            "data":{
              "cylcount":6,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                120,
                240,
                360,
                480,
                600
              ]
            }
          },
          {
            "name":"V6 4 stroke 1-6-5-4-3-2 (Chevy 4.3)",
            "data":{
              "cylcount":6,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                600,
                480,
                360,
                240,
                120
              ]
            }
          },
          {
            "name":"V6 4 stroke 1-4-2-5-3-6 (Ford)",
            "data":{
              "cylcount":6,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                240,
                480,
                120,
                360,
                600
              ]
            }
          },
          {
            "name":"I6 4 stroke 1-5-3-6-2-4",
            "data":{
              "cylcount":6,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                480,
                240,
                600,
                120,
                360
              ]
            }
          },
          {
            "name":"V8 4 stroke 1-8-4-3-6-5-7-2 (SBC\/BBC\/Mopar\/AMC)",
            "data":{
              "cylcount":8,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                630,
                270,
                180,
                450,
                360,
                540,
                90
              ]
            }
          },
          {
            "name":"V8 4 stroke 1-8-7-2-6-5-4-3 (Chevy LS)",
            "data":{
              "cylcount":8,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                270,
                630,
                540,
                450,
                360,
                180,
                90
              ]
            }
          },
          {
            "name":"V8 4 stroke 1-3-7-2-6-5-4-8 (Ford Windsor\/5.0HO\/Modular)",
            "data":{
              "cylcount":8,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                270,
                90,
                540,
                450,
                360,
                180,
                630
              ]
            }
          },
          {
            "name":"V8 4 stroke 1-5-4-2-6-3-7-8 (Ford 289\/302\/FE\/429\/460)",
            "data":{
              "cylcount":8,
              "enginestroke":"Four stroke",
              "baseangle":[
                0,
                270,
                450,
                180,
                90,
                360,
                540,
                630
              ]
            }
          }
        ]
      },
      {
        "category":"Crank\/cam trigger presets",
        "data":[
          {
            "name":"Ford 36-1 without cam sync",
            "description":"Vanilla missing-tooth trigger",
            "data":{
              "triggertoothcount":2,
              "triggerteeth":[
                20,
                10
              ],
              "repeattooth":[
                0,
                33
              ],
              "syncratio":1.500000,
              "syncangle":70,
              "cranksyncmode":"Missing tooth",
              "triggermode":"Versatile multi tooth"
            }
          },
          {
            "name":"60-2 without cam sync",
            "description":"Vanilla missing-tooth trigger",
            "data":{
              "triggertoothcount":2,
              "triggerteeth":[
                18,
                6
              ],
              "repeattooth":[
                0,
                56
              ],
              "syncratio":1.500000,
              "syncangle":70,
              "cranksyncmode":"Missing tooth",
              "triggermode":"Versatile multi tooth"
            }
          },
          {
            "name":"Subaru 6\/7 4 cyl",
            "description":"EJ20 engines pre-2002",
            "data":{
              "triggertoothcount":12,
              "triggerteeth":[
                93,
                32,
                55,
                93,
                32,
                55,
                93,
                32,
                55,
                93,
                32,
                55
              ],
              "repeattooth":[
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              "syncangle":632,
              "cranksyncmode":"None",
              "triggermode":"Versatile multi tooth",
              "camsyncmode":"Count cam impulses",
              "camsynccount":3,
              "rpmfilter":100,
              "camfilter":100,
              "baseangle":[
                0,
                360,
                180,
                540
              ],
              "invertcrank":"Rising",
              "invertcam":"Rising"
            }
          },
          {
            "name":"Subaru\/Mazda\/Suzuki 36-2-2-2 without cam sync",
            "description":"36-2-2-2 on crank",
            "data":{
              "triggertoothcount":5,
              "triggerteeth":[
                30,
                10,
                30,
                10,
                30
              ],
              "repeattooth":[
                0,
                11,
                0,
                14,
                0
              ],
              "syncangle":5,
              "triggermode":"Versatile multi tooth",
              "cranksyncmode":"Two adjacent long gaps",
              "camsyncmode":"No cam",
              "invertcrank":"Rising",
              "invertcam":"Rising",
              "rpmfilter":100,
              "camfilter":100
            }
          },
          {
            "name":"Subaru 36-2-2-2 with non-vvt cam sync",
            "description":"36-2-2-2 on crank, 2 on cam spaced 180 crank degrees apart",
            "data":{
              "triggertoothcount":5,
              "triggerteeth":[
                30,
                10,
                30,
                10,
                30
              ],
              "repeattooth":[
                0,
                11,
                0,
                14,
                0
              ],
              "syncangle":545,
              "triggermode":"Versatile multi tooth",
              "cranksyncmode":"Two adjacent long gaps",
              "camsyncmode":"Count cam impulses",
              "camsynccount":1,
              "invertcrank":"Rising",
              "invertcam":"Rising",
              "rpmfilter":100,
              "camfilter":100,
              "camwindowfilter_enable":"Enabled",
              "camwindow":[
                250,
                160
              ]
            }
          },
          {
            "name":"4g63",
            "description":"4g63 and Miata",
            "data":{
              "triggertoothcount":8,
              "triggerteeth":[
                110,
                70,
                110,
                70,
                110,
                70,
                110,
                70
              ],
              "repeattooth":[
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              "syncangle":615,
              "cranksyncmode":"None",
              "triggermode":"Dual edge",
              "camsyncmode":"Crank state on cam impulse",
              "cranksyncstate":0,
              "invertcrank":"Falling",
              "invertcam":"Falling",
              "rpmfilter":100,
              "camfilter":100,
              "baseangle":[
                0,
                540,
                180,
                360
              ]
            }
          },
          {
            "name":"Chrysler 5.2\/5.9 Magnum",
            "description":"8 regular on crank, 1 on cam",
            "data":{
              "triggermode":"Versatile multi tooth",
              "triggertoothcount":1,
              "triggerteeth":[
                45
              ],
              "repeattooth":[
                15
              ],
              "cranksyncmode":"None",
              "camsyncmode":"Count cam impulses",
              "camcount":1,
              "rpmfilter":100,
              "camfilter":100,
              "syncangle":60,
              "invertcrank":"Falling",
              "invertcam":"Falling",
              "ignoredteeth":1
            }
          },
          {
            "name":"Chrysler 4.7 V8 1999-2001",
            "description":"16 with jitter on crank, 16 irregular on cam",
            "data":{
              "triggermode":"Versatile multi tooth",
              "triggertoothcount":16,
              "triggerteeth":[
                25,
                20,
                25,
                20,
                25,
                20,
                25,
                20,
                25,
                20,
                25,
                20,
                25,
                20,
                25,
                20
              ],
              "repeattooth":[
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1
              ],
              "cranksyncmode":"None",
              "camsyncmode":"Cam count pattern",
              "campatternsize":8,
              "camcountpattern":[
                1,
                1,
                1,
                0,
                1,
                1,
                1,
                0
              ],
              "rpmfilter":100,
              "camfilter":100,
              "syncangle":435,
              "invertcrank":"Rising",
              "invertcam":"Rising",
              "ignoredteeth":0
            }
          },
          {
            "name":"GM LS1",
            "description":"24 duty cycle coded teeth on crank, half moon on cam. Cam optional.",
            "data":{
              "triggermode":"Duty cycle coded",
              "triggertoothcount":1,
              "triggerteeth":[
                15
              ],
              "repeattooth":[
                23
              ],
              "camsyncmode":"Cam state on crank sync",
              "crankpatternsize":7,
              "crankpattern":[
                1,
                1,
                1,
                1,
                1,
                0,
                1
              ],
              "rpmfilter":100,
              "syncangle":240,
              "invertcrank":"Falling",
              "invertcam":"Falling",
              "ignoredteeth":0
            }
          },
          {
            "name":"Mazda RX7 FD",
            "description":"13B twin turbo engine",
            "data":{
              "triggermode":"Versatile multi tooth",
              "triggertoothcount":1,
              "triggerteeth":[
                30
              ],
              "baseangle":[
                0,
                180
              ],
              "cranksyncmode":"None",
              "repeattooth":[
                11
              ],
              "camsyncmode":"Count cam impulses",
              "camcount":1,
              "rpmfilter":100,
              "camfilter":100,
              "syncangle":4,
              "invertcrank":"Falling",
              "invertcam":"Falling",
              "enginestroke":"Two stroke",
              "cylcount":2,
              "injectorcount":2,
              "coilcount":1,
              "secinjcount":2,
              "trailcoilcount":2,
              "coilassign":[
                1,
                1
              ],
              "primaryinjectorassign":[
                1,
                2
              ],
              "trailcoilassign":[
                2,
                3
              ]
            }
          },
          {
            "name":"Honda K series",
            "description":"12+1 on crank, 4+1 on exhaust cam (primary), 4 on inlet cam (VVT)",
            "data":{
              "triggertoothcount":1,
              "triggerteeth":[
                30
              ],
              "repeattooth":[
                11
              ],
              "syncangle":668,
              "triggermode":"Versatile multi tooth",
              "cranksyncmode":"Extra tooth",
              "syncratio":0.400000,
              "camsyncmode":"Count cam impulses",
              "camsynccount":1,
              "invertcrank":"Falling",
              "invertcam":"Falling",
              "rpmfilter":100,
              "camfilter":100,
              "camwindowfilter_enable":"Enabled",
              "camwindow":[
                20,
                320
              ],
              "din1function":"Alternate cam sync",
              "camoffset2":30,
              "vvtcount2":4,
              "din1rising":"Falling"
            }
          }
        ]
      },
      {
        "category":"Thermistors",
        "data":[
          {
            "name":"GM coolant temperature sensor",
            "data":{
              "coolantbpcount":16,
              "coolantadc":[
                4.857138,
                4.733817,
                4.529910,
                4.223439,
                3.800973,
                3.280827,
                2.711841,
                2.152623,
                1.654455,
                1.242978,
                0.923076,
                0.683760,
                0.506715,
                0.377289,
                0.283272,
                0.000000
              ],
              "coolantvalues":[
                -40.000000,
                -30.000000,
                -20.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,
                150.000000
              ]
            }
          },
          {
            "name":"GM air temperature sensor",
            "data":{
              "airtempbpcount":16,
              "airtempadc":[
                4.857138,
                4.733817,
                4.529910,
                4.223439,
                3.800973,
                3.280827,
                2.711841,
                2.152623,
                1.654455,
                1.242978,
                0.923076,
                0.683760,
                0.506715,
                0.377289,
                0.283272,
                0.000000
              ],
              "airtempvalues":[
                -40.000000,
                -30.000000,
                -20.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,
                150.000000
              ]
            }
          },
          {
            "name":"Bosch coolant temperature sensor",
            "data":{
              "coolantbpcount":16,
              "coolantadc":[
                0.000000,
                0.283272,
                0.570207,
                0.859584,
                1.153845,
                1.451769,
                1.753356,
                2.058606,
                2.368740,
                2.682537,
                2.999997,
                3.322341,
                3.648348,
                3.979239,
                4.315014,
                4.655673
              ],
              "coolantvalues":[
                154.000000,
                91.000000,
                68.000000,
                54.000000,
                45.000000,
                37.000000,
                31.000000,
                25.000000,
                19.000000,
                13.000000,
                8.000000,
                2.000000,
                -4.000000,
                -10.000000,
                -19.000000,
                -32.000000
              ]
            }
          },
          {
            "name":"Bosch air temperature sensor",
            "data":{
              "airtempbpcount":16,
              "airtempadc":[
                0.000000,
                0.283272,
                0.570207,
                0.859584,
                1.153845,
                1.451769,
                1.753356,
                2.058606,
                2.368740,
                2.682537,
                2.999997,
                3.322341,
                3.648348,
                3.979239,
                4.315014,
                4.655673
              ],
              "airtempvalues":[
                154.000000,
                91.000000,
                68.000000,
                54.000000,
                45.000000,
                37.000000,
                31.000000,
                25.000000,
                19.000000,
                13.000000,
                8.000000,
                2.000000,
                -4.000000,
                -10.000000,
                -19.000000,
                -32.000000
              ]
            }
          },
          {
            "name":"Chrysler coolant temperature sensor",
            "data":{
              "coolantbpcount":16,
              "coolantadc":[
                0.181929,
                0.791208,
                1.053723,
                1.385835,
                1.786323,
                2.245419,
                2.737482,
                3.224661,
                3.671547,
                4.050057,
                4.347981,
                4.567761,
                4.722828,
                4.827834,
                4.894989,
                4.937724
              ],
              "coolantvalues":[
                150.000000,
                100.000000,
                90.000000,
                80.000000,
                70.000000,
                60.000000,
                50.000000,
                40.000000,
                30.000000,
                20.000000,
                10.000000,
                0.000000,
                -10.000000,
                -20.000000,
                -30.000000,
                -40.000000
              ]
            }
          },
          {
            "name":"Chrysler air temperature sensor",
            "data":{
              "airtempbpcount":16,
              "airtempadc":[
                0.181929,
                0.791208,
                1.053723,
                1.385835,
                1.786323,
                2.245419,
                2.737482,
                3.224661,
                3.671547,
                4.050057,
                4.347981,
                4.567761,
                4.722828,
                4.827834,
                4.894989,
                4.937724
              ],
              "airtempvalues":[
                150.000000,
                100.000000,
                90.000000,
                80.000000,
                70.000000,
                60.000000,
                50.000000,
                40.000000,
                30.000000,
                20.000000,
                10.000000,
                0.000000,
                -10.000000,
                -20.000000,
                -30.000000,
                -40.000000
              ]
            }
          },
          {
            "name":"Autronic PTC air temperature sensor",
            "data":{
              "airtempbpcount":2,
              "airtempadc":[
                0.414000,
                2.504000
              ],
              "airtempvalues":[
                -100.000000,
                200.000000
              ]
            }
          },
          {
            "name":"Autronic PTC coolant temperature sensor",
            "data":{
              "coolantbpcount":2,
              "coolantadc":[
                0.414000,
                2.504000
              ],
              "coolantvalues":[
                -100.000000,
                200.000000
              ]
            }
          },
          {
            "name":"Bosch oil temperature sensor",
            "description":"Data for a 3300 ohm pull up resistor, giving a 3099 ohm effective pull up when combined with the existing 51k pull up on the free analog inputs",
            "data":{
              "oiltempbpcount":16,
              "oiltempvoltages":[
                4.679935,
                3.760003,
                3.277376,
                2.751415,
                2.232542,
                1.775905,
                1.374591,
                1.060259,
                0.806495,
                0.616690,
                0.471946,
                0.363555,
                0.284540,
                0.222017,
                0.175903,
                0.139586
              ],
              "oiltempvalues":[
                -40,
                -10,
                0,
                10,
                20,
                30,
                40,
                50,
                60,
                70,
                80,
                90,
                100,
                110,
                120,
                130
              ]
            }
          }
        ]
      },
      {
        "category":"CAN bus interfacing",
        "data":[
          {
            "name":"Racepak V-net",
            "description":"Racepak 250kbit CAN network for IQ3 display.\r\nDisplays MAP in mbar, temperatures in degrees celsius.",
            "data":{
              "canmode":"250kbit",
              "customcanenable":"Enabled",
              "customcaninterval":[
                "25Hz",
                "25Hz",
                "25Hz",
                "1Hz",
                "10Hz",
                "1Hz",
                "10Hz",
                "10Hz",
                "10Hz",
                "1Hz",
                "10Hz"
              ],
              "customcanchecksums":[
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None",
                "None"
              ],
              "customcanaddr":[
                1872,
                1874,
                1875,
                1877,
                1878,
                1879,
                1880,
                1882,
                1884,
                1885,
                1888
              ],
              "customcanlength":[
                2,
                3,
                2,
                2,
                3,
                3,
                3,
                3,
                2,
                3,
                2
              ],
              "customcandata":[
                "const_zero",
                "enginespeed",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "sparkangle1",
                "const_zero",
                "const_zero",
                "map",
                "const_zero",
                "const_zero",
                "const_zero",
                "cel",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "throttle",
                "const_zero",
                "const_zero",
                "const_zero",
                "coolanttemp",
                "const_zero",
                "const_zero",
                "const_zero",
                "lambda",
                "const_zero",
                "const_zero",
                "const_zero",
                "roadspeed",
                "const_zero",
                "const_zero",
                "injdc1",
                "const_zero",
                "const_zero",
                "const_zero",
                "const_zero",
                "airtemp",
                "const_zero",
                "const_zero",
                "gear"
              ],
              "customcanformat":[
                "u16le",
                "u16le",
                "bit",
                "bit",
                "u8",
                "s8",
                "s16le",
                "bit",
                "u16le",
                "u16le",
                "bit",
                "bit",
                "u16le",
                "u16le",
                "bit",
                "bit",
                "u8",
                "s8",
                "u16le",
                "bit",
                "u8",
                "s8",
                "s16le",
                "bit",
                "u8",
                "s8",
                "u16le",
                "bit",
                "u8",
                "s8",
                "u16le",
                "bit",
                "u16le",
                "u16le",
                "bit",
                "bit",
                "u8",
                "s8",
                "s16le",
                "bit",
                "u16le",
                "u16le"
              ],
              "customcanrange":[
                0.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                -5461.000000,
                5461.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                0.000000,
                1023.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                0.000000,
                20000.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                200.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                1.000000,
                0.000000,
                20000.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                0.000000,
                0.000000
              ],
              "customcanoutput":[
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -1.000000,
                -1.000000,
                -600.000000,
                600.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -1.000000,
                -1.000000,
                0.000000,
                1000.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -1.000000,
                -1.000000,
                -2731.000000,
                17269.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -3.000000,
                -3.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -1.000000,
                -1.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                0.000000,
                100.000000,
                0.000000,
                0.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                -1.000000,
                -1.000000,
                -2731.000000,
                17269.000000,
                0.000000,
                0.000000,
                1.000000,
                1.000000,
                0.000000,
                0.000000
              ]
            }
          }
        ]
      }
    ],
    "confdef":[
      {
        "page":0,
        "size":24576,
        "data":[
          {
            "id":"bits0",
            "type":3,
            "address":12
          },
          {
            "id":"bits1",
            "type":3,
            "address":16
          },
          {
            "id":"enginestroke",
            "type":8,
            "options":[
              "Four stroke",
              "Two stroke"
            ],
            "address":"bits0.0.0",
            "reset":1,
            "descr":"This options selects whether a full engine cycle is 360 degrees of crank rotation or 720 degrees."
          },
          {
            "id":"mapadcrange",
            "min":0.000000,
            "max":5.000000,
            "type":2,
            "scale":0.001221,
            "array":2,
            "digits":3,
            "unit":"V",
            "descr":"Within this range, the MAP sensor voltage gets translated to pressure. Outside of this range the minimum or maximum value is displayed.",
            "address":7400
          },
          {
            "id":"mapvalidrange",
            "min":0.000000,
            "max":5.000000,
            "type":2,
            "scale":0.001221,
            "array":2,
            "digits":3,
            "unit":"V",
            "descr":"Within this range, the MAP sensor voltage gets translated to pressure. Outside of this range an error is registered and the MAP assigned a default value.",
            "address":19648
          },
          {
            "id":"mapvaluerange",
            "min":0,
            "max":65535,
            "type":2,
            "array":2,
            "unit":"mbar",
            "descr":"The calibration values for the MAP sensor.",
            "address":7404
          },
          {
            "id":"map2source",
            "type":9,
            "maxwidth":2,
            "descr":"If set to anything other than const_zero, processing of a second MAP sensor is enabled",
            "address":19652
          },
          {
            "id":"map2adcrange",
            "min":0.000000,
            "max":5.000000,
            "type":2,
            "scale":0.001221,
            "array":2,
            "digits":3,
            "unit":"V",
            "descr":"Within this range, the MAP sensor voltage gets translated to pressure. Outside of this range the minimum or maximum value is displayed.",
            "address":19660
          },
          {
            "id":"map2validrange",
            "min":0.000000,
            "max":5.000000,
            "type":2,
            "scale":0.001221,
            "array":2,
            "digits":3,
            "unit":"V",
            "descr":"Within this range, the MAP sensor voltage gets translated to pressure. Outside of this range an error is registered and the MAP assigned a default value.",
            "address":19656
          },
          {
            "id":"map2valuerange",
            "min":0,
            "max":65535,
            "type":2,
            "array":2,
            "unit":"mbar",
            "descr":"The calibration values for the MAP sensor.",
            "address":19664
          },
          {
            "id":"mapdefault",
            "min":0,
            "max":65535,
            "type":2,
            "unit":"mbar",
            "descr":"The default value used for MAP if the sensor is deemed faulty, normally 800-1000mbar to allow safe driving of a short distance at reduced power.",
            "address":7408
          },
          {
            "id":"coolantbpcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This sets the number of breakpoints on the transfer function that describes the coolant temperature sensor.",
            "address":7544
          },
          {
            "id":"coolantadc",
            "type":2,
            "array":32,
            "describedby":"ectsource",
            "cols":"coolantbpcount",
            "descr":"These breakpoints are used to describe the function of the engine coolant temperature sensor.",
            "address":7474
          },
          {
            "id":"coolantvalues",
            "min":-200,
            "max":300,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "array":32,
            "digits":1,
            "input":"coolanttemp",
            "unit":"°C",
            "cols":"coolantbpcount",
            "descr":"This is the transfer function of the engine coolant temperature sensor. The breakpoints and number of breakpoints as well as input source are all configurable.",
            "address":7410
          },
          {
            "id":"ectbins",
            "min":-100,
            "max":200,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "array":16,
            "digits":1,
            "input":"coolanttemp",
            "unit":"°C",
            "descr":"These breakpoints are used in a number of functions that use engine coolant temperature, such as cranking and warm up fuel.",
            "address":7696
          },
          {
            "id":"coolantlimits",
            "min":-100,
            "max":200,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "array":2,
            "digits":1,
            "unit":"°C",
            "descr":"This is the range of values the coolant temperature sensor is realistically expected to read. Any value outside of this range will be considered an anomaly, the sensor marked at fault and the default temperature value used instead.",
            "address":7538
          },
          {
            "id":"coolantdefault",
            "min":-100,
            "max":200,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "digits":1,
            "unit":"°C",
            "descr":"This is the default coolant temperature value used if the sensor is deemed faulty by any of the logic involved. It should probably be a value that at least lets the cooling fans run.",
            "address":7542
          },
          {
            "id":"airtempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"This sets the number of breakpoints on the transfer function that describes the charge air temperature sensor.",
            "address":7545
          },
          {
            "id":"airtempadc",
            "describedby":"airtempsource",
            "type":2,
            "array":32,
            "cols":"airtempbpcount",
            "descr":"These breakpoints are used to describe the function of the charge air temperature sensor.",
            "address":7610
          },
          {
            "id":"airtempvalues",
            "min":-200,
            "max":300,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "array":32,
            "digits":1,
            "input":"airtemp",
            "unit":"°C",
            "cols":"airtempbpcount",
            "descr":"This is the transfer function of the charge air temperature sensor. The breakpoints and number of breakpoints as well as input source are all configurable.",
            "address":7546
          },
          {
            "id":"airtemplimits",
            "min":-100,
            "max":200,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "array":2,
            "digits":1,
            "unit":"°C",
            "descr":"This is the range of values the charge air temperature sensor is realistically expected to read. Any value outside of this range will be considered an anomaly, the sensor marked at fault and the default temperature value used instead.",
            "address":7674
          },
          {
            "id":"airtempdefault",
            "min":-100,
            "max":200,
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "digits":1,
            "unit":"°C",
            "descr":"The default value used for air temperature if the sensor is deemed faulty.",
            "address":7678
          },
          {
            "id":"appsrc",
            "type":9,
            "maxwidth":2,
            "descr":"This variable picker selects the accelerator pedal input in the case of electronic throttle setups, or the throttle position input in case of mechanically actuated throttles.\r\nDefault is analog0. DO NOT CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.\r\nThe only valid reason to change this is to use something other than an analog input as an accelerator source, such as a CAN source.",
            "address":24
          },
          {
            "id":"appsecsrc",
            "type":9,
            "maxwidth":2,
            "descr":"This variable picker selects the accelerator pedal secondary input.\r\nDefault is analog1. DO NOT CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.",
            "address":28
          },
          {
            "id":"etpsrc",
            "type":9,
            "maxwidth":2,
            "descr":"This variable picker selects the throttle position input in case of electronic throttle control.\r\nDefault is analog8. DO NOT CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.",
            "address":32
          },
          {
            "id":"etpsecsrc",
            "type":9,
            "maxwidth":2,
            "descr":"This variable picker selects the throttle position secondary input for electronic throttle control.\r\nDefault is analog9. DO NOT CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.",
            "address":36
          },
          {
            "id":"throttlerange",
            "variations":[
              [
                "dbwenable",
                "=",
                1234567890
              ],
              {
                "describedby":"appsrc"
              },
              [
                "dbwenable",
                "!=",
                1234567890
              ],
              {
                "describedby":"etpsrc"
              }
            ],
            "type":2,
            "array":2,
            "descr":"The voltage range the primary throttle position sensor operates in. This is input analog0 in case of mechanical throttle control, analog8 for electronic throttle.",
            "address":7392,
            "describedby":"appsrc"
          },
          {
            "id":"throttlelimits",
            "variations":[
              [
                "dbwenable",
                "=",
                1234567890
              ],
              {
                "describedby":"appsrc"
              },
              [
                "dbwenable",
                "!=",
                1234567890
              ],
              {
                "describedby":"etpsrc"
              }
            ],
            "type":2,
            "array":2,
            "descr":"The absolute minimum and maximum voltage values seen from primary throttle position sensor, outside of this range the sensor is considered faulty. In the case of electronic throttle control a throttle position sensor fault will shut engine off.",
            "address":7396,
            "describedby":"appsrc"
          },
          {
            "id":"baseangle",
            "min":0.000000,
            "max":719.900000,
            "type":2,
            "unit":"°ATDC",
            "scale":0.010986,
            "array":12,
            "digits":1,
            "cols":"cylcount",
            "descr":"The angle offsets of each cylinder relative to cylinder 1. Cylinder 1 is expected to have a value of 0 degrees and the others are specified by number of degrees they lag behind cylinder 1 in the firing order.",
            "address":8596
          },
          {
            "id":"injectorcount",
            "descr":"Number of primary injector outputs connected. \r\nIf this is equal to the number of cylinders then sequential fuelling mode is selected (injection angle is relative to each cylinder's TDC). \r\nOtherwise the injection angles are all relative to the first cylinder's TDC. \r\nIn sequential mode the assumption is made that cylinder 1 is on injector output 1 and so on.",
            "type":1,
            "max":8,
            "reset":1,
            "address":8581
          },
          {
            "id":"coilcount",
            "descr":"Number of ignition outputs connected.",
            "type":1,
            "max":8,
            "reset":1,
            "address":8582
          },
          {
            "id":"cylcount",
            "type":1,
            "min":0,
            "max":12,
            "reset":1,
            "descr":"Number of cylinders or combustion chambers the engine has.",
            "address":8580
          },
          {
            "id":"fuelrpmbins",
            "input":"enginespeed",
            "min":0,
            "max":65000,
            "type":2,
            "array":32,
            "cols":"fuelrpmbincount",
            "descr":"Engine speed breakpoints used for fuel maps.",
            "address":2652
          },
          {
            "id":"ignrpmbins",
            "input":"enginespeed",
            "min":0,
            "max":65000,
            "type":2,
            "array":32,
            "cols":"ignrpmbincount",
            "descr":"Engine speed breakpoints used for ignition maps.",
            "address":2716
          },
          {
            "id":"ignpriloadbins",
            "type":2,
            "cols":"ignpribincount",
            "describedby":"ignpriloadsource",
            "array":32,
            "descr":"Primary engine load breakpoints used for ignition maps.",
            "address":2908
          },
          {
            "id":"ignsecloadbins",
            "type":2,
            "cols":"ignsecbincount",
            "describedby":"ignsecloadsource",
            "array":32,
            "descr":"Secondary engine load breakpoints used for ignition maps, if secondary maps are enabled.",
            "address":2588
          },
          {
            "id":"fuelpriloadbins",
            "type":2,
            "array":32,
            "cols":"fuelpribincount",
            "describedby":"fuelpriloadsource",
            "descr":"Primary engine load breakpoints used for fuel maps.",
            "address":2780
          },
          {
            "id":"mainfuelmap",
            "unit":"mg\/cycle",
            "min":0,
            "max":650,
            "type":2,
            "scale":0.010000,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "digits":2,
            "descr":"This is the primary fuel map. It specifies the fuel mass injected depending on engine speed and load.",
            "variations":[
              [
                "fuelstrategy",
                "=",
                "Fuel mass"
              ],
              {
                "unit":"mg\/cycle",
                "endif":true
              },
              [
                "fuelstrategy",
                "=",
                "Air mass (VE)"
              ],
              {
                "unit":"%"
              }
            ],
            "address":540
          },
          {
            "id":"mainignmap",
            "min":-90,
            "max":90,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "rows":"ignpribincount",
            "cols":"ignrpmbincount",
            "array":256,
            "digits":1,
            "descr":"This is the primary ignition map. It specifies the ignition angle depending on engine speed and load.",
            "address":1564
          },
          {
            "id":"secondaryignmap",
            "min":-90,
            "max":90,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "rows":"ignsecbincount",
            "cols":"ignrpmbincount",
            "array":256,
            "digits":1,
            "descr":"The output of this secondary ignition map, if enabled, will add to the output of the primary ignition map.",
            "address":2076
          },
          {
            "id":"syncangle",
            "min":0,
            "max":719.900000,
            "type":2,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "descr":"In degrees before TDC of cylinder 1, this is the angle at which the primary sync function of the crank trigger is expected to happen.\r\nIf cam sync is present then this value also represents on which part of the cycle the cam sync happens (valid range from 0 to 720 degrees).\r\nThe ECU strategy does not care at all where sync is in relation to the first cylinder but if designing a crank trigger some consideration should be given to accuracy inside ignition timing range as well as locating sync features in parts where crank acceleration rate is most likely to favour a clean sync pattern.",
            "address":8594
          },
          {
            "id":"fuelsecloadbins",
            "type":2,
            "array":32,
            "describedby":"fuelsecloadsource",
            "cols":"fuelsecbincount",
            "descr":"These are the load breakpoints used in the secondary fuel map, if used. The load variable can be specified by the user.",
            "address":2844
          },
          {
            "id":"percylloadbins",
            "type":2,
            "array":32,
            "describedby":"percylloadsource",
            "cols":"percylbincount",
            "address":2972
          },
          {
            "id":"fuelrpmbincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The fuel maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7788
          },
          {
            "id":"fuelpribincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The fuel maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7790
          },
          {
            "id":"fuelsecbincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The fuel maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7791
          },
          {
            "id":"ignrpmbincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The ignition maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7789
          },
          {
            "id":"ignpribincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The ignition maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7792
          },
          {
            "id":"ignsecbincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The ignition maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7795
          },
          {
            "id":"percylbincount",
            "min":1,
            "max":32,
            "type":1,
            "descr":"The individual cylinder tuning maps have user configurable dimensions. Up to 32 engine speed breakpoints as well as up to 32 load breakpoints, but the total number of table cells must not be greater than 256.",
            "address":7794
          },
          {
            "id":"triggertoothcount",
            "type":1,
            "descr":"This setting specifies the number of different trigger tooth configuration cells in versatile multi tooth trigger mode.",
            "address":8842
          },
          {
            "id":"rpmfilter",
            "type":2,
            "unit":"µs",
            "descr":"This setting specifies the amount of time to hold off on crank trigger input after an impulse is received, ignoring any impulses reveived during that time. Useful in situations with hall effect sensors and large amounts of torsional vibration as well as certain scenarios with overloaded variable reluctance sensors.",
            "address":20
          },
          {
            "id":"camfilter",
            "type":2,
            "unit":"µs",
            "descr":"This setting specifies the amount of time to hold off on cam sync input after an impulse is received, ignoring any impulses reveived during that time. Useful in situations with hall effect sensors and large amounts of torsional vibration as well as certain scenarios with overloaded variable reluctance sensors.",
            "address":22
          },
          {
            "id":"camcount",
            "type":1,
            "descr":"Count to use when cam sync mode is set to count cam impulses between crank impulses. Typical count is 1 but special situations such as Subaru 6\/7 trigger need different counts.",
            "address":9244
          },
          {
            "id":"crankgapinterval",
            "type":1,
            "descr":"In the 'Count between long gaps' mode this parameter is used to specify the distance between tooth gaps that causes synchronisation.\r\nThis value is one less than the distance between the gaps. For example if there is a long gap, followed by a short gap and then another long gap, the value is 1.\r\nA distance of zero is not supported by this mode, use 'Two adjacent long gaps' in that case.",
            "address":9254
          },
          {
            "id":"camcountrange",
            "type":1,
            "array":2,
            "descr":"Count range to use when cam sync mode is set to count crank impulses since cam impulse.",
            "address":19048
          },
          {
            "id":"camcountpattern",
            "type":1,
            "array":8,
            "cols":"campatternsize",
            "descr":"Pattern used for specifying cam impulse counts in cam count pattern mode.",
            "address":9245
          },
          {
            "id":"campatternsize",
            "type":1,
            "max":8,
            "descr":"This setting specifies the length of the cam count pattern if using cam count pattern mode for cam sync.",
            "address":9253
          },
          {
            "id":"crankpattern",
            "type":1,
            "array":8,
            "cols":"crankpatternsize",
            "descr":"In duty cycle coded trigger mode, this pattern specifies the pattern of high or low duty cycles to look for in order to find sync. A value of 1 specifies a period when the duty cycle is greater than 50% and a value of 0 specifies a period when the duty cycle is smaller than 50%. \r\nThese are inverted if crank trigger active edge is set to rising edge.",
            "address":15448
          },
          {
            "id":"crankpatternsize",
            "type":1,
            "max":8,
            "descr":"In duty cycle coded trigger mode, this setting specifies the length of the pattern to look for.",
            "address":15456
          },
          {
            "id":"tachcylcount",
            "type":1,
            "scale":0.050000,
            "digits":2,
            "descr":"This setting specifies the cylinder count of the tachometer output as if the output represented a distributor on a 4 stroke engine. Thus the output will generate half as many pulses per engine rotation as this value specifies. These pulses are not synchronised directly with the engine's crank angle in order to make the tachometer output independent of trigger modes.",
            "address":7793
          },
          {
            "id":"pulseperkm",
            "type":2,
            "descr":"This setting specifies how many impulses the driven wheel speed sensor is expected to generate as the vehicle rolls one kilometre.\r\nIf this count exceeds 65535 the Wheel speed pulse averaging setting may be used to divide the count down to a managable number for this setting. For example if the number would be 90000 impulses then averaging over 10 periods will result in a more manageable 9000 pulses in 1km.",
            "address":7680
          },
          {
            "id":"undrivenppkm",
            "type":2,
            "descr":"This setting specifies how many impulses the undriven wheel speed sensor is expected to generate as the vehicle rolls one kilometre.",
            "address":7682
          },
          {
            "id":"idleignenable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.16.16",
            "descr":"The primary closed loop idle control is done via ignition timing. This setting enables closed loop idle speed control."
          },
          {
            "id":"idleKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The idle ignition timing control is done via a PID loop. This setting specifies the proportional sensitivity.",
            "address":9372
          },
          {
            "id":"idleKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The idle ignition timing control is done via a PID loop. This setting specifies the integral sensitivity.",
            "address":9374
          },
          {
            "id":"idleKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The idle ignition timing control is done via a PID loop. This setting specifies the derivative sensitivity.",
            "address":9376
          },
          {
            "id":"idleImin",
            "type":2,
            "sign":1,
            "unit":"°",
            "scale":0.001373,
            "digits":2,
            "descr":"Idle speed PID loop integral upper limit.",
            "address":9378
          },
          {
            "id":"idleImax",
            "type":2,
            "sign":1,
            "scale":0.001373,
            "digits":2,
            "descr":"Idle speed PID loop integral lower limit.",
            "address":9380
          },
          {
            "id":"idletarget",
            "array":16,
            "unit":"RPM",
            "type":2,
            "descr":"Idle speed PID loop setpoint.",
            "address":9336
          },
          {
            "id":"idlespeedtpsadder",
            "array":16,
            "unit":"RPM",
            "type":2,
            "descr":"When the throttle position goes above the maximum for idle control, the value from this function is added to the idle speed target.\r\nIn electronic throttle control mode, the accelerator pedal position is used instead of throttle position to trigger the idle control.",
            "address":9396
          },
          {
            "id":"idleadderhold",
            "type":2,
            "unit":"ms",
            "max":20000,
            "descr":"After the idle speed control is re-enabled by the throttle position going below the maximum specified for idle control, the speed is kept high for this duration before the decay to normal slow idle starts.",
            "address":9460
          },
          {
            "id":"idleadderdecay",
            "type":2,
            "unit":"ms",
            "max":20000,
            "descr":"After the idle speed control is re-enabled by the throttle position going below the maximum specified for idle control, the speed is initially kept high for the specified hold time before decaying to normal slow idle in the period specified by this setting.",
            "address":9462
          },
          {
            "id":"idleserviceinterval",
            "type":1,
            "unit":"ms",
            "descr":"The idle speed control loop is evaluated at an interval specified by this setting. Making the interval shorter increases the sensitivity of the integral but reduces the sensitivity of the derivative. The interval should probably not be shorter than two consecutive ignition events at the usual idle speed.",
            "address":9370
          },
          {
            "id":"idlemaxadv",
            "type":2,
            "sign":1,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "max":45,
            "min":-45,
            "descr":"Maximum ignition timing added by idle speed control loop.",
            "address":9382
          },
          {
            "id":"idleminadv",
            "type":2,
            "sign":1,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "max":45,
            "min":-45,
            "descr":"Minimum ignition timing added by idle speed control loop. Negative numbers to retard timing from what the ignition maps specify.",
            "address":9384
          },
          {
            "id":"idleminrpm",
            "type":2,
            "unit":"RPM",
            "descr":"The idle speed control loop will not run if the engine speed exceeds this value. When the idle speed control loop is stopped the idle ignition adder is zeroed out.",
            "address":9386
          },
          {
            "id":"idlemaxtps",
            "unit":"%",
            "type":2,
            "digits":1,
            "min":0.000000,
            "max":100.000000,
            "scale":0.097656,
            "descr":"If the throttle position exceeds this value, the idle control loop will not run. In electronic throttle mode, the accelerator pedal position is compared against this setting instead of the throttle position.",
            "address":9368
          },
          {
            "id":"idlesrvdelay",
            "unit":"s",
            "type":2,
            "scale":0.001000,
            "digits":1,
            "descr":"The idle control loop will not run until this time has passed since the engine speed exceeded the cranking upper threshold.",
            "address":9388
          },
          {
            "id":"idlevalvegain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"An integrator that feeds idle control ignition timing offset into idle valve position. This setting specifies the gain of this integrator.",
            "address":9390
          },
          {
            "id":"idlevalvecl",
            "type":8,
            "address":"bits0.21.21",
            "options":"enum_enabled",
            "descr":"If this setting is enabled, the idle control ignition timing adjustment feeds into an integrator that is added to the idle valve position."
          },
          {
            "id":"pwmidleperiod",
            "min":20,
            "max":1000,
            "type":2,
            "scale":1000000,
            "inverse":1,
            "unit":"Hz",
            "descr":"If a PWM (2 or 3 wire) idle control valve is used, this setting specifies the drive frequency.",
            "address":9266
          },
          {
            "id":"idlevalverunning",
            "type":2,
            "array":16,
            "scale":0.097656,
            "max":100,
            "digits":1,
            "unit":"%",
            "descr":"After the engine has started, this setting specifies the idle valve opening fraction as a function of engine coolant temperature.\r\nThis fraction is then translated to steps for stepper valve control using the full-open steps count and translated to PWM duty cycle for PWM valve control using the PWM idle valve operating range setting.",
            "address":9268
          },
          {
            "id":"idlevalvecranking",
            "type":2,
            "array":16,
            "scale":0.097656,
            "max":100,
            "digits":1,
            "unit":"%",
            "descr":"When the engine speed is below the cranking upper threshold, this setting specifies the idle valve opening fraction as a function of engine coolant temperature.\r\nThis fraction is then translated to steps for stepper valve control using the full-open steps count and translated to PWM duty cycle for PWM valve control using the PWM idle valve operating range setting.",
            "address":9300
          },
          {
            "id":"idlevalvetpsadder",
            "type":2,
            "array":16,
            "scale":0.097656,
            "max":100,
            "digits":1,
            "unit":"%",
            "descr":"When the idle control exits due to the throttle position exceeding the maximum for idle control, the value of this function is added to the idle speed target.",
            "address":9428
          },
          {
            "id":"idlestarttaper",
            "type":2,
            "scale":0.001000,
            "unit":"s",
            "digits":1,
            "descr":"The idle valve will decay from cranking position to running position over this period after engine speed exceeds the cranking upper threshold.",
            "address":9332
          },
          {
            "id":"output.0",
            "type":8,
            "options":"map_outputs",
            "extraopts":[
              [
                64,
                "Tach output"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"This setting specifies the output function of connector A pin 9. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7728
          },
          {
            "id":"output.1",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the output function of connector A pin 10. This pin has no PWM capability.",
            "address":7729
          },
          {
            "id":"output.2",
            "type":8,
            "options":"map_outputs",
            "extraopts":[
              [
                67,
                "PWM idle"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"This setting specifies the output function of connector A pin 22. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7730
          },
          {
            "id":"output.3",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "reset":1,
            "descr":"This setting specifies the output function of connector A pin 21. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7731
          },
          {
            "id":"output.4",
            "type":8,
            "options":"map_outputs",
            "extraopts":[
              [
                68,
                "PWM idle anti-phase"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"This setting specifies the output function of connector B pin 1. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7732
          },
          {
            "id":"output.5",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "reset":1,
            "descr":"This setting specifies the output function of connector B pin 2. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7733
          },
          {
            "id":"output.6",
            "type":8,
            "options":"map_outputs",
            "extraopts":[
              [
                78,
                "DI fuel pump control"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"This setting specifies the output function of connector B pin 7. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7734
          },
          {
            "id":"output.7",
            "type":8,
            "options":"map_outputs",
            "extraopts":[
              [
                79,
                "DI fuel pump 2 control"
              ],
              "map_pwmoutputs"
            ],
            "reset":1,
            "descr":"This setting specifies the output function of connector B pin 8. After saving the changes, power cycling the controller may be required to fully apply the changes.",
            "address":7735
          },
          {
            "id":"output.8",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 1. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7736
          },
          {
            "id":"output.9",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 2. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7737
          },
          {
            "id":"output.10",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 3. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7738
          },
          {
            "id":"output.11",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 4. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7739
          },
          {
            "id":"output.12",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 5. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7740
          },
          {
            "id":"output.13",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 6. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7741
          },
          {
            "id":"output.14",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 7. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7742
          },
          {
            "id":"output.15",
            "type":8,
            "options":"map_outputs",
            "extraopts":"map_pwmoutputs",
            "descr":"This setting specifies the output function of injector output 8. Set this to disabled if there is a fuel injector connected to this pin. This pin provides PWM functionality, frequency range 16-2000Hz.",
            "address":7743
          },
          {
            "id":"output.16",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 1. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7744
          },
          {
            "id":"output.17",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 2. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7745
          },
          {
            "id":"output.18",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 3. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7746
          },
          {
            "id":"output.19",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 4. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7747
          },
          {
            "id":"output.20",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 5. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7748
          },
          {
            "id":"output.21",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 6. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7749
          },
          {
            "id":"output.22",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 7. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7750
          },
          {
            "id":"output.23",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the alternate output function of ignition output 8. A 5V triggered solid state relay or ignition amplifier of some sort is required to make use of this functionality.",
            "address":7751
          },
          {
            "id":"output.24",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the output function of connector F pin 1. This pin has no PWM capability and a maximum continuous current of 1A",
            "address":7752
          },
          {
            "id":"output.25",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the output function of connector F pin 2. This pin has no PWM capability and a maximum continuous current of 1A",
            "address":7753
          },
          {
            "id":"output.26",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the output function of connector F pin 5. This pin has no PWM capability and a maximum continuous current of 1A",
            "address":7754
          },
          {
            "id":"output.27",
            "type":8,
            "options":"map_outputs",
            "descr":"This setting specifies the output function of connector F pin 6. This pin has no PWM capability and a maximum continuous current of 1A",
            "address":7755
          },
          {
            "id":"altign.0",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 10101010 to affirm that you know what you are doing and wish to use ignition output 1 for non-ignition purposes.",
            "address":7756
          },
          {
            "id":"altign.1",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 20202020 to affirm that you know what you are doing and wish to use ignition output 2 for non-ignition purposes.",
            "address":7760
          },
          {
            "id":"altign.2",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 30303030 to affirm that you know what you are doing and wish to use ignition output 3 for non-ignition purposes.",
            "address":7764
          },
          {
            "id":"altign.3",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 40404040 to affirm that you know what you are doing and wish to use ignition output 4 for non-ignition purposes.",
            "address":7768
          },
          {
            "id":"altign.4",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 50505050 to affirm that you know what you are doing and wish to use ignition output 5 for non-ignition purposes.",
            "address":7772
          },
          {
            "id":"altign.5",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 60606060 to affirm that you know what you are doing and wish to use ignition output 6 for non-ignition purposes.",
            "address":7776
          },
          {
            "id":"altign.6",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 70707070 to affirm that you know what you are doing and wish to use ignition output 7 for non-ignition purposes.",
            "address":7780
          },
          {
            "id":"altign.7",
            "type":3,
            "descr":"To protect against inadvertent assignment of alternate functions to ignition outputs which will cause damage to ignition coils as well as ignition amplifier hardware, this setting must be given the value of 80808080 to affirm that you know what you are doing and wish to use ignition output 8 for non-ignition purposes.",
            "address":7784
          },
          {
            "id":"fantemperature",
            "type":2,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "digits":1,
            "descr":"The cooling fan relay will switch on when the engine coolant temperature exceeds this value while engine is running.",
            "address":7692
          },
          {
            "id":"fanhysteresis",
            "type":1,
            "scale":0.100000,
            "digits":1,
            "unit":"°C",
            "descr":"The cooling fan relay will switch off if the engine coolant temperature drops below the fan turn-on temperature by this amount.",
            "address":7694
          },
          {
            "id":"coilassign",
            "min":0,
            "max":8,
            "type":1,
            "array":12,
            "cols":"cylcount",
            "descr":"This setting specifies what ignition coil serves each cylinder. With coil on plug this usually is just an incrementing sequence.\r\nWith a distributor this is usually all 1 and with dual distributors or waste spark you will need to assign appropriately.",
            "address":8620
          },
          {
            "id":"primaryvbatbreakpoints",
            "unit":"V",
            "type":2,
            "scale":0.001000,
            "digits":2,
            "array":12,
            "input":"supplyvoltage",
            "descr":"Supply voltage breakpoints for the primary fuel injector characterisation function.",
            "address":8644
          },
          {
            "id":"primaryinjectoroffset",
            "unit":"ms",
            "type":2,
            "digits":3,
            "scale":0.001000,
            "array":12,
            "descr":"The values from this function are added to the calculated injection duration on the primary fuel injectors to compensate for the injector opening delay.",
            "address":8668
          },
          {
            "id":"primaryinjectorfullflow",
            "unit":"cc\/min",
            "scale":0.300000,
            "type":2,
            "descr":"This is the static injector volumetric flow rate at base pressure.",
            "address":8692
          },
          {
            "id":"primaryinjectorlowflow",
            "unit":"cc\/min",
            "scale":0.300000,
            "type":2,
            "descr":"This setting describes effective injector flow rate at low pulse widths, similar to the injector model used on Ford EEC-V.\r\nThis flow rate is used for computing the required pulse width for the first fraction of the fuel injection, up to the quantity set by the linear flow threshold.\r\nThe remaining quantity is computed according to the normal flow rate setting. If this dual slope injector model is not desired, set the linear flow threshold to zero.",
            "address":8694
          },
          {
            "id":"primaryinjectorlowthresh",
            "unit":"µl",
            "scale":0.010000,
            "digits":2,
            "type":2,
            "descr":"This is the quantity the fuel injector is able to inject before the flow stabilises. If the dual slope injector model is not desired, set this value to zero.",
            "address":8696
          },
          {
            "id":"primaryfuelgravity",
            "unit":"kg\/l",
            "scale":0.000100,
            "digits":4,
            "type":2,
            "descr":"Value used to convert fuel mass to fuel volume in injector model.",
            "address":8698
          },
          {
            "id":"fuelrevlimit",
            "unit":"RPM",
            "type":2,
            "descr":"This is a master limit above which no fuel will ever be injected, regardless of any other rev limit setting. For any other rev limit source to take effect it must specify a value lower than this.",
            "address":7686
          },
          {
            "id":"fuelrevlimithyster",
            "unit":"RPM",
            "type":2,
            "descr":"If a fuel based rev limit is triggered, the engine speed must drop by this amount before fuel injection is re-enabled.",
            "address":7688
          },
          {
            "id":"sparkrevlimit",
            "unit":"RPM",
            "type":2,
            "descr":"This is a master limit above which the ignition coils are disabled, regardless of any other rev limit setting. For any other rev limit source to take effect it must specify a value lower than this.",
            "address":7684
          },
          {
            "id":"boostctl_enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.25.25",
            "descr":"This setting enables the control loop for turbocharger control to run. To make any use of the control loop you must also either assign one of the PWM output pins to turbocharger control or insert the 'boostctlcmd' or 'boostduty' variables into some other function."
          },
          {
            "id":"boostmap",
            "type":2,
            "array":256,
            "rows":"boostloadbincount",
            "cols":"boostrpmbincount",
            "describedby":"boostpressuresource",
            "descr":"This map is the target pressure for the boost control strategy. Normally this is in the same units as MAP, but by changing the pressure source it can be used to target cylinder air mass, post restrictor pressure, post compressor pressure, turbocharger speed or any other variable.",
            "address":3240
          },
          {
            "id":"wgdutymap",
            "type":2,
            "array":256,
            "rows":"boosttargetbincount",
            "cols":"boostrpmbincount",
            "unit":"%",
            "digits":1,
            "scale":0.003052,
            "descr":"In order to reduce the work the control loop integrator needs to do to find the necessary output effort, this map provides a feed forward input.",
            "address":3752
          },
          {
            "id":"altboostmap",
            "type":2,
            "array":256,
            "rows":"boostloadbincount",
            "cols":"boostrpmbincount",
            "describedby":"boostpressuresource",
            "descr":"If using a calibration pot to switch between different boost maps, this is one of the available alternatives.",
            "address":4264
          },
          {
            "id":"altboostmap2",
            "type":2,
            "array":256,
            "rows":"boostloadbincount",
            "cols":"boostrpmbincount",
            "describedby":"boostpressuresource",
            "descr":"If using a calibration pot to switch between different boost maps, this is one of the available alternatives.",
            "address":4776
          },
          {
            "id":"altwgdutymap",
            "type":2,
            "array":256,
            "rows":"boosttargetbincount",
            "cols":"boostrpmbincount",
            "unit":"%",
            "digits":1,
            "scale":0.003052,
            "describedby":"boostpressuresource",
            "descr":"If using a calibration pot to switch between different boost maps, this is the available alternative feed forward map.",
            "address":5288
          },
          {
            "id":"boostperiod",
            "min":1,
            "max":100,
            "type":2,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "descr":"If using a PWM pneumatic solenoid for turbocharger boost control, this setting specifies the drive frequency. Most solenoids perform best in the range between 20-40Hz.",
            "address":6196
          },
          {
            "id":"boostserviceinterval",
            "type":1,
            "min":1,
            "unit":"ms",
            "descr":"This setting specifies the interval at which the turbocharger boost control loop runs. A shorter interval makes the integrator more sensitive and derivative less sensitive (and vice versa for longer intervals) so the coefficients need to be retuned if this value is changed.",
            "address":5832
          },
          {
            "id":"boostoptions",
            "type":2,
            "address":5906
          },
          {
            "id":"boostKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boosterrorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the stateless (proportional) part of the control loop. A larger value makes the control more sensitive.",
            "address":6118
          },
          {
            "id":"boostKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boosterrorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the integral part of the control loop, as in at what rate the error value feeds into the integrator. A larger value makes the control more sensitive.",
            "address":6142
          },
          {
            "id":"boosterrorbins",
            "type":2,
            "sign":1,
            "relative":1,
            "array":12,
            "cols":"boosterrorbincount",
            "describedby":"boostpressuresource",
            "input":"boosterror",
            "descr":"These breakpoints are used when specifying the gain of the control loop coefficients. Positive numbers for when turbocharger pressure is above the setpoint and negative numbers when the pressure is below setpoint.",
            "address":6172
          },
          {
            "id":"boosterrorbincount",
            "min":1,
            "max":12,
            "type":1,
            "descr":"If desired, the response of the control loop can be made non-linear based on how far from setpoint the pressure is. Up to 12 breakpoints may be specified.",
            "address":6116
          },
          {
            "id":"boostloadbincount",
            "type":1,
            "max":32,
            "descr":"As many as 32 breakpoints may be specified, but the product of this value and the engine speed breakpoints must not exceed 256.",
            "address":3230
          },
          {
            "id":"boostrpmbincount",
            "type":1,
            "max":32,
            "descr":"As many as 32 breakpoints may be specified, but the product of this value and the boost request or boost target breakpoints must not exceed 256.",
            "address":3229
          },
          {
            "id":"boosttargetbincount",
            "type":1,
            "max":32,
            "descr":"As many as 32 breakpoints may be specified, but the product of this value and the engine speed breakpoints must not exceed 256.",
            "address":3228
          },
          {
            "id":"boostloadbins",
            "type":2,
            "array":32,
            "cols":"boostloadbincount",
            "describedby":"boostloadsource",
            "descr":"Breakpoints for the primary boost request input.",
            "address":3100
          },
          {
            "id":"boostloadsource",
            "type":9,
            "maxwidth":2,
            "descr":"Normally this is the throttle position (throttle), but in case of electronic throttle control it normally makes more sense to use accelerator pedal position (app). \r\nFor drag racing applications where throttle stays at 100% for the entire duration of the run, other variables may make more sense instead of throttle.",
            "address":3232
          },
          {
            "id":"boostpressuresource",
            "type":9,
            "maxwidth":2,
            "descr":"Normally the boost control is referenced to manifold absolute pressure (map) but in certain applications it may make sense to refer it to post restrictor pressure (prap), post compressor pressure (pcap), turbocharger speed or cylinder air mass in a MAF based application.",
            "address":3236
          },
          {
            "id":"boostrpmbins",
            "type":2,
            "unit":"RPM",
            "array":32,
            "input":"enginespeed",
            "cols":"boostrpmbincount",
            "address":3036
          },
          {
            "id":"boosttargetbins",
            "type":2,
            "describedby":"boostpressuresource",
            "array":32,
            "input":"boosttarget",
            "cols":"boosttargetbincount",
            "descr":"These breakpoints are used to refer the base duty cycle maps to the boost target.",
            "address":3164
          },
          {
            "id":"boostKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this parameter specifies the gain of the derivative part of the control loop. The pressure difference between two consecutive iterations of the control loop feeds into the derivative. A larger value makes the control more sensitive.",
            "address":6166
          },
          {
            "id":"boostImin",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the lower limit of the range and should normally be a negative number.",
            "address":6168
          },
          {
            "id":"boostImax",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the upper limit of the range and should normally be a positive number.",
            "address":6170
          },
          {
            "id":"boostienablerange",
            "type":2,
            "describedby":"boostpressuresource",
            "descr":"To prevent integral wind up, the integrator may be disabled and zeroed out when the actual pressure is below the target pressure by a greater amount than this setting specifies.",
            "address":6114
          },
          {
            "id":"boostgp1mode",
            "type":8,
            "address":"boostoptions.0.1",
            "options":[
              "Disabled",
              "Limiter",
              "Adder"
            ],
            "descr":"The general purpose trims have two modes. One is as a limiter, reducing the maximum pressure commanded by the control. Another is as an adder, which can add or subtract from the final commanded value."
          },
          {
            "id":"boostgp2mode",
            "type":8,
            "address":"boostoptions.2.3",
            "options":[
              "Disabled",
              "Limiter",
              "Adder"
            ],
            "descr":"The general purpose trims have two modes. One is as a limiter, reducing the maximum pressure commanded by the control. Another is as an adder, which can add or subtract from the final commanded value."
          },
          {
            "id":"boostgp3mode",
            "type":8,
            "address":"boostoptions.4.5",
            "options":[
              "Disabled",
              "Limiter",
              "Adder"
            ],
            "descr":"The general purpose trims have two modes. One is as a limiter, reducing the maximum pressure commanded by the control. Another is as an adder, which can add or subtract from the final commanded value."
          },
          {
            "id":"boostgp1switch",
            "type":8,
            "options":"map_inputs",
            "descr":"If you would like to apply the trim conditionally, for example only when launch control is active, only in low gear or even activated by a switch input, select the condition here. Otherwise select 'Always on'.",
            "address":5833
          },
          {
            "id":"boostgp2switch",
            "type":8,
            "options":"map_inputs",
            "descr":"If you would like to apply the trim conditionally, for example only when launch control is active, only in low gear or even activated by a switch input, select the condition here. Otherwise select 'Always on'.",
            "address":5834
          },
          {
            "id":"boostgp3switch",
            "type":8,
            "options":"map_inputs",
            "descr":"If you would like to apply the trim conditionally, for example only when launch control is active, only in low gear or even activated by a switch input, select the condition here. Otherwise select 'Always on'.",
            "address":5835
          },
          {
            "id":"boostgp1source",
            "type":9,
            "maxwidth":2,
            "descr":"This is the input variable for the general purpose boost trim. It can be any system variable that is 16 bits or less. Note that user defined variables do not show up here as those are computed in the Calibrator application and not on the ECU.",
            "address":5900
          },
          {
            "id":"boostgp2source",
            "type":9,
            "maxwidth":2,
            "descr":"This is the input variable for the general purpose boost trim. It can be any system variable that is 16 bits or less. Note that user defined variables do not show up here as those are computed in the Calibrator application and not on the ECU.",
            "address":5972
          },
          {
            "id":"boostgp3source",
            "type":9,
            "maxwidth":2,
            "descr":"This is the input variable for the general purpose boost trim. It can be any system variable that is 16 bits or less. Note that user defined variables do not show up here as those are computed in the Calibrator application and not on the ECU.",
            "address":6044
          },
          {
            "id":"boostgp1bpcount",
            "type":1,
            "max":16,
            "min":1,
            "descr":"This parameter sets the number of breakpoints to use on the general purpose trim function. Up to 16 points are supported.",
            "address":5904
          },
          {
            "id":"boostgp2bpcount",
            "type":1,
            "max":16,
            "min":1,
            "descr":"This parameter sets the number of breakpoints to use on the general purpose trim function. Up to 16 points are supported.",
            "address":5976
          },
          {
            "id":"boostgp3bpcount",
            "type":1,
            "max":16,
            "min":1,
            "descr":"This parameter sets the number of breakpoints to use on the general purpose trim function. Up to 16 points are supported.",
            "address":6048
          },
          {
            "id":"boostgp1breakpts",
            "type":2,
            "array":16,
            "cols":"boostgp1bpcount",
            "describedby":"boostgp1source",
            "address":5868
          },
          {
            "id":"boostgp2breakpts",
            "type":2,
            "array":16,
            "cols":"boostgp2bpcount",
            "describedby":"boostgp2source",
            "address":5940
          },
          {
            "id":"boostgp3breakpts",
            "type":2,
            "array":16,
            "cols":"boostgp3bpcount",
            "describedby":"boostgp3source",
            "address":6010
          },
          {
            "id":"boostgp1",
            "type":2,
            "array":16,
            "sign":1,
            "relative":1,
            "cols":"boostgp1bpcount",
            "describedby":"boostpressuresource",
            "descr":"The output of this function can be seen on real time variable 'boostgptrim1' when the trim is active.",
            "address":5836
          },
          {
            "id":"boostgp2",
            "type":2,
            "array":16,
            "sign":1,
            "relative":1,
            "cols":"boostgp2bpcount",
            "describedby":"boostpressuresource",
            "descr":"The output of this function can be seen on real time variable 'boostgptrim2' when the trim is active.",
            "address":5908
          },
          {
            "id":"boostgp3",
            "type":2,
            "array":16,
            "sign":1,
            "cols":"boostgp3bpcount",
            "relative":1,
            "describedby":"boostpressuresource",
            "descr":"The output of this function can be seen on real time variable 'boostgptrim3' when the trim is active.",
            "address":5978
          },
          {
            "id":"boostp2enable",
            "type":8,
            "options":"enum_enabled",
            "address":"boostoptions.8.8",
            "descr":"This option enables a secondary control loop that takes over the control of the turbocharger using a secondary control parameter, but only if the target for the secondary parameter is exceeded."
          },
          {
            "id":"boostp3enable",
            "type":8,
            "options":"enum_enabled",
            "address":"boostoptions.9.9",
            "descr":"This option enables a secondary control loop that takes over the control of the turbocharger using a secondary control parameter, but only if the target for the secondary parameter is exceeded."
          },
          {
            "id":"boostparam2picker",
            "type":9,
            "maxwidth":2,
            "descr":"Normally the boost control is referenced to manifold absolute pressure (map) but in certain applications it may make sense to refer it to post restrictor pressure (prap), post compressor pressure (pcap), turbocharger speed or cylinder air mass in a MAF based application.",
            "address":6200
          },
          {
            "id":"boostparam2map",
            "type":2,
            "array":256,
            "rows":"boostloadbincount",
            "cols":"boostrpmbincount",
            "describedby":"boostparam2picker",
            "descr":"This map is the target pressure for the boost control strategy. Normally this is in the same units as MAP, but by changing the pressure source it can be used to target cylinder air mass, post restrictor pressure, post compressor pressure, turbocharger speed or any other variable.",
            "address":6204
          },
          {
            "id":"boostparam2Kp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boostparam2errorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the stateless (proportional) part of the control loop. A larger value makes the control more sensitive.",
            "address":6716
          },
          {
            "id":"boostparam2Ki",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boostparam2errorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the integral part of the control loop, as in at what rate the error value feeds into the integrator. A larger value makes the control more sensitive.",
            "address":6740
          },
          {
            "id":"boostparam2errorbins",
            "type":2,
            "sign":1,
            "relative":1,
            "array":12,
            "cols":"boostparam2errorbincount",
            "describedby":"boostparam2picker",
            "input":"boostp2error",
            "descr":"These breakpoints are used when specifying the gain of the control loop coefficients. Positive numbers for when turbocharger pressure is above the setpoint and negative numbers when the pressure is below setpoint.",
            "address":6770
          },
          {
            "id":"boostparam2errorbincount",
            "min":1,
            "max":12,
            "type":1,
            "descr":"If desired, the response of the control loop can be made non-linear based on how far from setpoint the pressure is. Up to 12 breakpoints may be specified.",
            "address":6794
          },
          {
            "id":"boostparam2Kd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this parameter specifies the gain of the derivative part of the control loop. The pressure difference between two consecutive iterations of the control loop feeds into the derivative. A larger value makes the control more sensitive.",
            "address":6764
          },
          {
            "id":"boostparam2Imin",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the lower limit of the range and should normally be a negative number.",
            "address":6766
          },
          {
            "id":"boostparam2Imax",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the upper limit of the range and should normally be a positive number.",
            "address":6768
          },
          {
            "id":"boostparam3picker",
            "type":9,
            "maxwidth":2,
            "descr":"Normally the boost control is referenced to manifold absolute pressure (map) but in certain applications it may make sense to refer it to post restrictor pressure (prap), post compressor pressure (pcap), turbocharger speed or cylinder air mass in a MAF based application.",
            "address":6796
          },
          {
            "id":"boostparam3map",
            "type":2,
            "array":256,
            "rows":"boostloadbincount",
            "cols":"boostrpmbincount",
            "describedby":"boostparam3picker",
            "descr":"This map is the target pressure for the boost control strategy. Normally this is in the same units as MAP, but by changing the pressure source it can be used to target cylinder air mass, post restrictor pressure, post compressor pressure, turbocharger speed or any other variable.",
            "address":6800
          },
          {
            "id":"boostparam3Kp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boostparam3errorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the stateless (proportional) part of the control loop. A larger value makes the control more sensitive.",
            "address":7312
          },
          {
            "id":"boostparam3Ki",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "cols":"boostparam3errorbincount",
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this map specifies the gain of the integral part of the control loop, as in at what rate the error value feeds into the integrator. A larger value makes the control more sensitive.",
            "address":7336
          },
          {
            "id":"boostparam3errorbins",
            "type":2,
            "sign":1,
            "relative":1,
            "array":12,
            "cols":"boostparam3errorbincount",
            "describedby":"boostparam3picker",
            "input":"boostp3error",
            "descr":"These breakpoints are used when specifying the gain of the control loop coefficients. Positive numbers for when turbocharger pressure is above the setpoint and negative numbers when the pressure is below setpoint.",
            "address":7366
          },
          {
            "id":"boostparam3errorbincount",
            "min":1,
            "max":12,
            "type":1,
            "descr":"If desired, the response of the control loop can be made non-linear based on how far from setpoint the pressure is. Up to 12 breakpoints may be specified.",
            "address":7390
          },
          {
            "id":"boostparam3Kd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "descr":"The turbocharger boost control makes use of a PID loop, this parameter specifies the gain of the derivative part of the control loop. The pressure difference between two consecutive iterations of the control loop feeds into the derivative. A larger value makes the control more sensitive.",
            "address":7360
          },
          {
            "id":"boostparam3Imin",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the lower limit of the range and should normally be a negative number.",
            "address":7362
          },
          {
            "id":"boostparam3Imax",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "type":2,
            "sign":1,
            "descr":"The turbocharger boost control integrator can be restricted in range to improve response. This setting specifies the upper limit of the range and should normally be a positive number.",
            "address":7364
          },
          {
            "id":"boostmapselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.2",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate",
              "Alternate 2"
            ],
            "address":5800
          },
          {
            "id":"wgdutymapselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.2",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate"
            ],
            "address":5816
          },
          {
            "id":"boost_nonlinear",
            "type":8,
            "options":"enum_enabled",
            "address":"boostoptions.6.6",
            "descr":"If this parameter is enabled, the boost duty translation curve is used to translate control loop effort to output duty cycle. Useful in case the control actuator response is far from linear.\r\nWhen this is the case, the boostctlcmd real time variable represents the control loop output and boostduty represents the actual output duty cycle.\r\nThe base duty cycle is a part of the control loop so it is included in boostctlcmd."
          },
          {
            "id":"boostzerointbelow",
            "type":8,
            "options":"enum_enabled",
            "address":"boostoptions.7.7",
            "descr":"To prevent integral wind up, the integrator may be disabled and zeroed out when the actual pressure is far below the target pressure."
          },
          {
            "id":"boostdutybpcount",
            "type":1,
            "max":16,
            "address":6049
          },
          {
            "id":"boostdutybreakpts",
            "type":2,
            "array":16,
            "cols":"boostdutybpcount",
            "unit":"%",
            "scale":0.003052,
            "input":"boostctlcmd",
            "digits":1,
            "address":6050
          },
          {
            "id":"boostdutycurve",
            "type":2,
            "array":16,
            "cols":"boostdutybpcount",
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":6082
          },
          {
            "id":"triggermode",
            "type":8,
            "options":[
              "Log only",
              "Basic",
              "Versatile multi tooth",
              "Dual edge",
              "Basic with pulse width filter",
              "Duty cycle coded",
              "Equal spacing missing tooth",
              "Wheel speed on crank",
              "Clueless missing tooth",
              "Nissan 360 window CAS",
              "Ring gear + home"
            ],
            "reset":1,
            "descr":"This parameter specifies what type of crank trigger decoder to use.\r\n'Log only' will not run the engine but only enable the recording of an event log while the engine cranks.\r\n'Basic' means one impulse per firing cylinder with no information to identify crank or cam phase, typical for traditional distributors.\r\n'Versatile multi tooth' is the decoder that handles the vast majority of engines that have a variable reluctance sensor on the crank or otherwise have only one signal edge (rising or falling) that is of interest to the decoder. This mode includes a whole host of different strategies for finding crank and cam phase.'Dual edge' is a variation of the versatile multi tooth mode for use with certain hall effect based triggers that have a very limited tooth count and both edges of each tooth are needed for good performance. This mode has far fewer possible sync strategies than the versatile multi tooth mode.\r\n'Duty cycle coded' decodes GM LS1 and variations of the same idea where the crank pattern has one edge evenly spaced and one edge coded like a bar code with different tooth widths.\r\n'Equal spacing missing tooth' is a mode that can be used interchangeably with versatile multi tooth on simple missing tooth setups (36-1 or 60-2 for example), with the possibility of ignoring the teeth on either side of the gap in the pattern if they prove to be imprecise in timing.\r\n'Ring gear + home' uses the starter ring gear as the crank input and uses the cam input pin for a home signal picking up a second signal from the flywheel to indicate tooth 0 position, found on many German cars in the 1980s. Cam sync in this mode can be taken using any of the other digital inputs set to alternate cam sync mode.\r\n'Wheel speed on crank' is useful when operating an ECU that is not running an engine but only doing transmission control and a low voltage amplifier is required for the transmission output shaft speed sensor.\r\n\r\nAfter this parameter is changed, the configuration must be saved to non-volatile memory and the ECU power cycled to apply it.",
            "address":8579
          },
          {
            "id":"triggerconfig0",
            "type":3,
            "address":8588
          },
          {
            "id":"invertcrank",
            "type":8,
            "options":"enum_triggeredge",
            "address":"triggerconfig0.0.0",
            "reset":1,
            "descr":"This parameter specifies whether the crank trigger strategies activate on rising input voltage or falling input voltage.\r\nFor dual edge strategies this parameter specifies the polarity of the first registered tooth and the reported (logged) edges will be inverted if rising edge is selected.\r\nNote that if the ECU is fitted with the low voltage VR module option, the signal polarity is inverted in the module and rising edge must be selected.\r\nAfter this parameter is changed, the configuration must be saved to non-volatile memory and the ECU power cycled to apply it."
          },
          {
            "id":"invertcam",
            "type":8,
            "options":"enum_triggeredge",
            "address":"triggerconfig0.1.1",
            "reset":1,
            "descr":"This parameter specifies whether the cam sync strategies activate on rising input voltage or falling input voltage.\r\nFor voltage level strategies the polarity is inverted if rising edge is selected.\r\nNote that if the ECU is fitted with the low voltage VR module option, the signal polarity is inverted in the module and rising edge must be selected.\r\nAfter this parameter is changed, the configuration must be saved to non-volatile memory and the ECU power cycled to apply it."
          },
          {
            "id":"cranksyncstate",
            "type":0,
            "address":"triggerconfig0.3",
            "descr":"Only used when cam sync mode is 'Crank state on cam impulse' and trigger mode is 'Dual edge', this parameter specifies whether cam sync activates when crank input is low (0) or high (1)."
          },
          {
            "id":"jitterfix",
            "type":8,
            "options":"enum_enabled",
            "address":"triggerconfig0.5.5",
            "descr":"Normally the ECU will compute crank speed (rawenginespeed) for every tooth seen on the crank trigger input. This improves accuracy of ignition events for low tooth count crank triggers.\r\nThis strategy is not useful at all with poor precision triggers (anything that is not directly attached to the crankshaft) and becomes less useful with greater tooth counts on the crankshaft.\r\nEnable the jitter filter to disable the strategy of computing crank speed for every tooth and compute it once for each cylinder that fires instead. This is generally recommended for engines that do not have a real crank trigger or engines with very short tooth spacing on the crank (50 or more teeth)."
          },
          {
            "id":"nminusignorefirst",
            "type":8,
            "options":"enum_enabled",
            "address":"triggerconfig0.6.6",
            "descr":"Only has effect when using 'Equal spacing missing tooth' decoder. If this option is enabled, the first tooth after the gap is only used for indexing, the second tooth after the trigger becomes the first actual trigger tooth, in which case the trigger angle offset value must be set accordingly.\r\nUseful for some poorly designed crank trigger wheel\/sensor combinations."
          },
          {
            "id":"nminusignorelast",
            "type":8,
            "options":"enum_enabled",
            "address":"triggerconfig0.7.7",
            "descr":"Only has effect when using 'Equal spacing missing tooth' decoder. If this option is enabled, the last tooth before the gap is only used for indexing, not for commanding ignition events or computing engine speed. Useful for some poorly designed crank trigger wheel\/sensor combinations."
          },
          {
            "id":"camsyncdelayed",
            "type":8,
            "options":"enum_enabled",
            "address":"triggerconfig0.8.8",
            "descr":"If this option is enabled, the cam sync is not evaluated until a crank sync event happens. Prevents glitches when cam pulse is at an angle near TDC. This setting is not compatible with crank sync mode 'None' or cam sync mode 'Primary trigger is cam'."
          },
          {
            "id":"camignoredpoststart",
            "type":8,
            "options":"enum_enabled",
            "address":"triggerconfig0.9.9",
            "descr":"If this option is enabled, the cam sync is only evaluated on start up and ignored after the engine starts up. Cam angle is still computed as usual. This setting is not compatible with crank sync mode 'None' or cam sync mode 'Primary trigger is cam'."
          },
          {
            "id":"nminustoothcount",
            "type":1,
            "min":1,
            "descr":"Only has effect when using 'Equal spacing missing tooth' decoder or 'Ring gear + home'. This is the number of teeth the crank wheel is based on. 36 for a 36-1 wheel, 60 for a 60-2\/58X wheel and so on.",
            "address":17110
          },
          {
            "id":"nminusmissing",
            "type":1,
            "max":2,
            "descr":"Only has effect when using 'Equal spacing missing tooth' decoder. This is the number of teeth missing at one point in the circle. 1 for a 36-1 wheel, 2 for a 60-2\/58X wheel and so on.",
            "address":17111
          },
          {
            "id":"startingfuelrpmbins",
            "type":2,
            "input":"enginespeed",
            "unit":"RPM",
            "array":4,
            "address":48
          },
          {
            "id":"startingfuelmap",
            "type":2,
            "unit":"mg\/cycle",
            "array":16,
            "rows":4,
            "cols":4,
            "digits":2,
            "scale":0.010000,
            "descr":"When the engine speed is below that specified by the 'Maximum cranking speed' parameter, this table specifies the injected fuel quantity as a function of engine speed and throttle position.",
            "address":56
          },
          {
            "id":"flexstartingfuelmap",
            "type":2,
            "unit":"mg\/cycle",
            "array":16,
            "rows":4,
            "cols":4,
            "digits":2,
            "scale":0.010000,
            "descr":"When the engine speed is below that specified by the 'Maximum cranking speed' parameter, this table specifies the injected fuel quantity as a function of engine speed and throttle position.",
            "address":88
          },
          {
            "id":"startingfueltpsbins",
            "type":2,
            "unit":"%",
            "input":"throttle",
            "array":4,
            "digits":1,
            "scale":0.097656,
            "address":40
          },
          {
            "id":"startingfuelcltcorr",
            "type":1,
            "array":16,
            "offset":70,
            "scale":0.010000,
            "digits":2,
            "descr":"When the engine speed is below that specified by the 'Maximum cranking speed' parameter, this function specifies a modifier for fuel quantity as a function of coolant temperature.",
            "address":120
          },
          {
            "id":"flexstartingfuelcltcorr",
            "type":1,
            "array":16,
            "offset":70,
            "scale":0.010000,
            "digits":2,
            "descr":"When the engine speed is below that specified by the 'Maximum cranking speed' parameter, this function specifies a modifier for fuel quantity as a function of coolant temperature.",
            "address":264
          },
          {
            "id":"runtimebins",
            "type":2,
            "array":8,
            "unit":"s",
            "scale":0.010000,
            "digits":1,
            "input":"runtime",
            "descr":"These breakpoints are used in the warm-up fuel multiplier function.",
            "address":408
          },
          {
            "id":"warmupmap",
            "type":1,
            "array":128,
            "scale":0.010000,
            "offset":70,
            "rows":8,
            "cols":16,
            "digits":2,
            "descr":"The warm up fuel multiplier is used to adjust fuelling after starting based on coolant temperature and engine run time. The output of this function can be observed on the real time variable 'warmupmult'.",
            "address":136
          },
          {
            "id":"flexwarmupmap",
            "type":1,
            "array":128,
            "scale":0.010000,
            "offset":70,
            "rows":8,
            "cols":16,
            "digits":2,
            "descr":"The warm up fuel multiplier is used to adjust fuelling after starting based on coolant temperature and engine run time. The output of this function can be observed on the real time variable 'warmupmult'.",
            "address":280
          },
          {
            "id":"airtempbins",
            "type":2,
            "input":"airtemp",
            "array":16,
            "unit":"°C",
            "scale":0.100000,
            "offset":-2731,
            "digits":1,
            "descr":"These breakpoints are used for the charge air temperature multiplier.",
            "address":456
          },
          {
            "id":"airtempcorr",
            "type":2,
            "array":16,
            "scale":0.000977,
            "digits":3,
            "descr":"The charge air temperature multiplier is effective when the engine speed is above the cranking threshold. The output of this function can be observed on the real time variable 'airdensity'.",
            "address":488
          },
          {
            "id":"globalfuelmult",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"Global run time fuel multiplier. This has an effect on fuelling when engine speed is above the cranking threshold.",
            "address":8756
          },
          {
            "id":"secondaryfuelmap",
            "type":2,
            "array":256,
            "scale":0.000977,
            "digits":3,
            "rows":"fuelsecbincount",
            "cols":"fuelrpmbincount",
            "descr":"The secondary fuel multiplier is typically used in turbocharged ITB applications. The output of this function can be observed on the 'fuelsecmult' real time variable.",
            "address":1052
          },
          {
            "id":"crankingspeed",
            "unit":"RPM",
            "type":2,
            "descr":"If the engine speed goes above this value, the engine is considered running and run mode fuelling and ignition timing take over.",
            "address":7690
          },
          {
            "id":"injphase",
            "type":2,
            "unit":"°BTDC",
            "scale":0.010986,
            "descr":"The injector phasing specifies crank angle at the start of injection. If the number of primary injector outputs in use is equal to the number of cylinders, the angles are relative to TDC compression stroke of each cylinder. Otherwise the angles are relative to TDC compression stroke of cylinder #1.\r\nOn LPC8 in direct injection mode these offsets are not used.",
            "array":12,
            "address":8758
          },
          {
            "id":"ignoredteeth",
            "type":1,
            "descr":"This parameter serves to allow the starter to build a little engine speed before the ECU attempts to start decoding the crank trigger signal.",
            "address":8592
          },
          {
            "id":"intlog_enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.29.29",
            "descr":"Requires the controller to be fitted with the internal data logging option. Without the internal data logging option, data logs must be recorded using a PC."
          },
          {
            "id":"logburstenable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits1.1.1",
            "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":"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":18434
          },
          {
            "id":"sdloginterval",
            "min":4,
            "max":500,
            "type":1,
            "scale":1000,
            "inverse":1,
            "unit":"Hz",
            "address":9230
          },
          {
            "id":"sdlogburstinterval",
            "min":4,
            "max":500,
            "type":1,
            "scale":1000,
            "inverse":1,
            "unit":"Hz",
            "address":9231
          },
          {
            "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":9234
          },
          {
            "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":9236
          },
          {
            "id":"gpioondelay0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8506
          },
          {
            "id":"gpiooffdelay0",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8542
          },
          {
            "id":"gpiocond1var0",
            "compact":0,
            "type":9,
            "address":7800
          },
          {
            "id":"gpiocond1val0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var0",
            "address":7872
          },
          {
            "id":"gpiocond1hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var0",
            "relative":1,
            "address":7944
          },
          {
            "id":"gpiocond1param0",
            "compact":0,
            "type":1,
            "address":8016
          },
          {
            "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":8036
          },
          {
            "id":"gpiocond2val0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var0",
            "address":8108
          },
          {
            "id":"gpiocond2hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var0",
            "relative":1,
            "address":8180
          },
          {
            "id":"gpiocond2param0",
            "compact":0,
            "type":1,
            "address":8252
          },
          {
            "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":8272
          },
          {
            "id":"gpiocond3val0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var0",
            "address":8344
          },
          {
            "id":"gpiocond3hyster0",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var0",
            "relative":1,
            "address":8416
          },
          {
            "id":"gpiocond3param0",
            "compact":0,
            "type":1,
            "address":8488
          },
          {
            "id":"gpiocond3type0",
            "type":8,
            "compact":18,
            "options":"enum_moreless",
            "address":"gpiocond3param0.0.2"
          },
          {
            "id":"mapintegration",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.2.2",
            "reset":1,
            "descr":"If enabled, the MAP integration filter is activated when the engine is running and once for each cylinder in the engine's cycle the MAP value is updated with the average pressure since the last update.\r\nThe integration filter performs well with intake manifolds that have a reasonably sized plenum as well as a well locate MAP sensor port. Manifolds that have the MAP sensor port located too local to one cylinder may not perform as well with this filtering method.\r\nThe ECU must be powered off after the settings are saved to apply changes to this setting."
          },
          {
            "id":"mapsource",
            "type":8,
            "options":[
              "Internal",
              "Analog in 5"
            ],
            "address":"bits0.3.3",
            "reset":1,
            "descr":"To use the MAP sensor built into the ECU, select 'Internal'. Otherwise, to use an external sensor for intake manifold absolute pressure, select 'Analog in 5' and connect that sensor's signal to pin 5 of the 24 pin connector.\r\nThe ECU must be powered off after the settings are saved to apply changes to this setting."
          },
          {
            "id":"maxsparkadvance",
            "min":-120,
            "max":120,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "descr":"This is the maximum ignition advance allowed. If two or more cylinders share the same ignition coil the minimum and maximum angles must not overlap. (The difference between minimum and maximum timing must be smaller than the difference between adjacent cylinders, smaller than 90 degrees for an even fire V8 engine with a distributor for example.\r\nIf running a distributor it is also important to restrict the timing to the range the distributor is capable of handling.",
            "address":9256
          },
          {
            "id":"minsparkadvance",
            "min":-120,
            "max":120,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "descr":"This is the maximum ignition advance allowed. If two or more cylinders share the same ignition coil the minimum and maximum angles must not overlap. (The difference between minimum and maximum timing must be smaller than the difference between adjacent cylinders, smaller than 90 degrees for an even fire V8 engine with a distributor for example.\r\nIf running a distributor it is also important to restrict the timing to the range the distributor is capable of handling.",
            "address":9258
          },
          {
            "id":"sparkduration",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"This is the time the ignition coil needs to discharge before dwell is allowed again.",
            "address":9260
          },
          {
            "id":"dwelltime",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":2,
            "array":8,
            "descr":"Ignition coil dwell time as a function of supply voltage. If the engine speed is below the 'Maximum cranking speed' the value is multiplied by 'Dwell multiplier during cranking'. Otherwise 'Dwell modifier' is applied.\r\nThe final dwell is then limited to observe the configured 'Primary coil duty cycle limit' as well as 'Primary spark duration'. The final result may be observed on the 'dwell' real time variable.",
            "address":8794
          },
          {
            "id":"dwellvbatbins",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":2,
            "array":8,
            "input":"supplyvoltage",
            "address":8810
          },
          {
            "id":"triggerteeth",
            "type":2,
            "unit":"°",
            "digits":1,
            "scale":0.010986,
            "array":128,
            "cols":"triggertoothcount",
            "descr":"This table lists the angular width of each tooth or group of teeth on the crank trigger, starting from the first tooth after sync is computed.\r\nThe angular width of a tooth is the spacing from the tooth in question to the previous tooth in the sequence.",
            "address":8844
          },
          {
            "id":"repeattooth",
            "type":1,
            "array":128,
            "cols":"triggertoothcount",
            "descr":"This table defines tooth groups on the crank trigger to conveniently describe a number of adjacent teeth that have the same angular width. A zero means the tooth described by that column is unique to that column. A value of 10 means the tooth shape is repeated ten times after the first occurance (eleven teeth to the group).",
            "address":9100
          },
          {
            "id":"cranksyncmode",
            "type":8,
            "options":[
              [
                0,
                "None"
              ],
              [
                1,
                "Missing tooth"
              ],
              [
                2,
                "Extra tooth"
              ],
              [
                3,
                "Two adjacent long gaps"
              ],
              [
                4,
                "Double check missing tooth"
              ],
              [
                5,
                "Count between long gaps"
              ],
              [
                254,
                "Development mode"
              ]
            ],
            "descr":"This parameter sets what sync features to look for in the crank trigger when using versatile multi tooth mode.\r\n'None' means the crank trigger has no sync features but sync relies on cam instead. In this case, cam may not be ignored after starting and cam window filtering and delayed cam evaluation are not available.\r\n'Missing tooth' means the tooth interval prior to the currently processed tooth is multiplied by the crank sync threshold ratio and if the current interval is bigger than the result, sync is registered. It is generally recommended to use double check missing tooth instead.\r\n'Extra tooth' means the previous interval is multiplied by the sync threshold ratio and if the current interval is smaller, the extra tooth is marked and sync is registered on the next impulse after the extra tooth. The extra tooth is ignored and is not declared in the trigger teeth table.\r\n'Two adjacent long gaps' is used for 36-2-2-2 and similar configurations where the sync is found by detecting two adjacent gaps that are wider. (One tooth, two missing, one tooth, two missing again, for example.) In this strategy the sync threshold ratio is multiplied with the last tooth before the two big gaps, the previous two intervals must be bigger than the result and the interval before the referenced interval must also be smaller than the result to register sync.\r\n'Double check missing tooth' takes the last interval (before the current tooth), multiplies by the threshold and both the current interval and the interval before the previous one must be shorter than the result. This is the recommended mode to use for most 36-1 and 60-2 and similar triggers. Note that in this mode the first tooth in the teeth table is the second tooth after the gap in the trigger wheel.\r\n'Development mode' is used for bench testing purposes only, in this mode the ECU just assumes that there is sync if there are impulses received on the crank trigger input.",
            "reset":1,
            "address":9238
          },
          {
            "id":"syncratio",
            "type":2,
            "scale":0.000977,
            "digits":2,
            "descr":"Used by the versatile multi tooth decoder, this parameter specifies a ratio between normal tooth and abnormal tooth timing to look for when finding crank sync. How it's used specifically depends on the sync strategy.\r\nIn the missing tooth strategy, the tooth gap before the most recent is multiplied by this value, and the most recent tooth gap must be greater than the result to register a sync (larger ratio makes the strategy less sensitive).\r\nIn the double check missing strategy, the tooth gap before the most current is multiplied by this value and the two gaps on either side of it (most current and two behind) must both be smaller than the result to register a sync (A smaller ratio makes this strategy less sensitive).",
            "address":9228
          },
          {
            "id":"camsyncmode",
            "type":8,
            "options":[
              [
                0,
                "No cam"
              ],
              [
                1,
                "Cam state on crank sync"
              ],
              [
                2,
                "Count cam impulses"
              ],
              [
                3,
                "Count crank impulses"
              ],
              [
                4,
                "Primary trigger is cam"
              ],
              [
                5,
                "Crank state on cam impulse"
              ],
              [
                6,
                "Cam count pattern"
              ],
              [
                7,
                "Count crank since last cam"
              ],
              [
                8,
                "Crank tooth window filter"
              ]
            ],
            "descr":"'No cam' means no cam sync input is used.\r\n'Cam state on crank sync' means the voltage level of the cam input is checked when crank sync is found, ideal for fast cam sync if the cam sensor allows it as it will always result in sync.\r\n'Count cam impulses' is a strategy where the number of cam impulses is counted in a counter that resets on every crank impulse and if the counter matches the 'Cam sync count' value upon reset, cam sync is registered.\r\n'Count crank impulses' is a strategy that counts crank impulses in a counter that is reset on every cam impulse. Cam sync is registered if the counter matches the value of 'Cam sync count' upon reset.\r\n'Primary trigger is cam' is used when the primary trigger is in fact periodic every 720 degrees and contains a missing tooth or other means of finding sync.\r\n'Crank state on cam impulse' is a mode only compatible with the dual edge decoder and is used to find sync on 4G63 and Mazda Miata.\r\n'Cam count pattern' works the same as the 'Count cam impulses' strategy except it looks for a pattern match of two or more previous counts from the table 'Count pattern'. Used for Jeep 4.7 and possibly others.",
            "reset":1,
            "address":9239
          },
          {
            "id":"crankingsparkangle",
            "min":-90,
            "max":90,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "descr":"Ignition timing used when engine speed is below the cranking threshold.",
            "address":9264
          },
          {
            "id":"fueltimeout",
            "type":1,
            "scale":0.100000,
            "unit":"seconds",
            "digits":1,
            "descr":"The fuel pump will run for this duration after the last seen crank trigger impulse and also after ECU powers on or engine disable flag is cleared. Fuel pump will not run when engine disable flag is set. ('error0' variable has a value other than 0)",
            "address":8578
          },
          {
            "id":"fuelpriloadsource",
            "maxwidth":2,
            "type":9,
            "descr":"This parameter specifies what variable to use for the load axis of the primary fuel maps.",
            "address":520
          },
          {
            "id":"fuelsecloadsource",
            "maxwidth":2,
            "type":9,
            "descr":"This parameter specifies what variable to use for the load axis of the secondary fuel maps.",
            "address":524
          },
          {
            "id":"ignpriloadsource",
            "maxwidth":2,
            "type":9,
            "descr":"This parameter specifies what variable to use for the load axis of the primary ignition maps.",
            "address":528
          },
          {
            "id":"ignsecloadsource",
            "maxwidth":2,
            "type":9,
            "descr":"This parameter specifies what variable to use for the load axis of the secondary ignition maps.",
            "address":536
          },
          {
            "id":"percylloadsource",
            "maxwidth":2,
            "type":9,
            "descr":"This parameter specifies what variable to use for the load axis of the maps that have to do with per-cylinder tuning.",
            "address":532
          },
          {
            "id":"twofuelmaps",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.4.4",
            "descr":"If enabled, the secondary fuel map is applied as a multiplier on the value taken from the primary fuel map."
          },
          {
            "id":"percylfueltuning",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.5.5"
          },
          {
            "id":"percyligntuning",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.6.6"
          },
          {
            "id":"twoignmaps",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.27.27",
            "descr":"If enabled, the value from the secondary ignition map is added to the value of the primary ignition map."
          },
          {
            "id":"stepinterval",
            "type":1,
            "unit":"ms",
            "reset":1,
            "descr":"If using a stepper idle valve, this parameter specifies the interval at which the motor is stepped. The first and last steps hold for double this time.",
            "address":10340
          },
          {
            "id":"idlesettings",
            "type":1,
            "address":9334
          },
          {
            "id":"idlehold",
            "type":8,
            "options":"enum_enabled",
            "address":"idlesettings.0.0",
            "descr":"If enabled, a stepper idle valve will have the coils energised even when the valve is holding position. This is generally not recommended as it heats up the stepper motor but some valves need it and won't hold their position without it."
          },
          {
            "id":"idlehomedir",
            "type":8,
            "options":[
              "Closed",
              "Open"
            ],
            "address":"idlesettings.1.1",
            "descr":"When the ECU powers up, it will run the stepper motor through a homing sequence, where it drives the motor as far as it will go in one direction (assuming enough steps are specified in the homing steps parameter). This parameter specifies whether the valve is in fact fully open or fully closed once the homing sequence is complete. It does not change the direction in which the stepper motor runs during the homing sequence. To change the actual direction of the homing sequence, swap the A\/B pairs for the stepper output pins in the output function assignment."
          },
          {
            "id":"idlepwmvoltcorr",
            "type":8,
            "options":"enum_enabled",
            "address":"idlesettings.2.2",
            "descr":"If enabled, the idle valve is driven in constant current mode, where a reduction in voltage calls for a proportional increase in duty cycle. This is typical for most 2 wire valves. 3 wire valves generally don't need it."
          },
          {
            "id":"idleupadder1",
            "type":8,
            "options":[
              "Minimum target",
              "Adder"
            ],
            "address":"idlesettings.3.3",
            "descr":"'Minimum target' means when the idle-up input is active, the idle target speed is set to the speed specified by the idle-up speed parameter unless it's already higher. At the same time the idle valve position is set to the value specified by the idle-up parameter unless already higher.\r\nIn 'Adder' mode, the values specified in the idle-up parameters are added to whatever the values were before the idle up input is processed.\r\nIdle up input 1 is processed before idle up input 2 so input 2 as an adder will add to a minimum target specified by input 1 but not the other way around."
          },
          {
            "id":"idleupadder2",
            "type":8,
            "options":[
              "Minimum target",
              "Adder"
            ],
            "address":"idlesettings.4.4",
            "descr":"'Minimum target' means when the idle-up input is active, the idle target speed is set to the speed specified by the idle-up speed parameter unless it's already higher. At the same time the idle valve position is set to the value specified by the idle-up parameter unless already higher.\r\nIn 'Adder' mode, the values specified in the idle-up parameters are added to whatever the values were before the idle up input is processed.\r\nIdle up input 1 is processed before idle up input 2 so input 2 as an adder will add to a minimum target specified by input 1 but not the other way around."
          },
          {
            "id":"idlestaysopen",
            "type":8,
            "options":"enum_enabled",
            "address":"idlesettings.5.5",
            "descr":"Should nearly always be enabled. If disabled, the idle valve will shut when the throttle position goes above the value specified by the 'Idle max throttle' parameter."
          },
          {
            "id":"idledelay",
            "type":1,
            "unit":"s",
            "scale":0.100000,
            "digits":1,
            "descr":"The idle closed loop control will not start operating until throttle drops below the threshold specified by 'Idle max throttle', the engine speed drops below the threshold specified by 'Idle advance control maximum engine speed' and the delay specified by this parameter expires.",
            "address":17149
          },
          {
            "id":"fullopensteps",
            "type":2,
            "unit":"steps",
            "descr":"This parameter specifies the number of steps needed to move the stepper idle valve from the fully closed to the fully opened position.",
            "address":10344
          },
          {
            "id":"homesteps",
            "type":2,
            "unit":"steps",
            "reset":1,
            "descr":"This parameter specifies the number of steps taken by the stepper idle valve when the ECU powers on. Should be a number greater than the full-open steps parameter.",
            "address":10342
          },
          {
            "id":"idledcrange",
            "type":2,
            "array":2,
            "scale":0.097656,
            "unit":"%",
            "descr":"If using a PWM type idle valve, this parameter translates 0-100% opening value to duty cycle. Normally this can stay at 0-100% but some valves need a certain amount of minimum duty cycle to close completely, below that they will start to open again. If using a 3 wire valve you may use this parameter to reverse the function of it.",
            "address":10346
          },
          {
            "id":"newtransientmaps",
            "type":8,
            "address":"bits1.9.9",
            "options":"enum_enabled",
            "descr":"If enabled, the new transient fuelling strategy is used, where instead of using simple gain functions there are maps of engine speed vs throttle and MAP rates"
          },
          {
            "id":"transfuelspeedbins",
            "type":2,
            "array":8,
            "unit":"RPM",
            "input":"enginespeed",
            "address":10350
          },
          {
            "id":"transfueldtpposbins",
            "type":2,
            "array":8,
            "unit":"%\/sec",
            "scale":1.955000,
            "input":"deltathrottle",
            "address":10366
          },
          {
            "id":"transfueldtpnegbins",
            "type":2,
            "array":8,
            "unit":"%\/sec",
            "sign":1,
            "max":0,
            "scale":-1.955000,
            "input":"deltathrottle",
            "address":10382
          },
          {
            "id":"transfueldmapposbins",
            "type":2,
            "array":8,
            "unit":"mbar\/sec",
            "scale":20,
            "input":"deltamap",
            "address":10398
          },
          {
            "id":"transfueldmapnegbins",
            "type":2,
            "array":8,
            "unit":"mbar\/sec",
            "scale":-20,
            "sign":1,
            "max":0,
            "input":"deltamap",
            "address":10414
          },
          {
            "id":"transfuelposgain",
            "type":2,
            "array":64,
            "digits":3,
            "scale":0.000977,
            "cols":8,
            "variations":[
              [
                "newtransientmaps",
                "=",
                "Disabled"
              ],
              {
                "digits":3,
                "scale":0.000977,
                "unit":null,
                "rows":null
              },
              [
                "newtransientmaps",
                "=",
                "Enabled"
              ],
              {
                "digits":2,
                "scale":0.010000,
                "unit":"mg",
                "rows":8
              }
            ],
            "descr":"When 'deltathrottle' is positive and above the threshold set by 'Minimum throttle rate of change' and throttle position is below 'Maximum throttle position' in the transient fuelling category this function is active.",
            "address":10686,
            "unit":null,
            "rows":null
          },
          {
            "id":"transfuelneggain",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "array":64,
            "cols":8,
            "variations":[
              [
                "newtransientmaps",
                "=",
                "Disabled"
              ],
              {
                "digits":3,
                "scale":0.000977,
                "unit":null,
                "rows":null
              },
              [
                "newtransientmaps",
                "=",
                "Enabled"
              ],
              {
                "digits":2,
                "scale":0.010000,
                "unit":"mg",
                "rows":8
              }
            ],
            "descr":"When 'deltathrottle' is negative by more than the threshold set by 'Minimum throttle rate of change' and throttle position is below 'Maximum throttle position' in the transient fuelling category this function active.",
            "address":10814,
            "unit":null,
            "rows":null
          },
          {
            "id":"transfuelmapposgain",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "array":64,
            "cols":8,
            "variations":[
              [
                "newtransientmaps",
                "=",
                "Disabled"
              ],
              {
                "digits":3,
                "scale":0.000977,
                "unit":null,
                "rows":null
              },
              [
                "newtransientmaps",
                "=",
                "Enabled"
              ],
              {
                "digits":2,
                "scale":0.010000,
                "unit":"mg",
                "rows":8
              }
            ],
            "descr":"When 'deltamap' is positive and above the threshold set by 'Minimum MAP rate of change' and throttle position is below 'Maximum throttle position' in the transient fuelling category this function is active.",
            "address":10430,
            "unit":null,
            "rows":null
          },
          {
            "id":"transfuelmapneggain",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "array":64,
            "cols":8,
            "variations":[
              [
                "newtransientmaps",
                "=",
                "Disabled"
              ],
              {
                "digits":3,
                "scale":0.000977,
                "unit":null,
                "rows":null
              },
              [
                "newtransientmaps",
                "=",
                "Enabled"
              ],
              {
                "digits":2,
                "scale":0.010000,
                "unit":"mg",
                "rows":8
              }
            ],
            "descr":"When 'deltamap' real time variable when 'deltamap' is negative by more than the threshold set by 'Minimum throttle rate of change' and throttle position is below 'Maximum throttle position' in the transient fuelling category this function is active",
            "address":10558,
            "unit":null,
            "rows":null
          },
          {
            "id":"transfuelmaxpos",
            "type":2,
            "max":100,
            "array":8,
            "scale":0.010000,
            "unit":"mg",
            "digits":2,
            "descr":"This function limits the maximum fuel quantity added by the transient fuelling strategy. The warm-up fuel multiplier is applied to both the transient fuel gain as well as the limits. The effect of the warm-up multiplier on transient fuelling may be increased or decreased by the 'Warmup modifier' parameter in the transient fuelling category.",
            "address":10942
          },
          {
            "id":"transfuelmaxneg",
            "type":2,
            "max":100,
            "array":8,
            "scale":0.010000,
            "unit":"mg",
            "digits":2,
            "descr":"This function limits the maximum fuel quantity added by the transient fuelling strategy. The warm-up fuel multiplier is applied to both the transient fuel gain as well as the limits. The effect of the warm-up multiplier on transient fuelling may be increased or decreased by the 'Warmup modifier' parameter in the transient fuelling category.",
            "address":10958
          },
          {
            "id":"transfuelposdecay",
            "type":2,
            "digits":2,
            "scale":0.010000,
            "unit":"mg\/update",
            "array":8,
            "descr":"The transient fuelling strategy works by detecting the peak rate of change of the throttle position. When the rate of change starts to reduce the transient fuel adder starts to decay. The transient fuelling decay is processed at a rate of 20 times per second. This function specifies the reduction in transient fuel adder on every update when the transient fuel quantity is positive.",
            "address":10974
          },
          {
            "id":"transfuelnegdecay",
            "type":2,
            "digits":2,
            "scale":0.010000,
            "unit":"mg\/update",
            "array":8,
            "descr":"The transient fuelling strategy works by detecting the peak rate of change of the throttle position. When the rate of change starts to reduce the transient fuel adder starts to decay. The transient fuelling decay is processed at a rate of 20 times per second. This function specifies the reduction in transient fuel adder on every update when the transient fuel quantity is negative.",
            "address":10990
          },
          {
            "id":"transfuelpereventposdecay",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "unit":"%",
            "array":8,
            "descr":"When transient fuelling is activated, the quantity will decay by a fraction every cylinder tdc event.",
            "address":11014
          },
          {
            "id":"transfuelpereventnegdecay",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "unit":"%",
            "array":8,
            "descr":"When transient fuelling is activated, the quantity will decay by a fraction every cylinder tdc event.",
            "address":11022
          },
          {
            "id":"transfueleventdecayholdoff",
            "type":1,
            "descr":"When transient fuelling is activated, the strategy will wait the specified number of events before per-event decay starts",
            "address":11011
          },
          {
            "id":"transfuelstartdelay",
            "type":1,
            "scale":0.100000,
            "unit":"s",
            "digits":1,
            "descr":"The transient fuelling strategy is disabled for this period after engine speed exceeds the cranking upper threshold.",
            "address":11010
          },
          {
            "id":"transfuelmindelta",
            "type":2,
            "scale":1.955000,
            "unit":"%\/sec",
            "descr":"If throttle position rate of change is below this threshold in either direction the transient fuelling gain functions of deltathrottle are not evaluated.\r\nIf set to zero, throttle rate of change will not be included in the transient fuel strategy.",
            "address":11006
          },
          {
            "id":"transfuelminmapdelta",
            "type":2,
            "scale":20,
            "unit":"mbar\/sec",
            "descr":"If MAP rate of change is below this threshold in either direction the transient fuelling gain functions of deltamap are not evaluated.\r\nIf set to zero, MAP rate of change will not be included in the transient fuel strategy.\r\nMAP rate of change can prove more useful than throttle rate of change on small engines with throttle bodies way too big, where a small throttle opening results in full MAP at low speeds and no further throttle opening requires any added fuel.",
            "address":11008
          },
          {
            "id":"transfuelmaxthrottle",
            "type":2,
            "scale":0.097656,
            "unit":"%",
            "digits":1,
            "descr":"When the throttle position is above this value, the transient fuelling strategy is not evaluated.",
            "address":11012
          },
          {
            "id":"din1function",
            "type":8,
            "options":"enum_dinfunctions",
            "descr":"For most purposes, this should be set as 'General purpose digital input' for low speed logic functions or 'General purpose frequency input' for frequency based sensors. Other functions have a special implementation.\r\nECU must be powered off and then back on to apply changes to this setting",
            "reset":1,
            "address":11436
          },
          {
            "id":"din3function",
            "type":8,
            "options":"enum_dinfunctions",
            "descr":"For most purposes, this should be set as 'General purpose digital input' for low speed logic functions or 'General purpose frequency input' for frequency based sensors. Other functions have a special implementation.\r\nECU must be powered off and then back on to apply changes to this setting",
            "reset":1,
            "address":11437
          },
          {
            "id":"din4function",
            "type":8,
            "options":[
              [
                0,
                "General purpose digital input"
              ],
              [
                1,
                "Wheel speed input"
              ],
              [
                6,
                "General purpose frequency input"
              ]
            ],
            "descr":"For most purposes, this should be set as 'General purpose digital input' for low speed logic functions or 'General purpose frequency input' for frequency based sensors. Other functions have a special implementation.\r\nECU must be powered off and then back on to apply changes to this setting",
            "address":11438
          },
          {
            "id":"launchoptions",
            "type":1,
            "address":11440
          },
          {
            "id":"launchenable",
            "type":8,
            "options":"enum_enabled",
            "address":"launchoptions.0.0",
            "descr":"This is the master toggle for the launch control strategy, if this parameter is not enabled, no other launch control related parameter has any effect."
          },
          {
            "id":"launchvariable",
            "type":8,
            "options":[
              "Fixed",
              "Variable"
            ],
            "address":"launchoptions.1.1",
            "descr":"If set to 'Fixed', the 'Launch modifier' function is ineffective. Set to 'Variable' and the 'Launch modifier' function is used."
          },
          {
            "id":"launchsparkcut",
            "type":8,
            "options":[
              "Fuel",
              "Ignition"
            ],
            "address":"launchoptions.2.2"
          },
          {
            "id":"launchabstiming",
            "type":8,
            "options":[
              "Relative",
              "Absolute"
            ],
            "address":"launchoptions.3.3",
            "descr":"If set to 'Relative', the launch control ignition retard is subtracted from the timing commanded by the regular ignition control.\r\nIf set to 'Absolute' the launch control ignition retard is used as an absolute timing target in degrees before top dead centre (or after, if a negative number is specified) when right at the edge of the control window.\r\nUsing absolute timing may net a quicker turbo spool."
          },
          {
            "id":"launchspeedsource",
            "type":8,
            "options":[
              "Driven",
              "Undriven"
            ],
            "address":"launchoptions.4.4",
            "descr":"Normally the launch control is deactivated when 'roadspeed' goes above the configured threshold. If this parameter is set to 'Undriven' then 'roadspeed2' is used instead of 'roadspeed' for control."
          },
          {
            "id":"launchswitch",
            "type":8,
            "options":"map_inputs",
            "descr":"If you like to use a switch or logic condition to activate\/deactivate the launch control (necessary if no vehicle speed input is present, otherwise optional) select the input here. Otherwise select 'Always on'.",
            "address":11441
          },
          {
            "id":"launchlimit",
            "type":2,
            "unit":"RPM",
            "address":11442
          },
          {
            "id":"altlaunchlimit",
            "type":2,
            "unit":"RPM",
            "descr":"Alternate limit selectable by cal pot input.",
            "address":11488
          },
          {
            "id":"altlaunchlimit2",
            "type":2,
            "unit":"RPM",
            "descr":"Alternate limit selectable by cal pot input.",
            "address":11490
          },
          {
            "id":"launchmaxspeed",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "descr":"When 'roadspeed' (or 'roadspeed2', depending on selected road speed source) exceeds this value, the launch control is deactivated and the 'time_since_launch' timer starts counting up.",
            "address":11444
          },
          {
            "id":"launchinitspeed",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "descr":"When launch control has been deactivated by vehicle speed or switch input, vehicle speed must be below or equal to this value to allow launch control to re-enable.",
            "address":11446
          },
          {
            "id":"launchvaryvar",
            "maxwidth":2,
            "type":9,
            "address":11480
          },
          {
            "id":"launchvarybins",
            "type":2,
            "array":8,
            "describedby":"launchvaryvar",
            "address":11464
          },
          {
            "id":"launchvary",
            "type":2,
            "array":8,
            "scale":0.000977,
            "digits":2,
            "descr":"The value of this function is multiplied by the currently set launch control rev limit. If the end result is greater than the master rev limit the launch control is effectively disabled.",
            "address":11448
          },
          {
            "id":"launchretard",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "sign":1,
            "min":-50,
            "max":90,
            "unit":"°",
            "descr":"The ignition timing when launch control is active is interpolated between this value and the normal ignition timing over the window specified by the 'Launch rev window' parameter.\r\nWhen right at the rev limit the value of this parameter is used but when engine speed is below the limit by the amount specified by the rev window parameter, normal timing is used.",
            "address":11484
          },
          {
            "id":"altlaunchretard",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "sign":1,
            "min":-50,
            "max":90,
            "unit":"°",
            "descr":"Alternate timing value selectable by cal pot input.",
            "address":11492
          },
          {
            "id":"altlaunchretard2",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "sign":1,
            "min":-50,
            "max":90,
            "unit":"°",
            "descr":"Alternate timing value selectable by cal pot input.",
            "address":11494
          },
          {
            "id":"launchfuel",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"When the launch control is active and the engine speed is inside the configured launch rev window, the value of this parameter is interpolated from unity at the bottom of the window to the configured value at the top of the window and the result is multiplied by the commanded fuel quantity.",
            "address":11512
          },
          {
            "id":"altlaunchfuel",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"Alternate modifier selectable by cal pot input.",
            "address":11514
          },
          {
            "id":"altlaunchfuel2",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"Alternate modifier selectable by cal pot input.",
            "address":11516
          },
          {
            "id":"launchcalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.4",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Disabled",
              "Normal",
              "Alternate",
              "Alternate 2"
            ],
            "descr":"When the cal pot is enabled, this selects the launch control operation as a function of cal pot position.",
            "address":11496
          },
          {
            "id":"launchwindow",
            "type":2,
            "unit":"RPM",
            "descr":"The rev window specifies how hard the launch control hits. The window is subtracted from the rev limit and sets a lower engine speed at which the launch control ignition retard and fuel modifier have no effect. The ignition retard and fuel modifier are then gradually fed in as the engine speed climbs through this window and reaches the launch rev limit.\r\nSetting this window too short will cause harsh performance of the launch control. Setting the window too long will deprive the engine of torque when the clutch engages as the engine speed has to drop in order to resume the ignition timing to normal while the launch control is still active.",
            "address":11486
          },
          {
            "id":"din5filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"Once an impulse is registered on the input, further impulses are ignored for the period specified by this parameter. Useful to fend against torsional vibration as well as inductive ringing in speed sensors.",
            "address":11534
          },
          {
            "id":"din1filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"Once an impulse is registered on the input, further impulses are ignored for the period specified by this parameter. Useful to fend against torsional vibration as well as inductive ringing in speed sensors.",
            "address":11536
          },
          {
            "id":"din3filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"Once an impulse is registered on the input, further impulses are ignored for the period specified by this parameter. Useful to fend against torsional vibration as well as inductive ringing in speed sensors.",
            "address":11538
          },
          {
            "id":"din4filter",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "descr":"Once an impulse is registered on the input, further impulses are ignored for the period specified by this parameter. Useful to fend against torsional vibration as well as inductive ringing in speed sensors.",
            "address":11540
          },
          {
            "id":"gearratios",
            "type":2,
            "array":8,
            "scale":0.100000,
            "digits":1,
            "unit":"km\/h",
            "input":"roadspeed",
            "descr":"The ECU can determine what gear is being used on a manual transmission by taking the ratio between engine speed and vehicle speed. This function specifies the gear ratio as the speed the vehicle would move if engine was turning 3000RPM in each gear.\r\nThe easiest way to populate this function is to record a data log accelerating at part throttle through all of the gears and creating a user defined variable in the log viewer with the formula roadspeed * 3000 \/ enginespeed and then take a reading in each gear.",
            "address":11518
          },
          {
            "id":"din1rising",
            "type":8,
            "address":"dinconf.1.1",
            "options":"enum_triggeredge",
            "reset":1,
            "descr":"When the digital input is used for frequency\/timing\/speed purposes, this parameter sets the polarity of the primary\/active edge. This parameter has no effect on input polarity when used as a switch input. The ECU needs to be powered off after saving the settings to apply."
          },
          {
            "id":"din5rising",
            "type":8,
            "address":"dinconf.0.0",
            "options":"enum_triggeredge",
            "reset":1,
            "descr":"When the digital input is used for frequency\/timing\/speed purposes, this parameter sets the polarity of the primary\/active edge. This parameter has no effect on input polarity when used as a switch input. The ECU needs to be powered off after saving the settings to apply."
          },
          {
            "id":"din1skip",
            "type":1,
            "descr":"This setting divides the frequency reported by the digital input by the specified number. Useful if the input frequency is very high. Only used in frequency\/speed input modes.",
            "address":17104
          },
          {
            "id":"din3skip",
            "type":1,
            "descr":"This setting divides the frequency reported by the digital input by the specified number. Useful if the input frequency is very high. Only used in frequency\/speed input modes.",
            "address":17105
          },
          {
            "id":"din4skip",
            "type":1,
            "descr":"This setting divides the frequency reported by the digital input by the specified number. Useful if the input frequency is very high. Only used in frequency\/speed input modes.",
            "address":17106
          },
          {
            "id":"din5skip",
            "type":1,
            "descr":"This setting divides the frequency reported by the digital input by the specified number. Useful if the input frequency is very high. Only used in frequency\/speed input modes.",
            "address":17107
          },
          {
            "id":"din3rising",
            "type":8,
            "address":"dinconf.3.3",
            "options":"enum_triggeredge",
            "reset":1,
            "descr":"When the digital input is used for frequency\/timing\/speed purposes, this parameter sets the polarity of the primary\/active edge. This parameter has no effect on input polarity when used as a switch input. The ECU needs to be powered off after saving the settings to apply."
          },
          {
            "id":"din4rising",
            "type":8,
            "address":"dinconf.4.4",
            "options":"enum_triggeredge",
            "reset":1,
            "descr":"When the digital input is used for frequency\/timing\/speed purposes, this parameter sets the polarity of the primary\/active edge. This parameter has no effect on input polarity when used as a switch input. The ECU needs to be powered off after saving the settings to apply."
          },
          {
            "id":"din5function",
            "type":8,
            "options":"enum_dinfunctions",
            "reset":1,
            "descr":"ECU must be powered off and then back on to apply changes to this setting.",
            "address":11439
          },
          {
            "id":"overboost",
            "type":2,
            "unit":"mbar",
            "descr":"If the manifold absolute pressure value exceeds the value specified by this parameter, fuel injection is shut off and an erro flag registered. The fuel injection will resume when the pressure has dropped by the specified hysteresis but the error value may cause the ECU to switch to engine protection mode until powered off if configured to do so.",
            "address":11542
          },
          {
            "id":"overboosthyster",
            "type":2,
            "unit":"mbar",
            "descr":"If the fuel injection is shut off due to an overboost condition, the pressure must drop by this amount below the overboost threshold to re-enable fuel injection. Set too small and risk engine damage if insufficient time passes between subsequent cycles of shutting the fuel off and resumption of fuelling.",
            "address":11544
          },
          {
            "id":"tcoptions",
            "type":1,
            "address":11546
          },
          {
            "id":"tcenable",
            "type":8,
            "options":"enum_enabled",
            "address":"tcoptions.0.0",
            "descr":"This is the master enable for the traction control strategy. If this is disabled none of the other parameters related to traction control have any effect."
          },
          {
            "id":"tcsparkcut",
            "type":8,
            "options":"enum_enabled",
            "address":"tcoptions.1.1",
            "descr":"If enabled, the traction control will cut ignition events when the maximum amount of ignition timing has been removed already but slip speed is still excessive.\r\nIf disabled, the timing is all"
          },
          {
            "id":"tcgpmod",
            "type":8,
            "options":"enum_enabled",
            "address":"tcoptions.2.2",
            "descr":"If enabled, a user defined modifier is multiplied by both the allowed slip and maximum slip thresholds. Can be used to adjust for steering input or yaw for example."
          },
          {
            "id":"tcminthrottle",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "unit":"%",
            "input":"throttle",
            "descr":"No corrections will be made by the traction control strategy if throttle position is below this value.",
            "address":11684
          },
          {
            "id":"tcswitch",
            "type":8,
            "options":"map_inputs",
            "descr":"A switch input or logic condition may be used to enable or disable the traction control on driver request. The driver input may also be from the calibration pot, and if no master switch for the traction control is fitted, set this parameter to 'Always on'.",
            "address":11547
          },
          {
            "id":"tccalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.5",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Disabled",
              "Map 1",
              "Map 2",
              "Map 3"
            ],
            "descr":"Traction control behaviour based on calibration pot position.",
            "address":11570
          },
          {
            "id":"tcmaxspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "descr":"The traction control will shut off when 'roadspeed2' (undriven wheel speed) is above this value. If this value is exceeded, the traction control remains inactive until the speed drops below the value specifified by the traction control re-enable speed parameter.\r\nA value of zero specifies that the traction control remains active regardless of vehicle speed.",
            "address":11550
          },
          {
            "id":"tcinitspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "descr":"If traction control is disabled by excessive vehicle speed, the traction control is re-enabled when undriven wheel speed drops below this value.",
            "address":11552
          },
          {
            "id":"tcspeedbins",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "input":"roadspeed2",
            "descr":"Speed breakpoints for the traction control maps. Note that they go by undriven wheel speed or true vehicle speed.",
            "address":11554
          },
          {
            "id":"tcallowedslipspeed",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Below these slip values, no action is taken by the traction control. Above these values the traction control starts to reduce engine power until the maximum slip speed is reached.",
            "address":11586
          },
          {
            "id":"tcallowedslipspeed2",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Alternate traction control calibration selectable by calibration pot.",
            "address":11618
          },
          {
            "id":"tcallowedslipspeed3",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Alternate traction control calibration selectable by calibration pot.",
            "address":11650
          },
          {
            "id":"tcmaxslipspeed",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Once the maximum slip speed is reached, the full amount of ignition timing retard is applied. If this is insufficient, ignition events are skipped if hard cut is enabled.",
            "address":11602
          },
          {
            "id":"tcmaxslipspeed2",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Alternate traction control calibration selectable by calibration pot.",
            "address":11634
          },
          {
            "id":"tcmaxslipspeed3",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "descr":"Alternate traction control calibration selectable by calibration pot.",
            "address":11666
          },
          {
            "id":"tcmaxretard",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "min":0,
            "max":90,
            "unit":"°",
            "descr":"This is the ignition timing retard applied when maximum slip speed is reached.",
            "address":11682
          },
          {
            "id":"tcmodifiervar",
            "type":9,
            "maxwidth":2,
            "address":11688
          },
          {
            "id":"tcmodifierbins",
            "type":2,
            "array":16,
            "describedby":"tcmodifiervar",
            "cols":"tcmodifierpts",
            "address":11692
          },
          {
            "id":"tcmodifier",
            "type":2,
            "array":16,
            "digits":2,
            "scale":0.000977,
            "cols":"tcmodifierpts",
            "descr":"The values of this function are multiplied by the values from the allowed slippage and maximum slippage functions that are in use, if the general purpose modifier is enabled.",
            "address":11724
          },
          {
            "id":"tcmodifierpts",
            "type":1,
            "max":16,
            "min":2,
            "address":11548
          },
          {
            "id":"overrunthrottle",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "unit":"%",
            "array":8,
            "descr":"Throttle position must be equal to or below this value and all other conditions must be met simultaneously to enter overrun fuel cut. In case of electronic throttle control, this value is compared against accelerator pedal position instead of throttle position. By having greater values at high RPM the fuel cut can engage faster on gear shifts to ensure better shifting performance with a manual transmission at high engine speeds.",
            "address":11772
          },
          {
            "id":"overrunresumeretard",
            "type":2,
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "array":8,
            "descr":"When resuming from overrun fuel cut, the ignition angle is retarded by the amount specified in this table to soften the torque onset.",
            "address":11820
          },
          {
            "id":"overrunretarddecay",
            "type":2,
            "unit":"ms",
            "max":1000,
            "descr":"When resuming from overrun fuel cut and the ignition angle was retarded to soften the resume, the ignition trim is phased out over this amount of time.",
            "address":11836
          },
          {
            "id":"overrunretardmaxthrottle",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "unit":"%",
            "descr":"If the throttle position is greater than this value, the overrun resume ignition trim is zeroed immediately instead of after a specified amount of time.",
            "address":11838
          },
          {
            "id":"overrunetctarget",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "unit":"%",
            "array":8,
            "descr":"This function specifies the minimum permitted throttle position target while overrun fuel cut is active. Can be used to reduce engine braking.",
            "address":11788
          },
          {
            "id":"overrunetc2target",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "unit":"%",
            "array":8,
            "descr":"This function specifies the minimum permitted throttle position target while overrun fuel cut is active. Can be used to reduce engine braking.",
            "address":11804
          },
          {
            "id":"overrunrpmbins",
            "type":2,
            "input":"enginespeed",
            "array":8,
            "unit":"RPM",
            "address":11756
          },
          {
            "id":"overrunmap",
            "type":2,
            "unit":"mbar",
            "descr":"Manifold absolute pressure must be equal or smaller than this value to enter overrun fuel cut.",
            "address":11840
          },
          {
            "id":"overruninitrpm",
            "type":2,
            "unit":"RPM",
            "descr":"Engine speed must be equal or greater than this value to activate overrun fuel cut. The fuel cut then remains active until engine speed drops below the 'Speed to resume' or any of the other parameters stop matching.",
            "address":11842
          },
          {
            "id":"overrunresumerpm",
            "type":2,
            "unit":"RPM",
            "descr":"Once the overrun fuel cut is activated, it gets deactivated if engine speed drops below this value.",
            "address":11844
          },
          {
            "id":"overrundelay",
            "type":2,
            "unit":"ms",
            "descr":"Once all of the conditions exist to activate the overrun fuel cut, activation is delayed by this period.",
            "address":11846
          },
          {
            "id":"overrunect",
            "type":2,
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"Overrun fuel cut will not activate if engine coolant temperature is below this value.",
            "address":11848
          },
          {
            "id":"overrunenable",
            "type":8,
            "address":"bits0.9.9",
            "options":"enum_enabled",
            "descr":"This is the master enable for the overrun fuel cut. Note that the overrun fuel cut will not operate if the anti lag strategy is active."
          },
          {
            "id":"canmode",
            "type":8,
            "options":"enum_canspeed",
            "descr":"Sets the data rate of the CAN bus. Controller must be powered off and back on for changes to this setting to take effect.",
            "reset":1,
            "address":7796
          },
          {
            "id":"can2mode",
            "type":8,
            "options":"enum_canspeed",
            "descr":"Sets the data rate of the second CAN bus. Controller must be powered off and back on for changes to this setting to take effect. Note that the second CAN bus is an option that not all controllers are equipped with.",
            "reset":1,
            "address":7797
          },
          {
            "id":"pwm0enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.30.30",
            "descr":"This parameter enables the general purpose PWM service. The output of the PWM service may be observed on the real time variable 'pwm0duty' where it may be used for any purpose. It may also be assigned to an output pin under the 'Output function association' section of the configuration."
          },
          {
            "id":"pwm0descr",
            "type":7,
            "array":50,
            "descr":"A short text description of what the function is used for.",
            "address":9781
          },
          {
            "id":"pwm0period",
            "type":2,
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "reset":1,
            "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":9464
          },
          {
            "id":"pwm0primaryxvar",
            "type":9,
            "maxwidth":2,
            "address":9468
          },
          {
            "id":"pwm0primaryyvar",
            "type":9,
            "maxwidth":2,
            "address":9472
          },
          {
            "id":"pwm0secondaryxvar",
            "type":9,
            "maxwidth":2,
            "address":9476
          },
          {
            "id":"pwm0secondaryyvar",
            "type":9,
            "maxwidth":2,
            "address":9480
          },
          {
            "id":"pwm0ternaryxvar",
            "type":9,
            "maxwidth":2,
            "address":9484
          },
          {
            "id":"pwm0ternaryyvar",
            "type":9,
            "maxwidth":2,
            "address":9488
          },
          {
            "id":"pwm0primaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0primaryxvar",
            "address":9492
          },
          {
            "id":"pwm0primaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0primaryyvar",
            "address":9508
          },
          {
            "id":"pwm0secondaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0secondaryxvar",
            "address":9524
          },
          {
            "id":"pwm0secondaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0secondaryyvar",
            "address":9540
          },
          {
            "id":"pwm0ternaryxaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0ternaryxvar",
            "address":9556
          },
          {
            "id":"pwm0ternaryyaxis",
            "type":2,
            "array":8,
            "describedby":"pwm0ternaryyvar",
            "address":9572
          },
          {
            "id":"pwm0primary",
            "type":1,
            "unit":"%",
            "max":100,
            "digits":1,
            "scale":0.392157,
            "array":64,
            "rows":8,
            "cols":8,
            "address":9588
          },
          {
            "id":"pwm0secondary",
            "type":1,
            "digits":2,
            "scale":0.010000,
            "array":64,
            "rows":8,
            "cols":8,
            "address":9652
          },
          {
            "id":"pwm0ternary",
            "type":1,
            "digits":2,
            "scale":0.010000,
            "array":64,
            "rows":8,
            "cols":8,
            "address":9716
          },
          {
            "id":"pwm0mode",
            "type":1,
            "address":9780
          },
          {
            "id":"pwm0tabsel",
            "type":8,
            "address":"pwm0mode.0.1",
            "options":[
              "Single table",
              "Dual tables",
              "Triple tables"
            ],
            "descr":"In single table mode, only the primary table is used. In dual mode, the value of the secondary table is multiplied with the value of the primary table. In triple mode all three tables multiply together to produce the final duty cycle."
          },
          {
            "id":"pwm1enable",
            "type":8,
            "options":"map_inputs",
            "address":10336
          },
          {
            "id":"pwm1defaultduty",
            "type":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":10338
          },
          {
            "id":"pwm1options",
            "type":1,
            "address":9835
          },
          {
            "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":"pwm1Ilimittarget",
            "type":8,
            "address":"pwm1options.1.1",
            "options":"enum_enabled",
            "descr":"If enabled, the integral of the PID function can be limited based on actual target position, this is useful to prevent integral wind up when the target is close to the edge of its range. The limits all apply together, so the largest minimum and the smallest maximum take precedence."
          },
          {
            "id":"pwm1Ilimiterror",
            "type":8,
            "address":"pwm1options.2.2",
            "options":"enum_enabled",
            "descr":"If enabled, the integral of the PID function can be limited based on control error distance, this is useful to prevent integral wind up when the target is far from the setpoint. The limits all apply together, so the largest minimum and the smallest maximum take precedence."
          },
          {
            "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":2,
            "describedby":"pwm1var",
            "relative":1,
            "address":10332
          },
          {
            "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":10334
          },
          {
            "id":"pwm1targetpts",
            "type":2,
            "describedby":"pwm1var",
            "array":8,
            "address":10146
          },
          {
            "id":"pwm1errorpts",
            "type":2,
            "describedby":"pwm1var",
            "relative":1,
            "input":"pwm1error",
            "array":8,
            "address":10162
          },
          {
            "id":"pwm1Itgtlimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":10178
          },
          {
            "id":"pwm1Ierrlimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":10210
          },
          {
            "id":"pwm1gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":10248
          },
          {
            "id":"pwm1gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":10244
          },
          {
            "id":"pwm1gpdutymodsrc",
            "type":9,
            "maxwidth":2,
            "address":10296
          },
          {
            "id":"pwm1gplimitpts",
            "type":2,
            "describedby":"pwm1gplimitsrc",
            "array":8,
            "address":10280
          },
          {
            "id":"pwm1gpdutypts",
            "type":2,
            "describedby":"pwm1gpdutymodsrc",
            "array":8,
            "address":10316
          },
          {
            "id":"pwm1gpdutymod",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "array":8,
            "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":10300
          },
          {
            "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":9832
          },
          {
            "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":9834
          },
          {
            "id":"pwm1var",
            "type":9,
            "maxwidth":2,
            "address":9836
          },
          {
            "id":"pwm1xvar",
            "type":9,
            "maxwidth":2,
            "address":9840
          },
          {
            "id":"pwm1yvar",
            "type":9,
            "maxwidth":2,
            "address":9844
          },
          {
            "id":"pwm1xaxis",
            "type":2,
            "array":8,
            "describedby":"pwm1xvar",
            "address":9848
          },
          {
            "id":"pwm1yaxis",
            "type":2,
            "array":8,
            "describedby":"pwm1yvar",
            "address":9864
          },
          {
            "id":"pwm1target",
            "type":2,
            "describedby":"pwm1var",
            "array":64,
            "rows":8,
            "cols":8,
            "address":9880
          },
          {
            "id":"pwm1base",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "rows":8,
            "cols":8,
            "array":64,
            "address":10008
          },
          {
            "id":"pwm1minduty",
            "type":2,
            "scale":0.003052,
            "sign":1,
            "digits":1,
            "address":17156
          },
          {
            "id":"pwm1maxduty",
            "type":2,
            "scale":0.003052,
            "sign":1,
            "digits":1,
            "address":17158
          },
          {
            "id":"pwm1Kp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":10136
          },
          {
            "id":"pwm1Ki",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":10138
          },
          {
            "id":"pwm1Kd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":10140
          },
          {
            "id":"pwm1Imin",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":10142
          },
          {
            "id":"pwm1Imax",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":10144
          },
          {
            "id":"ltft_enable",
            "type":8,
            "address":"bits0.11.11",
            "options":"enum_enabled",
            "descr":"The long term fuel trims construct a table in memory with the same dimensions and load axis as the primary fuel map. The values stored in this table are fed into the fuelling strategy so that if the engine needed more\/less fuel at a certain speed and load, it will preemptively receive the correction required last time the next time those conditions occur. If the controller is fitted with the data logging and real time clock option, the contents of this table is retained after the ECU powers off and the corrections will apply on the next start up even before the lambda sensor has warmed up or the conditions to enable closed loop learning exist.\r\nThe effect of the long term fuel trims can be observed on the real time variable 'ltft' where positive numbers represent fuel added, negative numbers represent fuel removed."
          },
          {
            "id":"lambdainfuelcalc",
            "type":8,
            "address":"bits1.4.4",
            "options":"enum_enabled",
            "descr":"If this option is enabled, the lambda target value is included in the fuel mass calculation so changing values in lambda target map affect fuelling directly. If this is disabled then lambda target table will only affect fuelling indirectly via closed loop feedback."
          },
          {
            "id":"lambdacheckenable",
            "type":8,
            "address":"bits0.31.31",
            "options":"enum_enabled",
            "descr":"The lamdba sensor checks require that the output voltage of the sensor swings by at least 0.05 lambda from the initial value 1 second after engine start before the lambda sensor is considered ready for operation. If the value remains constant for over a minute after start up the sensor is considered dead and an error is flagged.\r\nAdditionally, if overrun fuel cut is enabled the sensor value is expected to go leaner than the 'lean validation value' any time the overrun fuel cut activates or the sensor is considered at fault. The sensor is also expected to read richer than the 'lean validation value' any time the throttle position is greater than 30% and the engine speed is greater than specified by 'Lambda sensor accel validation engine speed' regardless of overrun fuel cut being enabled or not."
          },
          {
            "id":"ltftserviceintcurve",
            "type":1,
            "unit":"ms",
            "min":1,
            "array":8,
            "address":11898
          },
          {
            "id":"transienttrimholdoff",
            "type":1,
            "descr":"In this context, a transient event is overrun fuel cut, overboost fuel cut, rev limiter activation or transient fuelling function activation.\r\nThe unit is in number of LTFT cycles as timed by the LTFT service interval.",
            "address":11906
          },
          {
            "id":"cl_richlimit",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"The fuel trims will not attempt adjustments when the lambda target is richer than this. Set to prevent runaway fuel trims when target is outside of the range the lambda sensor can accurately read.",
            "address":11852
          },
          {
            "id":"cl_leanlimit",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"The fuel trims will not attempt adjustments when the lambda target is leaner than this. Set to prevent runaway fuel trims when target is outside of the range the lambda sensor can accurately read.",
            "address":11854
          },
          {
            "id":"cl_minlambda",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"The fuel trims will not attempt adjustments when the lambda sensor reading is richer than this. Set to prevent runaway fuel trims when lambda reading is so far outside of normal operating values that there has to be a fault in the system that cannot be rectified by fuel trims",
            "address":13956
          },
          {
            "id":"cl_maxlambda",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"The fuel trims will not attempt adjustments when the lambda sensor reading is leaner than this. Set to prevent runaway fuel trims when lambda reading is so far outside of normal operating values that there has to be a fault in the system that cannot be rectified by fuel trims",
            "address":13958
          },
          {
            "id":"cl_maxstep",
            "type":1,
            "unit":"%",
            "scale":0.200000,
            "digits":1,
            "max":10,
            "descr":"The maximum adjustment made by the control loop in a single iteration.",
            "address":11850
          },
          {
            "id":"cl_maxadded",
            "type":1,
            "max":25,
            "scale":0.200000,
            "unit":"%",
            "digits":1,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "descr":"This map specifies the maximum fuel fraction that may be added by the long term fuel trims.",
            "address":13444
          },
          {
            "id":"cl_maxremoved",
            "type":1,
            "max":25,
            "scale":0.200000,
            "unit":"%",
            "digits":1,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "descr":"This map specifies the maximum fuel fraction that may be removed by the long term fuel trims.",
            "address":13700
          },
          {
            "id":"cl_minect",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":11856
          },
          {
            "id":"cl_minruntime",
            "type":1,
            "unit":"s",
            "address":11851
          },
          {
            "id":"cl_minrpm",
            "type":2,
            "unit":"RPM",
            "address":11858
          },
          {
            "id":"cl_maxrpm",
            "type":2,
            "unit":"RPM",
            "address":11860
          },
          {
            "id":"cl_minload",
            "type":2,
            "describedby":"fuelpriloadsource",
            "address":11862
          },
          {
            "id":"cl_maxload",
            "type":2,
            "describedby":"fuelpriloadsource",
            "address":11864
          },
          {
            "id":"lambdatarget",
            "type":2,
            "scale":0.001000,
            "digits":3,
            "rows":"lambdatargetloadbincount",
            "cols":"lambdatargetspeedbincount",
            "array":256,
            "address":11908
          },
          {
            "id":"pelambdatarget",
            "type":2,
            "scale":0.001000,
            "digits":3,
            "rows":"lambdatargetloadbincount",
            "cols":"lambdatargetspeedbincount",
            "array":256,
            "address":12932
          },
          {
            "id":"altlambdatarget",
            "type":2,
            "scale":0.001000,
            "digits":3,
            "rows":"lambdatargetloadbincount",
            "cols":"lambdatargetspeedbincount",
            "array":256,
            "address":12420
          },
          {
            "id":"lambdatargetloadsource",
            "type":9,
            "maxwidth":2,
            "address":13960
          },
          {
            "id":"lambdatargetloadbins",
            "type":2,
            "array":32,
            "cols":"lambdatargetloadbincount",
            "describedby":"lambdatargetloadsource",
            "address":13964
          },
          {
            "id":"lambdatargetspeedbins",
            "type":2,
            "array":32,
            "unit":"RPM",
            "cols":"lambdatargetspeedbincount",
            "input":"enginespeed",
            "address":14028
          },
          {
            "id":"lambdatargetspeedbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":14092
          },
          {
            "id":"lambdatargetloadbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":14093
          },
          {
            "id":"pwm2enable",
            "type":8,
            "options":"map_inputs",
            "address":14600
          },
          {
            "id":"pwm2defaultduty",
            "type":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":14602
          },
          {
            "id":"pwm2options",
            "type":1,
            "address":14097
          },
          {
            "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":"pwm2Ilimittarget",
            "type":8,
            "address":"pwm2options.1.1",
            "options":"enum_enabled",
            "descr":"If enabled, the integral of the PID function can be limited based on actual target position, this is useful to prevent integral wind up when the target is close to the edge of its range. The limits all apply together, so the largest minimum and the smallest maximum take precedence."
          },
          {
            "id":"pwm2Ilimiterror",
            "type":8,
            "address":"pwm2options.2.2",
            "options":"enum_enabled",
            "descr":"If enabled, the integral of the PID function can be limited based on control error distance, this is useful to prevent integral wind up when the target is far from the setpoint. The limits all apply together, so the largest minimum and the smallest maximum take precedence."
          },
          {
            "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":2,
            "describedby":"pwm2var",
            "relative":1,
            "address":14596
          },
          {
            "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":14598
          },
          {
            "id":"pwm2targetpts",
            "type":2,
            "describedby":"pwm2var",
            "array":8,
            "address":14410
          },
          {
            "id":"pwm2errorpts",
            "type":2,
            "describedby":"pwm2var",
            "relative":1,
            "input":"pwm2error",
            "array":8,
            "address":14426
          },
          {
            "id":"pwm2Itgtlimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":14442
          },
          {
            "id":"pwm2Ierrlimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":14474
          },
          {
            "id":"pwm2gplimit",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":16,
            "rows":2,
            "cols":8,
            "address":14512
          },
          {
            "id":"pwm2gplimitsrc",
            "type":9,
            "maxwidth":2,
            "address":14508
          },
          {
            "id":"pwm2gpdutymodsrc",
            "type":9,
            "maxwidth":2,
            "address":14560
          },
          {
            "id":"pwm2gplimitpts",
            "type":2,
            "describedby":"pwm2gplimitsrc",
            "array":8,
            "address":14544
          },
          {
            "id":"pwm2gpdutypts",
            "type":2,
            "describedby":"pwm2gpdutymodsrc",
            "array":8,
            "address":14580
          },
          {
            "id":"pwm2gpdutymod",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "array":8,
            "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":14564
          },
          {
            "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":14094
          },
          {
            "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":14096
          },
          {
            "id":"pwm2var",
            "type":9,
            "maxwidth":2,
            "address":14100
          },
          {
            "id":"pwm2xvar",
            "type":9,
            "maxwidth":2,
            "address":14104
          },
          {
            "id":"pwm2yvar",
            "type":9,
            "maxwidth":2,
            "address":14108
          },
          {
            "id":"pwm2xaxis",
            "type":2,
            "array":8,
            "describedby":"pwm2xvar",
            "address":14112
          },
          {
            "id":"pwm2yaxis",
            "type":2,
            "array":8,
            "describedby":"pwm2yvar",
            "address":14128
          },
          {
            "id":"pwm2target",
            "type":2,
            "describedby":"pwm2var",
            "array":64,
            "rows":8,
            "cols":8,
            "address":14144
          },
          {
            "id":"pwm2base",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "rows":8,
            "cols":8,
            "array":64,
            "address":14272
          },
          {
            "id":"pwm2minduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":17160
          },
          {
            "id":"pwm2maxduty",
            "type":2,
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "address":17162
          },
          {
            "id":"pwm2Kp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":14400
          },
          {
            "id":"pwm2Ki",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":14402
          },
          {
            "id":"pwm2Kd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":14404
          },
          {
            "id":"pwm2Imin",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":14406
          },
          {
            "id":"pwm2Imax",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":14408
          },
          {
            "id":"airtempignmapbins",
            "describedby":"igntrimloadsource",
            "type":2,
            "array":8,
            "address":14604
          },
          {
            "id":"airtempignbins",
            "input":"airtemp",
            "type":2,
            "array":8,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":14620
          },
          {
            "id":"airtempign",
            "type":1,
            "array":64,
            "rows":8,
            "cols":8,
            "scale":0.175781,
            "digits":1,
            "unit":"°",
            "descr":"The output of the air temperature ignition modifier function may be observed on the real time variable 'ign_airtempretard'. Note that these are unsigned values so a positive number means timing retard and not advance.",
            "address":14636
          },
          {
            "id":"gpignmod1switch",
            "type":8,
            "options":"map_inputs",
            "address":14700
          },
          {
            "id":"gpignmod2switch",
            "type":8,
            "options":"map_inputs",
            "address":14701
          },
          {
            "id":"gpfuelmod1switch",
            "type":8,
            "options":"map_inputs",
            "address":14702
          },
          {
            "id":"gpfuelmod2switch",
            "type":8,
            "options":"map_inputs",
            "address":14703
          },
          {
            "id":"gpignmod1enable",
            "type":8,
            "address":"bits0.17.17",
            "options":"enum_enabled",
            "descr":"The output of this function can be observed on the real time variable 'ign_gpmod1'."
          },
          {
            "id":"gpignmod1var",
            "type":9,
            "maxwidth":2,
            "address":14704
          },
          {
            "id":"gpignmod1bins",
            "type":2,
            "array":16,
            "describedby":"gpignmod1var",
            "address":14708
          },
          {
            "id":"gpignmod1",
            "type":2,
            "array":16,
            "sign":1,
            "digits":1,
            "scale":0.010986,
            "address":14740
          },
          {
            "id":"gpfuelmod1enable",
            "type":8,
            "address":"bits0.18.18",
            "options":"enum_enabled",
            "descr":"The effect of this function can be observed on the real time variable 'fuel_gpmod1'."
          },
          {
            "id":"gpfuelmod1var",
            "type":9,
            "maxwidth":2,
            "address":14772
          },
          {
            "id":"gpfuelmod1bins",
            "type":2,
            "array":16,
            "describedby":"gpfuelmod1var",
            "address":14776
          },
          {
            "id":"gpfuelmod1",
            "type":2,
            "array":16,
            "scale":0.000977,
            "digits":3,
            "address":14808
          },
          {
            "id":"gpignmod2enable",
            "type":8,
            "address":"bits0.23.23",
            "options":"enum_enabled",
            "descr":"The output of this function can be observed on the real time variable 'ign_gpmod2'."
          },
          {
            "id":"gpignmod2var",
            "type":9,
            "maxwidth":2,
            "address":14840
          },
          {
            "id":"gpignmod2bins",
            "type":2,
            "array":16,
            "describedby":"gpignmod2var",
            "address":14844
          },
          {
            "id":"gpignmod2",
            "type":2,
            "array":16,
            "sign":1,
            "digits":1,
            "scale":0.010986,
            "address":14876
          },
          {
            "id":"gpfuelmod2enable",
            "type":8,
            "address":"bits0.24.24",
            "options":"enum_enabled",
            "descr":"The effect of this function can be observed on the real time variable 'fuel_gpmod2'."
          },
          {
            "id":"gpfuelmod2var",
            "type":9,
            "maxwidth":2,
            "address":14908
          },
          {
            "id":"gpfuelmod2bins",
            "type":2,
            "array":16,
            "describedby":"gpfuelmod2var",
            "address":14912
          },
          {
            "id":"gpfuelmod2",
            "type":2,
            "array":16,
            "scale":0.000977,
            "digits":3,
            "address":14944
          },
          {
            "id":"calpotnpos",
            "type":1,
            "max":16,
            "min":1,
            "address":14976
          },
          {
            "id":"calpotvolts",
            "type":2,
            "array":16,
            "describedby":"calpotsrc",
            "cols":"calpotnpos",
            "address":14978
          },
          {
            "id":"calpotsrc",
            "type":9,
            "maxwidth":2,
            "address":15012
          },
          {
            "id":"calpot2npos",
            "type":1,
            "max":16,
            "min":1,
            "address":15017
          },
          {
            "id":"calpot2volts",
            "type":2,
            "array":16,
            "describedby":"calpot2src",
            "cols":"calpot2npos",
            "address":15018
          },
          {
            "id":"calpot2src",
            "type":9,
            "maxwidth":2,
            "address":15052
          },
          {
            "id":"calpot3npos",
            "type":1,
            "max":16,
            "min":1,
            "address":15056
          },
          {
            "id":"calpot3volts",
            "type":2,
            "array":16,
            "describedby":"calpot3src",
            "cols":"calpot3npos",
            "address":15058
          },
          {
            "id":"calpot3src",
            "type":9,
            "maxwidth":2,
            "address":15092
          },
          {
            "id":"calpot4npos",
            "type":1,
            "max":16,
            "min":1,
            "address":15096
          },
          {
            "id":"calpot4volts",
            "type":2,
            "array":16,
            "describedby":"calpot4src",
            "cols":"calpot4npos",
            "address":15098
          },
          {
            "id":"calpot4src",
            "type":9,
            "maxwidth":2,
            "address":15132
          },
          {
            "id":"calpotenable",
            "type":8,
            "address":"bits0.19.19",
            "options":"enum_enabled"
          },
          {
            "id":"calpotassign",
            "type":1,
            "array":8,
            "rows":8,
            "offset":1,
            "max":4,
            "min":1,
            "descr":"This table sets what calibration pot is used to adjust each category as up to 4 calibration pots can be used and each assigned to different functions.",
            "address":15136
          },
          {
            "id":"calpotint",
            "type":1,
            "unit":"ms",
            "descr":"The calibration pot service runs at this interval. For a change in position to be registered the position must remain the same for two consecutive intervals.",
            "address":15016
          },
          {
            "id":"fuelcalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.0",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate"
            ],
            "address":15144
          },
          {
            "id":"lambdacalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.0",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate",
              "Power enrichment"
            ],
            "address":15176
          },
          {
            "id":"injanglecalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.0",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate"
            ],
            "address":16910
          },
          {
            "id":"igncalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.1",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate"
            ],
            "address":15160
          },
          {
            "id":"n2ominrpm",
            "type":2,
            "unit":"RPM",
            "descr":"Engine speed must exceed this value to activate N2O.\r\nN2O will be deactivated if engine speed falls below this value by an amount greater than or equal to the configured hysteresis value.",
            "address":15192
          },
          {
            "id":"n2omaxrpm",
            "type":2,
            "unit":"RPM",
            "descr":"N2O will be deactivated if engine speed exceeds this value.\r\nN2O will not be activated unless engine speed is below this value by an amount greater than or equal to the configured hysteresis.\r\nFor example, with a maximum speed of 6000RPM and a hysteresis of 200RPM, the engine speed must be below 5800RPM to activate N2O.",
            "address":15194
          },
          {
            "id":"n2omintps",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":100.000000,
            "scale":0.097656,
            "descr":"Throttle position must exceed this value to activate N2O. If throttle position falls below this value by 5% or more, N2O is deactivated",
            "address":15200
          },
          {
            "id":"n2ominmap",
            "type":2,
            "unit":"mbar",
            "descr":"Manifold Absolute Pressure must exceed this value to activate N2O. If the pressure falls below this value by an amount greater than or equal to the configured hysteresis, N2O is deactivated",
            "address":15202
          },
          {
            "id":"n2omaxmap",
            "type":2,
            "unit":"mbar",
            "descr":"N2O will be deactivated if Manifold Absolute Pressure exceeds this value.\r\nN2O will not be activated unless Manifold Absolute Pressure is below this value by an amount greater than or equal to the configured hysteresis.",
            "address":15204
          },
          {
            "id":"n2ominect",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"Engine coolant temperature must exceed this value to activate N2O. If the temperature falls below this value by 1.0°C or more, N2O is deactivated",
            "address":15196
          },
          {
            "id":"n2omaxect",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"If the engine coolant temperature exceeds this value, N2O is deactivated.\r\nN2O will not activate unless coolant temperature is 1.0°C or further below this value.",
            "address":15198
          },
          {
            "id":"n2orpmhyster",
            "type":2,
            "unit":"RPM",
            "descr":"This hysteresis value specifies how tight the engine speed control of N2O is to prevent rapid successive activation and deactivation.",
            "address":15208
          },
          {
            "id":"n2omaphyster",
            "type":2,
            "unit":"mbar",
            "descr":"This hysteresis value specifies how tight the MAP control of N2O is to prevent rapid successive activation and deactivation.",
            "address":15206
          },
          {
            "id":"n2optcount",
            "type":1,
            "min":1,
            "max":8,
            "address":15262
          },
          {
            "id":"n2ospeedbins",
            "type":2,
            "unit":"RPM",
            "array":8,
            "input":"enginespeed",
            "cols":"n2optcount",
            "address":15210
          },
          {
            "id":"n2ofuelcurve",
            "type":2,
            "array":8,
            "cols":"n2optcount",
            "sign":1,
            "scale":0.010000,
            "digits":2,
            "unit":"mg\/cycle",
            "descr":"The amount specified by this function is added to the fuel quantity delivered by the fuel injectors on each cycle when the nitrous system is active. Negative numbers are also permitted to remove fuel instead of adding, to fine tune a wet system.",
            "address":15242
          },
          {
            "id":"n2oretardcurve",
            "type":2,
            "array":8,
            "cols":"n2optcount",
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "address":15226
          },
          {
            "id":"n2odelay",
            "type":2,
            "unit":"ms",
            "descr":"N2O activation is delayed for this time after all activation conditions are met.",
            "address":15260
          },
          {
            "id":"n2odelay",
            "type":2,
            "unit":"ms",
            "descr":"N2O activation is delayed for this time after launch control exits.",
            "address":15260
          },
          {
            "id":"n2os2delay",
            "type":2,
            "unit":"ms",
            "descr":"N2O activation is delayed for this time after launch control exits.",
            "address":15370
          },
          {
            "id":"n2oinput",
            "type":8,
            "options":"map_inputs",
            "address":15258
          },
          {
            "id":"n2oinput2",
            "type":8,
            "options":"map_inputs",
            "descr":"A secondary input that must also be active to enable N2O. Useful for adding custom conditions as well as timing of two stages",
            "address":17152
          },
          {
            "id":"n2olag_on",
            "type":1,
            "unit":"ms",
            "descr":"This value specifies the time it takes the N2O system to start delivering N2O to the engine after solenoids are energised, to delay activation of ignition timing retard and fuel enrichment.",
            "address":15264
          },
          {
            "id":"n2olag_off",
            "type":1,
            "unit":"ms",
            "descr":"This value specifies the time it takes the N2O system to shut the N2O solenoids and purge the lines of N2O after solenoids are de-energised. Ignition timing retard and fuel enrichment will remain active for this period after N2O is deactivated",
            "address":15265
          },
          {
            "id":"n2o_enable",
            "type":8,
            "address":"bits0.20.20",
            "options":"enum_enabled"
          },
          {
            "id":"n2ooptions",
            "type":1,
            "address":15263
          },
          {
            "id":"n2o_duringlaunch",
            "type":8,
            "address":"n2ooptions.0.0",
            "options":"enum_enabled",
            "descr":"If this option is disabled, N2O activation is inhibited while launch control is active. Launch control is considered active whenever the real time variable lclimit has a non-zero value."
          },
          {
            "id":"n2o_disableoncel",
            "type":8,
            "address":"n2ooptions.4.4",
            "options":"enum_enabled",
            "descr":"If this option is enabled, any condition that results in the illumination of the check engine light will inhibit activation of N2O for safety reasons"
          },
          {
            "id":"n2o_closedloop",
            "type":8,
            "address":"n2ooptions.5.5",
            "options":"enum_enabled",
            "descr":"If this option is enabled, closed loop control of fuelling will remain active while nitrous is active."
          },
          {
            "id":"n2os2minrpm",
            "type":2,
            "unit":"RPM",
            "address":15308
          },
          {
            "id":"n2os2maxrpm",
            "type":2,
            "unit":"RPM",
            "address":15310
          },
          {
            "id":"n2os2mintps",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":100.000000,
            "scale":0.097656,
            "address":15312
          },
          {
            "id":"n2os2minmap",
            "type":2,
            "unit":"mbar",
            "address":15314
          },
          {
            "id":"n2os2maxmap",
            "type":2,
            "unit":"mbar",
            "address":15316
          },
          {
            "id":"n2os2ptcount",
            "type":1,
            "min":1,
            "max":8,
            "address":15366
          },
          {
            "id":"n2os2speedbins",
            "type":2,
            "unit":"RPM",
            "array":8,
            "input":"enginespeed",
            "cols":"n2optcount",
            "address":15318
          },
          {
            "id":"n2os2fuelcurve",
            "type":2,
            "array":8,
            "cols":"n2optcount",
            "sign":1,
            "scale":0.010000,
            "digits":2,
            "unit":"mg\/cycle",
            "address":15350
          },
          {
            "id":"n2os2retardcurve",
            "type":2,
            "array":8,
            "cols":"n2optcount",
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "address":15334
          },
          {
            "id":"n2os2input",
            "type":8,
            "options":"map_inputs",
            "address":15369
          },
          {
            "id":"n2os2input2",
            "type":8,
            "options":"map_inputs",
            "descr":"A secondary input that must also be active to enable N2O. Useful for adding custom conditions as well as timing of two stages",
            "address":17153
          },
          {
            "id":"n2os2lag_on",
            "type":1,
            "unit":"ms",
            "address":15367
          },
          {
            "id":"n2os2lag_off",
            "type":1,
            "unit":"ms",
            "address":15368
          },
          {
            "id":"n2os2_enable",
            "type":8,
            "address":"n2ooptions.1.1",
            "options":"enum_enabled"
          },
          {
            "id":"n2os2_duringlaunch",
            "type":8,
            "address":"n2ooptions.3.3",
            "options":"enum_enabled"
          },
          {
            "id":"n2os2_independent",
            "type":8,
            "address":"n2ooptions.2.2",
            "options":"enum_enabled",
            "descr":"If this option is enabled, stage 2 is treated as an independent system. If this option is disabled, stage 1 must be activated to activate stage 2 but stage 2 may remain active after deactivation of stage 1 as long as stage 1 input remains on."
          },
          {
            "id":"n2os2delay",
            "type":2,
            "unit":"ms",
            "descr":"N2O activation is delayed for this time after all activation conditions are met.",
            "address":15370
          },
          {
            "id":"n2opwmfreq",
            "min":5,
            "max":100,
            "type":2,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "address":15266
          },
          {
            "id":"n2os2pwmfreq",
            "min":5,
            "max":100,
            "type":2,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "address":15372
          },
          {
            "id":"n2ofuelpwmfreq",
            "min":5,
            "max":100,
            "type":2,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "address":15268
          },
          {
            "id":"n2os2fuelpwmfreq",
            "min":5,
            "max":100,
            "type":2,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "address":15374
          },
          {
            "id":"n2oprogressparam",
            "type":9,
            "maxwidth":2,
            "address":15272
          },
          {
            "id":"n2os2progressparam",
            "type":9,
            "maxwidth":2,
            "address":15376
          },
          {
            "id":"n2oprogressbins",
            "type":2,
            "describedby":"n2oprogressparam",
            "array":8,
            "address":15276
          },
          {
            "id":"n2os2progressbins",
            "type":2,
            "describedby":"n2os2progressparam",
            "array":8,
            "address":15380
          },
          {
            "id":"n2oprogress",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":8,
            "address":15292
          },
          {
            "id":"n2os2progress",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":8,
            "address":15396
          },
          {
            "id":"n2ofuelprogress",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":8,
            "address":15300
          },
          {
            "id":"n2os2fuelprogress",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":8,
            "address":15404
          },
          {
            "id":"dwellrpmbins",
            "type":2,
            "input":"enginespeed",
            "array":4,
            "unit":"RPM",
            "address":15432
          },
          {
            "id":"dwellmapbins",
            "type":2,
            "input":"map",
            "array":4,
            "unit":"mbar",
            "address":15440
          },
          {
            "id":"dwellmod",
            "type":1,
            "scale":0.010000,
            "digits":2,
            "rows":4,
            "cols":4,
            "array":16,
            "address":15416
          },
          {
            "id":"requirecamsync",
            "type":8,
            "address":"triggerconfig0.10.10",
            "options":"enum_enabled",
            "descr":"Usually the ECU will start running the ignition coils in waste spark mode for faster starting. If this is undesired and you would like to hold off ignition until cam sync is present enable this option."
          },
          {
            "id":"camwindowfilter_enable",
            "type":8,
            "address":"triggerconfig0.4.4",
            "options":"enum_enabled"
          },
          {
            "id":"camwindow",
            "type":2,
            "array":2,
            "scale":0.010986,
            "unit":"°BTDC",
            "digits":1,
            "max":359,
            "descr":"The cam window filter is useful when utilising a cam wheel with an odd number of teeth greater than one. Use this to set a window of cam angle inside which to watch for a cam tooth.\r\nNote that a crank tooth preceding the cam tooth must fall inside this window for the cam tooth to register.",
            "address":15458
          },
          {
            "id":"analogfilter0",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15464
          },
          {
            "id":"freqfilter0",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "descr":"This is an exponential decay filter. 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":1,
            "address":15512
          },
          {
            "id":"idlevalveImax",
            "type":2,
            "sign":1,
            "scale":0.001526,
            "digits":1,
            "address":9392
          },
          {
            "id":"idlevalveImin",
            "type":2,
            "sign":1,
            "scale":0.001526,
            "digits":1,
            "address":9394
          },
          {
            "id":"crankingdwellmodifier",
            "type":1,
            "scale":0.015625,
            "digits":2,
            "address":15517
          },
          {
            "id":"staticign_enable",
            "type":8,
            "address":"bits0.22.22",
            "options":"enum_enabled",
            "descr":"If enabled, the ignition timing will be set by the static angle, meant for test purposes. All other functions will not apply."
          },
          {
            "id":"staticignangle",
            "type":2,
            "sign":1,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "address":15518
          },
          {
            "id":"cl_gain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":8,
            "descr":"With a gain of 1, an error value of 0.1 lambda will result in addition of 10% fuel in a single cycle. Usually values between 0.1-0.2 produce the best results.",
            "address":11866
          },
          {
            "id":"cl_gain_rpmbins",
            "type":2,
            "unit":"RPM",
            "array":8,
            "input":"enginespeed",
            "address":11882
          },
          {
            "id":"transcoldmult",
            "type":2,
            "scale":0.000977,
            "digits":2,
            "descr":"This multiplier adjusts the effect of the warm-up fuel multiplier on transient fuelling. Applied on the distance from the warm up multiplier to unity. For a warm up multiplier value of 1.00 this parameter has no effect. If the warm up multiplier is 1.50 and this parameter is 1.50 the warm up multiplier increases the transient fuelling quantity by 75%, applied to both the positive gain and the maximum fuel added.",
            "address":15520
          },
          {
            "id":"camoffset",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"The raw cam angle shows the angle of the cam impulse in degrees before top dead centre compression stroke of cylinder 1.\r\nThis parameter is subtracted from that value and may be used to both bring the range of VVT angles down to friendlier numbers as well as synchronise the angles of both cams of the same type as their target angles will be taken from the same VVT angle map.",
            "address":15522
          },
          {
            "id":"camoffset2",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"The raw cam angle shows the angle of the cam impulse in degrees before top dead centre compression stroke of cylinder 1.\r\nThis parameter is subtracted from that value and may be used to both bring the range of VVT angles down to friendlier numbers as well as synchronise the angles of both cams of the same type as their target angles will be taken from the same VVT angle map.",
            "address":15524
          },
          {
            "id":"camoffset3",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"The raw cam angle shows the angle of the cam impulse in degrees before top dead centre compression stroke of cylinder 1.\r\nThis parameter is subtracted from that value and may be used to both bring the range of VVT angles down to friendlier numbers as well as synchronise the angles of both cams of the same type as their target angles will be taken from the same VVT angle map.",
            "address":15526
          },
          {
            "id":"camoffset4",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"The raw cam angle shows the angle of the cam impulse in degrees before top dead centre compression stroke of cylinder 1.\r\nThis parameter is subtracted from that value and may be used to both bring the range of VVT angles down to friendlier numbers as well as synchronise the angles of both cams of the same type as their target angles will be taken from the same VVT angle map.",
            "address":15528
          },
          {
            "id":"maxcamangle",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"Any cam angle impulses that register above this value after the cam angle offset is applied will be ignored. This enables filtering out teeth that are not to be used for angle sensing on a cam wheel that has irregular teeth.",
            "address":15530
          },
          {
            "id":"maxcamangle2",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"Any cam angle impulses that register above this value after the cam angle offset is applied will be ignored. This enables filtering out teeth that are not to be used for angle sensing on a cam wheel that has irregular teeth.",
            "address":15532
          },
          {
            "id":"maxcamangle3",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"Any cam angle impulses that register above this value after the cam angle offset is applied will be ignored. This enables filtering out teeth that are not to be used for angle sensing on a cam wheel that has irregular teeth.",
            "address":15534
          },
          {
            "id":"maxcamangle4",
            "type":2,
            "digits":1,
            "scale":0.010986,
            "unit":"°BTDC",
            "descr":"Any cam angle impulses that register above this value after the cam angle offset is applied will be ignored. This enables filtering out teeth that are not to be used for angle sensing on a cam wheel that has irregular teeth.",
            "address":15536
          },
          {
            "id":"vvtcount",
            "type":1,
            "descr":"This parameter divides the cam wheel into sections so the angle may be computed more than once during the cycle if the cam sensor wheel has more than one tooth. Set to zero to disable cam angle computation for this cam.\r\nIn the typical set up with multiple teeth on the cam this may either be set to 1 and the maximum angle parameter used to ignore the rest of the teeth or this may be set to a number equal to the number of evenly spaced teeth to enable more frequent angle computation, but this may induce noise in the indicated cam angle if crank trigger or cam wheel have imperfections.",
            "address":15538
          },
          {
            "id":"vvtcount2",
            "type":1,
            "descr":"This parameter divides the cam wheel into sections so the angle may be computed more than once during the cycle if the cam sensor wheel has more than one tooth. Set to zero to disable cam angle computation for this cam.\r\nIn the typical set up with multiple teeth on the cam this may either be set to 1 and the maximum angle parameter used to ignore the rest of the teeth or this may be set to a number equal to the number of evenly spaced teeth to enable more frequent angle computation, but this may induce noise in the indicated cam angle if crank trigger or cam wheel have imperfections.",
            "address":15539
          },
          {
            "id":"vvtcount3",
            "type":1,
            "descr":"This parameter divides the cam wheel into sections so the angle may be computed more than once during the cycle if the cam sensor wheel has more than one tooth. Set to zero to disable cam angle computation for this cam.\r\nIn the typical set up with multiple teeth on the cam this may either be set to 1 and the maximum angle parameter used to ignore the rest of the teeth or this may be set to a number equal to the number of evenly spaced teeth to enable more frequent angle computation, but this may induce noise in the indicated cam angle if crank trigger or cam wheel have imperfections.",
            "address":15540
          },
          {
            "id":"vvtcount4",
            "type":1,
            "descr":"This parameter divides the cam wheel into sections so the angle may be computed more than once during the cycle if the cam sensor wheel has more than one tooth. Set to zero to disable cam angle computation for this cam.\r\nIn the typical set up with multiple teeth on the cam this may either be set to 1 and the maximum angle parameter used to ignore the rest of the teeth or this may be set to a number equal to the number of evenly spaced teeth to enable more frequent angle computation, but this may induce noise in the indicated cam angle if crank trigger or cam wheel have imperfections.",
            "address":15541
          },
          {
            "id":"emapsource",
            "type":9,
            "maxwidth":2,
            "address":15544
          },
          {
            "id":"emapvoltages",
            "type":2,
            "array":2,
            "describedby":"emapsource",
            "address":15548
          },
          {
            "id":"emapvalidrange",
            "type":2,
            "array":2,
            "describedby":"emapsource",
            "address":15552
          },
          {
            "id":"emapvalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "address":15556
          },
          {
            "id":"emapdefault",
            "type":2,
            "unit":"mbar",
            "address":15560
          },
          {
            "id":"barosource",
            "type":9,
            "maxwidth":2,
            "address":15564
          },
          {
            "id":"barovoltages",
            "type":2,
            "array":2,
            "describedby":"barosource",
            "address":15568
          },
          {
            "id":"barovalidrange",
            "type":2,
            "array":2,
            "describedby":"barosource",
            "address":15572
          },
          {
            "id":"barovalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "address":15576
          },
          {
            "id":"barodefault",
            "type":2,
            "unit":"mbar",
            "address":15580
          },
          {
            "id":"ectsource",
            "type":9,
            "maxwidth":2,
            "address":15584
          },
          {
            "id":"airtempsource",
            "type":9,
            "maxwidth":2,
            "address":15588
          },
          {
            "id":"mapoverrunpressure",
            "type":2,
            "unit":"mbar",
            "descr":"As a part of the MAP sensor validity check, when the throttle position is below 5% and engine speed is above the engine speed crossover the MAP sensor value is expected to be less than this parameter. When the engine speed is below the crossover speed and the throttle position is above 50% the MAP value is expected to be greater than this parameter.",
            "address":15592
          },
          {
            "id":"mapcheckrpm",
            "type":2,
            "unit":"RPM",
            "descr":"This speed sets where the MAP sensor validity check changes between checking for low or high MAP values. It should be set to an engine speed above idle where the engine can be expected to spend time on the overrun and produce a significant amount of vacuum",
            "address":15594
          },
          {
            "id":"lambdaleanvalue",
            "type":2,
            "unit":"lambda",
            "digits":3,
            "scale":0.001000,
            "descr":"This is a value that is leaner than anything the engine is expected to do in normal operation but still within the range of the wide band lambda sensor. As part of the lambda sensor validation, the lambda value is expected to go leaner than this parameter when the overrun fuel cut is active and richer than this parameter when the engine speed is above the accel validation speed and throttle position greater than 50%.",
            "address":15596
          },
          {
            "id":"lambdacheckspeed",
            "type":2,
            "unit":"RPM",
            "descr":"Should be an engine speed above idle, above which the engine is expected to operate frequently. Above this speed the lambda sensor validity checks are performed.",
            "address":15598
          },
          {
            "id":"lambdaacttimeout",
            "type":1,
            "unit":"s",
            "digits":1,
            "scale":0.100000,
            "descr":"This is the amount of time that the engine has to be in overrun fuel cut before the lean exhaust gas is assumed to have passed the lambda sensors",
            "address":15600
          },
          {
            "id":"engineovertemp",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"When the engine coolant temperature is greater than this value, the engine is considered overheated and the engine over temperature error flag is set, which will trigger engine protection and check engine light if configured to do so.",
            "address":15602
          },
          {
            "id":"engineovertemphyster",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "descr":"The engine coolant temperature must drop by this amount to clear the engine over temperature error flag.",
            "address":15604
          },
          {
            "id":"iatovertemp",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"When the charge air temperature is greater than this value the charge air overheating flag is set, which will trigger engine protection and check engine light if configured to do so.",
            "address":15606
          },
          {
            "id":"iatovertemphyster",
            "unit":"°C",
            "type":2,
            "scale":0.100000,
            "digits":1,
            "descr":"The charge air temperature must drop by this amount to clear the charge air over temperature error.",
            "address":15608
          },
          {
            "id":"maxvoltage",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "max":20,
            "digits":2,
            "descr":"If the ECU supply voltage goes above this value at any time, the excessive battery voltage error flag is set, triggering error protection mode and\/or check engine light if the error mask is configured so.\r\nThe set delay on this error is one second and to clear it the voltage must stay 0.5 volts below this threshold for 1 second.",
            "address":15610
          },
          {
            "id":"minvoltagecranking",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "min":7,
            "digits":2,
            "descr":"If the supply voltage goes below this value at any time or engine speed the insufficient battery voltage error flag is set, triggering error protection mode and\/or check engine light if the error mask is configured so.\r\nThe error flag sets after the voltage is low for 1 second and the error will not clear until the engine starts and the voltage goes above the running threshold by 0.5 volt for 1 second.",
            "address":15612
          },
          {
            "id":"minvoltageidle",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "min":11,
            "digits":2,
            "descr":"If the supply voltage goes below this value when engine speed is below the value specified by 'Idle advance control maximum engine speed', the insufficient battery voltage error flag is set, triggering error protection mode and\/or check engine light if the error mask is configured so.\r\nThe error flag sets after the voltage is low for 1 second and the error will clear if the voltage goes above this threshold by 0.5 volts for 1 second.",
            "address":15614
          },
          {
            "id":"minvoltagerunning",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "min":11,
            "digits":2,
            "descr":"If the supply voltage goes below this value when engine speed is above the value specified by 'Idle advance control maximum engine speed', the insufficient battery voltage error flag is set, triggering error protection mode and\/or check engine light if the error mask is configured so.\r\nThe error flag sets after the voltage is low for 1 second and the error will clear if the voltage goes above this threshold by 0.5 volts for 1 second.",
            "address":15616
          },
          {
            "id":"turbobladecount",
            "type":1,
            "min":1,
            "max":16,
            "descr":"This setting assumes a turbo speed sensor reading the compressor blades. Controller must be powered off after saving this setting as the coefficient for speed calculation is computed on power up.",
            "address":15618
          },
          {
            "id":"turbospeeddivider",
            "type":1,
            "min":1,
            "max":16,
            "descr":"When using a turbo speed sensor that has a built in frequency divider such as the Borg Warner EFR sensor, specify the divider here. Otherwise set this parameter to 1.",
            "address":15619
          },
          {
            "id":"fptype",
            "type":8,
            "options":[
              "Baro referenced",
              "MAP referenced",
              "Absolute"
            ],
            "descr":"Most sensors for this application are 'gauge pressure', which means baro referenced. If you are unsure specify baro referenced.\r\nThere are three fuel pressure variables in the real time data, fp_rel_map, fp_rel_baro and fp_abs. Which one is taken directly from the sensor depends on this parameter and the other two are calculated.",
            "address":15724
          },
          {
            "id":"fpsource",
            "type":9,
            "maxwidth":2,
            "descr":"The source of the fuel pressure sensor value, usually either a local analog port or a CAN source.",
            "address":15720
          },
          {
            "id":"fpvoltages",
            "type":2,
            "array":2,
            "describedby":"fpsource",
            "descr":"The input range of the fuel pressure sensor transfer function.",
            "address":15726
          },
          {
            "id":"fpvalidrange",
            "type":2,
            "array":2,
            "describedby":"fpsource",
            "descr":"If the input from the fuel pressure sensor goes outside of this range, the sensor is considered at fault, an error is flagged and the default value is used in place of what the sensor indicates.",
            "address":15734
          },
          {
            "id":"fpacceptable",
            "type":2,
            "array":2,
            "unit":"mbar",
            "descr":"If the fuel pressure goes outside of those limits after the engine has started, an error is flagged.",
            "address":15740
          },
          {
            "id":"fpvalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "descr":"The output range of the fuel pressure sensor transfer function.",
            "address":15730
          },
          {
            "id":"fpdefault",
            "type":2,
            "unit":"mbar",
            "descr":"The default value used if the fuel pressure sensor is showing non-sensible values.",
            "address":15738
          },
          {
            "id":"fpmod_enable",
            "type":8,
            "address":"bits0.26.26",
            "options":"enum_enabled"
          },
          {
            "id":"fpmodifierbincount",
            "type":1,
            "max":16,
            "min":1,
            "address":15620
          },
          {
            "id":"fpmodifierbreakpoints",
            "input":"fp_rel_map",
            "min":0,
            "max":65000,
            "type":2,
            "array":16,
            "cols":"fpmodifierbincount",
            "address":15622
          },
          {
            "id":"flowmodifier",
            "type":2,
            "array":16,
            "cols":"fpmodifierbincount",
            "digits":3,
            "scale":0.000977,
            "descr":"This function represents how much the injector flow rate increases with rising pressure and decreases with falling pressure. Multiplied by the main flow rate specifiers.",
            "address":15654
          },
          {
            "id":"openingtimemodifier",
            "type":2,
            "array":16,
            "cols":"fpmodifierbincount",
            "digits":3,
            "scale":0.000977,
            "descr":"This function represents how much longer the injector takes to open as fuel pressure increases, as a multiplier to the injector offset function.",
            "address":15686
          },
          {
            "id":"minwarmect",
            "type":2,
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "descr":"When the engine has been running for the time specified by the 'Engine warm up time' parameter, the coolant temperature should have reached at least this value or an error flag is set indicating a malfunctioning sensor or a cooling system fault (stuck thermostat for example).",
            "address":15744
          },
          {
            "id":"warmuptime",
            "type":2,
            "unit":"s",
            "descr":"After the engine has run for this time the engine coolant temperature is checked against the minimum warm up temperature to detect coolant temperature sensor faults as well as cooling system faults.",
            "address":15746
          },
          {
            "id":"injangleloadsrc",
            "type":9,
            "maxwidth":2,
            "address":15752
          },
          {
            "id":"injangleloadbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":15756
          },
          {
            "id":"injanglespeedbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":15757
          },
          {
            "id":"injanglespeedbins",
            "type":2,
            "input":"enginespeed",
            "unit":"RPM",
            "array":32,
            "cols":"injanglespeedbincount",
            "address":16846
          },
          {
            "id":"injangleloadbins",
            "type":2,
            "array":32,
            "cols":"injangleloadbincount",
            "describedby":"injangleloadsrc",
            "address":16782
          },
          {
            "id":"injangle",
            "type":2,
            "unit":"°",
            "array":256,
            "rows":"injanglespeedbincount",
            "cols":"injangleloadbincount",
            "scale":0.010986,
            "digits":1,
            "descr":"The values of this map are added to the values of the 'Injector phasing' parameter if mapped injection timing is enabled.",
            "address":15758
          },
          {
            "id":"altinjangle",
            "type":2,
            "unit":"°BTDC",
            "array":256,
            "rows":"injanglespeedbincount",
            "cols":"injangleloadbincount",
            "scale":0.010986,
            "digits":1,
            "descr":"Alternate injection angle selectable by cal pot.",
            "address":16270
          },
          {
            "id":"injanglemaxcyclevar",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "descr":"To prevent transient problems from too sudden changes in injector angle this parameter is provided to configure how quickly the ECU is allowed to sweep the angle around.\r\nDoes not apply to direct injection mode on LPC8.",
            "address":15748
          },
          {
            "id":"injanglemap_enable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits0.28.28",
            "descr":"In direct injection mode the angle map is used regardless of the value of this parameter."
          },
          {
            "id":"scoptions",
            "type":1,
            "address":16990
          },
          {
            "id":"sc_enable",
            "type":8,
            "options":"enum_enabled",
            "address":"scoptions.0.0"
          },
          {
            "id":"sc_cutign",
            "type":8,
            "options":"enum_enabled",
            "address":"scoptions.1.1"
          },
          {
            "id":"sc_cutfuel",
            "type":8,
            "options":"enum_enabled",
            "address":"scoptions.2.2"
          },
          {
            "id":"sc_oneshot",
            "type":8,
            "options":"enum_enabled",
            "address":"scoptions.3.3",
            "descr":"The one shot timer sets the cut duration regardless of the switch input, that is the switch will only trigger the shift cut but when the switch is released has no effect on when the shift cut ends. The shift cut will end on timer or engine speed drop."
          },
          {
            "id":"sc_rpmresume",
            "type":8,
            "options":"enum_enabled",
            "address":"scoptions.4.4",
            "descr":"If enabled, the shift cut will end when the engine speed drops by the amount specified by 'Engine speed fraction before resuming', unless the cut timer ends it first.\r\nIf disabled and the engine speed drops below the resume speed, the engine speed will be limited by the rev limit system until the shift cut ends."
          },
          {
            "id":"scminthrottle",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "address":16998
          },
          {
            "id":"scminrpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "descr":"The upshift cut will not operate if the engine speed is below this value.",
            "address":16994
          },
          {
            "id":"scminresumerpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "descr":"If the upshift cut is triggered while engine speed is low, this setting specifies the minimum engine speed required to keep the shift cut active.",
            "address":16996
          },
          {
            "id":"scminspeed",
            "type":2,
            "unit":"km\/h",
            "scale":0.100000,
            "digits":1,
            "input":"roadspeed",
            "descr":"It makes no sense to operate the upshift cut if the vehicle is not in motion. Set to the minimum expected upshift speed while under power or zero if there is no vehicle speed sensor.",
            "address":16992
          },
          {
            "id":"scinput",
            "type":8,
            "options":"map_inputs",
            "extraopts":[
              [
                126,
                "Automatic transmission control"
              ]
            ],
            "descr":"The upshift cut may either operate by a switch input or logic condition activated for example by a strain gage on the shift linkage, or it may be triggered by the automatic transmission control strategy in which case you normally want only a partial torque reduction and not a full power cut.",
            "address":16991
          },
          {
            "id":"shiftcutrpmdrop",
            "type":2,
            "digits":1,
            "scale":0.097656,
            "array":8,
            "unit":"%",
            "max":100,
            "descr":"This parameter specifies a fraction of the engine speed at the time the upshift cut activates where the cut is deactivated. For example if the shift cut is activated at 8000RPM and the fraction when shifting up from first gear is 75% then the shift cut will deactivate when the engine speed drops to 6000RPM.",
            "address":16926
          },
          {
            "id":"shiftcuttime",
            "type":2,
            "unit":"ms",
            "array":8,
            "address":16942
          },
          {
            "id":"shiftcutretard",
            "type":2,
            "scale":0.010986,
            "digits":1,
            "unit":"°",
            "max":50,
            "array":8,
            "address":16958
          },
          {
            "id":"scretarddecay",
            "type":2,
            "unit":"ms",
            "array":8,
            "descr":"If the ignition is retarded during the shift cut, this function specifies how long it takes to gradually resume normal ignition timing after shift cut ends.",
            "address":16974
          },
          {
            "id":"trailcoilcount",
            "type":1,
            "descr":"Normally only found on Wankel engines, this parameter specifies the number of ignition coils delegated to firing the trailing spark plugs.",
            "address":8584
          },
          {
            "id":"trailcoilassign",
            "min":0,
            "max":4,
            "type":1,
            "array":12,
            "cols":"cylcount",
            "descr":"This function configures what ignition coil output is used to ignite the trailing plug on each rotor.",
            "address":8632
          },
          {
            "id":"traildwelltime",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":2,
            "array":8,
            "address":8826
          },
          {
            "id":"trailsparkduration",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "address":9262
          },
          {
            "id":"secinjcount",
            "type":1,
            "descr":"If you have more than one injector per cylinder, this setting specifies how many injector outputs are delegated to secondary injectors.",
            "max":8,
            "address":8583
          },
          {
            "id":"secvbatbreakpoints",
            "unit":"V",
            "type":2,
            "scale":0.001000,
            "digits":2,
            "array":12,
            "input":"supplyvoltage",
            "address":8700
          },
          {
            "id":"secinjectoroffset",
            "unit":"ms",
            "type":2,
            "digits":3,
            "scale":0.001000,
            "array":12,
            "address":8724
          },
          {
            "id":"secinjectorfullflow",
            "unit":"cc\/min",
            "scale":0.300000,
            "type":2,
            "address":8748
          },
          {
            "id":"secinjectorlowflow",
            "unit":"cc\/min",
            "scale":0.300000,
            "type":2,
            "address":8750
          },
          {
            "id":"secinjectorlowthresh",
            "unit":"µl",
            "scale":0.010000,
            "digits":2,
            "type":2,
            "address":8752
          },
          {
            "id":"secfuelgravity",
            "unit":"kg\/l",
            "scale":0.000100,
            "digits":4,
            "type":2,
            "address":8754
          },
          {
            "id":"dinconf",
            "type":2,
            "address":17000
          },
          {
            "id":"lambdasafetyminrpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "descr":"The lambda safety check will not be performed below this engine speed.",
            "address":17018
          },
          {
            "id":"lambdasafetyminmap",
            "type":2,
            "unit":"mbar",
            "input":"map",
            "descr":"The lambda safety check will not be performed below this manifold pressure.",
            "address":17020
          },
          {
            "id":"lambdasafetymintps",
            "type":2,
            "unit":"%",
            "input":"throttle",
            "scale":0.097656,
            "digits":1,
            "descr":"The lambda safety check will not be performed below this throttle position.",
            "address":17022
          },
          {
            "id":"lambdasafetymaxlean",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "address":17024
          },
          {
            "id":"lambdasafetymaxrich",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "address":17026
          },
          {
            "id":"lambdasafetymaxleantime",
            "type":1,
            "unit":"s",
            "scale":0.100000,
            "digits":1,
            "address":17028
          },
          {
            "id":"lambdasafetymaxrichtime",
            "type":1,
            "unit":"s",
            "scale":0.100000,
            "digits":1,
            "address":17029
          },
          {
            "id":"vvtmapselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.6",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Normal",
              "Alternate",
              "Alternate 2"
            ],
            "address":17002
          },
          {
            "id":"alscalselect",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.3",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Disabled",
              "Normal",
              "Alternate",
              "Alternate 2"
            ],
            "address":17078
          },
          {
            "id":"calpotrevlimit",
            "type":2,
            "array":16,
            "cols":[
              "calpotassign.7",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "unit":"RPM",
            "descr":"Main rev limit always defines the highest possible limit. If values in this function are set to zero or a value greater than the main rev limit, the main rev limit takes precedence.",
            "address":17030
          },
          {
            "id":"calpotrevlimittype",
            "type":8,
            "array":16,
            "cols":[
              "calpotassign.7",
              "calpotnpos",
              "calpot2npos",
              "calpot3npos",
              "calpot4npos"
            ],
            "options":[
              "Fuel",
              "Ignition"
            ],
            "address":17062
          },
          {
            "id":"steppergp",
            "type":8,
            "address":"bits1.0.0",
            "options":[
              "Idle control",
              "General purpose PWM function"
            ],
            "descr":"This option enables using the stepper output for purposes other than idle control. When general purpose is selected, the general purpose PWM function is used as basis for stepper position."
          },
          {
            "id":"idleupin1",
            "type":8,
            "options":"map_inputs",
            "address":17094
          },
          {
            "id":"idleupin2",
            "type":8,
            "options":"map_inputs",
            "address":17095
          },
          {
            "id":"idleuprpm1",
            "type":2,
            "unit":"RPM",
            "address":17096
          },
          {
            "id":"idleuprpm2",
            "type":2,
            "unit":"RPM",
            "address":17098
          },
          {
            "id":"idleupiac1",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "max":100,
            "address":17100
          },
          {
            "id":"idleupiac2",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "max":100,
            "address":17102
          },
          {
            "id":"vsssource",
            "type":8,
            "options":[
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5",
              "Front wheel speeds",
              "Rear wheel speeds",
              "All wheel speeds",
              "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":17108
          },
          {
            "id":"vsssource2",
            "type":8,
            "options":[
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5",
              "Front wheel speeds",
              "Rear wheel speeds",
              "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":17109
          },
          {
            "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":19680
          },
          {
            "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":19684
          },
          {
            "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":19688
          },
          {
            "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":19692
          },
          {
            "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":19696
          },
          {
            "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":19698
          },
          {
            "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":19700
          },
          {
            "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":19702
          },
          {
            "id":"vssmode_fl",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5"
            ],
            "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":19704
          },
          {
            "id":"vssmode_fr",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5"
            ],
            "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":19705
          },
          {
            "id":"vssmode_rl",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5"
            ],
            "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":19706
          },
          {
            "id":"vssmode_rr",
            "type":8,
            "options":[
              "Other",
              "Digital input 1",
              "Digital input 3",
              "Digital input 4",
              "Digital input 5"
            ],
            "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":19707
          },
          {
            "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":19708
          },
          {
            "id":"password",
            "type":7,
            "width":32,
            "address":17112
          },
          {
            "id":"password_set",
            "type":3,
            "address":17144
          },
          {
            "id":"password_level",
            "type":8,
            "options":[
              "No access",
              "Diagnostics",
              "Full access"
            ],
            "address":17148
          },
          {
            "id":"n2oenablefp",
            "type":2,
            "unit":"mbar",
            "address":15412
          },
          {
            "id":"n2odisablefp",
            "type":2,
            "unit":"mbar",
            "address":15414
          },
          {
            "id":"coildclimit",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.390625,
            "descr":"If this value is non-zero and dwell time becomes greater than this fraction of the available time between ignition events, dwell time will be limited to this fraction of the available time",
            "address":17150
          },
          {
            "id":"trailcoildclimit",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.390625,
            "descr":"If this value is non-zero and dwell time becomes greater than this fraction of the available time between ignition events, dwell time will be limited to this fraction of the available time",
            "address":17151
          },
          {
            "id":"priminjdivs",
            "type":8,
            "options":[
              "One",
              "Two",
              "Four",
              "Eight"
            ],
            "descr":"Normally, only one injection per cycle is desired from each injector.\r\nHowever some special cases such as throttle body injection favour more than that.\r\nNote that the maximum number of events that can be scheduled is one per primary trigger pulse, so for example a 4 cylinder engine using basic trigger on a distributor will not be able to open the injector 8 times across the cycle.",
            "address":17154
          },
          {
            "id":"vvtopts",
            "type":1,
            "address":17164
          },
          {
            "id":"vvt_enable_primary",
            "type":8,
            "address":"vvtopts.0.0",
            "options":"enum_enabled",
            "descr":"The primary cam is the cam that cam sync is taken from. It has a dedicated cam input."
          },
          {
            "id":"vvt_enable_secondary",
            "type":8,
            "address":"vvtopts.1.1",
            "options":"enum_enabled"
          },
          {
            "id":"vvt_enable_cam3",
            "type":8,
            "address":"vvtopts.4.4",
            "options":"enum_enabled"
          },
          {
            "id":"vvt_enable_cam4",
            "type":8,
            "address":"vvtopts.6.6",
            "options":"enum_enabled"
          },
          {
            "id":"vvt_primary_exhaust",
            "type":8,
            "address":"vvtopts.2.2",
            "options":[
              "Inlet",
              "Exhaust"
            ]
          },
          {
            "id":"vvt_secondary_exhaust",
            "type":8,
            "address":"vvtopts.3.3",
            "options":[
              "Inlet",
              "Exhaust"
            ]
          },
          {
            "id":"vvt_cam3_exhaust",
            "type":8,
            "address":"vvtopts.5.5",
            "options":[
              "Inlet",
              "Exhaust"
            ]
          },
          {
            "id":"vvt_cam4_exhaust",
            "type":8,
            "address":"vvtopts.7.7",
            "options":[
              "Inlet",
              "Exhaust"
            ]
          },
          {
            "id":"vvtspeedbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":17165
          },
          {
            "id":"vvtloadbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":17166
          },
          {
            "id":"vvtloadsource",
            "type":9,
            "maxwidth":2,
            "address":17168
          },
          {
            "id":"vvtspeedbins",
            "type":2,
            "unit":"RPM",
            "array":32,
            "input":"enginespeed",
            "cols":"vvtspeedbincount",
            "address":17172
          },
          {
            "id":"vvtloadbins",
            "type":2,
            "array":32,
            "cols":"vvtloadbincount",
            "describedby":"vvtloadsource",
            "address":17236
          },
          {
            "id":"inletvvttarget",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":17300
          },
          {
            "id":"exhaustvvttarget",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":17812
          },
          {
            "id":"inletvvtKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18324
          },
          {
            "id":"inletvvtKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18326
          },
          {
            "id":"inletvvtKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18328
          },
          {
            "id":"inletvvtImin",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":18336
          },
          {
            "id":"inletvvtImax",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":18338
          },
          {
            "id":"inletvvtpwmfreq",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "reset":1,
            "address":18344
          },
          {
            "id":"inletvvtpidinterval",
            "type":1,
            "unit":"ms",
            "address":18348
          },
          {
            "id":"inletvvtbaseduty",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "max":100,
            "address":18350
          },
          {
            "id":"exhaustvvtKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18330
          },
          {
            "id":"exhaustvvtKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18332
          },
          {
            "id":"exhaustvvtKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18334
          },
          {
            "id":"exhaustvvtImin",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":18340
          },
          {
            "id":"exhaustvvtImax",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":18342
          },
          {
            "id":"exhaustvvtpwmfreq",
            "type":2,
            "scale":1000000,
            "inverse":1,
            "max":"2000",
            "unit":"Hz",
            "reset":1,
            "address":18346
          },
          {
            "id":"exhaustvvtpidinterval",
            "type":1,
            "unit":"ms",
            "address":18349
          },
          {
            "id":"exhaustvvtbaseduty",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "max":100,
            "address":18352
          },
          {
            "id":"vvterrtolerance",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "address":18354
          },
          {
            "id":"vvtcheckspeed",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "address":18356
          },
          {
            "id":"obd2enable",
            "type":8,
            "address":"bits1.2.2",
            "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":"ffset0",
            "compact":0,
            "type":8,
            "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":18358
          },
          {
            "id":"ffreset0",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18398
          },
          {
            "id":"fftoggle0",
            "compact":0,
            "type":8,
            "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":18374
          },
          {
            "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":18366
          },
          {
            "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":18406
          },
          {
            "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":18382
          },
          {
            "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":18390
          },
          {
            "id":"ffbootstate0",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18414
          },
          {
            "id":"usererrorconf",
            "type":1,
            "address":18426
          },
          {
            "id":"usererrortype1",
            "type":8,
            "options":[
              "Non-latching",
              "Latching"
            ],
            "address":"usererrorconf.0.0",
            "compact":4,
            "descr":"If non-latching, the error is cleared as soon as the conditions to set it are no longer present. If latching, the error stays set until cleared manually, usually by powering off the ECU."
          },
          {
            "id":"usererrorsource1",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"The user defined errors would usually be triggered by one of the logic conditions. Intended for creating a custom set of conditions to trigger engine protection mode and\/or illuminated the check engine light.",
            "address":18422
          },
          {
            "id":"sdlogmode",
            "type":8,
            "options":[
              [
                1,
                "Standard"
              ],
              [
                2,
                "Event log"
              ],
              [
                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\nIn event log mode, the interval is ignored and the logger records crank\/cam sensor events as well as fuel\/ignition output events as they occur.\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":9232
          },
          {
            "id":"peminthrottle",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "descr":"When the throttle is below this value, power enrichment is inactive. In electronic throttle control mode, accelerator pedal position is used in place of throttle.",
            "address":18428
          },
          {
            "id":"pefullthrottle",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "descr":"When the throttle is below this value but greater than the minimum, power enrichment is partially active. Above this value it's fully active.\r\nIn electronic throttle control mode, accelerator pedal position is used in place of throttle.",
            "address":18430
          },
          {
            "id":"powerenrichmentenable",
            "type":8,
            "address":"bits1.5.5",
            "options":"enum_enabled",
            "descr":"To use the power enrichment feature, 'Include lambda target in fuel mass formula' option must be enabled also.\r\nThis feature enables the use of lean air\/fuel ratios when MAP and airflow are high but driver is not requesting maximum torque via full throttle.\r\nTo make this work two lambda target tables are used, one is configured with the values that give the best fuel economy (best BSFC) at any load but maintaining safe values at very high loads. The other table is configured for maximum torque at any load (best BSAC).\r\nAt 50% throttle input at low engine speeds the air flow may be identical to that of 100% throttle but there is no reason to richen the mixture for maximum torque unless the driver pushes the throttle to 100%"
          },
          {
            "id":"powerenrichtiming",
            "type":1,
            "array":256,
            "scale":0.087891,
            "rows":"ignpribincount",
            "cols":"ignrpmbincount",
            "unit":"°",
            "digits":1,
            "sign":1,
            "descr":"The values in this table are added to the ignition timing when power enrichment is active, negative values retard timing, positive values advance it.\r\nThe values are interpolated so they are applied fully at 100% power enrichment but proportionally at partial power enrichment.",
            "address":18436
          },
          {
            "id":"lambdaassign",
            "type":1,
            "array":12,
            "offset":1,
            "max":2,
            "descr":"This function assigns injector outputs to lambda sensors to enable the use of closed loop with dual lambda sensors.",
            "address":8782
          },
          {
            "id":"outputpulseperkm",
            "type":2,
            "descr":"The speedometer output will emit this number of pulses as the vehicle covers one kilometre. Used for calibration of speedometer.",
            "address":18692
          },
          {
            "id":"speedotestspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "descr":"Set this to a non-zero value to test the speedometer calibration at different speeds without needing to drive the car to those speeds.",
            "address":18694
          },
          {
            "id":"prioritylogchans",
            "type":9,
            "array":64,
            "verbose":1,
            "rows":16,
            "cols":4,
            "descr":"Channels to be logged at a faster rate when in structured logging mode. Set all unused slots to const_zero.",
            "address":18696
          },
          {
            "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":18952
          },
          {
            "id":"fuelstrategy",
            "type":8,
            "options":[
              "Fuel mass",
              "Air mass (VE)"
            ],
            "descr":"The default model of the LPC4 and LPC8 ECUs is fuel mass, where the fuel injection quantity is taken directly from the fuel injection maps and optionally divided by the lambda target.\r\nThe air mass model is a more complex method which is favourable in some situations, where the air mass is calculated from a volumetric efficiency table or taken from a mass air flow sensor directly and then that information is divided by the stoichiometric air:fuel ratio of the fuel as well as the lambda target to arrive at a fuel mass number.\r\nNote that further variations on the models are possible via selection of table load axis. Alpha-N operation is possible without MAP compensation in the fuel mass model or with MAP compensation in the air mass model for example.",
            "address":18960
          },
          {
            "id":"displacement",
            "type":2,
            "unit":"cc",
            "min":1,
            "descr":"Engine displacement in cubic centimetres.",
            "address":19042
          },
          {
            "id":"fuelcompbpcount",
            "type":1,
            "min":1,
            "max":16,
            "descr":"Number of breakpoints for fuel composition based functions. Set to 1 if not using fuel composition (flex fuel) modifiers. Setting this to any other number than 1 enables the flex fuel strategies.",
            "address":18961
          },
          {
            "id":"fuelcompbreakpoints",
            "type":2,
            "unit":"%",
            "digits":1,
            "scale":0.100000,
            "array":16,
            "cols":"fuelcompbpcount",
            "input":"fuelcomp",
            "descr":"Breakpoints used for fuel composition (flex fuel) functions.",
            "address":18962
          },
          {
            "id":"primaryfuelstoich",
            "type":2,
            "digits":2,
            "scale":0.010000,
            "array":16,
            "unit":"AFR",
            "cols":"fuelcompbpcount",
            "descr":"Used for air mass fuel model only. Specifies the stoichiometric air\/fuel ratio of the fuel used on the primary injectors.",
            "address":18994
          },
          {
            "id":"maxrich",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"With all trims applied, the lambda target will never go richer than this. Prevents a multitude of combined enrichments from flooding the engine into misfire.",
            "address":19046
          },
          {
            "id":"maxlean",
            "type":2,
            "unit":"lambda",
            "scale":0.001000,
            "digits":3,
            "descr":"With all trims applied, the lambda target will never go leaner than this.",
            "address":19044
          },
          {
            "id":"igntrimloadsource",
            "type":9,
            "maxwidth":2,
            "descr":"Normally this is MAP, but in special applications it may make more sense to use throttle or cylinder air mass.",
            "address":19052
          },
          {
            "id":"cooltempigntrim",
            "type":2,
            "array":64,
            "sign":1,
            "scale":0.010986,
            "digits":1,
            "unit":"°",
            "rows":8,
            "cols":8,
            "descr":"These values are added to the ignition advance, so negative numbers to retard the timing and positive to advance.",
            "address":19104
          },
          {
            "id":"cooltempignbins",
            "input":"coolanttemp",
            "type":2,
            "array":8,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":19232
          },
          {
            "id":"igntrimrpmbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":19056
          },
          {
            "id":"airtempitrpm",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "max":1,
            "array":8,
            "descr":"These values multiply the air temperature ignition retard table, so the ignition retard may be made less effective or disabled at certain engine speeds.",
            "address":19072
          },
          {
            "id":"cooltempitrpm",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "max":1,
            "array":8,
            "descr":"These values multiply the coolant temperature ignition modifier table, so the ignition modifier may be made less effective or disabled at certain engine speeds.",
            "address":19088
          },
          {
            "id":"lambdatrimloadsource",
            "type":9,
            "maxwidth":2,
            "descr":"Normally this is MAP, but in special applications it may make more sense to use throttle or cylinder air mass.",
            "address":19248
          },
          {
            "id":"lambdatrimloadbins",
            "type":2,
            "describedby":"lambdatrimloadsource",
            "array":8,
            "address":19252
          },
          {
            "id":"lambdatrimrpmbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":19428
          },
          {
            "id":"cooltemplambdabins",
            "input":"coolanttemp",
            "type":2,
            "array":8,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":19284
          },
          {
            "id":"airtemplambdabins",
            "input":"airtemp",
            "type":2,
            "array":8,
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":19268
          },
          {
            "id":"airtemplambdatrim",
            "type":1,
            "array":64,
            "cols":8,
            "rows":8,
            "scale":0.001000,
            "digits":3,
            "descr":"These values are subtracted from the lambda target after being multiplied by the engine speed modifier.",
            "address":19300
          },
          {
            "id":"cooltemplambdatrim",
            "type":1,
            "array":64,
            "cols":8,
            "rows":8,
            "scale":0.001000,
            "digits":3,
            "descr":"These values are subtracted from the lambda target after being multiplied by the engine speed modifier. The effect is indicated by the real time variable 'fuel_ectenrich'",
            "address":19364
          },
          {
            "id":"airtempltrpm",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "max":1,
            "array":8,
            "descr":"These values multiply the air temperature enrichment table before it is subtracted from the lambda target. The effect is indicated by the real time variable 'fuel_airtempenrich'",
            "address":19444
          },
          {
            "id":"cooltempltrpm",
            "type":2,
            "digits":3,
            "scale":0.000977,
            "max":1,
            "array":8,
            "descr":"These values multiply the coolant temperature enrichment table before it is subtracted from the lambda target. The effect is indicated by the real time variable 'fuel_airtempenrich'",
            "address":19460
          },
          {
            "id":"celflashenable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits1.6.6",
            "descr":"If enabled, when a fault code is registered, the check engine lamp will flash the error code numbers."
          },
          {
            "id":"fallbackenable",
            "type":8,
            "options":"enum_enabled",
            "address":"bits1.7.7",
            "descr":"If enabled and there is a MAP sensor error registered but no error on the throttle position sensor, the fall back alpha-N table will be used in place of the MAP sensor values"
          },
          {
            "id":"mafconditional",
            "type":8,
            "options":"enum_enabled",
            "address":"bits1.8.8",
            "descr":"If enabled, the MAF operation may be restricted to a certain range of engine speeds, throttle position and air flow."
          },
          {
            "id":"mafminrpm",
            "type":2,
            "input":"enginespeed",
            "unit":"RPM",
            "address":19478
          },
          {
            "id":"mafmaxrpm",
            "type":2,
            "input":"enginespeed",
            "unit":"RPM",
            "address":19480
          },
          {
            "id":"mafmintps",
            "type":2,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "input":"throttle",
            "address":19482
          },
          {
            "id":"mafmaxtps",
            "type":2,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "input":"throttle",
            "address":19484
          },
          {
            "id":"mafminflow",
            "type":2,
            "unit":"g\/s",
            "scale":0.020000,
            "digits":2,
            "input":"maf",
            "address":19486
          },
          {
            "id":"mafmaxflow",
            "type":2,
            "unit":"g\/s",
            "scale":0.020000,
            "digits":2,
            "input":"maf",
            "address":19488
          },
          {
            "id":"maftestrpm",
            "type":2,
            "input":"enginespeed",
            "unit":"RPM",
            "descr":"Engine speed must go above this value to enable MAF high flow plausibility test and below this value to enable low flow plausibility test.",
            "address":19490
          },
          {
            "id":"maftestlowflow",
            "type":2,
            "unit":"g\/s",
            "scale":0.020000,
            "digits":2,
            "input":"maf",
            "descr":"With the engine speed below the speed threshold and throttle position below 5%, the MAF must indicate a flow less than this value to pass the plausibility test.",
            "address":19494
          },
          {
            "id":"maftesthighflow",
            "type":2,
            "unit":"g\/s",
            "scale":0.020000,
            "digits":2,
            "input":"maf",
            "descr":"With the engine speed above the speed threshold and throttle position above 50%, the MAF must indicate a flow greater than this value to pass the plausibility test.",
            "address":19492
          },
          {
            "id":"flexwarmupscale",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "array":16,
            "unit":"%",
            "cols":"fuelcompbpcount",
            "descr":"This function is only used when the number of fuel composition breakpoints under the air mass strategy is defined greater than 1.\r\nA value of 0% means the normal cranking fuel and warm up functions are used. A value of 100% means the alternate fuel tables are used. Any value between interpolates between the two sets of functions.",
            "address":19026
          },
          {
            "id":"flexlambdascale",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "array":16,
            "unit":"%",
            "cols":"fuelcompbpcount",
            "descr":"This function is only used when the number of fuel composition breakpoints under the air mass strategy is defined greater than 1.\r\nA value of 0% means the normal lambda targets are used. A value of 100% means the alternate lambda targets are used. Any value between interpolates.",
            "address":19496
          },
          {
            "id":"flexignscale",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "array":16,
            "unit":"%",
            "cols":"fuelcompbpcount",
            "descr":"This function is only used when the number of fuel composition breakpoints under the air mass strategy is defined greater than 1.\r\nA value of 0% means the normal ignition map is used. A value of 100% means the alternate ignition map is used. Any value between interpolates.",
            "address":19512
          },
          {
            "id":"flexboostscale",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "array":16,
            "unit":"%",
            "cols":"fuelcompbpcount",
            "descr":"This function is only used when the number of fuel composition breakpoints under the air mass strategy is defined greater than 1.\r\nA value of 0% means the normal boost target map is used. A value of 100% means the first alternate boost target map is used. Any value between interpolates.",
            "address":19528
          },
          {
            "id":"flexwgbasepwscale",
            "type":1,
            "digits":1,
            "scale":0.392157,
            "array":16,
            "unit":"%",
            "cols":"fuelcompbpcount",
            "descr":"This function is only used when the number of fuel composition breakpoints under the air mass strategy is defined greater than 1.\r\nA value of 0% means the normal base duty cycle map is used. A value of 100% means the alternate map is used. Any value between interpolates. Only really necessary if there is a large difference in available exhaust energy between fuels.",
            "address":19544
          },
          {
            "id":"gprevlimsrc",
            "type":9,
            "maxwidth":2,
            "address":19560
          },
          {
            "id":"gprevlimcondition",
            "type":8,
            "options":"map_inputs",
            "address":19564
          },
          {
            "id":"gprevlimbpcount",
            "type":1,
            "min":1,
            "max":16,
            "descr":"Set this value to 1 if a variable limit is not desired.",
            "address":19565
          },
          {
            "id":"gprevliminput",
            "type":2,
            "array":16,
            "cols":"gprevlimbpcount",
            "describedby":"gprevlimsrc",
            "address":19566
          },
          {
            "id":"gprevlimoutput",
            "type":2,
            "array":16,
            "cols":"gprevlimbpcount",
            "unit":"RPM",
            "address":19598
          },
          {
            "id":"gprevlimspark",
            "type":8,
            "address":"bits0.15.15",
            "options":[
              "Fuel",
              "Ignition"
            ]
          },
          {
            "id":"firingorderoffset",
            "type":1,
            "descr":"If the crank acceleration monitoring attributes the cylinder contribution to the wrong cylinder, this setting can be used to offset the firing order for the cylinder contribution calculation. Use the cylinder disable dialog to test if the contribution is correctly attributed.",
            "address":15462
          },
          {
            "id":"rpmcalcdelay",
            "type":1,
            "descr":"If set to 0 then the crank sync event will be used to calculate engine speed. Otherwise the engine speed calculation is delayed by this number of teeth. This is useful for crank triggers that have reduced accuracy around the missing tooth, to get more accurate engine speed reporting.",
            "address":19632
          },
          {
            "id":"gposervicetime",
            "type":1,
            "unit":"ms",
            "descr":"Interval at which all of the user defined logics, flip flops, counters and latches are evaluated. 0 to disable the user defined logic altogether.",
            "address":19631
          },
          {
            "id":"learncondition",
            "type":8,
            "options":"map_inputs",
            "descr":"This setting allows the user to specify a custom condition during which long term fuel trim learning may be performed.",
            "address":19634
          },
          {
            "id":"ltftcondition",
            "type":8,
            "options":"map_inputs",
            "descr":"This setting allows the user to specify a custom condition during which previously learned long term fuel trims may be included in the fuelling calculations.",
            "address":19633
          },
          {
            "id":"safezone",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "descr":"A setting that specifies how many crank degrees before a fuel injection event it must be scheduled and calculation finalised. Not something that normally needs adjustment but included for special cases.",
            "address":19636
          },
          {
            "id":"obd2bcenable",
            "type":8,
            "address":"bits1.3.3",
            "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":"canbcenable",
            "type":8,
            "address":"bits0.12.12",
            "options":"enum_enabled",
            "descr":"Enables transmission of standard format CAN groups, 4 16 bit variables per group, little endian."
          },
          {
            "id":"canrxenable",
            "type":8,
            "address":"bits0.13.13",
            "options":"enum_enabled",
            "descr":"Enables processing of incoming CAN packets. Required for receiving CAN data from other modules and also for OBD2 interfacing to work."
          },
          {
            "id":"customcanenable",
            "type":8,
            "address":"bits0.14.14",
            "options":"enum_enabled",
            "descr":"Enables transmission of custom formatted CAN groups"
          },
          {
            "id":"can2bcenable",
            "type":8,
            "address":"bits0.1.1",
            "options":"enum_enabled"
          },
          {
            "id":"can2rxenable",
            "type":8,
            "address":"bits0.7.7",
            "options":"enum_enabled"
          },
          {
            "id":"customcan2enable",
            "type":8,
            "address":"bits0.8.8",
            "options":"enum_enabled"
          },
          {
            "id":"vssvarpicker",
            "type":9,
            "address":19640
          },
          {
            "id":"vssvarpicker2",
            "type":9,
            "address":19644
          },
          {
            "id":"transientign_enable",
            "type":8,
            "address":"bits1.10.10",
            "options":"enum_enabled",
            "descr":"The transient ignition strategy allows the ECU to preemptively pull ignition timing during transients on engines that are so knock prone that they just won't handle transients without knocking otherwise."
          },
          {
            "id":"transignminmaprate",
            "type":2,
            "unit":"mbar\/sec",
            "scale":20,
            "descr":"Minimum MAP rate of change to activate MAP based transient ignition retard",
            "address":11434
          },
          {
            "id":"transignmintprate",
            "type":2,
            "unit":"%\/sec",
            "scale":1.955000,
            "descr":"Minimum throttle rate of change to activate throttle based transient ignition retard",
            "address":11432
          },
          {
            "id":"transignmapsens",
            "type":1,
            "array":64,
            "rows":8,
            "cols":8,
            "scale":0.392157,
            "unit":"%",
            "digits":1,
            "descr":"This map is used to specify where transient ignition retard may be necessary, with 100% being the full amount applied and 0% effectively disabling the strategy",
            "address":11030
          },
          {
            "id":"transigndmap",
            "type":2,
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "address":11094
          },
          {
            "id":"transigndtp",
            "type":2,
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "address":11222
          },
          {
            "id":"transigndecay",
            "type":2,
            "scale":0.010986,
            "array":8,
            "unit":"°\/event",
            "digits":1,
            "descr":"After the number of hold off events have passed, the transient ignition retard is removed at this rate per ignition event.",
            "address":11350
          },
          {
            "id":"transignspeedbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":11366
          },
          {
            "id":"transigndtpbins",
            "type":2,
            "array":8,
            "unit":"%\/sec",
            "scale":1.955000,
            "input":"deltathrottle",
            "address":11382
          },
          {
            "id":"transigndmapbins",
            "type":2,
            "array":8,
            "unit":"mbar\/sec",
            "scale":20,
            "input":"deltamap",
            "address":11398
          },
          {
            "id":"transignmapbins",
            "type":2,
            "array":8,
            "unit":"mbar",
            "input":"map",
            "address":11414
          },
          {
            "id":"transigndecayholdoff",
            "type":1,
            "descr":"Number of ignition events to hold off after the transient ignition retard is applied until the retard decays away.",
            "address":11430
          },
          {
            "id":"injanglemode",
            "type":8,
            "options":[
              "Start of injection",
              "End of injection",
              "Middle of injection"
            ],
            "descr":"Note that the injangle variables in the log always show start of injection, as that is what the ECU uses when scheduling the fuel injection events. The end of injection and middle of injection modes simply calculate the start angle needed to get the desired end angle with the current pulse width.",
            "address":19635
          },
          {
            "id":"hsloglevel",
            "type":8,
            "options":[
              [
                0,
                "Crank only"
              ],
              [
                10,
                "Crank, cams and sync"
              ],
              [
                63,
                "Everything"
              ]
            ],
            "descr":"This specifies what data to include when recording an event log, reducing the logged parameters helps when diagnosing high speed problems",
            "address":19668
          },
          {
            "id":"evtlogchan1",
            "type":9,
            "descr":"To sample a regular data channel with every crank impulse in the event log, set this to a value other than const_zero.\r\nTwo channels may be specified, but only if the first channel is less than 32 bits wide",
            "verbose":1,
            "address":19672
          },
          {
            "id":"evtlogchan2",
            "type":9,
            "maxwidth":2,
            "address":19676
          },
          {
            "id":"secinjremote",
            "type":8,
            "options":"enum_enabled",
            "address":"bits1.12.12",
            "descr":"This option enables the processing of fuel split tables despite no secondary injectors directly connected to the ECU. This is to enable the use of the secondary fuel mass in a custom strategy or on a remote secondary ECU via CAN networking."
          },
          {
            "id":"injectionmode",
            "type":8,
            "address":"bits1.11.11",
            "options":[
              "Inlet tract",
              "Direct injection"
            ]
          },
          {
            "id":"tachotest",
            "type":2,
            "unit":"RPM",
            "descr":"If this is set to a non-zero value, the tachometer output is overridden with this value for tachometer testing purposes",
            "address":19712
          },
          {
            "id":"pullupconf",
            "type":2,
            "address":18432
          },
          {
            "id":"ign5mode",
            "type":8,
            "address":"bits1.13.13",
            "options":[
              "Logic level ignition control",
              "General purpose low side switch"
            ],
            "descr":"On LPC8 serial numbers 2200 and up, this option enables the use of ignition outputs 5-8 as injector outputs or other low side switch tasks. In this mode the outputs are also capable of running ignition amplifier modules that are triggered by a low-side switch such as MSD CDI boxes or Honda OBD1\/OBD2 distributors."
          },
          {
            "id":"pullup_analog10",
            "type":8,
            "address":"pullupconf.10.10",
            "options":[
              "51k Ohm",
              "2975 Ohm"
            ]
          },
          {
            "id":"pullup_analog11",
            "type":8,
            "address":"pullupconf.11.11",
            "options":[
              "51k Ohm",
              "2975 Ohm"
            ]
          },
          {
            "id":"gpioondelay1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8508
          },
          {
            "id":"gpioondelay2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8510
          },
          {
            "id":"gpioondelay3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8512
          },
          {
            "id":"gpioondelay4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8514
          },
          {
            "id":"gpioondelay5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8516
          },
          {
            "id":"gpioondelay6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8518
          },
          {
            "id":"gpioondelay7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8520
          },
          {
            "id":"gpioondelay8",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8522
          },
          {
            "id":"gpioondelay9",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8524
          },
          {
            "id":"gpioondelay10",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8526
          },
          {
            "id":"gpioondelay11",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8528
          },
          {
            "id":"gpioondelay12",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8530
          },
          {
            "id":"gpioondelay13",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8532
          },
          {
            "id":"gpioondelay14",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8534
          },
          {
            "id":"gpioondelay15",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8536
          },
          {
            "id":"gpioondelay16",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8538
          },
          {
            "id":"gpioondelay17",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning on must be met for this period of time before switching state from 0 to 1.",
            "address":8540
          },
          {
            "id":"gpiooffdelay1",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8544
          },
          {
            "id":"gpiooffdelay2",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8546
          },
          {
            "id":"gpiooffdelay3",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8548
          },
          {
            "id":"gpiooffdelay4",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8550
          },
          {
            "id":"gpiooffdelay5",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8552
          },
          {
            "id":"gpiooffdelay6",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8554
          },
          {
            "id":"gpiooffdelay7",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8556
          },
          {
            "id":"gpiooffdelay8",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8558
          },
          {
            "id":"gpiooffdelay9",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8560
          },
          {
            "id":"gpiooffdelay10",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8562
          },
          {
            "id":"gpiooffdelay11",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8564
          },
          {
            "id":"gpiooffdelay12",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8566
          },
          {
            "id":"gpiooffdelay13",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8568
          },
          {
            "id":"gpiooffdelay14",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8570
          },
          {
            "id":"gpiooffdelay15",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8572
          },
          {
            "id":"gpiooffdelay16",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8574
          },
          {
            "id":"gpiooffdelay17",
            "type":2,
            "compact":0,
            "scale":0.100000,
            "digits":1,
            "unit":"s",
            "descr":"If set to a non-zero value, the conditions for turning off must be met for this period of time before switching state from 1 to 0.",
            "address":8576
          },
          {
            "id":"gpiocond1var1",
            "compact":0,
            "type":9,
            "address":7804
          },
          {
            "id":"gpiocond1var2",
            "compact":0,
            "type":9,
            "address":7808
          },
          {
            "id":"gpiocond1var3",
            "compact":0,
            "type":9,
            "address":7812
          },
          {
            "id":"gpiocond1var4",
            "compact":0,
            "type":9,
            "address":7816
          },
          {
            "id":"gpiocond1var5",
            "compact":0,
            "type":9,
            "address":7820
          },
          {
            "id":"gpiocond1var6",
            "compact":0,
            "type":9,
            "address":7824
          },
          {
            "id":"gpiocond1var7",
            "compact":0,
            "type":9,
            "address":7828
          },
          {
            "id":"gpiocond1var8",
            "compact":0,
            "type":9,
            "address":7832
          },
          {
            "id":"gpiocond1var9",
            "compact":0,
            "type":9,
            "address":7836
          },
          {
            "id":"gpiocond1var10",
            "compact":0,
            "type":9,
            "address":7840
          },
          {
            "id":"gpiocond1var11",
            "compact":0,
            "type":9,
            "address":7844
          },
          {
            "id":"gpiocond1var12",
            "compact":0,
            "type":9,
            "address":7848
          },
          {
            "id":"gpiocond1var13",
            "compact":0,
            "type":9,
            "address":7852
          },
          {
            "id":"gpiocond1var14",
            "compact":0,
            "type":9,
            "address":7856
          },
          {
            "id":"gpiocond1var15",
            "compact":0,
            "type":9,
            "address":7860
          },
          {
            "id":"gpiocond1var16",
            "compact":0,
            "type":9,
            "address":7864
          },
          {
            "id":"gpiocond1var17",
            "compact":0,
            "type":9,
            "address":7868
          },
          {
            "id":"gpiocond1val1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var1",
            "address":7876
          },
          {
            "id":"gpiocond1val2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var2",
            "address":7880
          },
          {
            "id":"gpiocond1val3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var3",
            "address":7884
          },
          {
            "id":"gpiocond1val4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var4",
            "address":7888
          },
          {
            "id":"gpiocond1val5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var5",
            "address":7892
          },
          {
            "id":"gpiocond1val6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var6",
            "address":7896
          },
          {
            "id":"gpiocond1val7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var7",
            "address":7900
          },
          {
            "id":"gpiocond1val8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var8",
            "address":7904
          },
          {
            "id":"gpiocond1val9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var9",
            "address":7908
          },
          {
            "id":"gpiocond1val10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var10",
            "address":7912
          },
          {
            "id":"gpiocond1val11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var11",
            "address":7916
          },
          {
            "id":"gpiocond1val12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var12",
            "address":7920
          },
          {
            "id":"gpiocond1val13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var13",
            "address":7924
          },
          {
            "id":"gpiocond1val14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var14",
            "address":7928
          },
          {
            "id":"gpiocond1val15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var15",
            "address":7932
          },
          {
            "id":"gpiocond1val16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var16",
            "address":7936
          },
          {
            "id":"gpiocond1val17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var17",
            "address":7940
          },
          {
            "id":"gpiocond1hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var1",
            "relative":1,
            "address":7948
          },
          {
            "id":"gpiocond1hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var2",
            "relative":1,
            "address":7952
          },
          {
            "id":"gpiocond1hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var3",
            "relative":1,
            "address":7956
          },
          {
            "id":"gpiocond1hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var4",
            "relative":1,
            "address":7960
          },
          {
            "id":"gpiocond1hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var5",
            "relative":1,
            "address":7964
          },
          {
            "id":"gpiocond1hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var6",
            "relative":1,
            "address":7968
          },
          {
            "id":"gpiocond1hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var7",
            "relative":1,
            "address":7972
          },
          {
            "id":"gpiocond1hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var8",
            "relative":1,
            "address":7976
          },
          {
            "id":"gpiocond1hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var9",
            "relative":1,
            "address":7980
          },
          {
            "id":"gpiocond1hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var10",
            "relative":1,
            "address":7984
          },
          {
            "id":"gpiocond1hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var11",
            "relative":1,
            "address":7988
          },
          {
            "id":"gpiocond1hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var12",
            "relative":1,
            "address":7992
          },
          {
            "id":"gpiocond1hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var13",
            "relative":1,
            "address":7996
          },
          {
            "id":"gpiocond1hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var14",
            "relative":1,
            "address":8000
          },
          {
            "id":"gpiocond1hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var15",
            "relative":1,
            "address":8004
          },
          {
            "id":"gpiocond1hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var16",
            "relative":1,
            "address":8008
          },
          {
            "id":"gpiocond1hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond1var17",
            "relative":1,
            "address":8012
          },
          {
            "id":"gpiocond1param1",
            "compact":0,
            "type":1,
            "address":8017
          },
          {
            "id":"gpiocond1param2",
            "compact":0,
            "type":1,
            "address":8018
          },
          {
            "id":"gpiocond1param3",
            "compact":0,
            "type":1,
            "address":8019
          },
          {
            "id":"gpiocond1param4",
            "compact":0,
            "type":1,
            "address":8020
          },
          {
            "id":"gpiocond1param5",
            "compact":0,
            "type":1,
            "address":8021
          },
          {
            "id":"gpiocond1param6",
            "compact":0,
            "type":1,
            "address":8022
          },
          {
            "id":"gpiocond1param7",
            "compact":0,
            "type":1,
            "address":8023
          },
          {
            "id":"gpiocond1param8",
            "compact":0,
            "type":1,
            "address":8024
          },
          {
            "id":"gpiocond1param9",
            "compact":0,
            "type":1,
            "address":8025
          },
          {
            "id":"gpiocond1param10",
            "compact":0,
            "type":1,
            "address":8026
          },
          {
            "id":"gpiocond1param11",
            "compact":0,
            "type":1,
            "address":8027
          },
          {
            "id":"gpiocond1param12",
            "compact":0,
            "type":1,
            "address":8028
          },
          {
            "id":"gpiocond1param13",
            "compact":0,
            "type":1,
            "address":8029
          },
          {
            "id":"gpiocond1param14",
            "compact":0,
            "type":1,
            "address":8030
          },
          {
            "id":"gpiocond1param15",
            "compact":0,
            "type":1,
            "address":8031
          },
          {
            "id":"gpiocond1param16",
            "compact":0,
            "type":1,
            "address":8032
          },
          {
            "id":"gpiocond1param17",
            "compact":0,
            "type":1,
            "address":8033
          },
          {
            "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":8040
          },
          {
            "id":"gpiocond2var2",
            "compact":0,
            "type":9,
            "address":8044
          },
          {
            "id":"gpiocond2var3",
            "compact":0,
            "type":9,
            "address":8048
          },
          {
            "id":"gpiocond2var4",
            "compact":0,
            "type":9,
            "address":8052
          },
          {
            "id":"gpiocond2var5",
            "compact":0,
            "type":9,
            "address":8056
          },
          {
            "id":"gpiocond2var6",
            "compact":0,
            "type":9,
            "address":8060
          },
          {
            "id":"gpiocond2var7",
            "compact":0,
            "type":9,
            "address":8064
          },
          {
            "id":"gpiocond2var8",
            "compact":0,
            "type":9,
            "address":8068
          },
          {
            "id":"gpiocond2var9",
            "compact":0,
            "type":9,
            "address":8072
          },
          {
            "id":"gpiocond2var10",
            "compact":0,
            "type":9,
            "address":8076
          },
          {
            "id":"gpiocond2var11",
            "compact":0,
            "type":9,
            "address":8080
          },
          {
            "id":"gpiocond2var12",
            "compact":0,
            "type":9,
            "address":8084
          },
          {
            "id":"gpiocond2var13",
            "compact":0,
            "type":9,
            "address":8088
          },
          {
            "id":"gpiocond2var14",
            "compact":0,
            "type":9,
            "address":8092
          },
          {
            "id":"gpiocond2var15",
            "compact":0,
            "type":9,
            "address":8096
          },
          {
            "id":"gpiocond2var16",
            "compact":0,
            "type":9,
            "address":8100
          },
          {
            "id":"gpiocond2var17",
            "compact":0,
            "type":9,
            "address":8104
          },
          {
            "id":"gpiocond2val1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var1",
            "address":8112
          },
          {
            "id":"gpiocond2val2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var2",
            "address":8116
          },
          {
            "id":"gpiocond2val3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var3",
            "address":8120
          },
          {
            "id":"gpiocond2val4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var4",
            "address":8124
          },
          {
            "id":"gpiocond2val5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var5",
            "address":8128
          },
          {
            "id":"gpiocond2val6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var6",
            "address":8132
          },
          {
            "id":"gpiocond2val7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var7",
            "address":8136
          },
          {
            "id":"gpiocond2val8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var8",
            "address":8140
          },
          {
            "id":"gpiocond2val9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var9",
            "address":8144
          },
          {
            "id":"gpiocond2val10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var10",
            "address":8148
          },
          {
            "id":"gpiocond2val11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var11",
            "address":8152
          },
          {
            "id":"gpiocond2val12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var12",
            "address":8156
          },
          {
            "id":"gpiocond2val13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var13",
            "address":8160
          },
          {
            "id":"gpiocond2val14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var14",
            "address":8164
          },
          {
            "id":"gpiocond2val15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var15",
            "address":8168
          },
          {
            "id":"gpiocond2val16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var16",
            "address":8172
          },
          {
            "id":"gpiocond2val17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var17",
            "address":8176
          },
          {
            "id":"gpiocond2hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var1",
            "relative":1,
            "address":8184
          },
          {
            "id":"gpiocond2hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var2",
            "relative":1,
            "address":8188
          },
          {
            "id":"gpiocond2hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var3",
            "relative":1,
            "address":8192
          },
          {
            "id":"gpiocond2hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var4",
            "relative":1,
            "address":8196
          },
          {
            "id":"gpiocond2hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var5",
            "relative":1,
            "address":8200
          },
          {
            "id":"gpiocond2hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var6",
            "relative":1,
            "address":8204
          },
          {
            "id":"gpiocond2hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var7",
            "relative":1,
            "address":8208
          },
          {
            "id":"gpiocond2hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var8",
            "relative":1,
            "address":8212
          },
          {
            "id":"gpiocond2hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var9",
            "relative":1,
            "address":8216
          },
          {
            "id":"gpiocond2hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var10",
            "relative":1,
            "address":8220
          },
          {
            "id":"gpiocond2hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var11",
            "relative":1,
            "address":8224
          },
          {
            "id":"gpiocond2hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var12",
            "relative":1,
            "address":8228
          },
          {
            "id":"gpiocond2hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var13",
            "relative":1,
            "address":8232
          },
          {
            "id":"gpiocond2hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var14",
            "relative":1,
            "address":8236
          },
          {
            "id":"gpiocond2hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var15",
            "relative":1,
            "address":8240
          },
          {
            "id":"gpiocond2hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var16",
            "relative":1,
            "address":8244
          },
          {
            "id":"gpiocond2hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond2var17",
            "relative":1,
            "address":8248
          },
          {
            "id":"gpiocond2param1",
            "compact":0,
            "type":1,
            "address":8253
          },
          {
            "id":"gpiocond2param2",
            "compact":0,
            "type":1,
            "address":8254
          },
          {
            "id":"gpiocond2param3",
            "compact":0,
            "type":1,
            "address":8255
          },
          {
            "id":"gpiocond2param4",
            "compact":0,
            "type":1,
            "address":8256
          },
          {
            "id":"gpiocond2param5",
            "compact":0,
            "type":1,
            "address":8257
          },
          {
            "id":"gpiocond2param6",
            "compact":0,
            "type":1,
            "address":8258
          },
          {
            "id":"gpiocond2param7",
            "compact":0,
            "type":1,
            "address":8259
          },
          {
            "id":"gpiocond2param8",
            "compact":0,
            "type":1,
            "address":8260
          },
          {
            "id":"gpiocond2param9",
            "compact":0,
            "type":1,
            "address":8261
          },
          {
            "id":"gpiocond2param10",
            "compact":0,
            "type":1,
            "address":8262
          },
          {
            "id":"gpiocond2param11",
            "compact":0,
            "type":1,
            "address":8263
          },
          {
            "id":"gpiocond2param12",
            "compact":0,
            "type":1,
            "address":8264
          },
          {
            "id":"gpiocond2param13",
            "compact":0,
            "type":1,
            "address":8265
          },
          {
            "id":"gpiocond2param14",
            "compact":0,
            "type":1,
            "address":8266
          },
          {
            "id":"gpiocond2param15",
            "compact":0,
            "type":1,
            "address":8267
          },
          {
            "id":"gpiocond2param16",
            "compact":0,
            "type":1,
            "address":8268
          },
          {
            "id":"gpiocond2param17",
            "compact":0,
            "type":1,
            "address":8269
          },
          {
            "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":8276
          },
          {
            "id":"gpiocond3var2",
            "compact":0,
            "type":9,
            "address":8280
          },
          {
            "id":"gpiocond3var3",
            "compact":0,
            "type":9,
            "address":8284
          },
          {
            "id":"gpiocond3var4",
            "compact":0,
            "type":9,
            "address":8288
          },
          {
            "id":"gpiocond3var5",
            "compact":0,
            "type":9,
            "address":8292
          },
          {
            "id":"gpiocond3var6",
            "compact":0,
            "type":9,
            "address":8296
          },
          {
            "id":"gpiocond3var7",
            "compact":0,
            "type":9,
            "address":8300
          },
          {
            "id":"gpiocond3var8",
            "compact":0,
            "type":9,
            "address":8304
          },
          {
            "id":"gpiocond3var9",
            "compact":0,
            "type":9,
            "address":8308
          },
          {
            "id":"gpiocond3var10",
            "compact":0,
            "type":9,
            "address":8312
          },
          {
            "id":"gpiocond3var11",
            "compact":0,
            "type":9,
            "address":8316
          },
          {
            "id":"gpiocond3var12",
            "compact":0,
            "type":9,
            "address":8320
          },
          {
            "id":"gpiocond3var13",
            "compact":0,
            "type":9,
            "address":8324
          },
          {
            "id":"gpiocond3var14",
            "compact":0,
            "type":9,
            "address":8328
          },
          {
            "id":"gpiocond3var15",
            "compact":0,
            "type":9,
            "address":8332
          },
          {
            "id":"gpiocond3var16",
            "compact":0,
            "type":9,
            "address":8336
          },
          {
            "id":"gpiocond3var17",
            "compact":0,
            "type":9,
            "address":8340
          },
          {
            "id":"gpiocond3val1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var1",
            "address":8348
          },
          {
            "id":"gpiocond3val2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var2",
            "address":8352
          },
          {
            "id":"gpiocond3val3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var3",
            "address":8356
          },
          {
            "id":"gpiocond3val4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var4",
            "address":8360
          },
          {
            "id":"gpiocond3val5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var5",
            "address":8364
          },
          {
            "id":"gpiocond3val6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var6",
            "address":8368
          },
          {
            "id":"gpiocond3val7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var7",
            "address":8372
          },
          {
            "id":"gpiocond3val8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var8",
            "address":8376
          },
          {
            "id":"gpiocond3val9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var9",
            "address":8380
          },
          {
            "id":"gpiocond3val10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var10",
            "address":8384
          },
          {
            "id":"gpiocond3val11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var11",
            "address":8388
          },
          {
            "id":"gpiocond3val12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var12",
            "address":8392
          },
          {
            "id":"gpiocond3val13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var13",
            "address":8396
          },
          {
            "id":"gpiocond3val14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var14",
            "address":8400
          },
          {
            "id":"gpiocond3val15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var15",
            "address":8404
          },
          {
            "id":"gpiocond3val16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var16",
            "address":8408
          },
          {
            "id":"gpiocond3val17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var17",
            "address":8412
          },
          {
            "id":"gpiocond3hyster1",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var1",
            "relative":1,
            "address":8420
          },
          {
            "id":"gpiocond3hyster2",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var2",
            "relative":1,
            "address":8424
          },
          {
            "id":"gpiocond3hyster3",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var3",
            "relative":1,
            "address":8428
          },
          {
            "id":"gpiocond3hyster4",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var4",
            "relative":1,
            "address":8432
          },
          {
            "id":"gpiocond3hyster5",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var5",
            "relative":1,
            "address":8436
          },
          {
            "id":"gpiocond3hyster6",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var6",
            "relative":1,
            "address":8440
          },
          {
            "id":"gpiocond3hyster7",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var7",
            "relative":1,
            "address":8444
          },
          {
            "id":"gpiocond3hyster8",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var8",
            "relative":1,
            "address":8448
          },
          {
            "id":"gpiocond3hyster9",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var9",
            "relative":1,
            "address":8452
          },
          {
            "id":"gpiocond3hyster10",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var10",
            "relative":1,
            "address":8456
          },
          {
            "id":"gpiocond3hyster11",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var11",
            "relative":1,
            "address":8460
          },
          {
            "id":"gpiocond3hyster12",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var12",
            "relative":1,
            "address":8464
          },
          {
            "id":"gpiocond3hyster13",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var13",
            "relative":1,
            "address":8468
          },
          {
            "id":"gpiocond3hyster14",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var14",
            "relative":1,
            "address":8472
          },
          {
            "id":"gpiocond3hyster15",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var15",
            "relative":1,
            "address":8476
          },
          {
            "id":"gpiocond3hyster16",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var16",
            "relative":1,
            "address":8480
          },
          {
            "id":"gpiocond3hyster17",
            "compact":0,
            "type":3,
            "describedby":"gpiocond3var17",
            "relative":1,
            "address":8484
          },
          {
            "id":"gpiocond3param1",
            "compact":0,
            "type":1,
            "address":8489
          },
          {
            "id":"gpiocond3param2",
            "compact":0,
            "type":1,
            "address":8490
          },
          {
            "id":"gpiocond3param3",
            "compact":0,
            "type":1,
            "address":8491
          },
          {
            "id":"gpiocond3param4",
            "compact":0,
            "type":1,
            "address":8492
          },
          {
            "id":"gpiocond3param5",
            "compact":0,
            "type":1,
            "address":8493
          },
          {
            "id":"gpiocond3param6",
            "compact":0,
            "type":1,
            "address":8494
          },
          {
            "id":"gpiocond3param7",
            "compact":0,
            "type":1,
            "address":8495
          },
          {
            "id":"gpiocond3param8",
            "compact":0,
            "type":1,
            "address":8496
          },
          {
            "id":"gpiocond3param9",
            "compact":0,
            "type":1,
            "address":8497
          },
          {
            "id":"gpiocond3param10",
            "compact":0,
            "type":1,
            "address":8498
          },
          {
            "id":"gpiocond3param11",
            "compact":0,
            "type":1,
            "address":8499
          },
          {
            "id":"gpiocond3param12",
            "compact":0,
            "type":1,
            "address":8500
          },
          {
            "id":"gpiocond3param13",
            "compact":0,
            "type":1,
            "address":8501
          },
          {
            "id":"gpiocond3param14",
            "compact":0,
            "type":1,
            "address":8502
          },
          {
            "id":"gpiocond3param15",
            "compact":0,
            "type":1,
            "address":8503
          },
          {
            "id":"gpiocond3param16",
            "compact":0,
            "type":1,
            "address":8504
          },
          {
            "id":"gpiocond3param17",
            "compact":0,
            "type":1,
            "address":8505
          },
          {
            "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,
            "descr":"This is an exponential decay filter. 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":15466
          },
          {
            "id":"analogfilter2",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15468
          },
          {
            "id":"analogfilter3",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15470
          },
          {
            "id":"analogfilter4",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15472
          },
          {
            "id":"analogfilter5",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15474
          },
          {
            "id":"analogfilter6",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15476
          },
          {
            "id":"analogfilter7",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15478
          },
          {
            "id":"analogfilter8",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15480
          },
          {
            "id":"analogfilter9",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15482
          },
          {
            "id":"analogfilter10",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15484
          },
          {
            "id":"analogfilter11",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15486
          },
          {
            "id":"analogfilter12",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15488
          },
          {
            "id":"analogfilter13",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15490
          },
          {
            "id":"analogfilter14",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15492
          },
          {
            "id":"analogfilter15",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15494
          },
          {
            "id":"analogfilter16",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15496
          },
          {
            "id":"analogfilter17",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15498
          },
          {
            "id":"analogfilter18",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15500
          },
          {
            "id":"analogfilter19",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15502
          },
          {
            "id":"analogfilter20",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15504
          },
          {
            "id":"analogfilter21",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15506
          },
          {
            "id":"analogfilter22",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15508
          },
          {
            "id":"analogfilter23",
            "compact":0,
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "descr":"This is an exponential decay filter. 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":15510
          },
          {
            "id":"freqfilter1",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "descr":"This is an exponential decay filter. 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":1,
            "address":15513
          },
          {
            "id":"freqfilter2",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "descr":"This is an exponential decay filter. 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":1,
            "address":15514
          },
          {
            "id":"freqfilter3",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "descr":"This is an exponential decay filter. 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":1,
            "address":15515
          },
          {
            "id":"freqfilter4",
            "compact":0,
            "type":1,
            "unit":"%",
            "scale":0.390625,
            "descr":"This is an exponential decay filter. 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":1,
            "address":15516
          },
          {
            "id":"ffset1",
            "compact":0,
            "type":8,
            "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":18359
          },
          {
            "id":"ffset2",
            "compact":0,
            "type":8,
            "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":18360
          },
          {
            "id":"ffset3",
            "compact":0,
            "type":8,
            "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":18361
          },
          {
            "id":"ffset4",
            "compact":0,
            "type":8,
            "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":18362
          },
          {
            "id":"ffset5",
            "compact":0,
            "type":8,
            "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":18363
          },
          {
            "id":"ffset6",
            "compact":0,
            "type":8,
            "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":18364
          },
          {
            "id":"ffset7",
            "compact":0,
            "type":8,
            "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":18365
          },
          {
            "id":"ffreset1",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18399
          },
          {
            "id":"ffreset2",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18400
          },
          {
            "id":"ffreset3",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18401
          },
          {
            "id":"ffreset4",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18402
          },
          {
            "id":"ffreset5",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18403
          },
          {
            "id":"ffreset6",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18404
          },
          {
            "id":"ffreset7",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.",
            "address":18405
          },
          {
            "id":"fftoggle1",
            "compact":0,
            "type":8,
            "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":18375
          },
          {
            "id":"fftoggle2",
            "compact":0,
            "type":8,
            "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":18376
          },
          {
            "id":"fftoggle3",
            "compact":0,
            "type":8,
            "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":18377
          },
          {
            "id":"fftoggle4",
            "compact":0,
            "type":8,
            "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":18378
          },
          {
            "id":"fftoggle5",
            "compact":0,
            "type":8,
            "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":18379
          },
          {
            "id":"fftoggle6",
            "compact":0,
            "type":8,
            "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":18380
          },
          {
            "id":"fftoggle7",
            "compact":0,
            "type":8,
            "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":18381
          },
          {
            "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":18367
          },
          {
            "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":18368
          },
          {
            "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":18369
          },
          {
            "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":18370
          },
          {
            "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":18371
          },
          {
            "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":18372
          },
          {
            "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":18373
          },
          {
            "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":18407
          },
          {
            "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":18408
          },
          {
            "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":18409
          },
          {
            "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":18410
          },
          {
            "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":18411
          },
          {
            "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":18412
          },
          {
            "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":18413
          },
          {
            "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":18383
          },
          {
            "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":18384
          },
          {
            "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":18385
          },
          {
            "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":18386
          },
          {
            "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":18387
          },
          {
            "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":18388
          },
          {
            "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":18389
          },
          {
            "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":18391
          },
          {
            "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":18392
          },
          {
            "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":18393
          },
          {
            "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":18394
          },
          {
            "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":18395
          },
          {
            "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":18396
          },
          {
            "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":18397
          },
          {
            "id":"ffbootstate1",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18415
          },
          {
            "id":"ffbootstate2",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18416
          },
          {
            "id":"ffbootstate3",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18417
          },
          {
            "id":"ffbootstate4",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18418
          },
          {
            "id":"ffbootstate5",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18419
          },
          {
            "id":"ffbootstate6",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18420
          },
          {
            "id":"ffbootstate7",
            "compact":0,
            "type":1,
            "max":1,
            "descr":"This is the state the flip flop assumes when controller powers on.",
            "address":18421
          },
          {
            "id":"usererrortype2",
            "type":8,
            "options":[
              "Non-latching",
              "Latching"
            ],
            "address":"usererrorconf.1.1",
            "compact":0,
            "descr":"If non-latching, the error is cleared as soon as the conditions to set it are no longer present. If latching, the error stays set until cleared manually, usually by powering off the ECU."
          },
          {
            "id":"usererrortype3",
            "type":8,
            "options":[
              "Non-latching",
              "Latching"
            ],
            "address":"usererrorconf.2.2",
            "compact":0,
            "descr":"If non-latching, the error is cleared as soon as the conditions to set it are no longer present. If latching, the error stays set until cleared manually, usually by powering off the ECU."
          },
          {
            "id":"usererrortype4",
            "type":8,
            "options":[
              "Non-latching",
              "Latching"
            ],
            "address":"usererrorconf.3.3",
            "compact":0,
            "descr":"If non-latching, the error is cleared as soon as the conditions to set it are no longer present. If latching, the error stays set until cleared manually, usually by powering off the ECU."
          },
          {
            "id":"usererrorsource2",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"The user defined errors would usually be triggered by one of the logic conditions. Intended for creating a custom set of conditions to trigger engine protection mode and\/or illuminated the check engine light.",
            "address":18423
          },
          {
            "id":"usererrorsource3",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"The user defined errors would usually be triggered by one of the logic conditions. Intended for creating a custom set of conditions to trigger engine protection mode and\/or illuminated the check engine light.",
            "address":18424
          },
          {
            "id":"usererrorsource4",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"The user defined errors would usually be triggered by one of the logic conditions. Intended for creating a custom set of conditions to trigger engine protection mode and\/or illuminated the check engine light.",
            "address":18425
          }
        ]
      },
      {
        "page":1,
        "size":24576,
        "data":[
          {
            "id":"comments",
            "type":7,
            "array":4000,
            "compressed":1,
            "address":5
          },
          {
            "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":4005
          },
          {
            "id":"usererrordescr1",
            "type":7,
            "array":50,
            "descr":"This field allows you to enter a text description of the user defined error, up to 50 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":4581
          },
          {
            "id":"usererrordescr2",
            "type":7,
            "array":50,
            "descr":"This field allows you to enter a text description of the user defined error, up to 50 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":4631
          },
          {
            "id":"usererrordescr3",
            "type":7,
            "array":50,
            "descr":"This field allows you to enter a text description of the user defined error, up to 50 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":4681
          },
          {
            "id":"usererrordescr4",
            "type":7,
            "array":50,
            "descr":"This field allows you to enter a text description of the user defined error, up to 50 characters. This description is stored in the ECU so it is not lost if the configuration file gets lost.",
            "address":4731
          },
          {
            "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":4781
          },
          {
            "id":"customformula1",
            "type":7,
            "array":128,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                1,
                "customformula1",
                "customformula1compiled"
              ]
            ],
            "address":4785
          },
          {
            "id":"customformula2",
            "type":7,
            "array":128,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                1,
                "customformula2",
                "customformula2compiled"
              ]
            ],
            "address":4913
          },
          {
            "id":"customformula3",
            "type":7,
            "array":128,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                1,
                "customformula3",
                "customformula3compiled"
              ]
            ],
            "address":5041
          },
          {
            "id":"customformula4",
            "type":7,
            "array":128,
            "compressed":1,
            "onchange":[
              [
                "compileexpression",
                1,
                "customformula4",
                "customformula4compiled"
              ]
            ],
            "address":5169
          },
          {
            "id":"customformula1compiled",
            "type":3,
            "array":20,
            "address":5300
          },
          {
            "id":"customformula2compiled",
            "type":3,
            "array":20,
            "address":5380
          },
          {
            "id":"customformula3compiled",
            "type":3,
            "array":20,
            "address":5460
          },
          {
            "id":"customformula4compiled",
            "type":3,
            "array":20,
            "address":5540
          },
          {
            "id":"cantxformat",
            "maxwidth":2,
            "type":9,
            "array":128,
            "verbose":1,
            "rows":"cantxcount",
            "cols":4,
            "descr":"Data to be sent in the standard CAN format, 16 bit little endian.",
            "address":7756
          },
          {
            "id":"cantxinterval",
            "type":8,
            "options":"enum_cantxfreq",
            "array":32,
            "rows":"cantxcount",
            "descr":"Transmission rates of the different CAN groups, by CAN ID.",
            "address":8268
          },
          {
            "id":"cantxaddress",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"cantxcount",
            "address":8300
          },
          {
            "id":"canrxdescr",
            "type":8,
            "array":32,
            "rows":"canrxcount",
            "options":"map_datatypes",
            "address":8556
          },
          {
            "id":"canrxoffset",
            "type":1,
            "array":32,
            "rows":"canrxcount",
            "max":63,
            "descr":"Byte offset in packet to receive data from, with 0 being the first byte. This becomes bit offset when data type is bit so the range is then 0-63.",
            "address":8588
          },
          {
            "id":"canrxbits",
            "type":1,
            "array":64,
            "rows":"canrxcount",
            "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":10188
          },
          {
            "id":"canrxaddr",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"canrxcount",
            "address":8428
          },
          {
            "id":"canrxrange",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"canrxcount",
            "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":8620
          },
          {
            "id":"canrxoutput",
            "type":2,
            "array":64,
            "rows":"canrxcount",
            "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":8876
          },
          {
            "id":"canrxtimeout",
            "type":1,
            "array":32,
            "rows":"canrxcount",
            "unit":"sec",
            "digits":1,
            "scale":0.100000,
            "descr":"If no packet is received for each of these receptors for the configured timeout, an error is flagged and a default value is used instead. Set timeout to zero to disable the timeout.",
            "address":9132
          },
          {
            "id":"canrxdefault",
            "type":2,
            "array":32,
            "rows":"canrxcount",
            "descr":"Default values used on ECU power-on and if the timeout is exceeded for any of these receptors.",
            "address":9004
          },
          {
            "id":"canrxname",
            "type":7,
            "width":32,
            "array":32,
            "rows":"canrxcount",
            "descr":"Text description of each of the CAN receptors. For legibility of the configuration only, although this data is stored in ECU memory, ECU makes no use of it.",
            "address":9164
          },
          {
            "id":"customcanaddr",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"customcancount",
            "address":10252
          },
          {
            "id":"customcandata",
            "type":9,
            "array":128,
            "rows":"customcancount",
            "cols":4,
            "verbose":1,
            "address":10380
          },
          {
            "id":"customcanlength",
            "type":1,
            "array":32,
            "rows":"customcancount",
            "max":64,
            "descr":"The number of variables included in each custom CAN group. If greater than 4 then the group will consume configuration slots associated with the next group. For example if group 1 has 6 variables, the 2 extra variables are described by the configuration for the first two variables of group 2, effectively reducing the number of usable groups.",
            "address":11020
          },
          {
            "id":"customcaninterval",
            "type":8,
            "array":32,
            "rows":"customcancount",
            "options":"enum_ccantxfreq",
            "address":11052
          },
          {
            "id":"customcanformat",
            "type":8,
            "array":128,
            "rows":"customcancount",
            "cols":4,
            "options":"map_datatypes",
            "address":10892
          },
          {
            "id":"customcanrange",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcancount",
            "cols":8,
            "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":11084
          },
          {
            "id":"customcanoutput",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcancount",
            "cols":8,
            "descr":"If an input range is configured, this is the range the output will be scaled to for each of these variables.",
            "address":12108
          },
          {
            "id":"customcantxconds",
            "type":8,
            "array":32,
            "options":"map_inputs",
            "rows":"customcancount",
            "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":13548
          },
          {
            "id":"customcanchecksums",
            "type":8,
            "array":32,
            "options":[
              "None",
              "Honda"
            ],
            "rows":"customcancount",
            "descr":"These are manufacturer specific checksums applied to each CAN packet. Normally not needed but provided for the cases that do.",
            "address":13580
          },
          {
            "id":"customcantxbytes",
            "type":1,
            "array":32,
            "rows":"customcancount",
            "min":1,
            "max":8,
            "descr":"The payload length of the transmitted CAN packets, from 1 and up to 8 bytes.",
            "address":13516
          },
          {
            "id":"customcanfiller",
            "type":1,
            "array":256,
            "rows":"customcancount",
            "cols":8,
            "descr":"Insert any static values that do not change into this table. The CAN packet is initialised with this data before the configured payloads are inserted.",
            "address":13260
          },
          {
            "id":"customcanoffsets",
            "type":1,
            "array":128,
            "rows":"customcancount",
            "cols":4,
            "max":63,
            "descr":"Byte offset in frame where data is inserted (0-7), unless data type is bit, then this is bit offset from 0-63. Data that exceeds end of frame is not transmitted.",
            "address":13132
          },
          {
            "id":"customcanbitshifts",
            "type":1,
            "array":128,
            "rows":"customcancount",
            "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":13612
          },
          {
            "id":"customcanbitshort",
            "type":1,
            "array":128,
            "rows":"customcancount",
            "cols":4,
            "max":31,
            "descr":"If set to a non-zero value, the width of the variable is shortened to the desired custom bit width and then OR-ed into the buffer, preserving existing high bits.\r\nFor example a value of 12 will output a 12 bit wide variable.",
            "address":13740
          },
          {
            "id":"can2txformat",
            "maxwidth":2,
            "type":9,
            "array":128,
            "verbose":1,
            "rows":"can2txcount",
            "cols":4,
            "address":13872
          },
          {
            "id":"can2txinterval",
            "type":8,
            "options":"enum_cantxfreq",
            "array":32,
            "rows":"can2txcount",
            "address":14384
          },
          {
            "id":"can2txaddress",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"can2txcount",
            "address":14416
          },
          {
            "id":"can2rxdescr",
            "type":8,
            "array":32,
            "rows":"can2rxcount",
            "options":"map_datatypes",
            "address":14676
          },
          {
            "id":"can2rxoffset",
            "type":1,
            "array":32,
            "rows":"can2rxcount",
            "max":7,
            "address":14708
          },
          {
            "id":"can2rxaddr",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"can2rxcount",
            "address":14548
          },
          {
            "id":"can2rxrange",
            "type":3,
            "sign":1,
            "array":64,
            "rows":"can2rxcount",
            "cols":2,
            "address":14740
          },
          {
            "id":"can2rxoutput",
            "type":2,
            "array":64,
            "rows":"can2rxcount",
            "cols":2,
            "address":14996
          },
          {
            "id":"can2rxtimeout",
            "type":1,
            "array":32,
            "rows":"can2rxcount",
            "unit":"sec",
            "digits":1,
            "scale":0.100000,
            "address":15252
          },
          {
            "id":"can2rxdefault",
            "type":2,
            "array":32,
            "rows":"can2rxcount",
            "address":15124
          },
          {
            "id":"can2rxname",
            "type":7,
            "width":32,
            "array":32,
            "rows":"can2rxcount",
            "address":15348
          },
          {
            "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":15284
          },
          {
            "id":"customcan2addr",
            "hex":1,
            "type":3,
            "array":32,
            "rows":"customcan2count",
            "address":16372
          },
          {
            "id":"customcan2data",
            "type":9,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "verbose":1,
            "address":16500
          },
          {
            "id":"customcan2length",
            "type":1,
            "array":32,
            "rows":"customcan2count",
            "max":64,
            "address":17140
          },
          {
            "id":"customcan2interval",
            "type":8,
            "array":32,
            "rows":"customcan2count",
            "options":"enum_ccantxfreq",
            "address":17172
          },
          {
            "id":"customcan2format",
            "type":8,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "options":"map_datatypes",
            "address":17012
          },
          {
            "id":"customcan2range",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":17204
          },
          {
            "id":"customcan2output",
            "type":3,
            "sign":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":18228
          },
          {
            "id":"customcan2txbytes",
            "type":1,
            "array":32,
            "rows":"customcan2count",
            "min":1,
            "max":8,
            "address":19636
          },
          {
            "id":"customcan2filler",
            "type":1,
            "array":256,
            "rows":"customcan2count",
            "cols":8,
            "address":19380
          },
          {
            "id":"customcan2offsets",
            "type":1,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "max":63,
            "address":19252
          },
          {
            "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":19732
          },
          {
            "id":"customcan2txconds",
            "type":8,
            "array":32,
            "options":"map_inputs",
            "rows":"customcan2count",
            "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":19668
          },
          {
            "id":"customcan2bitshort",
            "type":1,
            "array":128,
            "rows":"customcan2count",
            "cols":4,
            "max":31,
            "descr":"If set to a non-zero value, the width of the variable is shortened to the desired custom bit width and then OR-ed into the buffer, preserving existing high bits.\r\nFor example a value of 12 will output a 12 bit wide variable.",
            "address":19860
          },
          {
            "id":"canrxfilter",
            "array":32,
            "rows":"canrxcount",
            "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":9068
          },
          {
            "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":15188
          },
          {
            "id":"customcancount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the custom CAN tables.",
            "address":13869
          },
          {
            "id":"customcan2count",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the custom CAN tables.",
            "address":14545
          },
          {
            "id":"canrxcount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the CAN receive tables.",
            "address":13868
          },
          {
            "id":"can2rxcount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the CAN receive tables.",
            "address":14544
          },
          {
            "id":"cantxcount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the CAN broadcast tables.",
            "address":13870
          },
          {
            "id":"can2txcount",
            "type":1,
            "max":32,
            "min":1,
            "descr":"This parameter specifies how many rows to display in the CAN broadcast tables.",
            "address":14546
          },
          {
            "id":"canseqoptions1",
            "type":1,
            "compact":0,
            "address":7748
          },
          {
            "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":7668
          },
          {
            "id":"canseqselect1",
            "type":8,
            "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":7700
          },
          {
            "id":"canseqenable1",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7708
          },
          {
            "id":"canseqlength1",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7716
          },
          {
            "id":"canseqdlc1",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7732
          },
          {
            "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":7724
          },
          {
            "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":7740
          },
          {
            "id":"canseq1",
            "type":1,
            "array":128,
            "rows":"canseqlength1",
            "cols":8,
            "address":5620
          },
          {
            "id":"canseq1alt",
            "type":1,
            "array":128,
            "rows":"canseqlength1",
            "cols":8,
            "address":5748
          },
          {
            "id":"canseq2",
            "type":1,
            "array":128,
            "rows":"canseqlength2",
            "cols":8,
            "address":5876
          },
          {
            "id":"canseq2alt",
            "type":1,
            "array":128,
            "rows":"canseqlength2",
            "cols":8,
            "address":6004
          },
          {
            "id":"canseq3",
            "type":1,
            "array":128,
            "rows":"canseqlength3",
            "cols":8,
            "address":6132
          },
          {
            "id":"canseq3alt",
            "type":1,
            "array":128,
            "rows":"canseqlength3",
            "cols":8,
            "address":6260
          },
          {
            "id":"canseq4",
            "type":1,
            "array":128,
            "rows":"canseqlength4",
            "cols":8,
            "address":6388
          },
          {
            "id":"canseq4alt",
            "type":1,
            "array":128,
            "rows":"canseqlength4",
            "cols":8,
            "address":6516
          },
          {
            "id":"canseq5",
            "type":1,
            "array":128,
            "rows":"canseqlength5",
            "cols":8,
            "address":6644
          },
          {
            "id":"canseq5alt",
            "type":1,
            "array":128,
            "rows":"canseqlength5",
            "cols":8,
            "address":6772
          },
          {
            "id":"canseq6",
            "type":1,
            "array":128,
            "rows":"canseqlength6",
            "cols":8,
            "address":6900
          },
          {
            "id":"canseq6alt",
            "type":1,
            "array":128,
            "rows":"canseqlength6",
            "cols":8,
            "address":7028
          },
          {
            "id":"canseq7",
            "type":1,
            "array":128,
            "rows":"canseqlength7",
            "cols":8,
            "address":7156
          },
          {
            "id":"canseq7alt",
            "type":1,
            "array":128,
            "rows":"canseqlength7",
            "cols":8,
            "address":7284
          },
          {
            "id":"canseq8",
            "type":1,
            "array":128,
            "rows":"canseqlength8",
            "cols":8,
            "address":7412
          },
          {
            "id":"canseq8alt",
            "type":1,
            "array":128,
            "rows":"canseqlength8",
            "cols":8,
            "address":7540
          },
          {
            "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":19988
          },
          {
            "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":20008
          },
          {
            "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":20012
          },
          {
            "id":"customobdcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"Custom OBD slots used.",
            "address":20016
          },
          {
            "id":"customobdpid",
            "type":1,
            "array":32,
            "rows":"customobdcount",
            "descr":"Specify a value of 0 for all entries that are not to be used.",
            "address":20017
          },
          {
            "id":"customobddata",
            "type":9,
            "array":32,
            "rows":"customobdcount",
            "verbose":1,
            "address":20052
          },
          {
            "id":"customobdformat",
            "type":8,
            "array":32,
            "rows":"customobdcount",
            "options":"map_bedatatypes",
            "address":20180
          },
          {
            "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":20212
          },
          {
            "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":20468
          },
          {
            "id":"canscanstartaddr",
            "min":1,
            "max":536870911,
            "hex":1,
            "type":3,
            "descr":"When a CAN scan is performed, this is the first CAN ID to transmit to.",
            "address":20724
          },
          {
            "id":"canscanendaddr",
            "min":1,
            "max":536870911,
            "hex":1,
            "type":3,
            "descr":"When a CAN scan reaches this ID, the scan is terminated.",
            "address":20728
          },
          {
            "id":"canscaninterval",
            "type":1,
            "unit":"ms",
            "descr":"Frame transmit interval for the CAN scan. Each frame transmitted has an ID one higher than the previous frame.",
            "address":20734
          },
          {
            "id":"canscanlength",
            "type":1,
            "min":1,
            "max":8,
            "descr":"Data length of CAN frames transmitted by the CAN scan function. Normally set to 8 bytes.",
            "address":20735
          },
          {
            "id":"canscancontent",
            "type":1,
            "array":8,
            "cols":"canscanlength",
            "descr":"These bytes make up the message payload of the CAN frames transmitted by the CAN scan function. It may be necessary to try some different payload values before a response is registered from the target device.",
            "address":20736
          },
          {
            "id":"canscanadder",
            "type":1,
            "array":8,
            "cols":"canscanlength",
            "descr":"When setting the CAN scan up to repeat frames before advancing the ID, these bytes can be added to the values prior to repeating.\r\nUpon advancing to the next ID, the data is reset to the specified values.",
            "address":20744
          },
          {
            "id":"canscanoptions",
            "type":2,
            "address":20732
          },
          {
            "id":"canscanbus",
            "type":8,
            "address":"canscanoptions.0.0",
            "options":[
              "CAN 1",
              "CAN 2"
            ]
          },
          {
            "id":"canscanrepeat",
            "type":1,
            "offset":1,
            "descr":"This option specifies number of packets to transmit to each ID before progressing to the next.",
            "address":20752
          },
          {
            "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":4037
          },
          {
            "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":4069
          },
          {
            "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":4101
          },
          {
            "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":4133
          },
          {
            "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":4165
          },
          {
            "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":4197
          },
          {
            "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":4229
          },
          {
            "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":4261
          },
          {
            "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":4293
          },
          {
            "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":4325
          },
          {
            "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":4357
          },
          {
            "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":4389
          },
          {
            "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":4421
          },
          {
            "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":4453
          },
          {
            "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":4485
          },
          {
            "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":4517
          },
          {
            "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":4549
          },
          {
            "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":4782
          },
          {
            "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":4783
          },
          {
            "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":4784
          },
          {
            "id":"canseqoptions2",
            "type":1,
            "compact":0,
            "address":7749
          },
          {
            "id":"canseqoptions3",
            "type":1,
            "compact":0,
            "address":7750
          },
          {
            "id":"canseqoptions4",
            "type":1,
            "compact":0,
            "address":7751
          },
          {
            "id":"canseqoptions5",
            "type":1,
            "compact":0,
            "address":7752
          },
          {
            "id":"canseqoptions6",
            "type":1,
            "compact":0,
            "address":7753
          },
          {
            "id":"canseqoptions7",
            "type":1,
            "compact":0,
            "address":7754
          },
          {
            "id":"canseqoptions8",
            "type":1,
            "compact":0,
            "address":7755
          },
          {
            "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":7672
          },
          {
            "id":"canseqid3",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7676
          },
          {
            "id":"canseqid4",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7680
          },
          {
            "id":"canseqid5",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7684
          },
          {
            "id":"canseqid6",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7688
          },
          {
            "id":"canseqid7",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7692
          },
          {
            "id":"canseqid8",
            "type":3,
            "compact":0,
            "hex":1,
            "address":7696
          },
          {
            "id":"canseqselect2",
            "type":8,
            "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":7701
          },
          {
            "id":"canseqselect3",
            "type":8,
            "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":7702
          },
          {
            "id":"canseqselect4",
            "type":8,
            "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":7703
          },
          {
            "id":"canseqselect5",
            "type":8,
            "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":7704
          },
          {
            "id":"canseqselect6",
            "type":8,
            "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":7705
          },
          {
            "id":"canseqselect7",
            "type":8,
            "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":7706
          },
          {
            "id":"canseqselect8",
            "type":8,
            "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":7707
          },
          {
            "id":"canseqenable2",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7709
          },
          {
            "id":"canseqenable3",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7710
          },
          {
            "id":"canseqenable4",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7711
          },
          {
            "id":"canseqenable5",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7712
          },
          {
            "id":"canseqenable6",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7713
          },
          {
            "id":"canseqenable7",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7714
          },
          {
            "id":"canseqenable8",
            "type":8,
            "options":"map_inputs",
            "compact":0,
            "descr":"This condition enables transmission of the sequence",
            "address":7715
          },
          {
            "id":"canseqlength2",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7717
          },
          {
            "id":"canseqlength3",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7718
          },
          {
            "id":"canseqlength4",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7719
          },
          {
            "id":"canseqlength5",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7720
          },
          {
            "id":"canseqlength6",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7721
          },
          {
            "id":"canseqlength7",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7722
          },
          {
            "id":"canseqlength8",
            "type":1,
            "compact":0,
            "min":1,
            "max":16,
            "descr":"Number of items in the sequence.",
            "address":7723
          },
          {
            "id":"canseqdlc2",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7733
          },
          {
            "id":"canseqdlc3",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7734
          },
          {
            "id":"canseqdlc4",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7735
          },
          {
            "id":"canseqdlc5",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7736
          },
          {
            "id":"canseqdlc6",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7737
          },
          {
            "id":"canseqdlc7",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7738
          },
          {
            "id":"canseqdlc8",
            "type":1,
            "compact":0,
            "max":8,
            "descr":"Number of data bytes per sent frame",
            "address":7739
          },
          {
            "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":7725
          },
          {
            "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":7726
          },
          {
            "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":7727
          },
          {
            "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":7728
          },
          {
            "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":7729
          },
          {
            "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":7730
          },
          {
            "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":7731
          },
          {
            "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":7741
          },
          {
            "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":7742
          },
          {
            "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":7743
          },
          {
            "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":7744
          },
          {
            "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":7745
          },
          {
            "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":7746
          },
          {
            "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":7747
          }
        ]
      },
      {
        "page":2,
        "size":24576,
        "data":[
          {
            "id":"cyl1fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":5
          },
          {
            "id":"cyl2fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":261
          },
          {
            "id":"cyl3fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":517
          },
          {
            "id":"cyl4fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":773
          },
          {
            "id":"cyl5fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":1029
          },
          {
            "id":"cyl6fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":1285
          },
          {
            "id":"cyl7fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":1541
          },
          {
            "id":"cyl8fuel",
            "type":1,
            "array":256,
            "scale":0.003333,
            "offset":200,
            "digits":3,
            "rows":"percylbincount",
            "cols":"fuelrpmbincount",
            "address":1797
          },
          {
            "id":"cyl1spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":2053
          },
          {
            "id":"cyl2spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":2309
          },
          {
            "id":"cyl3spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":2565
          },
          {
            "id":"cyl4spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":2821
          },
          {
            "id":"cyl5spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":3077
          },
          {
            "id":"cyl6spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":3333
          },
          {
            "id":"cyl7spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":3589
          },
          {
            "id":"cyl8spark",
            "unit":"°",
            "type":1,
            "sign":1,
            "array":256,
            "scale":0.087891,
            "digits":1,
            "rows":"percylbincount",
            "cols":"ignrpmbincount",
            "address":3845
          },
          {
            "id":"trailingignmap",
            "min":0,
            "max":30,
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"trailingloadbincount",
            "cols":"trailingrpmbincount",
            "array":256,
            "digits":1,
            "descr":"Typically used on Wankel rotary engines with two spark plugs per combustion chamber. This table defines how many degrees after the leading plug fires the trailing plug is fired",
            "address":4230
          },
          {
            "id":"trailingrpmbincount",
            "type":1,
            "max":32,
            "min":1,
            "address":4742
          },
          {
            "id":"trailingloadbincount",
            "type":1,
            "max":32,
            "min":1,
            "address":4743
          },
          {
            "id":"trailingrpmbins",
            "input":"enginespeed",
            "min":0,
            "max":65000,
            "type":2,
            "array":32,
            "cols":"trailingrpmbincount",
            "address":4166
          },
          {
            "id":"trailingloadbins",
            "type":2,
            "cols":"trailingloadbincount",
            "describedby":"trailingloadsource",
            "array":32,
            "address":4102
          },
          {
            "id":"trailingloadsource",
            "maxwidth":2,
            "type":9,
            "address":4744
          },
          {
            "id":"fuelsplitmap",
            "min":0,
            "max":100,
            "type":1,
            "unit":"%",
            "rows":"fuelsplitloadbincount",
            "cols":"fuelsplitrpmbincount",
            "array":256,
            "descr":"This map specifies the fraction of the total fuel to be delivered by the staged secondary injectors. At 0% the primary injectors deliver all of the fuel, at 100% the secondary injectors deliver all of the fuel and none is delivered by the primary injectors.",
            "address":4876
          },
          {
            "id":"fuelsplitrpmbincount",
            "type":1,
            "max":32,
            "min":1,
            "address":5132
          },
          {
            "id":"fuelsplitloadbincount",
            "type":1,
            "max":32,
            "min":1,
            "address":5133
          },
          {
            "id":"fuelsplitrpmbins",
            "input":"enginespeed",
            "min":0,
            "max":65000,
            "type":2,
            "array":32,
            "cols":"fuelsplitrpmbincount",
            "address":4812
          },
          {
            "id":"fuelsplitloadbins",
            "type":2,
            "cols":"fuelsplitloadbincount",
            "describedby":"fuelsplitloadsource",
            "array":32,
            "address":4748
          },
          {
            "id":"fuelsplitloadsource",
            "maxwidth":2,
            "type":9,
            "address":5136
          },
          {
            "id":"dbwenable",
            "type":3,
            "descr":"Set to zero or any other value to enable electronic throttle control.\r\nSet to 1234567890 if an electronic throttle is not fitted.",
            "address":6524
          },
          {
            "id":"etcpwmfreq",
            "min":200,
            "max":2000,
            "type":2,
            "scale":1000000,
            "inverse":1,
            "unit":"Hz",
            "address":6520
          },
          {
            "id":"etcserviceinterval",
            "type":1,
            "unit":"ms",
            "min":1,
            "descr":"The interval at which the electronic throttle control loop runs. This has an effect on the sensitivity of the I and D parts of the control loop.",
            "address":6436
          },
          {
            "id":"etcidlerange",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "descr":"This parameter specifies the throttle opening value added to the minimum opening value when the idle valve output of the idle control loop is at 100%",
            "address":6598
          },
          {
            "id":"etcmintgt",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":25,
            "min":0.100000,
            "scale":0.097752,
            "descr":"The minimum opening value must be a value greater than 0% and it must not be at the physical limit of the throttle actuator's movement. Typical value 2-5%",
            "address":6600
          },
          {
            "id":"etcmaxtgt",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":99.900000,
            "scale":0.097752,
            "descr":"The maximum opening value must be a value smaller than 100% and it must not be at the physical limit of the throttle actuator's movement. Where 100% is the physical maximum the actuator is capable of, most throttle bodies have the butterfly parallel to the flow (lest restriction) at 90%",
            "address":6602
          },
          {
            "id":"etcerrbins",
            "type":2,
            "sign":1,
            "digits":1,
            "array":12,
            "unit":"%",
            "scale":0.097752,
            "input":"etcposerr",
            "address":6438
          },
          {
            "id":"etcKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "digits":4,
            "address":6462
          },
          {
            "id":"etcKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "digits":4,
            "address":6486
          },
          {
            "id":"etcKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":6510
          },
          {
            "id":"etcImax",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "scale":0.003052,
            "address":6512
          },
          {
            "id":"etcImin",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "scale":0.003052,
            "address":6514
          },
          {
            "id":"etcminduty",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "min":-85,
            "max":85,
            "scale":0.003052,
            "address":6516
          },
          {
            "id":"etcmaxduty",
            "type":2,
            "sign":1,
            "digits":1,
            "max":85,
            "min":-85,
            "unit":"%",
            "scale":0.003052,
            "address":6518
          },
          {
            "id":"etcbdtpbins",
            "type":2,
            "digits":1,
            "array":16,
            "scale":"0.0977517106549364613880742913001",
            "unit":"%",
            "max":100,
            "input":"etctarget",
            "address":6404
          },
          {
            "id":"etctargetposfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"This value induces an exponential decay filter on the throttle target as requested by accelerator pedal. Evaluated every time the throttle PID loop runs.\r\nThis value acts when throttle target is increasing and a value of 0 means no filtering is done, a value of 50% means half of the difference is thrown away on each cycle.\r\nThe purpose of this filter is for improved drivability, the filter produces a smoother increase in torque when throttle input is increased.",
            "address":6604
          },
          {
            "id":"etctargetnegfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"This value induces an exponential decay filter on the throttle target as requested by accelerator pedal. Evaluated every time the throttle PID loop runs.\r\nThis value acts when throttle target is decreasing and a value of 0 means no filtering is done, a value of 50% means half of the difference is thrown away on each cycle.\r\nThe purpose of this filter is for improved drivability, the filter produces a smoother decrease in torque when throttle input is decreased.",
            "address":6606
          },
          {
            "id":"etc2targetposfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"This value induces an exponential decay filter on the throttle target as requested by accelerator pedal. Evaluated every time the throttle PID loop runs.\r\nThis value acts when throttle target is increasing and a value of 0 means no filtering is done, a value of 50% means half of the difference is thrown away on each cycle.\r\nThe purpose of this filter is for improved drivability, the filter produces a smoother increase in torque when throttle input is increased.",
            "address":6852
          },
          {
            "id":"etc2targetnegfilter",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"This value induces an exponential decay filter on the throttle target as requested by accelerator pedal. Evaluated every time the throttle PID loop runs.\r\nThis value acts when throttle target is decreasing and a value of 0 means no filtering is done, a value of 50% means half of the difference is thrown away on each cycle.\r\nThe purpose of this filter is for improved drivability, the filter produces a smoother decrease in torque when throttle input is decreased.",
            "address":6854
          },
          {
            "id":"etcbaseduty",
            "type":2,
            "digits":2,
            "sign":1,
            "unit":"%",
            "array":16,
            "scale":0.003052,
            "address":6372
          },
          {
            "id":"etc2pwmfreq",
            "min":200,
            "max":2000,
            "type":2,
            "scale":1000000,
            "inverse":1,
            "unit":"Hz",
            "address":6756
          },
          {
            "id":"etc2idlerange",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "descr":"This parameter specifies the throttle opening value added to the minimum opening value when the idle valve output of the idle control loop is at 100%",
            "address":6846
          },
          {
            "id":"etc2mintgt",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":25,
            "min":0.100000,
            "scale":0.097752,
            "descr":"The minimum opening value must be a value greater than 0% and it must not be at the physical limit of the throttle actuator's movement. Typical value 2-5%",
            "address":6848
          },
          {
            "id":"etc2maxtgt",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":99.900000,
            "scale":0.097752,
            "descr":"The maximum opening value must be a value smaller than 100% and it must not be at the physical limit of the throttle actuator's movement. Where 100% is the physical maximum the actuator is capable of, most throttle bodies have the butterfly parallel to the flow (lest restriction) at 90%",
            "address":6850
          },
          {
            "id":"etc2errbins",
            "type":2,
            "sign":1,
            "digits":1,
            "array":12,
            "unit":"%",
            "scale":0.097752,
            "input":"etcposerr",
            "address":6674
          },
          {
            "id":"etc2Kp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "digits":4,
            "address":6698
          },
          {
            "id":"etc2Ki",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "array":12,
            "digits":4,
            "address":6722
          },
          {
            "id":"etc2Kd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":6746
          },
          {
            "id":"etc2Imax",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "scale":0.003052,
            "address":6748
          },
          {
            "id":"etc2Imin",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "scale":0.003052,
            "address":6750
          },
          {
            "id":"etc2minduty",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"%",
            "min":-85,
            "max":85,
            "scale":0.003052,
            "address":6752
          },
          {
            "id":"etc2maxduty",
            "type":2,
            "sign":1,
            "digits":1,
            "max":85,
            "min":-85,
            "unit":"%",
            "scale":0.003052,
            "address":6754
          },
          {
            "id":"etc2bdtpbins",
            "type":2,
            "digits":1,
            "array":16,
            "scale":"0.0977517106549364613880742913001",
            "unit":"%",
            "max":100,
            "input":"etctarget",
            "address":6642
          },
          {
            "id":"etc2baseduty",
            "type":2,
            "digits":2,
            "sign":1,
            "unit":"%",
            "array":16,
            "scale":0.003052,
            "address":6610
          },
          {
            "id":"etcoptions",
            "type":1,
            "address":13259
          },
          {
            "id":"etcditherenable",
            "type":8,
            "address":"etcoptions.0.0",
            "options":"enum_enabled",
            "descr":"The dither superimposes a low frequency waveform on top of the high frequency PWM waveform, with the objective of keeping the throttle blade in microscopic motion to prevent stiction. Usually only necessary if the return spring is very light when operating at small throttle openings."
          },
          {
            "id":"etcmodenable",
            "type":8,
            "address":"etcoptions.1.1",
            "options":"enum_enabled",
            "descr":"If these modifiers are enabled, the PID parameters may be tuned depending on throttle position. Useful to gain fine control at low throttle valve openings without sacrificing stability at large throttle openings."
          },
          {
            "id":"etcdumbsecondary",
            "type":8,
            "address":"etcoptions.2.2",
            "options":"enum_enabled",
            "descr":"Some poorly designed electronic throttle bodies have a secondary position sensor that does not cover the entire range of travel. This option allows the primary\/secondary correlation checking to be disabled when the primary reads a value greater than the secondary is able to accurately register."
          },
          {
            "id":"etcdual",
            "type":8,
            "address":"etcoptions.3.3",
            "options":"enum_enabled",
            "descr":"A second throttle body can be driven by an external H bridge driver, either utilising two outputs (PWM and polarity) or via CAN."
          },
          {
            "id":"etc_dual_unidentical",
            "type":8,
            "address":"etcoptions.4.4",
            "options":[
              "Identical",
              "Different"
            ],
            "descr":"In simple setups, if the two throttle bodies used are identical then it may be possible to use identical settings for both throttle bodies. Otherwise if you require individual control of the parameters of each throttle body select different"
          },
          {
            "id":"etc2ditherenable",
            "type":8,
            "address":"etcoptions.5.5",
            "options":"enum_enabled"
          },
          {
            "id":"etc2modenable",
            "type":8,
            "address":"etcoptions.6.6",
            "options":"enum_enabled"
          },
          {
            "id":"etc2dumbsecondary",
            "type":8,
            "address":"etcoptions.7.7",
            "options":"enum_enabled"
          },
          {
            "id":"etcsecondarymax",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":100.000000,
            "scale":0.097752,
            "descr":"If the range limited secondary option is enabled, the primary\/secondary throttle position correlation checking is disabled when the primary position is greater than this value.",
            "address":6608
          },
          {
            "id":"etcditherfrequency",
            "type":1,
            "min":"10",
            "max":"100",
            "unit":"Hz",
            "scale":500,
            "inverse":1,
            "descr":"The frequency of the dither waveform, if enabled. Typical values 30-50Hz.",
            "address":13258
          },
          {
            "id":"etcmodposbins",
            "type":2,
            "unit":"%",
            "array":12,
            "scale":"0.0977517106549364613880742913001",
            "digits":1,
            "input":"throttle",
            "descr":"Throttle position breakpoints used for dither and PID gain modifiers",
            "address":13138
          },
          {
            "id":"etcdither",
            "type":2,
            "unit":"%",
            "array":12,
            "digits":1,
            "scale":0.003052,
            "max":25,
            "address":13162
          },
          {
            "id":"etcPmod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":13186
          },
          {
            "id":"etcImod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":13210
          },
          {
            "id":"etcDmod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":13234
          },
          {
            "id":"pedalprimaryrange",
            "type":2,
            "array":2,
            "describedby":"appsrc",
            "address":6294
          },
          {
            "id":"pedalprimarylimits",
            "type":2,
            "array":2,
            "describedby":"appsrc",
            "address":6298
          },
          {
            "id":"pedalsecondarylimits",
            "type":2,
            "array":2,
            "describedby":"appsecsrc",
            "address":6302
          },
          {
            "id":"pedalsecondarypoints",
            "type":1,
            "min":2,
            "max":16,
            "address":6306
          },
          {
            "id":"pedalsecondaryvolts",
            "type":2,
            "array":16,
            "cols":"pedalsecondarypoints",
            "describedby":"appsecsrc",
            "address":6308
          },
          {
            "id":"pedalsecondarypos",
            "type":2,
            "array":16,
            "cols":"pedalsecondarypoints",
            "unit":"%",
            "digits":1,
            "max":100,
            "scale":0.097752,
            "address":6340
          },
          {
            "id":"throttleseclimits",
            "type":2,
            "array":2,
            "describedby":"etpsecsrc",
            "address":6528
          },
          {
            "id":"throttlesecpoints",
            "type":1,
            "min":2,
            "max":16,
            "address":6532
          },
          {
            "id":"throttlesecvolts",
            "type":2,
            "array":16,
            "cols":"throttlesecpoints",
            "describedby":"etpsecsrc",
            "address":6534
          },
          {
            "id":"throttlesecpos",
            "type":2,
            "array":16,
            "cols":"throttlesecpoints",
            "unit":"%",
            "digits":1,
            "max":100,
            "scale":0.097752,
            "address":6566
          },
          {
            "id":"etcpedalbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":6293
          },
          {
            "id":"etcspeedbincount",
            "type":1,
            "min":1,
            "max":32,
            "address":6292
          },
          {
            "id":"etcspeedbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":32,
            "cols":"etcspeedbincount",
            "address":6164
          },
          {
            "id":"etcpedalbins",
            "type":2,
            "unit":"%",
            "digits":1,
            "input":"app",
            "array":32,
            "scale":0.097752,
            "cols":"etcpedalbincount",
            "address":6228
          },
          {
            "id":"etctargets",
            "type":2,
            "unit":"%",
            "digits":1,
            "array":256,
            "rows":"etcpedalbincount",
            "cols":"etcspeedbincount",
            "scale":0.097752,
            "address":5140
          },
          {
            "id":"etc2secondarymax",
            "type":2,
            "unit":"%",
            "digits":1,
            "max":100.000000,
            "scale":0.097752,
            "descr":"If the range limited secondary option is enabled, the primary\/secondary throttle position correlation checking is disabled when the primary position is greater than this value.",
            "address":6856
          },
          {
            "id":"etc2ditherfrequency",
            "type":1,
            "min":"10",
            "max":"100",
            "unit":"Hz",
            "scale":500,
            "inverse":1,
            "descr":"The frequency of the dither waveform, if enabled. Typical values 30-50Hz.",
            "address":6978
          },
          {
            "id":"etc2modposbins",
            "type":2,
            "unit":"%",
            "array":12,
            "scale":"0.0977517106549364613880742913001",
            "digits":1,
            "input":"throttle",
            "descr":"Throttle position breakpoints used for dither and PID gain modifiers",
            "address":6858
          },
          {
            "id":"etc2dither",
            "type":2,
            "unit":"%",
            "array":12,
            "digits":1,
            "scale":0.003052,
            "max":25,
            "address":6882
          },
          {
            "id":"etc2Pmod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":6906
          },
          {
            "id":"etc2Imod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":6930
          },
          {
            "id":"etc2Dmod",
            "type":2,
            "digits":3,
            "scale":0.000978,
            "array":12,
            "address":6954
          },
          {
            "id":"etc2targets",
            "type":2,
            "unit":"%",
            "digits":1,
            "array":256,
            "rows":"etcpedalbincount",
            "cols":"etcspeedbincount",
            "scale":0.097752,
            "address":5652
          },
          {
            "id":"inletvvtalttarget",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":6980
          },
          {
            "id":"exhaustvvtalttarget",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":8004
          },
          {
            "id":"inletvvtalttarget2",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":7492
          },
          {
            "id":"exhaustvvtalttarget2",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "rows":"vvtloadbincount",
            "cols":"vvtspeedbincount",
            "array":256,
            "digits":1,
            "address":8516
          },
          {
            "id":"mafptcount",
            "type":1,
            "min":1,
            "max":128,
            "address":9028
          },
          {
            "id":"mafbreakpts",
            "type":2,
            "describedby":"mafsource",
            "array":128,
            "cols":"mafptcount",
            "address":9030
          },
          {
            "id":"mafcurve",
            "type":2,
            "unit":"g\/s",
            "scale":0.020000,
            "digits":2,
            "array":128,
            "cols":"mafptcount",
            "address":9286
          },
          {
            "id":"mafsource",
            "type":9,
            "maxwidth":2,
            "descr":"If using a frequency output MAF sensor, select the corresponding frequency input (din1freq for example) and make sure the input pin is configured as a frequency input. For an analog sensor just select the correct analog input.",
            "address":9544
          },
          {
            "id":"mafrange",
            "type":2,
            "describedby":"mafsource",
            "array":2,
            "address":9548
          },
          {
            "id":"alsopts",
            "type":2,
            "address":9552
          },
          {
            "id":"als_enable",
            "type":8,
            "address":"alsopts.0.0",
            "options":"enum_enabled"
          },
          {
            "id":"als_override_idle",
            "type":8,
            "address":"alsopts.1.1",
            "options":"enum_enabled"
          },
          {
            "id":"als_override_wastegate",
            "type":8,
            "address":"alsopts.2.2",
            "options":"enum_enabled"
          },
          {
            "id":"als_timingmode",
            "type":8,
            "address":"alsopts.3.3",
            "options":[
              "Additive trim",
              "Maximum advance"
            ],
            "descr":"In additive trim mode, the anti lag timing values are added to the final ignition timing advance. In maximum advance mode, the anti lag timing values specify the maximum permitted ignition advance while anti lag is active."
          },
          {
            "id":"als_coolidle",
            "type":8,
            "address":"alsopts.4.4",
            "options":"enum_enabled",
            "descr":"Cool down idle (sometimes known as rotating idle) is a strategy where the ECU imposes a rev limit to keep the idle speed in place. The major use case is where the throttle body has been permanently opened to a position that would otherwise make the engine idle too fast but is necessary to enable anti lag to work properly.\r\nA side effect is it produces a high flow of cool exhaust gas."
          },
          {
            "id":"als_coolidle_always",
            "type":8,
            "address":"alsopts.5.5",
            "options":[
              "After anti lag use",
              "Always"
            ],
            "descr":"Set this to Always if no anti lag valve is fitted and throttle is fixed open to facilitate anti lag operation."
          },
          {
            "id":"alsentrytps",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "address":9554
          },
          {
            "id":"alsexittps",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "address":9556
          },
          {
            "id":"alstimeoutcleartps",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "descr":"Throttle position must exceed this value to re-enable anti lag after it has been disabled by timeout",
            "address":10572
          },
          {
            "id":"alscdidlemaxtp",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "address":10586
          },
          {
            "id":"alsrpmbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":16,
            "cols":"alsrpmbincount",
            "address":9558
          },
          {
            "id":"alstpbins",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "array":8,
            "input":"throttle",
            "cols":"alstpbincount",
            "address":9590
          },
          {
            "id":"alsrpmbincount",
            "type":1,
            "min":1,
            "max":16,
            "address":10566
          },
          {
            "id":"alstpbincount",
            "type":1,
            "min":1,
            "max":8,
            "address":10567
          },
          {
            "id":"alsswitch",
            "type":8,
            "options":"map_inputs",
            "address":10562
          },
          {
            "id":"alstimeout",
            "type":2,
            "unit":"s",
            "digits":1,
            "scale":0.001000,
            "address":10564
          },
          {
            "id":"alscdidlespeed",
            "type":2,
            "array":4,
            "input":"enginespeed",
            "unit":"RPM",
            "address":10578
          },
          {
            "id":"alswgduty",
            "type":2,
            "unit":"%",
            "digits":1,
            "scale":0.003052,
            "array":16,
            "cols":"alsrpmbincount",
            "address":9606
          },
          {
            "id":"alsbypass",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":16,
            "cols":"alsrpmbincount",
            "address":9638
          },
          {
            "id":"alsidle",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "array":16,
            "cols":"alsrpmbincount",
            "max":100,
            "address":9654
          },
          {
            "id":"alsfuel",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":64,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "address":9686
          },
          {
            "id":"alsign",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"°",
            "array":64,
            "scale":0.010986,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "min":-90,
            "max":90,
            "address":9814
          },
          {
            "id":"alsbypass2",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":16,
            "cols":"alsrpmbincount",
            "address":9942
          },
          {
            "id":"alsidle2",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "array":16,
            "cols":"alsrpmbincount",
            "max":100,
            "address":9958
          },
          {
            "id":"alsfuel2",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":64,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "address":9990
          },
          {
            "id":"alsign2",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"°",
            "array":64,
            "scale":0.010986,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "min":-90,
            "max":90,
            "address":10118
          },
          {
            "id":"alsbypass3",
            "type":1,
            "unit":"%",
            "digits":1,
            "scale":0.392157,
            "array":16,
            "cols":"alsrpmbincount",
            "address":10246
          },
          {
            "id":"alsidle3",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "array":16,
            "cols":"alsrpmbincount",
            "max":100,
            "address":10262
          },
          {
            "id":"alsfuel3",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":64,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "address":10294
          },
          {
            "id":"alsign3",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"°",
            "array":64,
            "scale":0.010986,
            "rows":"alstpbincount",
            "cols":"alsrpmbincount",
            "min":-90,
            "max":90,
            "address":10422
          },
          {
            "id":"alsegt_exit",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"egt1",
            "address":10550
          },
          {
            "id":"alsegt_reset",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"egt1",
            "address":10552
          },
          {
            "id":"alsect_exit",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"coolanttemp",
            "address":10554
          },
          {
            "id":"alsect_reset",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"coolanttemp",
            "address":10556
          },
          {
            "id":"alsiat_exit",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"airtemp",
            "address":10558
          },
          {
            "id":"alsiat_reset",
            "type":2,
            "digits":1,
            "scale":0.100000,
            "offset":-2731,
            "unit":"°C",
            "input":"airtemp",
            "address":10560
          },
          {
            "id":"alstimeout",
            "type":2,
            "unit":"s",
            "digits":1,
            "scale":0.001000,
            "address":10564
          },
          {
            "id":"alscdidlemaxtp",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "max":100,
            "input":"effectiveapp",
            "address":10586
          },
          {
            "id":"alscdidletpsbins",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "input":"effectiveapp",
            "digits":1,
            "max":100,
            "array":4,
            "address":10602
          },
          {
            "id":"alsminrpmenable",
            "type":2,
            "unit":"RPM",
            "address":10568
          },
          {
            "id":"alsminrpmdisable",
            "type":2,
            "unit":"RPM",
            "address":10570
          },
          {
            "id":"alstimeoutcleartps",
            "type":2,
            "unit":"%",
            "max":100,
            "scale":0.097656,
            "digits":1,
            "input":"throttle",
            "address":10572
          },
          {
            "id":"alspwmoff",
            "type":1,
            "unit":"%",
            "scale":0.392157,
            "digits":1,
            "address":10574
          },
          {
            "id":"alspwmfreq",
            "type":2,
            "min":1,
            "max":200,
            "scale":250000,
            "inverse":1,
            "unit":"Hz",
            "address":10576
          },
          {
            "id":"alscdidlespeed",
            "type":2,
            "array":4,
            "unit":"RPM",
            "address":10578
          },
          {
            "id":"alscdidlerange",
            "type":2,
            "unit":"RPM",
            "descr":"This parameter specifies how far below the idle speed limit the control strategy starts to limit engine power.",
            "address":10600
          },
          {
            "id":"alscdidlerotate",
            "type":2,
            "unit":"ms",
            "descr":"This parameter specifies the interval at which the injection cut pattern is rotated to keep all cylinders at an equal temperature.",
            "address":10598
          },
          {
            "id":"alscdidlevalve",
            "type":2,
            "unit":"%",
            "scale":0.097656,
            "digits":1,
            "max":100,
            "address":10588
          },
          {
            "id":"alscdidlefuel",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"This is a multiplier so a value of 1.000 means normal fuelling and 1.100 is a 10% increase. Some increase may be necessary to account for wall wetting at idle.",
            "address":10590
          },
          {
            "id":"alscdidleignadv",
            "type":2,
            "sign":1,
            "digits":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "min":-90,
            "max":90,
            "address":10592
          },
          {
            "id":"alscdidletimeout",
            "type":2,
            "unit":"s",
            "digits":1,
            "scale":0.100000,
            "descr":"If cool down idle is restricted to after anti lag use, it will be disabled once this time has passed.",
            "address":10594
          },
          {
            "id":"alscdidlert",
            "type":2,
            "unit":"s",
            "digits":1,
            "scale":0.001000,
            "input":"runtime",
            "address":10596
          },
          {
            "id":"lambdasource",
            "type":9,
            "maxwidth":2,
            "address":10612
          },
          {
            "id":"lambdaptcount",
            "type":1,
            "min":1,
            "max":32,
            "address":10610
          },
          {
            "id":"lambdavoltages",
            "type":2,
            "array":32,
            "cols":"lambdaptcount",
            "describedby":"lambdasource",
            "address":10616
          },
          {
            "id":"lambdavalues",
            "type":2,
            "array":32,
            "cols":"lambdaptcount",
            "scale":0.001000,
            "digits":3,
            "address":10680
          },
          {
            "id":"lambdavrange",
            "type":2,
            "array":2,
            "describedby":"lambdasource",
            "address":10744
          },
          {
            "id":"lambda2source",
            "type":9,
            "maxwidth":2,
            "address":10752
          },
          {
            "id":"lambda2ptcount",
            "type":1,
            "min":1,
            "max":32,
            "address":10748
          },
          {
            "id":"lambda2voltages",
            "type":2,
            "array":32,
            "cols":"lambda2ptcount",
            "describedby":"lambda2source",
            "address":10756
          },
          {
            "id":"lambda2values",
            "type":2,
            "array":32,
            "cols":"lambda2ptcount",
            "scale":0.001000,
            "digits":3,
            "address":10820
          },
          {
            "id":"lambda2vrange",
            "type":2,
            "array":2,
            "describedby":"lambda2source",
            "address":10884
          },
          {
            "id":"shiftlogic",
            "type":1,
            "array":18,
            "cols":6,
            "rows":3,
            "max":1,
            "address":10889
          },
          {
            "id":"shiftspeedsrc",
            "type":9,
            "maxwidth":2,
            "address":10912
          },
          {
            "id":"shiftloadsrc",
            "type":9,
            "maxwidth":2,
            "address":10908
          },
          {
            "id":"gearselectorsrc",
            "type":9,
            "maxwidth":2,
            "address":11064
          },
          {
            "id":"shiftspeeds",
            "type":2,
            "array":60,
            "cols":10,
            "rows":6,
            "describedby":"shiftspeedsrc",
            "address":10938
          },
          {
            "id":"gearselvoltages",
            "type":2,
            "array":7,
            "describedby":"gearselectorsrc",
            "address":11068
          },
          {
            "id":"gselserviceint",
            "type":1,
            "unit":"ms",
            "min":1,
            "descr":"This option specifies how frequently the value of the gear shift input is polled.\r\nTo prevent glitches the state of the gear shift is updated only when the value has remained the same for two consecutive iterations of the service.",
            "address":11082
          },
          {
            "id":"shiftloadbins",
            "type":2,
            "array":10,
            "describedby":"shiftloadsrc",
            "address":10918
          },
          {
            "id":"aftershiftholdoff",
            "type":2,
            "unit":"ms",
            "descr":"For this duration after a shift is commenced, another shift is prevented.",
            "address":10916
          },
          {
            "id":"shiftmaxrpm",
            "type":2,
            "unit":"RPM",
            "array":3,
            "descr":"When engine speed exceeds this value, an upshift is commanded regardless of commanded upshift speed, but only if downshift speed permits.",
            "address":11058
          },
          {
            "id":"transctlmode",
            "type":8,
            "options":[
              "Disabled",
              "Basic auto trans"
            ],
            "address":10888
          },
          {
            "id":"lockupminspeed",
            "type":2,
            "array":4,
            "describedby":"shiftspeedsrc",
            "address":11088
          },
          {
            "id":"lockupdelay",
            "type":2,
            "unit":"ms",
            "address":11086
          },
          {
            "id":"lockupminload",
            "type":2,
            "describedby":"shiftloadsrc",
            "address":11096
          },
          {
            "id":"lockupmaxload",
            "type":2,
            "describedby":"shiftloadsrc",
            "address":11098
          },
          {
            "id":"lockuploadhysteresis",
            "type":2,
            "describedby":"shiftloadsrc",
            "address":11100
          },
          {
            "id":"lockupspeedhysteresis",
            "type":2,
            "describedby":"shiftspeedsrc",
            "address":11102
          },
          {
            "id":"atmanualmodeinput",
            "type":8,
            "options":"map_inputs",
            "address":11104
          },
          {
            "id":"atupshifttoggle",
            "type":8,
            "options":"map_inputs",
            "address":11105
          },
          {
            "id":"atdownshifttoggle",
            "type":8,
            "options":"map_inputs",
            "address":11106
          },
          {
            "id":"oilpsrc",
            "type":9,
            "maxwidth":2,
            "address":11252
          },
          {
            "id":"oilpvoltages",
            "type":2,
            "array":2,
            "describedby":"oilpsrc",
            "address":11264
          },
          {
            "id":"oilpvalidrange",
            "type":2,
            "array":2,
            "describedby":"oilpsrc",
            "address":11268
          },
          {
            "id":"oilpvalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "address":11260
          },
          {
            "id":"oilpdefault",
            "type":2,
            "unit":"mbar",
            "address":11272
          },
          {
            "id":"pcpsrc",
            "type":9,
            "maxwidth":2,
            "address":13376
          },
          {
            "id":"pcpvoltages",
            "type":2,
            "array":2,
            "describedby":"pcpsrc",
            "address":13384
          },
          {
            "id":"pcpvalidrange",
            "type":2,
            "array":2,
            "describedby":"pcpsrc",
            "address":13388
          },
          {
            "id":"pcpvalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "address":13380
          },
          {
            "id":"pcpdefault",
            "type":2,
            "unit":"mbar",
            "address":13392
          },
          {
            "id":"prpsrc",
            "type":9,
            "maxwidth":2,
            "address":13396
          },
          {
            "id":"prpvoltages",
            "type":2,
            "array":2,
            "describedby":"prpsrc",
            "address":13404
          },
          {
            "id":"prpvalidrange",
            "type":2,
            "array":2,
            "describedby":"prpsrc",
            "address":13408
          },
          {
            "id":"prpvalues",
            "type":2,
            "array":2,
            "unit":"mbar",
            "address":13400
          },
          {
            "id":"prpdefault",
            "type":2,
            "unit":"mbar",
            "address":13412
          },
          {
            "id":"opspeedbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":11274
          },
          {
            "id":"opyaxsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Variable picker for Y axis of minimum oil pressure function. Normally oil temperature.",
            "address":11256
          },
          {
            "id":"opyaxis",
            "type":2,
            "array":8,
            "describedby":"opyaxsrc",
            "address":11290
          },
          {
            "id":"opminvalue",
            "type":2,
            "unit":"mbar",
            "input":"oilpress",
            "array":64,
            "rows":8,
            "cols":8,
            "address":11306
          },
          {
            "id":"optimeout",
            "type":2,
            "unit":"seconds",
            "scale":0.001000,
            "digits":2,
            "descr":"Time the oil pressure is allowed to be below the minimum value before engine is automatically shut off. A value of zero disables the shut off.",
            "address":11434
          },
          {
            "id":"opcheckminruntime",
            "type":2,
            "unit":"seconds",
            "scale":0.001000,
            "digits":2,
            "descr":"For how long the engine must be running before the oil pressure safety checks become active.",
            "address":11436
          },
          {
            "id":"oiltempsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Variable picker for oil temperature input. Typically one of the analog inputs.",
            "address":11440
          },
          {
            "id":"oiltempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"Specifies how many data points to use for the oil temperature sensor transfer function.",
            "address":11444
          },
          {
            "id":"oiltempvoltages",
            "type":2,
            "array":32,
            "describedby":"oiltempsrc",
            "cols":"oiltempbpcount",
            "descr":"The input breakpoints of the oil temperature sensor transfer function.",
            "address":11510
          },
          {
            "id":"oiltempvalidrange",
            "type":2,
            "array":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "descr":"Temperatures outside of this range are considered anomalies caused by a defective sensor.",
            "address":11574
          },
          {
            "id":"oiltempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"oiltempbpcount",
            "descr":"The output values of the oil temperature transfer function.",
            "address":11446
          },
          {
            "id":"oiltempdefault",
            "type":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "descr":"This default value is used if a fault is detected in the oil temperature sensor.",
            "address":11578
          },
          {
            "id":"fueltempsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Variable picker for fuel temperature input. Typically one of the analog inputs or the duty cycle component of a fuel composition sensor's output.",
            "address":17400
          },
          {
            "id":"fueltempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"Specifies how many data points to use for the fuel temperature sensor transfer function.",
            "address":17404
          },
          {
            "id":"fueltempraw",
            "type":2,
            "array":32,
            "describedby":"fueltempsrc",
            "cols":"fueltempbpcount",
            "descr":"The input breakpoints of the fuel temperature sensor transfer function.",
            "address":17470
          },
          {
            "id":"fueltempvalidrange",
            "type":2,
            "array":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "descr":"Temperatures outside of this range are considered anomalies caused by a defective sensor.",
            "address":17534
          },
          {
            "id":"fueltempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"fueltempbpcount",
            "descr":"The output values of the fuel temperature transfer function.",
            "address":17406
          },
          {
            "id":"fueltempdefault",
            "type":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "descr":"This default value is used if a fault is detected in the fuel temperature sensor.",
            "address":17538
          },
          {
            "id":"fuelcompsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Variable picker for fuel composition input. Typically a digital input frequency.",
            "address":17260
          },
          {
            "id":"fuelcompcalptcount",
            "type":1,
            "min":1,
            "max":32,
            "descr":"Specifies how many data points to use for the fuel composition sensor transfer function.",
            "address":17264
          },
          {
            "id":"fuelcompraw",
            "type":2,
            "array":32,
            "describedby":"fuelcompsrc",
            "cols":"fuelcompcalptcount",
            "descr":"The input breakpoints of the fuel composition sensor transfer function.",
            "address":17266
          },
          {
            "id":"fuelcompvalidrange",
            "type":2,
            "array":2,
            "describedby":"fuelcompsrc",
            "descr":"Input values outside of this range are considered anomalies caused by a defective sensor.",
            "address":17394
          },
          {
            "id":"fuelcompcal",
            "type":2,
            "array":32,
            "unit":"%",
            "scale":0.100000,
            "digits":1,
            "cols":"fuelcompcalptcount",
            "descr":"The output values of the fuel composition transfer function.",
            "address":17330
          },
          {
            "id":"fuelcompdefault",
            "type":2,
            "unit":"%",
            "scale":0.100000,
            "digits":1,
            "descr":"This default value is used if a fault is detected in the fuel composition sensor.",
            "address":17398
          },
          {
            "id":"transtempsrc",
            "type":9,
            "maxwidth":2,
            "address":11108
          },
          {
            "id":"transtempbpcount",
            "type":1,
            "min":1,
            "max":32,
            "address":11112
          },
          {
            "id":"transtempvoltages",
            "type":2,
            "array":32,
            "describedby":"transtempsrc",
            "cols":"transtempbpcount",
            "address":11178
          },
          {
            "id":"transtempvalidrange",
            "type":2,
            "array":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "address":11242
          },
          {
            "id":"transtempvalues",
            "type":2,
            "array":32,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "cols":"transtempbpcount",
            "address":11114
          },
          {
            "id":"transtempdefault",
            "type":2,
            "unit":"°C",
            "offset":-2731,
            "scale":0.100000,
            "digits":1,
            "address":11246
          },
          {
            "id":"engineenableinput",
            "type":8,
            "options":"map_inputs",
            "descr":"This option allows the engine to be shut off without interrupting power to ECU. Useful to allow fans and instrumentation to continue working after engine is shut off.\r\n",
            "address":13136
          },
          {
            "id":"altmainfuelmap",
            "unit":"mg\/cycle",
            "min":0,
            "max":650,
            "type":2,
            "scale":0.010000,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "digits":2,
            "variations":[
              [
                "fuelstrategy",
                "=",
                "Fuel mass"
              ],
              {
                "unit":"mg\/cycle",
                "endif":true
              },
              [
                "fuelstrategy",
                "=",
                "Air mass (VE)"
              ],
              {
                "unit":"%"
              }
            ],
            "address":11600
          },
          {
            "id":"altmainignmap",
            "min":-90,
            "max":90,
            "type":2,
            "sign":1,
            "unit":"°BTDC",
            "scale":0.010986,
            "rows":"ignpribincount",
            "cols":"ignrpmbincount",
            "array":256,
            "digits":1,
            "address":12624
          },
          {
            "id":"altsecondaryfuelmap",
            "type":2,
            "array":256,
            "scale":0.000977,
            "digits":3,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "address":12112
          },
          {
            "id":"bcd1src",
            "type":8,
            "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":11248
          },
          {
            "id":"cruiseoptions",
            "type":1,
            "address":13272
          },
          {
            "id":"cruise_continuous",
            "type":8,
            "options":[
              "Step",
              "Continuous"
            ],
            "address":"cruiseoptions.2.2",
            "descr":"In step mode (traditionally the only mode) the accel\/decel buttons for the cruise control will increase or decrease the speed by a set amount each time they are pressed.\r\nIn continuous mode, they will initially increase\/decrease the speed by the step size but if held longer than the specified delay they will continually adjust the speed at the configured rate until they are released. When they are released the current speed becomes the set speed."
          },
          {
            "id":"cruiseaccelrate",
            "type":1,
            "unit":"km\/h\/second",
            "variations":[
              [
                "cruise_enginespeedbased",
                "=",
                "Disabled"
              ],
              {
                "unit":"km\/h\/second",
                "endif":true
              },
              [
                "cruise_enginespeedbased",
                "!=",
                "Disabled"
              ],
              {
                "unit":"x10 RPM\/second"
              }
            ],
            "min":1,
            "max":20,
            "descr":"This setting only has an effect when continous acceleration is enabled.",
            "address":13274
          },
          {
            "id":"cruisecontinuousdelay",
            "type":1,
            "unit":"s",
            "digits":1,
            "scale":0.100000,
            "descr":"This setting specifies how long the accel\/decel buttons must be held to enter continuous accel\/decel mode.",
            "address":13273
          },
          {
            "id":"cruiseKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":13276
          },
          {
            "id":"cruiseKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":13278
          },
          {
            "id":"cruiseKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":13280
          },
          {
            "id":"cruiseImin",
            "type":2,
            "sign":1,
            "address":13282
          },
          {
            "id":"cruiseImax",
            "type":2,
            "sign":1,
            "descr":"Unlike most other control loops in the system, the cruise control provides no feed-forward mechanism,\r\nthus the cruise integrator max limit effectively sets how much accelerator pedal input the cruise control is allowed to use when maintaining set speed.",
            "address":13284
          },
          {
            "id":"cruiseminspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "descr":"Road speed must be greater than this value to enable cruise control. If operating cruise control by engine speed and no road speed reference is available, set this to zero.",
            "address":13286
          },
          {
            "id":"cruisedefaultspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "descr":"When the ECU powers up, this is the speed assigned to the cruise control so that if the resume button is used, this is the speed the car will cruise at until adjusted by accel\/decel or set.\r\nIf using engine speed for cruise control reference, there is a tenfold gain, as in, a value of 200 means 2000RPM",
            "address":13296
          },
          {
            "id":"cruiseserviceinterval",
            "type":1,
            "unit":"ms",
            "descr":"The interval at which the cruise control loop runs.",
            "address":13275
          },
          {
            "id":"cruisestep",
            "type":1,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "min":0.100000,
            "max":5,
            "descr":"This setting specifies the step increase\/decrease in speed when using the accel\/decel buttons during cruise control operation.\r\nWhen using engine speed for reference, there is a tenfold gain, so a value of 1 means 10RPM.",
            "address":13288
          },
          {
            "id":"cruiseenable",
            "type":8,
            "options":"enum_enabled",
            "address":"cruiseoptions.0.0"
          },
          {
            "id":"cruise_enginespeedbased",
            "type":8,
            "options":"enum_enabled",
            "address":"cruiseoptions.1.1",
            "descr":"This setting can be used to enable cruise control on a manual transmission car that does not have a vehicle speed sensor connected to the ECU."
          },
          {
            "id":"cruisemaxthrottle",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "max":100,
            "unit":"%",
            "descr":"Limits the maximum pedal input the cruise control can emulate.",
            "address":13292
          },
          {
            "id":"cruisemaxrpm",
            "type":2,
            "unit":"RPM",
            "descr":"If the engine speed exceeds this value, cruise control switches off. For engine protection in case neutral gear or clutch is depressed while cruise is active.",
            "address":13290
          },
          {
            "id":"cruiseoverspeed",
            "type":2,
            "unit":"km\/h",
            "digits":1,
            "scale":0.100000,
            "variations":[
              [
                "cruise_enginespeedbased",
                "=",
                "Disabled"
              ],
              {
                "unit":"km\/h",
                "digits":1,
                "scale":0.100000,
                "endif":true
              },
              [
                "cruise_enginespeedbased",
                "!=",
                "Disabled"
              ],
              {
                "unit":"RPM",
                "digits":0,
                "scale":1
              }
            ],
            "descr":"If the vehicle speed exceeds the cruise set point by this amount and the cruise control loop has already backed the simulated accelerator pedal off to zero, and the driver is not pressing the accelerator pedal, the cruise control coasting flag is set and may be used to activate an engine braking program or downshift the transmission or whatever is necessary to maintain correct speed down a hill. Once the speed reaches the correct value again or the driver presses the accelerator pedal this output deactivates.",
            "address":13298
          },
          {
            "id":"cruisesmoothing",
            "type":1,
            "scale":0.390588,
            "digits":1,
            "unit":"%",
            "descr":"For preventing sharp and unpleasant input from the cruise control, this smoothing filter is provided.\r\nIt is an exponential decay filter that updates at 5Hz like the cruise control PID loop. A value of 0 means no filtering is done, and as the values approach 100% the filtering gets gradually more aggressive.\r\nTypical values are in the range of 50-90%.",
            "address":13294
          },
          {
            "id":"cruisesource",
            "type":9,
            "maxwidth":2,
            "address":13260
          },
          {
            "id":"cruisebuttonmap",
            "type":2,
            "describedby":"cruisesource",
            "array":4,
            "cols":4,
            "address":13264
          },
          {
            "id":"countresetinput0",
            "compact":0,
            "type":8,
            "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":13309
          },
          {
            "id":"upcountinput0",
            "compact":0,
            "type":8,
            "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":13301
          },
          {
            "id":"downcountinput0",
            "compact":0,
            "type":8,
            "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":13305
          },
          {
            "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":13317
          },
          {
            "id":"downcountinput0",
            "compact":0,
            "type":8,
            "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":13305
          },
          {
            "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":13321
          },
          {
            "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":13313
          },
          {
            "id":"counterconf",
            "type":1,
            "address":13300
          },
          {
            "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":13325
          },
          {
            "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.\r\n'Set while active' means that the latch value is continually updated while the set input is active.\r\n'Leading edge' means the latch value is updated once when the set input activates.\r\n'Trailing edge means the latch value is updated when the set input deactivates.\r\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":13328
          },
          {
            "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":13344
          },
          {
            "id":"gplatchset1",
            "compact":0,
            "type":8,
            "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":13360
          },
          {
            "id":"gplatchreset1",
            "compact":0,
            "type":8,
            "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":13364
          },
          {
            "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":13368
          },
          {
            "id":"egtsrc1",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13416
          },
          {
            "id":"egtbpcount1",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13448
          },
          {
            "id":"egtinput1",
            "type":2,
            "array":16,
            "cols":"egtbpcount1",
            "describedby":"egtsrc1",
            "address":13456
          },
          {
            "id":"egtval1",
            "type":2,
            "array":16,
            "cols":"egtbpcount1",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13712
          },
          {
            "id":"egtinput2",
            "type":2,
            "array":16,
            "cols":"egtbpcount2",
            "describedby":"egtsrc2",
            "address":13488
          },
          {
            "id":"egtval2",
            "type":2,
            "array":16,
            "cols":"egtbpcount2",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13744
          },
          {
            "id":"egtinput3",
            "type":2,
            "array":16,
            "cols":"egtbpcount3",
            "describedby":"egtsrc3",
            "address":13520
          },
          {
            "id":"egtval3",
            "type":2,
            "array":16,
            "cols":"egtbpcount3",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13776
          },
          {
            "id":"egtinput4",
            "type":2,
            "array":16,
            "cols":"egtbpcount4",
            "describedby":"egtsrc4",
            "address":13552
          },
          {
            "id":"egtval4",
            "type":2,
            "array":16,
            "cols":"egtbpcount4",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13808
          },
          {
            "id":"egtinput5",
            "type":2,
            "array":16,
            "cols":"egtbpcount5",
            "describedby":"egtsrc5",
            "address":13584
          },
          {
            "id":"egtval5",
            "type":2,
            "array":16,
            "cols":"egtbpcount5",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13840
          },
          {
            "id":"egtinput6",
            "type":2,
            "array":16,
            "cols":"egtbpcount6",
            "describedby":"egtsrc6",
            "address":13616
          },
          {
            "id":"egtval6",
            "type":2,
            "array":16,
            "cols":"egtbpcount6",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13872
          },
          {
            "id":"egtinput7",
            "type":2,
            "array":16,
            "cols":"egtbpcount7",
            "describedby":"egtsrc7",
            "address":13648
          },
          {
            "id":"egtval7",
            "type":2,
            "array":16,
            "cols":"egtbpcount7",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13904
          },
          {
            "id":"egtinput8",
            "type":2,
            "array":16,
            "cols":"egtbpcount8",
            "describedby":"egtsrc8",
            "address":13680
          },
          {
            "id":"egtval8",
            "type":2,
            "array":16,
            "cols":"egtbpcount8",
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "address":13936
          },
          {
            "id":"din2mode",
            "type":8,
            "reset":1,
            "options":[
              "General purpose digital input",
              "NMEA GPS input",
              "AEM wide band AFR serial data"
            ],
            "address":13970
          },
          {
            "id":"din2baud",
            "type":8,
            "options":"map_uartbaud",
            "reset":1,
            "descr":"Most high speed GPS receivers run 115200baud, lower speed receivers typically 4800 or 9600. See documentation for your receiver or just try different values until it works. ECU power off necessary to apply setting.",
            "address":13971
          },
          {
            "id":"uart0mode",
            "type":8,
            "reset":1,
            "options":[
              "Disabled",
              "NMEA GPS input"
            ],
            "address":13968
          },
          {
            "id":"uart0baud",
            "type":8,
            "options":"map_uartbaud",
            "reset":1,
            "descr":"Most high speed GPS receivers run 115200baud, lower speed receivers typically 4800 or 9600. See documentation for your receiver or just try different values until it works. ECU power off necessary to apply setting.",
            "address":13969
          },
          {
            "id":"uart3mode",
            "type":8,
            "reset":1,
            "options":[
              "Disabled",
              "NMEA GPS input"
            ],
            "descr":"The internal UART 3 shares resources with digital input 2 for UART operation, so internal UART 3 is not available if digital input 2 is configured as a UART.",
            "address":13972
          },
          {
            "id":"uart3baud",
            "type":8,
            "options":"map_uartbaud",
            "reset":1,
            "descr":"Most high speed GPS receivers run 115200baud, lower speed receivers typically 4800 or 9600. See documentation for your receiver or just try different values until it works. ECU power off necessary to apply setting.",
            "address":13973
          },
          {
            "id":"timeropts1",
            "compact":0,
            "type":1,
            "address":13974
          },
          {
            "id":"timerreset1",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input sets the timer to zero, regardless of configuration, and holds it at zero while the input is active.",
            "address":13982
          },
          {
            "id":"timeredgereset1",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input only has effect when its state changes from 0 to 1. Before it does anything again the state must change back to 0.\r\nIn normal timer mode, when this input changes state from 0 to 1, the timer value is reset to zero. In lap timer mode, the same state change sets the timer value to the time passed since last reset.",
            "address":13986
          },
          {
            "id":"timerenable1",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"When this input is active, the timer counts up.",
            "address":13978
          },
          {
            "id":"timermode1",
            "compact":4,
            "type":8,
            "address":"timeropts1.1.1",
            "options":[
              "Normal",
              "Lap timer"
            ],
            "descr":"In normal timer mode, the timer continually counts up while the enable input is active. In lap timer mode, the timer value only changes when the edge sensitive reset activates, where it takes the value of the time passed since last reset. In lap timer mode, the enable input is generally not used."
          },
          {
            "id":"timerautoreset1",
            "type":8,
            "compact":4,
            "address":"timeropts1.0.0",
            "options":"enum_enabled",
            "descr":"When enabled, the timer will automatically reset to 0 whenever the enable input deactivates."
          },
          {
            "id":"customlookupsrc1",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":13992
          },
          {
            "id":"customlookupcount1",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14008
          },
          {
            "id":"customlookup1axis",
            "type":2,
            "describedby":"customlookupsrc1",
            "array":32,
            "cols":"customlookupcount1",
            "address":14268
          },
          {
            "id":"customlookup2axis",
            "type":2,
            "describedby":"customlookupsrc2",
            "array":32,
            "cols":"customlookupcount2",
            "address":14332
          },
          {
            "id":"customlookup3axis",
            "type":2,
            "describedby":"customlookupsrc3",
            "array":32,
            "cols":"customlookupcount3",
            "address":14396
          },
          {
            "id":"customlookup4axis",
            "type":2,
            "describedby":"customlookupsrc4",
            "array":32,
            "cols":"customlookupcount4",
            "address":14460
          },
          {
            "id":"customlookup1",
            "type":2,
            "array":32,
            "cols":"customlookupcount1",
            "address":14012
          },
          {
            "id":"customlookup2",
            "type":2,
            "array":32,
            "cols":"customlookupcount2",
            "address":14076
          },
          {
            "id":"customlookup3",
            "type":2,
            "array":32,
            "cols":"customlookupcount3",
            "address":14140
          },
          {
            "id":"customlookup4",
            "type":2,
            "array":32,
            "cols":"customlookupcount4",
            "address":14204
          },
          {
            "id":"custom2dxsrc1",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14524
          },
          {
            "id":"custom2dysrc1",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14540
          },
          {
            "id":"custom2dxcount1",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14556
          },
          {
            "id":"custom2dycount1",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14560
          },
          {
            "id":"custom2dxaxis1",
            "type":2,
            "describedby":"custom2dxsrc1",
            "array":32,
            "cols":"custom2dxcount1",
            "address":14564
          },
          {
            "id":"custom2dyaxis1",
            "type":2,
            "describedby":"custom2dysrc1",
            "array":32,
            "cols":"custom2dycount1",
            "address":14628
          },
          {
            "id":"custom2dxaxis2",
            "type":2,
            "describedby":"custom2dxsrc2",
            "array":32,
            "cols":"custom2dxcount2",
            "address":14692
          },
          {
            "id":"custom2dyaxis2",
            "type":2,
            "describedby":"custom2dysrc2",
            "array":32,
            "cols":"custom2dycount2",
            "address":14756
          },
          {
            "id":"custom2dxaxis3",
            "type":2,
            "describedby":"custom2dxsrc3",
            "array":32,
            "cols":"custom2dxcount3",
            "address":14820
          },
          {
            "id":"custom2dyaxis3",
            "type":2,
            "describedby":"custom2dysrc3",
            "array":32,
            "cols":"custom2dycount3",
            "address":14884
          },
          {
            "id":"custom2dxaxis4",
            "type":2,
            "describedby":"custom2dxsrc4",
            "array":32,
            "cols":"custom2dxcount4",
            "address":14948
          },
          {
            "id":"custom2dyaxis4",
            "type":2,
            "describedby":"custom2dysrc4",
            "array":32,
            "cols":"custom2dycount4",
            "address":15012
          },
          {
            "id":"custom2dtable1",
            "type":2,
            "array":256,
            "cols":"custom2dxcount1",
            "rows":"custom2dycount1",
            "address":15076
          },
          {
            "id":"custom2dtable2",
            "type":2,
            "array":256,
            "cols":"custom2dxcount2",
            "rows":"custom2dycount2",
            "address":15588
          },
          {
            "id":"custom2dtable3",
            "type":2,
            "array":256,
            "cols":"custom2dxcount3",
            "rows":"custom2dycount3",
            "address":16100
          },
          {
            "id":"custom2dtable4",
            "type":2,
            "array":256,
            "cols":"custom2dxcount4",
            "rows":"custom2dycount4",
            "address":16612
          },
          {
            "id":"faultlevel0",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17124
          },
          {
            "id":"faultrevlimits",
            "type":2,
            "array":6,
            "unit":"RPM",
            "descr":"Ineffective if set to zero. Otherwise these are the values the rev limit for the engine takes if each of the faults is registered.\r\nIf these are higher than the master rev limit they will have no effect. If multiple faults are registered the lowest limit has precedence.",
            "address":17220
          },
          {
            "id":"faultboostlimits",
            "type":2,
            "array":6,
            "unit":"mbar",
            "descr":"Ineffective if set to zero. Otherwise these values limit the maximum boost target of the boost control strategy if a fault is registered.\r\nIf multiple faults are registered the lowest limit has precedence.",
            "address":17232
          },
          {
            "id":"faultetclimits",
            "type":2,
            "array":6,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "descr":"Ineffective if set to zero. Otherwise these values limit the maximum throttle angle of the electronic throttle control if a fault is registered.\r\nIf multiple faults are registered the lowest limit has precedence.",
            "address":17244
          },
          {
            "id":"faultoptions",
            "type":1,
            "address":17256
          },
          {
            "id":"faultsparkcut",
            "type":8,
            "options":[
              "Fuel cut",
              "Ignition cut"
            ],
            "address":"faultoptions.0.0"
          },
          {
            "id":"fallbackmap",
            "type":2,
            "array":64,
            "rows":8,
            "cols":8,
            "unit":"%",
            "scale":0.100000,
            "digits":1,
            "descr":"In case of a MAP sensor fault, this table can be used to estimate the MAP value as a fraction of barometric pressure, throttle position and engine speed.",
            "address":17540
          },
          {
            "id":"fallbacktpsbins",
            "type":2,
            "unit":"%",
            "digits":1,
            "scale":0.097752,
            "array":8,
            "input":"throttle",
            "address":17668
          },
          {
            "id":"fallbackrpmbins",
            "type":2,
            "unit":"RPM",
            "array":8,
            "input":"enginespeed",
            "address":17684
          },
          {
            "id":"dinpdctl",
            "type":1,
            "address":19688
          },
          {
            "id":"din1pd",
            "type":8,
            "address":"dinpdctl.0.0",
            "options":"enum_enabled",
            "descr":"If the pull down is enabled the digital input may be reliably used to indicate 12V input from a positive switched source. Note that only LPC4\/LPC8 units with revision 2 main boards (June 2021 and later) have the pull down capability."
          },
          {
            "id":"din2pd",
            "type":8,
            "address":"dinpdctl.1.1",
            "options":"enum_enabled",
            "descr":"If the pull down is enabled the digital input may be reliably used to indicate 12V input from a positive switched source. Note that only LPC4\/LPC8 units with revision 2 main boards (June 2021 and later) have the pull down capability."
          },
          {
            "id":"simplepwmdutyvar1",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17700
          },
          {
            "id":"simplepwmdutyptcount1",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the duty cycle constant, set this value to 1 and the axis variable is ignored",
            "address":17740
          },
          {
            "id":"simplepwmdutypts1",
            "type":2,
            "describedby":"simplepwmdutyvar1",
            "array":16,
            "cols":"simplepwmdutyptcount1",
            "compact":0,
            "address":17748
          },
          {
            "id":"simplepwmduty1",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "array":16,
            "cols":"simplepwmdutyptcount1",
            "compact":0,
            "address":17876
          },
          {
            "id":"simplepwmfreqvar1",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17716
          },
          {
            "id":"simplepwmfreqptcount1",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the frequency constant, set this value to 1 and the axis variable is ignored",
            "address":17744
          },
          {
            "id":"simplepwmfreqpts1",
            "type":2,
            "describedby":"simplepwmfreqvar1",
            "array":16,
            "cols":"simplepwmfreqptcount1",
            "compact":0,
            "address":18004
          },
          {
            "id":"simplepwmfreq1",
            "type":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "array":16,
            "cols":"simplepwmfreqptcount1",
            "compact":0,
            "address":18132
          },
          {
            "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":17732
          },
          {
            "id":"simplepwmenable1",
            "type":8,
            "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":17736
          },
          {
            "id":"brakeinput",
            "type":8,
            "options":"map_inputs",
            "descr":"The brake pedal status input is used to disarm the cruise control.",
            "address":18260
          },
          {
            "id":"torqueoptions",
            "type":1,
            "address":19689
          },
          {
            "id":"torqueoption_enabled",
            "type":8,
            "options":"enum_enabled",
            "address":"torqueoptions.0.0"
          },
          {
            "id":"torqueoption_injcut",
            "type":8,
            "options":"enum_enabled",
            "address":"torqueoptions.1.1",
            "descr":"If the maximum permitted ignition retard is reached by the torque limiter but the desired torque level is not reached, the torque model can shut off cylinders by shutting off fuel injectors, ignition events or both"
          },
          {
            "id":"torqueoption_igncut",
            "type":8,
            "options":"enum_enabled",
            "address":"torqueoptions.2.2",
            "descr":"If the maximum permitted ignition retard is reached by the torque limiter but the desired torque level is not reached, the torque model can shut off cylinders by shutting off fuel injectors, ignition events or both"
          },
          {
            "id":"torqueinterval",
            "type":1,
            "unit":"ms",
            "min":1,
            "descr":"Interval at which torque management model is run, suggested values between 10-20ms for most applications",
            "address":19690
          },
          {
            "id":"torquelimitrequestsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Source for torque request limit. Must be scaled appropriately, with a zero point of 1940 and 0.2Nm per count",
            "address":19692
          },
          {
            "id":"torquelimitsrc",
            "type":9,
            "maxwidth":2,
            "descr":"Source for torque limit. Must be scaled appropriately, with a zero point of 1940 and 0.2Nm per count",
            "address":19696
          },
          {
            "id":"frictionmap",
            "type":2,
            "unit":"Nm",
            "scale":0.200000,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This map indicates engine friction at different speeds and inlet manifold pressures.",
            "address":19700
          },
          {
            "id":"torquerequestmap",
            "type":2,
            "unit":"Nm",
            "scale":0.200000,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "offset":-1940,
            "descr":"This map indicates the torque wanted from the engine by the driver. Used to calculate throttle position needed to enact a torque request limit.",
            "address":20276
          },
          {
            "id":"efficiencymap",
            "type":2,
            "unit":"Nm",
            "scale":0.200000,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This map indicates the torque per gram of cylinder air mass with MBT ignition timing.",
            "address":19828
          },
          {
            "id":"mbtmap",
            "type":2,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "sign":1,
            "array":64,
            "min":-90,
            "max":90,
            "rows":8,
            "cols":8,
            "descr":"This map indicates the ideal ignition angle to yield the efficiency described by the efficiency map.",
            "address":19956
          },
          {
            "id":"torquemaxretardmap",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "max":90,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This map indicates the maximum ignition timing retard that the torque management is permitted to apply.",
            "address":20084
          },
          {
            "id":"timinglossmap",
            "type":1,
            "unit":"%",
            "scale":0.138890,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "min":0.100000,
            "descr":"This map indicates efficiency loss per degree of ignition timing behind MBT. Note that this applies to the combustion effect torque before friction is subtracted.",
            "address":20212
          },
          {
            "id":"torquerpmbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":20420
          },
          {
            "id":"torqueappbins",
            "type":2,
            "scale":0.097656,
            "digits":1,
            "unit":"%",
            "input":"effectiveapp",
            "array":8,
            "address":20436
          },
          {
            "id":"torquemapbins",
            "type":2,
            "unit":"mbar",
            "input":"map",
            "array":8,
            "address":20452
          },
          {
            "id":"torquelambdabins",
            "type":2,
            "input":"lambdatgt",
            "array":8,
            "scale":0.001000,
            "digits":3,
            "address":20468
          },
          {
            "id":"torquelimitrequestenable",
            "type":8,
            "options":"map_inputs",
            "address":20484
          },
          {
            "id":"torquelimitenable",
            "type":8,
            "options":"map_inputs",
            "address":20485
          },
          {
            "id":"torquemin",
            "type":2,
            "unit":"Nm",
            "scale":0.200000,
            "digits":1,
            "offset":-1940,
            "address":20486
          },
          {
            "id":"torquemax",
            "type":2,
            "unit":"Nm",
            "scale":0.200000,
            "digits":1,
            "offset":-1940,
            "address":20488
          },
          {
            "id":"torqueectmultiplier",
            "type":2,
            "array":16,
            "scale":0.000977,
            "digits":3,
            "descr":"This function describes the effect of coolant temperature on combustion efficiency.",
            "address":20490
          },
          {
            "id":"torqueectfrictionmultiplier",
            "type":2,
            "array":16,
            "scale":0.000977,
            "digits":3,
            "descr":"This function describes the effect of coolant temperature on combustion efficiency.",
            "address":20522
          },
          {
            "id":"torquelambdaefficiency",
            "type":2,
            "array":8,
            "scale":0.000977,
            "digits":3,
            "max":1,
            "descr":"This function describes the effect of lambda target on combustion efficiency, where a value of 1 is best efficiency.",
            "address":20404
          },
          {
            "id":"torqueignresumerate",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "digits":2,
            "max":90,
            "descr":"The rate at which the torque management ignition retard can decay, per torque computation cycle.",
            "address":20554
          },
          {
            "id":"difpsrc",
            "type":9,
            "maxwidth":2,
            "address":20876
          },
          {
            "id":"difpvoltages",
            "type":2,
            "array":2,
            "describedby":"difpsrc",
            "address":20880
          },
          {
            "id":"difpvalues",
            "type":2,
            "unit":"bar",
            "scale":0.100000,
            "digits":1,
            "array":2,
            "address":20884
          },
          {
            "id":"difpvalidrange",
            "type":2,
            "array":2,
            "describedby":"difpsrc",
            "address":20888
          },
          {
            "id":"difpdefault",
            "type":2,
            "unit":"bar",
            "scale":0.100000,
            "digits":1,
            "address":20892
          },
          {
            "id":"mindirailp",
            "type":2,
            "unit":"bar",
            "scale":0.100000,
            "digits":1,
            "address":20894
          },
          {
            "id":"scvbaseangle",
            "type":2,
            "min":0,
            "max":359.900000,
            "unit":"°BTDC",
            "scale":0.010986,
            "digits":1,
            "descr":"In degrees before TDC cyl 1",
            "address":20556
          },
          {
            "id":"scvmaxadvance",
            "type":2,
            "min":0,
            "max":359.900000,
            "unit":"°",
            "scale":0.010986,
            "digits":1,
            "descr":"Maximum angle the suction control valves may be advanced ahead of the base angle.",
            "address":20558
          },
          {
            "id":"scvanglemap",
            "type":2,
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This map advances the actuation of the suction control valves ahead of the configured base angle.",
            "address":20560
          },
          {
            "id":"scvdurationmap",
            "type":2,
            "scale":0.010986,
            "unit":"°",
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This map sets the suction control valve opening duration in crankshaft degrees.",
            "variations":[
              [
                "scvdurmode",
                "=",
                "Crank angle"
              ],
              {
                "unit":"°",
                "digits":1,
                "scale":0.010986,
                "endif":true
              },
              [
                "scvdurmode",
                "=",
                "Time"
              ],
              {
                "unit":"ms",
                "digits":3,
                "scale":0.001000
              }
            ],
            "address":20688
          },
          {
            "id":"scvdurmode",
            "type":8,
            "options":[
              "Crank angle",
              "Time"
            ],
            "address":20872
          },
          {
            "id":"scvangleyaxis",
            "type":2,
            "describedby":"scvangleyaxvar",
            "array":8,
            "address":20824
          },
          {
            "id":"scvdurayaxis",
            "type":2,
            "describedby":"scvdurayaxvar",
            "array":8,
            "address":20840
          },
          {
            "id":"scvangleyaxvar",
            "type":9,
            "maxwidth":2,
            "address":20816
          },
          {
            "id":"scvdurayaxvar",
            "type":9,
            "maxwidth":2,
            "address":20820
          },
          {
            "id":"scvpercycle",
            "type":1,
            "min":1,
            "max":12,
            "descr":"If using phased suction control valves, one or two, this value specifies how many times per complete engine cycle the valves open. This would typically equal the number of cylinders. In case dual valves are used each one takes half of the opening events. This value is only processed when the controller powers up so powering off is required to process a change in this value.",
            "address":20874
          },
          {
            "id":"scvrpmbins",
            "type":2,
            "array":8,
            "unit":"RPM",
            "input":"enginespeed",
            "address":20856
          },
          {
            "id":"scvanglemode",
            "type":8,
            "options":[
              "TDC cylinder 1",
              "Cam angle",
              "Cam 2 angle",
              "Cam 3 angle",
              "Cam 4 angle"
            ],
            "address":20873
          },
          {
            "id":"difpmap",
            "type":2,
            "unit":"bar",
            "digits":1,
            "scale":0.100000,
            "array":64,
            "rows":8,
            "cols":8,
            "address":20896
          },
          {
            "id":"difpbasedutymap",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "array":64,
            "rows":8,
            "cols":8,
            "address":21024
          },
          {
            "id":"difperrbins",
            "type":2,
            "sign":1,
            "unit":"bar",
            "digits":1,
            "scale":0.100000,
            "array":8,
            "input":"railpresserror",
            "address":21408
          },
          {
            "id":"rprpmbins",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "array":8,
            "address":21424
          },
          {
            "id":"dimapbins",
            "type":2,
            "unit":"mbar",
            "input":"map",
            "array":8,
            "address":21878
          },
          {
            "id":"difuelmassbins",
            "type":2,
            "unit":"mg",
            "min":0,
            "max":650,
            "scale":0.010000,
            "digits":2,
            "array":8,
            "input":"fuelmass",
            "address":21440
          },
          {
            "id":"difpqtyadder",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "sign":1,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This function adds effort to the rail pressure control function based on injection quantity. This helps with transients as the PID loop does not have to react as much to changes in injection quantity.",
            "address":21456
          },
          {
            "id":"difpKp",
            "type":2,
            "sign":1,
            "scale":0.002440,
            "digits":3,
            "array":64,
            "rows":8,
            "cols":8,
            "address":21584
          },
          {
            "id":"difpKpiqmod",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This table multiplies the rail pressure proportional gain. The final gain will be the multiple of the value from this table and the value from the primary gain table.",
            "address":21280
          },
          {
            "id":"difpKi",
            "type":2,
            "sign":1,
            "scale":0.002440,
            "digits":3,
            "array":64,
            "rows":8,
            "cols":8,
            "address":21712
          },
          {
            "id":"difpKiiqmod",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "array":64,
            "rows":8,
            "cols":8,
            "descr":"This table multiplies the rail pressure integral gain. The final gain will be the multiple of the value from this table and the value from the primary gain table.",
            "address":21152
          },
          {
            "id":"difpKd",
            "type":2,
            "sign":1,
            "scale":0.002440,
            "digits":3,
            "array":8,
            "address":21840
          },
          {
            "id":"difpImin",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":21856
          },
          {
            "id":"difpImax",
            "type":2,
            "sign":1,
            "unit":"%",
            "scale":0.003052,
            "digits":1,
            "address":21858
          },
          {
            "id":"difppidserviceperiod",
            "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\n",
            "address":21860
          },
          {
            "id":"difptargetbins",
            "type":2,
            "unit":"bar",
            "scale":0.100000,
            "digits":1,
            "array":8,
            "input":"difptarget",
            "address":21862
          },
          {
            "id":"distartangle",
            "type":2,
            "unit":"°BTDC",
            "scale":0.010986,
            "descr":"The earliest allowed start of injection in direct injection mode.",
            "address":21894
          },
          {
            "id":"diendangle",
            "type":2,
            "unit":"°BTDC",
            "scale":0.010986,
            "descr":"The latest allowed injection in direct injection mode, so maximum injection duration is from the start of injection until this angle.",
            "address":21896
          },
          {
            "id":"dimaxduration",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "descr":"The longest allowed injection duration for DI injectors.",
            "address":21898
          },
          {
            "id":"diflowmodel",
            "type":2,
            "unit":"ms",
            "scale":0.001000,
            "digits":3,
            "array":256,
            "rows":"difmpbcount",
            "cols":"difmvbcount",
            "descr":"This table converts injection volume to injector pulse width in direct injection mode",
            "address":21900
          },
          {
            "id":"difmpressbins",
            "type":2,
            "unit":"bar",
            "scale":0.100000,
            "digits":1,
            "input":"difp",
            "array":32,
            "cols":"difmpbcount",
            "address":22412
          },
          {
            "id":"difmvolbins",
            "type":2,
            "unit":"mg",
            "scale":0.010000,
            "digits":2,
            "array":32,
            "input":"prifuelmass",
            "cols":"difmvbcount",
            "address":22476
          },
          {
            "id":"difmvbcount",
            "type":1,
            "min":1,
            "max":32,
            "address":22541
          },
          {
            "id":"difmpbcount",
            "type":1,
            "min":1,
            "max":32,
            "address":22540
          },
          {
            "id":"intlambdartarget",
            "type":2,
            "unit":"ohm",
            "digits":1,
            "scale":0.500000,
            "descr":"Lambda sensor nernst cell impedance target for heater control. Nominally 300 ohms according to Bosch LSU 4.9 datasheet.",
            "address":18262
          },
          {
            "id":"intlambda2rtarget",
            "type":2,
            "unit":"ohm",
            "digits":1,
            "scale":0.500000,
            "descr":"Lambda sensor nernst cell impedance target for heater control. Nominally 300 ohms according to Bosch LSU 4.9 datasheet.",
            "address":18264
          },
          {
            "id":"intlambdastartdelay",
            "type":2,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "descr":"If set to a non-zero value, the lambda sensor will not be heated until at least this many seconds have passed since the engine was started.\r\nThe further the sensor is located away from the engine, as the sensor must be clear of condensation water before heater is operated or sensor life is greatly reduced.",
            "address":18266
          },
          {
            "id":"intlambdaheaterKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18268
          },
          {
            "id":"intlambdaheaterKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18270
          },
          {
            "id":"intlambdaheaterKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18272
          },
          {
            "id":"intlambda2heaterKp",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18274
          },
          {
            "id":"intlambda2heaterKi",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18276
          },
          {
            "id":"intlambda2heaterKd",
            "type":2,
            "sign":1,
            "scale":0.000244,
            "digits":4,
            "address":18278
          },
          {
            "id":"intlambdaenable",
            "type":8,
            "options":"enum_enabled",
            "address":"intlambdaoptions.0.0"
          },
          {
            "id":"intlambda2enable",
            "type":8,
            "options":"enum_enabled",
            "address":"intlambda2options.0.0"
          },
          {
            "id":"intlambdaoptions",
            "type":1,
            "address":19196
          },
          {
            "id":"intlambda2options",
            "type":1,
            "address":19197
          },
          {
            "id":"intlambdarefcur",
            "type":8,
            "address":"intlambdaoptions.2.2",
            "options":"enum_enabled",
            "descr":"The LSU4.9 specification calls for a 20µA bias current supplied to the nernst cell. Most other sensors require this setting to be off."
          },
          {
            "id":"intlambda2refcur",
            "type":8,
            "address":"intlambda2options.2.2",
            "options":"enum_enabled",
            "descr":"The LSU4.9 specification calls for a 20µA bias current supplied to the nernst cell. Most other sensors require this setting to be off."
          },
          {
            "id":"intlambdaimmediatetemp",
            "type":2,
            "unit":"°C",
            "digits":1,
            "offset":-2731,
            "scale":0.100000,
            "descr":"If the engine coolant temperature is above this value, the lambda heater start delay is skipped.",
            "address":19198
          },
          {
            "id":"intlambdactlPgain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "address":19200
          },
          {
            "id":"intlambda2ctlPgain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "address":19204
          },
          {
            "id":"intlambdactlIgain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "address":19202
          },
          {
            "id":"intlambda2ctlIgain",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "address":19206
          },
          {
            "id":"intlambdavnsetpoint",
            "type":2,
            "unit":"mV",
            "digits":1,
            "scale":0.100000,
            "descr":"The nernst voltage the pump control loop attempts to hold. For Bosch LSU sensors this is specified as 450mV",
            "address":19208
          },
          {
            "id":"intlambda2vnsetpoint",
            "type":2,
            "unit":"mV",
            "digits":1,
            "scale":0.100000,
            "descr":"The nernst voltage the pump control loop attempts to hold. For Bosch LSU sensors this is specified as 450mV",
            "address":19210
          },
          {
            "id":"intlambdaical",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"This value is used for scaling the indicated pump current for the purpose of free air calibration. If using the calibration resistor on an LSU4.9 sensor, 1.0 is a good value.",
            "address":19220
          },
          {
            "id":"intlambda2ical",
            "type":2,
            "scale":0.000977,
            "digits":3,
            "descr":"This value is used for scaling the indicated pump current for the purpose of free air calibration. If using the calibration resistor on an LSU4.9 sensor, 1.0 is a good value.",
            "address":19222
          },
          {
            "id":"intlambdapsource",
            "type":9,
            "maxwidth":2,
            "address":19224
          },
          {
            "id":"intlambdapcompbps",
            "type":2,
            "describedby":"intlambdapsource",
            "array":16,
            "cols":"intlambdapcompbpcount",
            "address":19232
          },
          {
            "id":"intlambdapcomp",
            "type":2,
            "array":32,
            "scale":0.000977,
            "digits":3,
            "rows":2,
            "cols":"intlambdapcompbpcount",
            "address":19264
          },
          {
            "id":"intlambdapcompbpcount",
            "type":1,
            "min":1,
            "max":16,
            "address":19424
          },
          {
            "id":"intlambdatcompbpcount",
            "type":1,
            "min":1,
            "max":16,
            "address":19425
          },
          {
            "id":"intlambdatcompbps",
            "type":2,
            "array":16,
            "cols":"intlambdatcompbpcount",
            "unit":"ohm",
            "digits":1,
            "scale":0.500000,
            "input":"intlambdanr",
            "address":19428
          },
          {
            "id":"intlambdatcomp",
            "type":2,
            "array":16,
            "cols":"intlambdatcompbpcount",
            "scale":0.000977,
            "digits":3,
            "address":19492
          },
          {
            "id":"intlambda2psource",
            "type":9,
            "maxwidth":2,
            "address":19228
          },
          {
            "id":"intlambda2pcompbps",
            "type":2,
            "describedby":"intlambdapsource",
            "array":16,
            "cols":"intlambdapcompbpcount",
            "address":19328
          },
          {
            "id":"intlambda2pcomp",
            "type":2,
            "array":32,
            "scale":0.000977,
            "digits":3,
            "rows":2,
            "cols":"intlambda2pcompbpcount",
            "address":19360
          },
          {
            "id":"intlambda2pcompbpcount",
            "type":1,
            "min":1,
            "max":16,
            "address":19426
          },
          {
            "id":"intlambda2tcompbpcount",
            "type":1,
            "min":1,
            "max":16,
            "address":19427
          },
          {
            "id":"intlambda2tcompbps",
            "type":2,
            "array":16,
            "cols":"intlambda2tcompbpcount",
            "unit":"ohm",
            "digits":1,
            "scale":0.500000,
            "input":"intlambda2nr",
            "address":19460
          },
          {
            "id":"intlambda2tcomp",
            "type":2,
            "array":16,
            "cols":"intlambda2tcompbpcount",
            "scale":0.000977,
            "digits":3,
            "address":19524
          },
          {
            "id":"intlambdalowpass",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"Low pass filter on the pump current indicated by the intlambdaipcmd variable. Has no effect on the sensor control loop, only the response time of the indicated lambda value.",
            "address":19212
          },
          {
            "id":"intlambda2lowpass",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"Low pass filter on the pump current indicated by the intlambda2ipcmd variable. Has no effect on the sensor control loop, only the response time of the indicated lambda value.",
            "address":19214
          },
          {
            "id":"intlambdaimplowpass",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"Low pass filter on the nernst impedance. Has an effect on the heater control loop.",
            "address":19216
          },
          {
            "id":"intlambda2implowpass",
            "type":2,
            "unit":"%",
            "scale":0.001526,
            "digits":2,
            "descr":"Low pass filter on the nernst impedance. Has an effect on the heater control loop.",
            "address":19218
          },
          {
            "id":"intlambdao2bpcount",
            "type":1,
            "max":16,
            "address":19556
          },
          {
            "id":"intlambdao2bps",
            "type":2,
            "input":"intlambdaipcmd",
            "array":16,
            "cols":"intlambdao2bpcount",
            "scale":0.001000,
            "digits":3,
            "address":19558
          },
          {
            "id":"intlambdao2curve",
            "type":1,
            "digits":1,
            "scale":0.100000,
            "array":16,
            "cols":"intlambdao2bpcount",
            "address":19590
          },
          {
            "id":"intlambda2o2bpcount",
            "type":1,
            "max":16,
            "address":19606
          },
          {
            "id":"intlambda2o2bps",
            "type":2,
            "input":"intlambda2ipcmd",
            "array":16,
            "cols":"intlambda2o2bpcount",
            "scale":0.001000,
            "digits":3,
            "address":19608
          },
          {
            "id":"intlambda2o2curve",
            "type":1,
            "digits":1,
            "scale":0.100000,
            "array":16,
            "cols":"intlambda2o2bpcount",
            "address":19640
          },
          {
            "id":"intlambdatemprange",
            "type":2,
            "unit":"Ohm",
            "array":2,
            "scale":0.500000,
            "digits":1,
            "descr":"Within this temperature (nernst impedance) range the sensor is considered warmed up and operational. Outside of this range the pump current control will be kept at zero.",
            "address":19656
          },
          {
            "id":"intlambda2temprange",
            "type":2,
            "unit":"Ohm",
            "array":2,
            "scale":0.500000,
            "digits":1,
            "descr":"Within this temperature (nernst impedance) range the sensor is considered warmed up and operational. Outside of this range the pump current control will be kept at zero.",
            "address":19660
          },
          {
            "id":"intlambdaiprange",
            "type":2,
            "unit":"mA",
            "array":2,
            "scale":0.001000,
            "digits":3,
            "sign":1,
            "descr":"This is the permitted commanded pump current range. When using a Bosch LSU4 sensor and the associated calibration resistor the actual current will be higher than the commanded current. The actual current may be observed on the intlambdaipfb variable.",
            "address":19664
          },
          {
            "id":"intlambda2iprange",
            "type":2,
            "unit":"mA",
            "array":2,
            "scale":0.001000,
            "digits":3,
            "sign":1,
            "descr":"This is the permitted commanded pump current range. When using a Bosch LSU4 sensor and the associated calibration resistor the actual current will be higher than the commanded current. The actual current may be observed on the intlambda2ipfb variable.",
            "address":19668
          },
          {
            "id":"intlambdaheaterramp",
            "type":2,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the heater has started it start at low voltage (duty cycle) and gradually ramp up to maximum voltage over this period to save the sensor from thermal shock.",
            "address":19672
          },
          {
            "id":"intlambdaheaterinitial",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the heater has started it start at low voltage (duty cycle) and gradually ramp up to maximum voltage over this period to save the sensor from thermal shock.",
            "address":19676
          },
          {
            "id":"intlambdaheatermax",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the warm up ramp period is over this value specifies the maximum effective voltage the lambda heater may be driven at and the duty cycle is restricted to meet this value depending on the car's supply voltage.",
            "address":19680
          },
          {
            "id":"intlambdaheaterlow",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"After the engine has started but before the heater delay has passed a small amount of power is applied to the sensor to evaporate moisture.",
            "address":19684
          },
          {
            "id":"intlambda2heaterramp",
            "type":2,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the heater has started it start at low voltage (duty cycle) and gradually ramp up to maximum (nominal) voltage over this period to save the sensor from thermal shock.",
            "address":19674
          },
          {
            "id":"intlambda2heaterinitial",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the heater has started it start at low voltage (duty cycle) and gradually ramp up to maximum (nominal) voltage over this period to save the sensor from thermal shock.",
            "address":19678
          },
          {
            "id":"intlambda2heatermax",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"Once the warm up ramp period is over this value specifies the maximum effective voltage the lambda heater may be driven at and the duty cycle is restricted to meet this value depending on the car's supply voltage.",
            "address":19682
          },
          {
            "id":"intlambda2heaterlow",
            "type":2,
            "unit":"V",
            "scale":0.001000,
            "digits":1,
            "descr":"After the engine has started but before the heater delay has passed a small amount of power is applied to the sensor to evaporate moisture.",
            "address":19686
          },
          {
            "id":"knockconf",
            "type":1,
            "address":18284
          },
          {
            "id":"knockenable",
            "type":8,
            "options":"enum_enabled",
            "address":"knockconf.0.0"
          },
          {
            "id":"knockctlmode",
            "type":8,
            "options":[
              "Disabled",
              "Aggressive",
              "Blended",
              "Precise"
            ],
            "descr":"The three modes for knock timing retard application work as follows.\r\nAggressive mode removes the same amount of timing from all cylinders, not only those that have knocked.\r\nBlended mode removes some timing from all cylinders but more from those that have knocked.\r\nPrecise mode applies knock timing retard only to the ignition timing of cylinders that knock.",
            "address":"knockconf.1.2"
          },
          {
            "id":"knockvolatile",
            "type":8,
            "options":"enum_enabled",
            "address":"knockconf.3.3",
            "descr":"Normally, the ECU will keep knock retard state in non-volatile battery backed memory. This is ideal for road car use where the knock control's job is to take care of wildy varying fuel quality.\r\nEnabling the deletion of this data every time the ECU restarts may be desireable in a racing application where the fuel quality is generally consistent (racing fuel from sealed containers) and the knock strategy is being used to react to the odd events that may be caused by excessive temperature or other reasons that are not likely to persist during the start of the next race."
          },
          {
            "id":"knockbpf",
            "type":8,
            "options":[
              "1.22 kHz",
              "1.26 kHz",
              "1.31 kHz",
              "1.35 kHz",
              "1.4 kHz",
              "1.45 kHz",
              "1.51 kHz",
              "1.57 kHz",
              "1.63 kHz",
              "1.71 kHz",
              "1.78 kHz",
              "1.87 kHz",
              "1.96 kHz",
              "2.07 kHz",
              "2.18 kHz",
              "2.31 kHz",
              "2.46 kHz",
              "2.54 kHz",
              "2.62 kHz",
              "2.71 kHz",
              "2.81 kHz",
              "2.92 kHz",
              "3.03 kHz",
              "3.15 kHz",
              "3.28 kHz",
              "3.43 kHz",
              "3.59 kHz",
              "3.76 kHz",
              "3.95 kHz",
              "4.16 kHz",
              "4.39 kHz",
              "4.66 kHz",
              "4.95 kHz",
              "5.12 kHz",
              "5.29 kHz",
              "5.48 kHz",
              "5.68 kHz",
              "5.9 kHz",
              "6.12 kHz",
              "6.37 kHz",
              "6.64 kHz",
              "6.94 kHz",
              "7.27 kHz",
              "7.63 kHz",
              "8.02 kHz",
              "8.46 kHz",
              "8.95 kHz",
              "9.5 kHz",
              "10.12 kHz",
              "10.46 kHz",
              "10.83 kHz",
              "11.22 kHz",
              "11.65 kHz",
              "12.1 kHz",
              "12.6 kHz",
              "13.14 kHz",
              "13.72 kHz",
              "14.36 kHz",
              "15.07 kHz",
              "15.84 kHz",
              "16.71 kHz",
              "17.67 kHz",
              "18.76 kHz",
              "19.98 kHz"
            ],
            "address":18280
          },
          {
            "id":"knockgain",
            "type":8,
            "options":[
              "2",
              "1.882",
              "1.778",
              "1.684",
              "1.6",
              "1.523",
              "1.455",
              "1.391",
              "1.333",
              "1.28",
              "1.231",
              "1.185",
              "1.143",
              "1.063",
              "1",
              "0.944",
              "0.895",
              "0.85",
              "0.81",
              "0.773",
              "0.739",
              "0.708",
              "0.68",
              "0.654",
              "0.63",
              "0.607",
              "0.586",
              "0.567",
              "0.548",
              "0.5",
              "0.471",
              "0.444",
              "0.421",
              "0.4",
              "0.381",
              "0.364",
              "0.348",
              "0.333",
              "0.32",
              "0.308",
              "0.296",
              "0.286",
              "0.276",
              "0.267",
              "0.258",
              "0.25",
              "0.236",
              "0.222",
              "0.211",
              "0.2",
              "0.19",
              "0.182",
              "0.174",
              "0.167",
              "0.16",
              "0.154",
              "0.148",
              "0.143",
              "0.138",
              "0.133",
              "0.129",
              "0.125",
              "0.118",
              "0.111"
            ],
            "address":18282
          },
          {
            "id":"knock2gain",
            "type":8,
            "options":[
              "2",
              "1.882",
              "1.778",
              "1.684",
              "1.6",
              "1.523",
              "1.455",
              "1.391",
              "1.333",
              "1.28",
              "1.231",
              "1.185",
              "1.143",
              "1.063",
              "1",
              "0.944",
              "0.895",
              "0.85",
              "0.81",
              "0.773",
              "0.739",
              "0.708",
              "0.68",
              "0.654",
              "0.63",
              "0.607",
              "0.586",
              "0.567",
              "0.548",
              "0.5",
              "0.471",
              "0.444",
              "0.421",
              "0.4",
              "0.381",
              "0.364",
              "0.348",
              "0.333",
              "0.32",
              "0.308",
              "0.296",
              "0.286",
              "0.276",
              "0.267",
              "0.258",
              "0.25",
              "0.236",
              "0.222",
              "0.211",
              "0.2",
              "0.19",
              "0.182",
              "0.174",
              "0.167",
              "0.16",
              "0.154",
              "0.148",
              "0.143",
              "0.138",
              "0.133",
              "0.129",
              "0.125",
              "0.118",
              "0.111"
            ],
            "address":18283
          },
          {
            "id":"knockitc",
            "type":8,
            "options":[
              "40 µs",
              "45 µs",
              "50 µs",
              "55 µs",
              "60 µs",
              "65 µs",
              "70 µs",
              "75 µs",
              "80 µs",
              "90 µs",
              "100 µs",
              "110 µs",
              "120 µs",
              "130 µs",
              "140 µs",
              "150 µs",
              "160 µs",
              "180 µs",
              "200 µs",
              "220 µs",
              "240 µs",
              "260 µs",
              "280 µs",
              "300 µs",
              "320 µs",
              "360 µs",
              "400 µs",
              "440 µs",
              "480 µs",
              "520 µs",
              "560 µs",
              "600 µs"
            ],
            "address":18281
          },
          {
            "id":"knocksensorassign",
            "type":1,
            "array":12,
            "max":2,
            "cols":"cylcount",
            "address":18285
          },
          {
            "id":"knockthresholdadjust",
            "type":1,
            "array":12,
            "sign":1,
            "cols":"cylcount",
            "descr":"These values add to the knock detection thresholds for different cylinders. A negative value lowers the threshold and increases the sensitivity for that particular cylinder and vice versa for a positive value.",
            "address":18297
          },
          {
            "id":"knockwindowstart",
            "type":2,
            "unit":"°BTDC",
            "sign":1,
            "scale":0.010986,
            "digits":1,
            "min":-45,
            "max":45,
            "descr":"Each cylinder is monitored for knock during the time combustion should be ocurring. The specified monitoring windows must not overlap.",
            "address":18310
          },
          {
            "id":"knockwindowduration",
            "type":2,
            "unit":"°",
            "scale":0.010986,
            "min":1,
            "max":90,
            "digits":1,
            "address":18312
          },
          {
            "id":"knockrpmbincount",
            "type":1,
            "min":1,
            "max":20,
            "address":18320
          },
          {
            "id":"knockrpmbins",
            "type":2,
            "array":20,
            "input":"enginespeed",
            "cols":"knockrpmbincount",
            "address":18322
          },
          {
            "id":"knockloadsrc",
            "type":9,
            "maxwidth":2,
            "address":18316
          },
          {
            "id":"knockloadbincount",
            "type":1,
            "min":1,
            "max":20,
            "address":18321
          },
          {
            "id":"knockloadbins",
            "type":2,
            "describedby":"knockloadsrc",
            "array":20,
            "cols":"knockloadbincount",
            "address":18362
          },
          {
            "id":"knockthreshold",
            "type":1,
            "scale":4,
            "array":256,
            "rows":"knockloadbincount",
            "cols":"knockrpmbincount",
            "address":18676
          },
          {
            "id":"knockignauthority",
            "type":1,
            "unit":"°",
            "scale":0.087891,
            "digits":1,
            "array":256,
            "rows":"knockloadbincount",
            "cols":"knockrpmbincount",
            "descr":"This function specifies the maximum permitted knock retard value output from the knock retard strategy",
            "address":18420
          },
          {
            "id":"knockfailmap",
            "type":1,
            "unit":"°",
            "scale":0.087891,
            "digits":1,
            "array":256,
            "rows":"knockloadbincount",
            "cols":"knockrpmbincount",
            "descr":"The values in this map are applied if either knock sensor is faulted by the error detection strategy.",
            "address":18932
          },
          {
            "id":"knockminect",
            "type":2,
            "unit":"°C",
            "scale":0.100000,
            "digits":1,
            "offset":-2731,
            "descr":"The knock detection strategy will not start operating until engine coolant temperature is greater than this value. Previously learned knock trims will still apply.",
            "address":19188
          },
          {
            "id":"knockminruntime",
            "type":2,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "descr":"The knock detection strategy will not start operating until engine has been running for this period. Previously learned knock trims will still apply.",
            "address":19190
          },
          {
            "id":"knockrecoverminrpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "descr":"The knock control strategy will reduce the recorded knock retard values during periods of no knock activity under conditions that would be likely to produce knock if fuel quality is bad.",
            "address":18408
          },
          {
            "id":"knockrecovermaxrpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "address":18410
          },
          {
            "id":"knockrecoverminload",
            "type":2,
            "describedby":"knockloadsrc",
            "address":18412
          },
          {
            "id":"knockrecoverdelay",
            "type":2,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "descr":"This is the period with no knock activity before the knock control strategy will gradually remove the learned knock retard across the board. If this value is set to 30 seconds for example and the knock retard recovery step size is 0.5 degrees, the knock retard will be reduced by 0.5 degrees every 30 seconds while the engine is operating under the specified conditions to enable recovery and no knock is detected.",
            "address":18406
          },
          {
            "id":"knocksensortestrpm",
            "type":2,
            "unit":"RPM",
            "input":"enginespeed",
            "descr":"When the engine speed is greater than this value, and load is sufficient, knock sensor validation is active.",
            "address":18414
          },
          {
            "id":"knocksensortestload",
            "type":2,
            "describedby":"knockloadsrc",
            "address":18416
          },
          {
            "id":"knocksensortestvalue",
            "type":2,
            "descr":"When knock sensor validation is active, the noise level the sensor picks up must be greater than this value averaged over a number of engine cycles or the knock sensor is deemed faulty.",
            "address":18418
          },
          {
            "id":"bigknockthreshold",
            "type":2,
            "descr":"Any knock events that exceed the detection threshold by this amount are considered intense and the timing gets retarded at a greater rate than normally.",
            "address":19192
          },
          {
            "id":"knockretstep",
            "type":1,
            "unit":"°",
            "digits":1,
            "scale":0.087891,
            "address":18402
          },
          {
            "id":"knockretbigstep",
            "type":1,
            "unit":"°",
            "digits":1,
            "scale":0.087891,
            "address":18403
          },
          {
            "id":"knockadvstep",
            "type":1,
            "unit":"°",
            "digits":1,
            "scale":0.087891,
            "address":18404
          },
          {
            "id":"expconf",
            "type":1,
            "address":19194
          },
          {
            "id":"expinjmode",
            "type":8,
            "address":"expconf.0.0",
            "options":[
              "Standard",
              "LPC4 compatible"
            ],
            "descr":"Standard means the fuel injectors are connected to connector D (14 pin connector) on the LPC8 box. LPC4 compatible is an option for LPC8 units built with only 4 ignition outputs (most likely upgraded from LPC4) or LPC8 units with serial number 2200 and up, in which case ignition outputs 5-8 can be software configured for driving injectors."
          },
          {
            "id":"knockerrorval",
            "type":1,
            "scale":0.087891,
            "digits":1,
            "descr":"If the knock retard value of any cylinder equals or exceeds this at any time but knock persists, an excessive knock error flag is set.",
            "address":18314
          },
          {
            "id":"hbridge1function",
            "type":8,
            "options":[
              "Disabled",
              "General purpose PID 1",
              "General purpose PID 2"
            ],
            "descr":"This setting has effect only if electronic throttle control is not enabled.\r\nNote that the H bridge is not capable of supporting PWM frequencies lower than 200Hz or higher than 2000Hz so whatever function is selected must be configured within that range.",
            "address":19195
          },
          {
            "id":"din3pd",
            "type":8,
            "address":"dinpdctl.2.2",
            "options":"enum_enabled",
            "descr":"If the pull down is enabled the digital input may be reliably used to indicate 12V input from a positive switched source. Note that only LPC8 units with revision 5 boards (2021 and later) have the pull down capability."
          },
          {
            "id":"din4pd",
            "type":8,
            "address":"dinpdctl.3.3",
            "options":"enum_enabled",
            "descr":"If the pull down is enabled the digital input may be reliably used to indicate 12V input from a positive switched source. Note that only LPC8 units with revision 5 boards (2021 and later) have the pull down capability."
          },
          {
            "id":"countresetinput1",
            "compact":0,
            "type":8,
            "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":13310
          },
          {
            "id":"countresetinput2",
            "compact":0,
            "type":8,
            "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":13311
          },
          {
            "id":"countresetinput3",
            "compact":0,
            "type":8,
            "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":13312
          },
          {
            "id":"upcountinput1",
            "compact":0,
            "type":8,
            "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":13302
          },
          {
            "id":"upcountinput2",
            "compact":0,
            "type":8,
            "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":13303
          },
          {
            "id":"upcountinput3",
            "compact":0,
            "type":8,
            "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":13304
          },
          {
            "id":"downcountinput1",
            "compact":0,
            "type":8,
            "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":13306
          },
          {
            "id":"downcountinput2",
            "compact":0,
            "type":8,
            "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":13307
          },
          {
            "id":"downcountinput3",
            "compact":0,
            "type":8,
            "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":13308
          },
          {
            "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":13318
          },
          {
            "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":13319
          },
          {
            "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":13320
          },
          {
            "id":"downcountinput1",
            "compact":0,
            "type":8,
            "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":13306
          },
          {
            "id":"downcountinput2",
            "compact":0,
            "type":8,
            "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":13307
          },
          {
            "id":"downcountinput3",
            "compact":0,
            "type":8,
            "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":13308
          },
          {
            "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":13322
          },
          {
            "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":13323
          },
          {
            "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":13324
          },
          {
            "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":13314
          },
          {
            "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":13315
          },
          {
            "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":13316
          },
          {
            "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.\r\n'Set while active' means that the latch value is continually updated while the set input is active.\r\n'Leading edge' means the latch value is updated once when the set input activates.\r\n'Trailing edge means the latch value is updated when the set input deactivates.\r\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.\r\n'Set while active' means that the latch value is continually updated while the set input is active.\r\n'Leading edge' means the latch value is updated once when the set input activates.\r\n'Trailing edge means the latch value is updated when the set input deactivates.\r\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.\r\n'Set while active' means that the latch value is continually updated while the set input is active.\r\n'Leading edge' means the latch value is updated once when the set input activates.\r\n'Trailing edge means the latch value is updated when the set input deactivates.\r\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":13332
          },
          {
            "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":13336
          },
          {
            "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":13340
          },
          {
            "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":13348
          },
          {
            "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":13352
          },
          {
            "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":13356
          },
          {
            "id":"gplatchset2",
            "compact":0,
            "type":8,
            "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":13361
          },
          {
            "id":"gplatchset3",
            "compact":0,
            "type":8,
            "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":13362
          },
          {
            "id":"gplatchset4",
            "compact":0,
            "type":8,
            "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":13363
          },
          {
            "id":"gplatchreset2",
            "compact":0,
            "type":8,
            "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":13365
          },
          {
            "id":"gplatchreset3",
            "compact":0,
            "type":8,
            "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":13366
          },
          {
            "id":"gplatchreset4",
            "compact":0,
            "type":8,
            "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":13367
          },
          {
            "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":13370
          },
          {
            "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":13372
          },
          {
            "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":13374
          },
          {
            "id":"egtsrc2",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13420
          },
          {
            "id":"egtsrc3",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13424
          },
          {
            "id":"egtsrc4",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13428
          },
          {
            "id":"egtsrc5",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13432
          },
          {
            "id":"egtsrc6",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13436
          },
          {
            "id":"egtsrc7",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13440
          },
          {
            "id":"egtsrc8",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":13444
          },
          {
            "id":"egtbpcount2",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13449
          },
          {
            "id":"egtbpcount3",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13450
          },
          {
            "id":"egtbpcount4",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13451
          },
          {
            "id":"egtbpcount5",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13452
          },
          {
            "id":"egtbpcount6",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13453
          },
          {
            "id":"egtbpcount7",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13454
          },
          {
            "id":"egtbpcount8",
            "type":1,
            "min":1,
            "compact":0,
            "max":16,
            "address":13455
          },
          {
            "id":"timeropts2",
            "compact":0,
            "type":1,
            "address":13975
          },
          {
            "id":"timeropts3",
            "compact":0,
            "type":1,
            "address":13976
          },
          {
            "id":"timeropts4",
            "compact":0,
            "type":1,
            "address":13977
          },
          {
            "id":"timerreset2",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input sets the timer to zero, regardless of configuration, and holds it at zero while the input is active.",
            "address":13983
          },
          {
            "id":"timerreset3",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input sets the timer to zero, regardless of configuration, and holds it at zero while the input is active.",
            "address":13984
          },
          {
            "id":"timerreset4",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input sets the timer to zero, regardless of configuration, and holds it at zero while the input is active.",
            "address":13985
          },
          {
            "id":"timeredgereset2",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input only has effect when its state changes from 0 to 1. Before it does anything again the state must change back to 0.\r\nIn normal timer mode, when this input changes state from 0 to 1, the timer value is reset to zero. In lap timer mode, the same state change sets the timer value to the time passed since last reset.",
            "address":13987
          },
          {
            "id":"timeredgereset3",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input only has effect when its state changes from 0 to 1. Before it does anything again the state must change back to 0.\r\nIn normal timer mode, when this input changes state from 0 to 1, the timer value is reset to zero. In lap timer mode, the same state change sets the timer value to the time passed since last reset.",
            "address":13988
          },
          {
            "id":"timeredgereset4",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"This input only has effect when its state changes from 0 to 1. Before it does anything again the state must change back to 0.\r\nIn normal timer mode, when this input changes state from 0 to 1, the timer value is reset to zero. In lap timer mode, the same state change sets the timer value to the time passed since last reset.",
            "address":13989
          },
          {
            "id":"timerenable2",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"When this input is active, the timer counts up.",
            "address":13979
          },
          {
            "id":"timerenable3",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"When this input is active, the timer counts up.",
            "address":13980
          },
          {
            "id":"timerenable4",
            "compact":0,
            "type":8,
            "options":"map_inputs",
            "descr":"When this input is active, the timer counts up.",
            "address":13981
          },
          {
            "id":"timermode2",
            "compact":0,
            "type":8,
            "address":"timeropts2.1.1",
            "options":[
              "Normal",
              "Lap timer"
            ],
            "descr":"In normal timer mode, the timer continually counts up while the enable input is active. In lap timer mode, the timer value only changes when the edge sensitive reset activates, where it takes the value of the time passed since last reset. In lap timer mode, the enable input is generally not used."
          },
          {
            "id":"timermode3",
            "compact":0,
            "type":8,
            "address":"timeropts3.1.1",
            "options":[
              "Normal",
              "Lap timer"
            ],
            "descr":"In normal timer mode, the timer continually counts up while the enable input is active. In lap timer mode, the timer value only changes when the edge sensitive reset activates, where it takes the value of the time passed since last reset. In lap timer mode, the enable input is generally not used."
          },
          {
            "id":"timermode4",
            "compact":0,
            "type":8,
            "address":"timeropts4.1.1",
            "options":[
              "Normal",
              "Lap timer"
            ],
            "descr":"In normal timer mode, the timer continually counts up while the enable input is active. In lap timer mode, the timer value only changes when the edge sensitive reset activates, where it takes the value of the time passed since last reset. In lap timer mode, the enable input is generally not used."
          },
          {
            "id":"timerautoreset2",
            "type":8,
            "compact":0,
            "address":"timeropts2.0.0",
            "options":"enum_enabled",
            "descr":"When enabled, the timer will automatically reset to 0 whenever the enable input deactivates."
          },
          {
            "id":"timerautoreset3",
            "type":8,
            "compact":0,
            "address":"timeropts3.0.0",
            "options":"enum_enabled",
            "descr":"When enabled, the timer will automatically reset to 0 whenever the enable input deactivates."
          },
          {
            "id":"timerautoreset4",
            "type":8,
            "compact":0,
            "address":"timeropts4.0.0",
            "options":"enum_enabled",
            "descr":"When enabled, the timer will automatically reset to 0 whenever the enable input deactivates."
          },
          {
            "id":"customlookupsrc2",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":13996
          },
          {
            "id":"customlookupsrc3",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14000
          },
          {
            "id":"customlookupsrc4",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14004
          },
          {
            "id":"customlookupcount2",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14009
          },
          {
            "id":"customlookupcount3",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14010
          },
          {
            "id":"customlookupcount4",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14011
          },
          {
            "id":"custom2dxsrc2",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14528
          },
          {
            "id":"custom2dxsrc3",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14532
          },
          {
            "id":"custom2dxsrc4",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14536
          },
          {
            "id":"custom2dysrc2",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14544
          },
          {
            "id":"custom2dysrc3",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14548
          },
          {
            "id":"custom2dysrc4",
            "type":9,
            "compact":0,
            "maxwidth":2,
            "address":14552
          },
          {
            "id":"custom2dxcount2",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14557
          },
          {
            "id":"custom2dxcount3",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14558
          },
          {
            "id":"custom2dxcount4",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14559
          },
          {
            "id":"custom2dycount2",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14561
          },
          {
            "id":"custom2dycount3",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14562
          },
          {
            "id":"custom2dycount4",
            "type":1,
            "compact":0,
            "min":1,
            "max":32,
            "address":14563
          },
          {
            "id":"faultlevel1",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17125
          },
          {
            "id":"faultlevel2",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17126
          },
          {
            "id":"faultlevel3",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17127
          },
          {
            "id":"faultlevel4",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17128
          },
          {
            "id":"faultlevel5",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17129
          },
          {
            "id":"faultlevel6",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17130
          },
          {
            "id":"faultlevel7",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17131
          },
          {
            "id":"faultlevel8",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17132
          },
          {
            "id":"faultlevel9",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17133
          },
          {
            "id":"faultlevel10",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17134
          },
          {
            "id":"faultlevel11",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17135
          },
          {
            "id":"faultlevel12",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17136
          },
          {
            "id":"faultlevel13",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17137
          },
          {
            "id":"faultlevel14",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17138
          },
          {
            "id":"faultlevel15",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17139
          },
          {
            "id":"faultlevel16",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17140
          },
          {
            "id":"faultlevel17",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17141
          },
          {
            "id":"faultlevel18",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17142
          },
          {
            "id":"faultlevel19",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17143
          },
          {
            "id":"faultlevel20",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17144
          },
          {
            "id":"faultlevel21",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17145
          },
          {
            "id":"faultlevel22",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17146
          },
          {
            "id":"faultlevel23",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17147
          },
          {
            "id":"faultlevel24",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17148
          },
          {
            "id":"faultlevel25",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17149
          },
          {
            "id":"faultlevel26",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17150
          },
          {
            "id":"faultlevel27",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17151
          },
          {
            "id":"faultlevel28",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17152
          },
          {
            "id":"faultlevel29",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17153
          },
          {
            "id":"faultlevel30",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17154
          },
          {
            "id":"faultlevel31",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17155
          },
          {
            "id":"faultlevel32",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17156
          },
          {
            "id":"faultlevel33",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17157
          },
          {
            "id":"faultlevel34",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17158
          },
          {
            "id":"faultlevel35",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17159
          },
          {
            "id":"faultlevel36",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17160
          },
          {
            "id":"faultlevel37",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17161
          },
          {
            "id":"faultlevel38",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17162
          },
          {
            "id":"faultlevel39",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17163
          },
          {
            "id":"faultlevel40",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17164
          },
          {
            "id":"faultlevel41",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17165
          },
          {
            "id":"faultlevel42",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17166
          },
          {
            "id":"faultlevel43",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17167
          },
          {
            "id":"faultlevel44",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17168
          },
          {
            "id":"faultlevel45",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17169
          },
          {
            "id":"faultlevel46",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17170
          },
          {
            "id":"faultlevel47",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17171
          },
          {
            "id":"faultlevel48",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17172
          },
          {
            "id":"faultlevel49",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17173
          },
          {
            "id":"faultlevel50",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17174
          },
          {
            "id":"faultlevel51",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17175
          },
          {
            "id":"faultlevel52",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17176
          },
          {
            "id":"faultlevel53",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17177
          },
          {
            "id":"faultlevel54",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17178
          },
          {
            "id":"faultlevel55",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17179
          },
          {
            "id":"faultlevel56",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17180
          },
          {
            "id":"faultlevel57",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17181
          },
          {
            "id":"faultlevel58",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17182
          },
          {
            "id":"faultlevel59",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17183
          },
          {
            "id":"faultlevel60",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17184
          },
          {
            "id":"faultlevel61",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17185
          },
          {
            "id":"faultlevel62",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17186
          },
          {
            "id":"faultlevel63",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17187
          },
          {
            "id":"faultlevel64",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17188
          },
          {
            "id":"faultlevel65",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17189
          },
          {
            "id":"faultlevel66",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17190
          },
          {
            "id":"faultlevel67",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17191
          },
          {
            "id":"faultlevel68",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17192
          },
          {
            "id":"faultlevel69",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17193
          },
          {
            "id":"faultlevel70",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17194
          },
          {
            "id":"faultlevel71",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17195
          },
          {
            "id":"faultlevel72",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17196
          },
          {
            "id":"faultlevel73",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17197
          },
          {
            "id":"faultlevel74",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17198
          },
          {
            "id":"faultlevel75",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17199
          },
          {
            "id":"faultlevel76",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17200
          },
          {
            "id":"faultlevel77",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17201
          },
          {
            "id":"faultlevel78",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17202
          },
          {
            "id":"faultlevel79",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17203
          },
          {
            "id":"faultlevel80",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17204
          },
          {
            "id":"faultlevel81",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17205
          },
          {
            "id":"faultlevel82",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17206
          },
          {
            "id":"faultlevel83",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17207
          },
          {
            "id":"faultlevel84",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17208
          },
          {
            "id":"faultlevel85",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17209
          },
          {
            "id":"faultlevel86",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17210
          },
          {
            "id":"faultlevel87",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17211
          },
          {
            "id":"faultlevel88",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17212
          },
          {
            "id":"faultlevel89",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17213
          },
          {
            "id":"faultlevel90",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17214
          },
          {
            "id":"faultlevel91",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17215
          },
          {
            "id":"faultlevel92",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17216
          },
          {
            "id":"faultlevel93",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17217
          },
          {
            "id":"faultlevel94",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17218
          },
          {
            "id":"faultlevel95",
            "type":8,
            "compact":0,
            "options":"enum_faultlevels",
            "address":17219
          },
          {
            "id":"simplepwmdutyvar2",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17704
          },
          {
            "id":"simplepwmdutyvar3",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17708
          },
          {
            "id":"simplepwmdutyvar4",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17712
          },
          {
            "id":"simplepwmdutyptcount2",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the duty cycle constant, set this value to 1 and the axis variable is ignored",
            "address":17741
          },
          {
            "id":"simplepwmdutyptcount3",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the duty cycle constant, set this value to 1 and the axis variable is ignored",
            "address":17742
          },
          {
            "id":"simplepwmdutyptcount4",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the duty cycle constant, set this value to 1 and the axis variable is ignored",
            "address":17743
          },
          {
            "id":"simplepwmdutypts2",
            "type":2,
            "describedby":"simplepwmdutyvar2",
            "array":16,
            "cols":"simplepwmdutyptcount2",
            "compact":0,
            "address":17780
          },
          {
            "id":"simplepwmdutypts3",
            "type":2,
            "describedby":"simplepwmdutyvar3",
            "array":16,
            "cols":"simplepwmdutyptcount3",
            "compact":0,
            "address":17812
          },
          {
            "id":"simplepwmdutypts4",
            "type":2,
            "describedby":"simplepwmdutyvar4",
            "array":16,
            "cols":"simplepwmdutyptcount4",
            "compact":0,
            "address":17844
          },
          {
            "id":"simplepwmduty2",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "array":16,
            "cols":"simplepwmdutyptcount2",
            "compact":0,
            "address":17908
          },
          {
            "id":"simplepwmduty3",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "array":16,
            "cols":"simplepwmdutyptcount3",
            "compact":0,
            "address":17940
          },
          {
            "id":"simplepwmduty4",
            "type":2,
            "unit":"%",
            "scale":0.003052,
            "digits":2,
            "array":16,
            "cols":"simplepwmdutyptcount4",
            "compact":0,
            "address":17972
          },
          {
            "id":"simplepwmfreqvar2",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17720
          },
          {
            "id":"simplepwmfreqvar3",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17724
          },
          {
            "id":"simplepwmfreqvar4",
            "type":9,
            "maxwidth":2,
            "compact":0,
            "address":17728
          },
          {
            "id":"simplepwmfreqptcount2",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the frequency constant, set this value to 1 and the axis variable is ignored",
            "address":17745
          },
          {
            "id":"simplepwmfreqptcount3",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the frequency constant, set this value to 1 and the axis variable is ignored",
            "address":17746
          },
          {
            "id":"simplepwmfreqptcount4",
            "type":1,
            "max":16,
            "min":1,
            "compact":0,
            "descr":"If you wish to have the frequency constant, set this value to 1 and the axis variable is ignored",
            "address":17747
          },
          {
            "id":"simplepwmfreqpts2",
            "type":2,
            "describedby":"simplepwmfreqvar2",
            "array":16,
            "cols":"simplepwmfreqptcount2",
            "compact":0,
            "address":18036
          },
          {
            "id":"simplepwmfreqpts3",
            "type":2,
            "describedby":"simplepwmfreqvar3",
            "array":16,
            "cols":"simplepwmfreqptcount3",
            "compact":0,
            "address":18068
          },
          {
            "id":"simplepwmfreqpts4",
            "type":2,
            "describedby":"simplepwmfreqvar4",
            "array":16,
            "cols":"simplepwmfreqptcount4",
            "compact":0,
            "address":18100
          },
          {
            "id":"simplepwmfreq2",
            "type":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "array":16,
            "cols":"simplepwmfreqptcount2",
            "compact":0,
            "address":18164
          },
          {
            "id":"simplepwmfreq3",
            "type":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "array":16,
            "cols":"simplepwmfreqptcount3",
            "compact":0,
            "address":18196
          },
          {
            "id":"simplepwmfreq4",
            "type":2,
            "unit":"Hz",
            "scale":500000,
            "inverse":1,
            "max":"2000",
            "array":16,
            "cols":"simplepwmfreqptcount4",
            "compact":0,
            "address":18228
          },
          {
            "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":17733
          },
          {
            "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":17734
          },
          {
            "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":17735
          },
          {
            "id":"simplepwmenable2",
            "type":8,
            "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":17737
          },
          {
            "id":"simplepwmenable3",
            "type":8,
            "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":17738
          },
          {
            "id":"simplepwmenable4",
            "type":8,
            "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":17739
          }
        ]
      },
      {
        "page":3,
        "size":24576,
        "data":[
          {
            "id":"userprogramcode",
            "type":7,
            "array":16000,
            "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"
              ],
              [
                32,
                "userpwmperiod1"
              ],
              [
                33,
                "userpwmperiod2"
              ],
              [
                34,
                "userpwmperiod3"
              ],
              [
                35,
                "userpwmperiod4"
              ],
              [
                36,
                "userpwmperiod5"
              ],
              [
                37,
                "userpwmperiod6"
              ],
              [
                38,
                "userpwmperiod7"
              ],
              [
                39,
                "userpwmperiod8"
              ],
              [
                48,
                "callback_tachout"
              ],
              [
                49,
                "callback_percylinder"
              ],
              [
                50,
                "callback_percycle"
              ]
            ],
            "programmemory":1536,
            "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[]"
                ]
              },
              "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"
                ]
              },
              "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":1,
              "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":5
          },
          {
            "id":"userconftree",
            "type":7,
            "array":8000,
            "compressed":1,
            "beforechange":[
              [
                "applyuserconfdef",
                "userconftree"
              ]
            ],
            "onmerge":[
              [
                "applyuserconfdef",
                "userconftree"
              ]
            ],
            "address":16005
          }
        ]
      },
      {
        "page":4,
        "size":24576,
        "data":[
          {
            "id":"userconf",
            "type":3,
            "array":4096,
            "address":8
          },
          {
            "id":"userconfdef",
            "type":7,
            "array":8000,
            "compressed":1,
            "onupdate":[
              [
                "applyuserecudef",
                "userconfdef",
                "userconf"
              ]
            ],
            "address":16392
          }
        ]
      },
      {
        "page":5,
        "size":24576,
        "data":[
          {
            "id":"userprogram",
            "type":3,
            "array":4000,
            "address":8
          },
          {
            "id":"userrtdef",
            "type":7,
            "array":4096,
            "compressed":1,
            "onchange":[
              [
                "applyuserrtdef",
                "userrtdef",
                "userpgmvalues",
                "userrtsize"
              ]
            ],
            "onupdate":[
              [
                "applyuserrtdef",
                "userrtdef",
                "userpgmvalues"
              ]
            ],
            "address":16008
          },
          {
            "id":"userrtsize",
            "type":2,
            "address":20104
          }
        ]
      },
      {
        "page":31,
        "notflash":1,
        "size":2000,
        "data":[
          {
            "id":"fueltrim",
            "readonly":1,
            "type":1,
            "sign":1,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "digits":1,
            "scale":0.200000,
            "unit":"%",
            "address":8
          },
          {
            "id":"fueltrim2",
            "readonly":1,
            "type":1,
            "sign":1,
            "array":256,
            "rows":"fuelpribincount",
            "cols":"fuelrpmbincount",
            "digits":1,
            "scale":0.200000,
            "unit":"%",
            "address":264
          },
          {
            "id":"knocktrim",
            "readonly":1,
            "type":1,
            "array":256,
            "rows":"ignpribincount",
            "cols":"ignrpmbincount",
            "digits":1,
            "scale":0.087891,
            "unit":"°",
            "descr":"This table shares the same dimensions as the primary ignition map and shows the knock trim applied depending on engine speed and load.",
            "address":520
          },
          {
            "id":"cylknockindex",
            "readonly":1,
            "type":1,
            "array":12,
            "cols":"cylcount",
            "digits":1,
            "scale":0.087891,
            "unit":"°",
            "descr":"How these values are used depends on the knock management mode, but they roughly represent the maximum necessary timing removed from each cylinder to avoid knock.",
            "address":776
          },
          {
            "id":"n2os1runtime",
            "readonly":1,
            "type":3,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "address":808
          },
          {
            "id":"n2os2runtime",
            "readonly":1,
            "type":3,
            "unit":"s",
            "scale":0.001000,
            "digits":1,
            "address":812
          },
          {
            "id":"nverror0",
            "readonly":1,
            "type":3,
            "address":788
          },
          {
            "id":"nverror1",
            "readonly":1,
            "type":3,
            "address":792
          },
          {
            "id":"nverror2",
            "readonly":1,
            "type":3,
            "address":796
          },
          {
            "id":"nverror3",
            "readonly":1,
            "type":3,
            "address":800
          },
          {
            "id":"nverror4",
            "readonly":1,
            "type":3,
            "address":804
          },
          {
            "id":"usernvdata",
            "type":1,
            "array":512,
            "address":848
          }
        ]
      }
    ],
    "datastream":{
      "streamlength":1500,
      "variables":[
        {
          "id":"time",
          "address":"uptime",
          "scale":0.001000,
          "digits":3,
          "unit":"s",
          "type":3,
          "descr":"Time since controller powered on"
        },
        {
          "id":"debug_slavetime",
          "unit":"µs",
          "type":3,
          "sign":1,
          "descr":"Clock drift correction of slave processor, for troubleshooting slave processor on LPC8 models.",
          "address":72
        },
        {
          "id":"analog0",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":78
        },
        {
          "id":"injpw1",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":222
        },
        {
          "id":"injangle1",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":246
        },
        {
          "id":"supplyvoltage",
          "unit":"V",
          "type":2,
          "digits":2,
          "scale":0.001000,
          "descr":"Power supply input voltage. Nominally 14 volts when engine running, over 12 when engine stopped.",
          "address":130
        },
        {
          "id":"map",
          "unit":"mbar",
          "type":2,
          "descr":"Inlet manifold absolute pressure.",
          "address":126
        },
        {
          "id":"map2",
          "unit":"mbar",
          "type":2,
          "descr":"Inlet manifold absolute pressure bank 2.",
          "address":128
        },
        {
          "id":"coolanttemp",
          "unit":"°C",
          "type":2,
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Engine coolant temperature",
          "address":132
        },
        {
          "id":"airtemp",
          "unit":"°C",
          "type":2,
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Charge air temperature",
          "address":142
        },
        {
          "id":"error0",
          "type":3,
          "descr":"Errors that are considered serious enough to disable the engine, inhibiting fuel injection, ignition and fuel pump operation. Bit mask described in manual as well as using controller errors tool.",
          "address":172
        },
        {
          "id":"error1",
          "type":1,
          "descr":"Errors that have to do with throttle or accelerator pedal, disabling the accelerator pedal if electronic throttle control is being used. Bit mask described in manual as well as using controller errors tool.",
          "address":176
        },
        {
          "id":"error2",
          "type":3,
          "descr":"Errors that may be configured to trigger engine protection mode, turn on check engine light or be ignored. Bit mask described in manual as well as using controller errors tool.",
          "address":180
        },
        {
          "id":"error3",
          "type":3,
          "descr":"Errors that may be configured to trigger engine protection mode, turn on check engine light or be ignored. Bit mask described in manual as well as using controller errors tool.",
          "address":184
        },
        {
          "id":"error4",
          "type":3,
          "descr":"Errors that may be configured to trigger engine protection mode, turn on check engine light or be ignored. Bit mask described in manual as well as using controller errors tool.",
          "address":188
        },
        {
          "id":"throttle",
          "scale":0.097656,
          "type":2,
          "digits":1,
          "unit":"%",
          "descr":"Throttle valve position. Not to be confused with accelerator pedal position in electronic throttle mode.",
          "address":138
        },
        {
          "id":"enginespeed",
          "unit":"RPM",
          "type":2,
          "descr":"Engine rotational speed.",
          "address":134
        },
        {
          "id":"idleP",
          "type":2,
          "sign":1,
          "descr":"Idle ignition timing control loop P effect.",
          "address":152
        },
        {
          "id":"idleI",
          "type":2,
          "sign":1,
          "descr":"Idle ignition timing control loop I effect.",
          "address":154
        },
        {
          "id":"idleD",
          "type":2,
          "sign":1,
          "descr":"Idle ignition timing control loop D effect.",
          "address":156
        },
        {
          "id":"roadspeed",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of driven wheels.",
          "address":160
        },
        {
          "id":"wheelspeed_fl",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of front left wheel",
          "address":164
        },
        {
          "id":"wheelspeed_fr",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of front right wheel",
          "address":166
        },
        {
          "id":"wheelspeed_rl",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of rear left wheel",
          "address":168
        },
        {
          "id":"wheelspeed_rr",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of rear right wheel",
          "address":170
        },
        {
          "id":"roaddistance",
          "type":3,
          "unit":"km",
          "scale":0.001000,
          "digits":3,
          "descr":"Distance driven since controller power on.",
          "address":16
        },
        {
          "id":"odometer",
          "type":3,
          "unit":"km",
          "scale":0.001000,
          "digits":3,
          "descr":"Distance driven since odometer reset.",
          "address":64
        },
        {
          "id":"tripodometer",
          "type":3,
          "unit":"km",
          "scale":0.001000,
          "digits":3,
          "descr":"Distance driven since odometer reset.",
          "address":68
        },
        {
          "id":"roadspeed2",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed of undriven wheels or actual vehicle speed derived from other source. Used for traction control.",
          "address":162
        },
        {
          "id":"flags0",
          "type":3,
          "descr":"Bit mask of flags that indicate states of software strategies.",
          "address":52
        },
        {
          "id":"flags1",
          "type":1,
          "descr":"Bit mask of flags that indicate states of software strategies.",
          "address":957
        },
        {
          "id":"flags2",
          "type":2,
          "descr":"Bit mask of flags that indicate states of software strategies.",
          "address":76
        },
        {
          "id":"engine_running",
          "type":0,
          "address":"flags0.0",
          "descr":"A flag that indicates whether the engine is running or not. Triggered when engine speed exceeds cranking threshold."
        },
        {
          "id":"overrun",
          "type":0,
          "address":"flags0.4",
          "descr":"A flag that indicates the overrun fuel cut is active."
        },
        {
          "id":"revlimit_fuel",
          "type":0,
          "address":"flags1.0",
          "descr":"Flag that indicates that engine speed is currently being limited by inhibiting fuel injection."
        },
        {
          "id":"revlimit_spark",
          "type":0,
          "address":"flags1.1",
          "descr":"Flag that indicates that engine speed is currently being limited by inhibiting ignition."
        },
        {
          "id":"cel",
          "type":0,
          "address":"outputs.3",
          "descr":"Flag that indicates check engine lamp is illuminated."
        },
        {
          "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":"mainfrequency",
          "type":2,
          "unit":"Hz",
          "descr":"This variable counts how many times a full iteration of the firmware background loop executes in one second. An indicator of processor load.",
          "address":204
        },
        {
          "id":"boostduty",
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "type":2,
          "descr":"Primary turbocharger solenoid output duty cycle",
          "address":150
        },
        {
          "id":"boostctlcmd",
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "type":2,
          "descr":"Turbocharger control loop commanded effort. Usually identical to wastegate duty cycle unless translation functions are used.",
          "address":602
        },
        {
          "id":"boosttarget",
          "type":2,
          "describedby":"boostpressuresource",
          "descr":"Target pressure for turbocharger control loop",
          "address":146
        },
        {
          "id":"boostP",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop proportional effect",
          "address":206
        },
        {
          "id":"boostI",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop integral effect",
          "address":208
        },
        {
          "id":"boostD",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop derivative effect",
          "address":210
        },
        {
          "id":"boostp2limit",
          "type":2,
          "describedby":"boostparam2picker",
          "descr":"Target value for turbocharger parameter 2 control loop",
          "address":576
        },
        {
          "id":"boostp3limit",
          "type":2,
          "describedby":"boostparam3picker",
          "descr":"Target value for turbocharger parameter 3 control loop",
          "address":578
        },
        {
          "id":"boostP",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop proportional effect",
          "address":206
        },
        {
          "id":"boostI",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop integral effect",
          "address":208
        },
        {
          "id":"boostD",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop derivative effect",
          "address":210
        },
        {
          "id":"boostp2P",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 2 proportional effect",
          "address":590
        },
        {
          "id":"boostp2I",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 2 integral effect",
          "address":592
        },
        {
          "id":"boostp2D",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 2 derivative effect",
          "address":594
        },
        {
          "id":"boostp3P",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 3 proportional effect",
          "address":596
        },
        {
          "id":"boostp3I",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 3 integral effect",
          "address":598
        },
        {
          "id":"boostp3D",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger control loop parameter 3 derivative effect",
          "address":600
        },
        {
          "id":"boostp1duty",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger PID control loop parameter 1 output. This is added to boostbaseduty to become boostctlcmd which normally controls the turbocharger.",
          "address":584
        },
        {
          "id":"boostp2duty",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger PID control loop parameter 2 output. Acts as a limiter to boostctlcmd.",
          "address":586
        },
        {
          "id":"boostp3duty",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":1,
          "sign":1,
          "descr":"Turbocharger PID control loop parameter 3 output. Acts as a limiter to boostctlcmd.",
          "address":588
        },
        {
          "id":"debugval0",
          "compact":8,
          "type":3,
          "devonly":1,
          "ignore":1
        },
        {
          "id":"fuelmass",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel mass injected per cylinder per cycle.",
          "address":194
        },
        {
          "id":"fuelmass2",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel mass injected per cylinder per cycle on second bank if two separate engine banks are configured.",
          "address":196
        },
        {
          "id":"prifuelmass",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel mass delivered by primary injectors when running staged injectors.",
          "address":198
        },
        {
          "id":"prifuelmass2",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel mass delivered by primary injectors on the second bank when running staged injectors.",
          "address":200
        },
        {
          "id":"secfuelmass",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel mass delivered by secondary injectors when running staged injectors.",
          "address":202
        },
        {
          "id":"logging",
          "type":1,
          "descr":"Status indicator for controller internal data logging. 0 indicates no activity, 1 indicates a data log is being recorded.",
          "address":941
        },
        {
          "id":"logseq",
          "type":2,
          "descr":"Sequence number of the most recent log file created in controller internal memory, if controller is fitted with internal logging option.",
          "address":334
        },
        {
          "id":"runtime",
          "type":3,
          "unit":"s",
          "scale":0.001000,
          "descr":"If engine is running, this is the time elapsed since start up.",
          "address":4
        },
        {
          "id":"date",
          "type":10,
          "descr":"If controller is fitted with internal data logging option, this is the calendar date and time.",
          "address":24
        },
        {
          "id":"ecutemp",
          "type":2,
          "scale":0.100000,
          "unit":"°C",
          "digits":1,
          "offset":-2731,
          "descr":"Controller internal temperature",
          "address":312
        },
        {
          "id":"sparkangle1",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":276
        },
        {
          "id":"sparkanglebase",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "descr":"Ignition angle as looked up from ignition map, before any trims are applied.",
          "address":270
        },
        {
          "id":"sparkangleglobal",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "descr":"Ignition angle before knock trims, per-cylinder trims and torque management trims.",
          "address":272
        },
        {
          "id":"ign_torqueretard",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Ignition retard applied by torque management model.",
          "address":274
        },
        {
          "id":"ign_transretard",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "sign":1,
          "digits":1,
          "descr":"Ignition retard applied by the transient ignition strategy.",
          "address":510
        },
        {
          "id":"dwell",
          "type":2,
          "unit":"ms",
          "scale":0.001000,
          "digits":3,
          "descr":"Ignition dwell time of primary ignition coils.",
          "address":296
        },
        {
          "id":"rawenginespeed",
          "type":2,
          "unit":"RPM",
          "descr":"Engine speed calculated from inter tooth duration during crank trigger processing.",
          "address":136
        },
        {
          "id":"synclosscount",
          "type":2,
          "descr":"Counter incremented every time the crank trigger decoder determines there is an error and resets the sync state.",
          "address":212
        },
        {
          "id":"synclossreason",
          "type":2,
          "descr":"Debugging information to help diagnose sync loss issues",
          "address":214
        },
        {
          "id":"syncstate",
          "type":1,
          "descr":"The current state of the crank trigger sync. Value map:\r\n0: No signal\r\n1: Crank trigger impulses received but not decoded\r\n3: Crankshaft angle known\r\n7: Crankshaft angle as well as cam phase known",
          "address":940
        },
        {
          "id":"crankevent",
          "type":3,
          "unit":"µs",
          "descr":"Timer value updated on each crank trigger impulse",
          "address":8
        },
        {
          "id":"camevent",
          "type":3,
          "unit":"µs",
          "descr":"Timer value updated on each cam sync impulse",
          "address":12
        },
        {
          "id":"idlevalvestep",
          "type":2,
          "unit":"steps",
          "descr":"Position of stepper type idle valve.",
          "address":314
        },
        {
          "id":"idlevalve",
          "type":2,
          "scale":0.097656,
          "digits":1,
          "unit":"%",
          "descr":"Opening fraction of idle valve, which usually translates directly to duty cycle in case of a PWM valve but steps or throttle position in case of stepper valve or electronic throttle respectively.",
          "address":648
        },
        {
          "id":"idlevalvepw",
          "type":2,
          "unit":"µs",
          "descr":"Pulse duration of PWM idle valve if one is fitted.",
          "address":650
        },
        {
          "id":"warmupmult",
          "type":1,
          "scale":0.010000,
          "offset":70,
          "digits":2,
          "descr":"Fuel multiplier from the warm-up fuel multiplier table.",
          "address":943
        },
        {
          "id":"airdensity",
          "type":2,
          "scale":0.000977,
          "digits":3,
          "descr":"Relative air density from the charge air temperature multiplier table.",
          "address":316
        },
        {
          "id":"fuelsecmult",
          "type":2,
          "scale":0.000977,
          "digits":3,
          "descr":"Fuel multiplier from the secondary fuel multiplier table, if that table is enabled.",
          "address":318
        },
        {
          "id":"injdc1",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":944
        },
        {
          "id":"deltathrottle",
          "type":2,
          "sign":1,
          "unit":"%\/sec",
          "scale":1.955000,
          "descr":"Throttle position rate of change.",
          "address":300
        },
        {
          "id":"deltamap",
          "type":2,
          "sign":1,
          "unit":"mbar\/sec",
          "scale":20,
          "descr":"Manifold pressure rate of change.",
          "address":302
        },
        {
          "id":"deltarpm",
          "type":2,
          "sign":1,
          "unit":"RPM\/sec",
          "scale":20,
          "descr":"Engine speed rate of change.",
          "address":298
        },
        {
          "id":"synctooth",
          "type":1,
          "descr":"Position in crank trigger tooth table when sync was achieved.",
          "address":952
        },
        {
          "id":"syncrepeat",
          "type":1,
          "descr":"Value of tooth repeat counter when sync was achieved.",
          "address":953
        },
        {
          "id":"camtooth",
          "type":1,
          "descr":"Position in crank trigger tooth table when cam sync was registered.",
          "address":954
        },
        {
          "id":"camrepeat",
          "type":1,
          "descr":"Value of tooth repeat counter when cam sync was registered.",
          "address":955
        },
        {
          "id":"transientfuel",
          "type":2,
          "sign":1,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel quantity added or removed by the transient fuelling strategy.",
          "address":320
        },
        {
          "id":"outputs",
          "type":3,
          "descr":"A bit mask of general purpose logic states.",
          "address":20
        },
        {
          "id":"tcretard",
          "type":2,
          "scale":0.010986,
          "digits":1,
          "unit":"°",
          "descr":"Ignition timing retard commanded by traction control.",
          "address":326
        },
        {
          "id":"lcretard",
          "type":2,
          "scale":0.010986,
          "digits":1,
          "sign":1,
          "unit":"°",
          "descr":"Ignition timing retard commanded by launch control.",
          "address":328
        },
        {
          "id":"sparkcutlimit",
          "type":2,
          "unit":"RPM",
          "descr":"The current value of the ignition cut rev limiter.",
          "address":322
        },
        {
          "id":"fuelcutlimit",
          "type":2,
          "unit":"RPM",
          "descr":"The current value of the fuel cut rev limiter.",
          "address":324
        },
        {
          "id":"din1interval",
          "type":3,
          "unit":"µs",
          "descr":"The interval between two impulses on digital input 1.",
          "address":36
        },
        {
          "id":"din3interval",
          "type":3,
          "unit":"µs",
          "descr":"The interval between two impulses on digital input 3.",
          "address":40
        },
        {
          "id":"din4interval",
          "type":3,
          "unit":"µs",
          "descr":"The interval between two impulses on digital input 4.",
          "address":44
        },
        {
          "id":"din5interval",
          "type":3,
          "unit":"µs",
          "descr":"The interval between two impulses on digital input 5.",
          "address":32
        },
        {
          "id":"gear",
          "type":1,
          "descr":"Current gear as determined from the ratio between engine speed and wheel speed.",
          "address":956
        },
        {
          "id":"slipspeed",
          "type":2,
          "scale":0.100000,
          "sign":1,
          "unit":"km\/h",
          "descr":"Speed difference between driven wheels and undriven wheels. Positive if driven wheels are faster, negative if slower.",
          "address":332
        },
        {
          "id":"canrx1",
          "type":1,
          "descr":"A counter that counts up every time a frame is received on the CAN interface. Rolls over after 255 and starts from 0.",
          "address":938
        },
        {
          "id":"canrx2",
          "type":1,
          "descr":"A counter that counts up every time a frame is received on the CAN 2 interface. Rolls over after 255 and starts from 0.",
          "address":939
        },
        {
          "id":"canerrcount1",
          "type":1,
          "descr":"CAN bus transmit error state. If the value is not zero it means the CAN bus is either not terminated properly or has no other active receivers.",
          "address":975
        },
        {
          "id":"cansrc0",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":340
        },
        {
          "id":"can2src0",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":404
        },
        {
          "id":"pwm0duty",
          "type":2,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PWM output duty cycle.",
          "address":468
        },
        {
          "id":"pwm1duty",
          "type":2,
          "unit":"%",
          "digits":2,
          "sign":1,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 output duty cycle.",
          "address":480
        },
        {
          "id":"pwm1sp",
          "type":2,
          "describedby":"pwm1var",
          "descr":"General purpose PID loop 1 setpoint.",
          "address":476
        },
        {
          "id":"pwm1error",
          "type":2,
          "describedby":"pwm1var",
          "signed":1,
          "relative":1,
          "descr":"General purpose PID loop 1 error distance.",
          "address":478
        },
        {
          "id":"pwm2sp",
          "type":2,
          "describedby":"pwm2var",
          "descr":"General purpose PID loop 2 setpoint.",
          "address":488
        },
        {
          "id":"pwm2error",
          "type":2,
          "describedby":"pwm2var",
          "signed":1,
          "relative":1,
          "descr":"General purpose PID loop 2 error distance.",
          "address":490
        },
        {
          "id":"pwm1P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 proportional effect.",
          "address":470
        },
        {
          "id":"pwm1I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 integral effect.",
          "address":472
        },
        {
          "id":"pwm1D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 1 differential effect.",
          "address":474
        },
        {
          "id":"pwm2duty",
          "type":2,
          "unit":"%",
          "digits":2,
          "sign":1,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 output duty cycle.",
          "address":492
        },
        {
          "id":"pwm2P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 proportional effect.",
          "address":482
        },
        {
          "id":"pwm2I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 integral effect.",
          "address":484
        },
        {
          "id":"pwm2D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"General purpose PID loop 2 differential effect.",
          "address":486
        },
        {
          "id":"idleP",
          "type":2,
          "sign":1,
          "unit":"°",
          "scale":0.001373,
          "digits":2,
          "descr":"Idle ignition timing control loop proportional effect.",
          "address":152
        },
        {
          "id":"idleI",
          "type":2,
          "sign":1,
          "unit":"°",
          "scale":0.001373,
          "digits":2,
          "descr":"Idle ignition timing control loop integral effect.",
          "address":154
        },
        {
          "id":"idleD",
          "type":2,
          "sign":1,
          "unit":"°",
          "scale":0.001373,
          "digits":2,
          "descr":"Idle ignition timing control loop differential effect.",
          "address":156
        },
        {
          "id":"ign_idleadvance",
          "type":2,
          "sign":1,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"Ignition advance adjustment made by idle ignition timing control loop.",
          "address":494
        },
        {
          "id":"idletargetspeed",
          "type":2,
          "unit":"RPM",
          "descr":"Idle speed setpoint targeted by idle control loops.",
          "address":496
        },
        {
          "id":"lambda",
          "type":2,
          "digits":3,
          "scale":0.001000,
          "descr":"Primary lambda sensor value.",
          "address":336
        },
        {
          "id":"lambda2",
          "type":2,
          "digits":3,
          "scale":0.001000,
          "descr":"Secondary lambda sensor value.",
          "address":338
        },
        {
          "id":"lambdatgt",
          "type":2,
          "scale":0.001000,
          "digits":3,
          "descr":"Lambda setpoint for closed loop fuelling.",
          "address":960
        },
        {
          "id":"ign_airtempretard",
          "type":1,
          "scale":0.175781,
          "digits":1,
          "unit":"°",
          "descr":"Ignition timing subtracted by air temperature timing retard table.",
          "address":965
        },
        {
          "id":"ign_gpmod1",
          "type":2,
          "sign":1,
          "digits":1,
          "unit":"°",
          "scale":0.010986,
          "descr":"Effect of general purpose ignition modifier 1. Positive numbers are timing advance, negative number signify timing retard.",
          "address":498
        },
        {
          "id":"fuel_gpmod1",
          "type":2,
          "digits":3,
          "scale":0.000977,
          "descr":"General purpose fuel quantity multiplier 1 effect.",
          "address":500
        },
        {
          "id":"ign_gpmod2",
          "type":2,
          "sign":1,
          "digits":1,
          "unit":"°",
          "scale":0.010986,
          "descr":"Effect of general purpose ignition modifier 2. Positive numbers are timing advance, negative number signify timing retard.",
          "address":502
        },
        {
          "id":"fuel_gpmod2",
          "type":2,
          "digits":3,
          "scale":0.000977,
          "descr":"General purpose fuel quantity multiplier 1 effect.",
          "address":504
        },
        {
          "id":"fuel_alsmod",
          "type":2,
          "digits":3,
          "scale":0.000977,
          "descr":"Fuel quantity multiplier of anti lag strategy.",
          "address":728
        },
        {
          "id":"ign_alsmod",
          "type":2,
          "sign":1,
          "digits":1,
          "unit":"°",
          "scale":0.010986,
          "descr":"Ignition timing added by anti lag strategy. Negative numbers signify timing retard.",
          "address":726
        },
        {
          "id":"ign_orfcresumeretard",
          "type":2,
          "digits":1,
          "unit":"°",
          "scale":0.010986,
          "descr":"Ignition timing removed by overrun resume softening strategy.",
          "address":796
        },
        {
          "id":"calpot1",
          "type":1,
          "offset":1,
          "compact":0,
          "descr":"Position of calibration pot. Used by driver to select different calibrations.",
          "address":966
        },
        {
          "id":"ltft",
          "type":1,
          "digits":1,
          "scale":0.200000,
          "sign":1,
          "unit":"%",
          "descr":"Long term fuel trim value. Positive numbers signify fuel added, negative numbers for fuel removed. Note that if controller is fitted with real time clock option, long term fuel trims are non-volatile and retained when controller is powered off and they are used before conditions are right to enable learning.",
          "address":962
        },
        {
          "id":"ltft2",
          "type":1,
          "digits":1,
          "scale":0.200000,
          "sign":1,
          "unit":"%",
          "descr":"Long term fuel trim value. Positive numbers signify fuel added, negative numbers for fuel removed. Note that if controller is fitted with real time clock option, long term fuel trims are non-volatile and retained when controller is powered off and they are used before conditions are right to enable learning.",
          "address":963
        },
        {
          "id":"ltft_learning",
          "address":"flags0.2",
          "descr":"Flag that signifies long term fuel trim is in learning mode on bank 1."
        },
        {
          "id":"ltft2_learning",
          "address":"flags0.19",
          "descr":"Flag that signifies long term fuel trim is in learning mode on bank 2."
        },
        {
          "id":"lambda_ready",
          "address":"flags0.9",
          "descr":"Flag indicating the first lambda sensor is considered ready and valid."
        },
        {
          "id":"lambda2_ready",
          "address":"flags0.0",
          "descr":"Flag indicating the second lambda sensor is considered ready and valid."
        },
        {
          "id":"fuel_n2oadder",
          "type":2,
          "sign":1,
          "scale":0.010000,
          "digits":2,
          "unit":"mg\/c",
          "descr":"Fuel quantity added by nitrous oxide strategy.",
          "address":508
        },
        {
          "id":"ign_n2oretard",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"Ignition timing subtracted by nitrous oxide strategy.",
          "address":506
        },
        {
          "id":"n2ostage1",
          "address":"flags0.7",
          "descr":"Flag that signifies the first nitrous oxide system is activated."
        },
        {
          "id":"n2ostage2",
          "address":"flags0.10",
          "descr":"Flag that signifies the second nitrous oxide system is activated."
        },
        {
          "id":"logrecs",
          "type":1,
          "descr":"Counter that counts up every time the controller writes a complete record to the internal data logging memory if fitted with that option. When logging this will count up at the configured logging rate and roll over after 255 to start from 0 again.",
          "address":964
        },
        {
          "id":"camangle",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"The angle of the first camshaft after offsets and filters for VVT are applied. Angle is in crankshaft degrees and a larger number is more advanced timing.",
          "address":512
        },
        {
          "id":"camangle2",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"The angle of the second camshaft after offsets and filters for VVT are applied. Angle is in crankshaft degrees and a larger number is more advanced timing.",
          "address":514
        },
        {
          "id":"camangle3",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"The angle of the third camshaft after offsets and filters for VVT are applied. Angle is in crankshaft degrees and a larger number is more advanced timing.",
          "address":516
        },
        {
          "id":"camangle4",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"The angle of the fourth camshaft after offsets and filters for VVT are applied. Angle is in crankshaft degrees and a larger number is more advanced timing.",
          "address":518
        },
        {
          "id":"rawcamangle",
          "type":2,
          "scale":0.010986,
          "unit":"°BTDC",
          "digits":1,
          "descr":"The angle of the last impulse of the first camshaft input in crankshaft degrees before TDC cylinder 1.",
          "address":520
        },
        {
          "id":"rawcamangle2",
          "type":2,
          "scale":0.010986,
          "unit":"°BTDC",
          "digits":1,
          "descr":"The angle of the last impulse of the second camshaft input in crankshaft degrees before TDC cylinder 1.",
          "address":522
        },
        {
          "id":"rawcamangle3",
          "type":2,
          "scale":0.010986,
          "unit":"°BTDC",
          "digits":1,
          "descr":"The angle of the last impulse of the third camshaft input in crankshaft degrees before TDC cylinder 1.",
          "address":524
        },
        {
          "id":"rawcamangle4",
          "type":2,
          "scale":0.010986,
          "unit":"°BTDC",
          "digits":1,
          "descr":"The angle of the last impulse of the fourth camshaft input in crankshaft degrees before TDC cylinder 1.",
          "address":526
        },
        {
          "id":"logstatus",
          "type":1,
          "descr":"Flag indicating whether the controller is recording a data log to the internal logging memory if fitted with that option.",
          "address":942
        },
        {
          "id":"cylcontrib1",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":528
        },
        {
          "id":"nvvalid",
          "type":1,
          "descr":"An indicator that shows whether the non-volatile battery backed memory (part of the real time clock) contained valid data when the ECU powered on. This will be zero if the controller does not have the back up battery installed, which is part of the internal data logging option.",
          "address":958
        },
        {
          "id":"lclimit",
          "type":2,
          "unit":"RPM",
          "descr":"The engine speed limiter imposed by the launch control strategy.",
          "address":330
        },
        {
          "id":"emap",
          "type":2,
          "unit":"mbar",
          "descr":"Exhaust manifold pressure in units of absolute pressure, if such sensor is fitted.",
          "address":544
        },
        {
          "id":"ratio_map_emap",
          "type":2,
          "scale":0.000977,
          "digits":3,
          "descr":"The ratio between intake manifold pressure and exhaust manifold pressure.",
          "address":546
        },
        {
          "id":"barometer",
          "type":2,
          "unit":"mbar",
          "descr":"Atmospheric pressure, if such sensor is fitted.",
          "address":144
        },
        {
          "id":"ratio_map_baro",
          "type":2,
          "scale":0.000977,
          "digits":3,
          "descr":"The ratio between intake manifold pressure and atmospheric pressure.",
          "address":548
        },
        {
          "id":"turbospeed",
          "type":2,
          "unit":"RPM",
          "scale":10,
          "descr":"Turbocharger compressor speed, if such sensor is fitted.",
          "address":550
        },
        {
          "id":"gpin",
          "type":3,
          "descr":"Bit mask of digital input states.",
          "address":28
        },
        {
          "id":"din1",
          "address":"gpin.0",
          "descr":"State of digital input 1. Active low so a value of 1 indicates input voltage is low."
        },
        {
          "id":"din2",
          "address":"gpin.1",
          "descr":"State of digital input 2. Active low so a value of 1 indicates input voltage is low."
        },
        {
          "id":"din3",
          "address":"gpin.5",
          "descr":"State of digital input 3. Active low so a value of 1 indicates input voltage is low."
        },
        {
          "id":"din4",
          "address":"gpin.6",
          "descr":"State of digital input 4. Active low so a value of 1 indicates input voltage is low."
        },
        {
          "id":"din5",
          "address":"gpin.4",
          "descr":"State of digital input 5. Active low so a value of 1 indicates input voltage is low."
        },
        {
          "id":"fuelflow",
          "type":2,
          "unit":"cc\/min",
          "descr":"If the injectors are correctly characterised, this is the total fuel flow rate dispensed into the engine.",
          "address":558
        },
        {
          "id":"fp_rel_baro",
          "type":2,
          "unit":"mbar",
          "descr":"Fuel gauge pressure. Pressure relative to atmospheric pressure.",
          "address":552
        },
        {
          "id":"fp_rel_map",
          "type":2,
          "unit":"mbar",
          "descr":"Fuel pressure relative to intake manifold pressure.",
          "address":554
        },
        {
          "id":"fp_abs",
          "type":2,
          "unit":"mbar",
          "descr":"Absolute fuel pressure.",
          "address":556
        },
        {
          "id":"can1rxerr",
          "type":3,
          "descr":"Bit mask indicating CAN receivers that have exceeded their configured timeout value.",
          "address":560
        },
        {
          "id":"can2rxerr",
          "type":3,
          "descr":"Bit mask indicating CAN receivers on the second CAN interface that have exceeded their configured timeout value.",
          "address":564
        },
        {
          "id":"boosterror",
          "type":2,
          "sign":1,
          "describedby":"boostpressuresource",
          "descr":"The difference between measured pressure and setpoint pressure for the turbocharger control. A positive number indicates measured pressure exceeds setpoint and vice versa.",
          "address":574
        },
        {
          "id":"boostgptrim1",
          "describedby":"boostpressuresource",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"General purpose pressure target trims for turbocharger boost control.",
          "address":568
        },
        {
          "id":"rollingtime",
          "type":2,
          "unit":"s",
          "digits":3,
          "scale":0.001000,
          "descr":"Time since wheels started rotating. Useful for implementing strategies for standing start racing. Maximum value 65.535 seconds. Shows a value of 0 whenever the vehicle is stopped.",
          "address":608
        },
        {
          "id":"n2otime",
          "type":2,
          "unit":"s",
          "digits":3,
          "scale":0.001000,
          "descr":"Time since the first nitrous oxide system was activated. Maximum value 65.535 seconds. Has a value of 0 whenever the nitrous oxide stage 1 is inactive. Useful for tuning how hard the onset of increased torque is when nitrous activates.",
          "address":604
        },
        {
          "id":"n2os2time",
          "type":2,
          "unit":"s",
          "digits":3,
          "scale":0.001000,
          "descr":"Time since the second nitrous oxide system was activated. Maximum value 65.535 seconds. Has a value of 0 whenever the nitrous oxide stage 2 is inactive. Useful for tuning how hard the onset of increased torque is when nitrous activates.",
          "address":606
        },
        {
          "id":"mempage",
          "type":1,
          "descr":"The controller configuration is split across several pages of flash memory whose combined size exceeds the controller RAM. This variable shows which page is currently kept in controller RAM for editing.",
          "address":936
        },
        {
          "id":"sclimit",
          "type":2,
          "unit":"RPM",
          "descr":"Engine speed limit imposed by gear shift cut strategy.",
          "address":612
        },
        {
          "id":"scretard",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"Ignition timing retard imposed by gear shift cut strategy.",
          "address":614
        },
        {
          "id":"trailingangle",
          "type":2,
          "scale":0.010986,
          "unit":"°",
          "digits":1,
          "descr":"Ignition angle of trailing ignition coils. Typically only used on wankel engines.",
          "address":292
        },
        {
          "id":"trailingdwell",
          "type":2,
          "scale":0.001000,
          "unit":"ms",
          "digits":3,
          "descr":"Ignition dwell time of trailing ignition coils.",
          "address":294
        },
        {
          "id":"fuelsplit",
          "type":1,
          "unit":"%",
          "descr":"What fraction of the injected fuel is delivered through the second injector stage if using staged injection. Ranges from 0-100%.",
          "address":970
        },
        {
          "id":"etcP",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop proportional effect.",
          "address":616
        },
        {
          "id":"etcI",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop integral effect.",
          "address":618
        },
        {
          "id":"etcD",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop derivative effect.",
          "address":620
        },
        {
          "id":"etcduty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control duty cycle. Positive or negative numbers depending on throttle motor drive polarity.",
          "address":622
        },
        {
          "id":"etcposerr",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Electronic throttle control position error. A positive number indicates throttle position is greater than setpoint and vice versa.",
          "address":624
        },
        {
          "id":"etctarget",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Electronic throttle control position setpoint.",
          "address":626
        },
        {
          "id":"etc2P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop proportional effect.",
          "address":628
        },
        {
          "id":"etc2I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop integral effect.",
          "address":630
        },
        {
          "id":"etc2D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control loop derivative effect.",
          "address":632
        },
        {
          "id":"etc2duty",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Electronic throttle control duty cycle. Positive or negative numbers depending on throttle motor drive polarity.",
          "address":634
        },
        {
          "id":"etc2poserr",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Electronic throttle control position error. A positive number indicates throttle position is greater than setpoint and vice versa.",
          "address":636
        },
        {
          "id":"etc2target",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Electronic throttle control position setpoint.",
          "address":638
        },
        {
          "id":"app",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Accelerator pedal position. Only when electronic throttle control is used.",
          "address":640
        },
        {
          "id":"appsec",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Accelerator pedal position secondary sensor value. Used for verification of accelerator pedal position sensor function.",
          "address":642
        },
        {
          "id":"throttlesec",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.097752,
          "descr":"Secondary throttle position sensor value. Used in electronic throttle control to verify throttle position sensor function.",
          "address":644
        },
        {
          "id":"vvtintarget",
          "type":2,
          "unit":"°",
          "digits":1,
          "scale":0.010986,
          "descr":"Setpoint of intake camshaft angle control.",
          "address":676
        },
        {
          "id":"vvtextarget",
          "type":2,
          "unit":"°",
          "digits":1,
          "scale":0.010986,
          "descr":"Setpoint of exhaust camshaft angle control.",
          "address":678
        },
        {
          "id":"vvtduty",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.003052,
          "descr":"Output duty cycle of first camshaft angle control.",
          "address":680
        },
        {
          "id":"vvt2duty",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.003052,
          "descr":"Output duty cycle of second camshaft angle control.",
          "address":682
        },
        {
          "id":"vvt3duty",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.003052,
          "descr":"Output duty cycle of third camshaft angle control.",
          "address":684
        },
        {
          "id":"vvt4duty",
          "type":2,
          "unit":"%",
          "digits":1,
          "scale":0.003052,
          "descr":"Output duty cycle of fourth camshaft angle control.",
          "address":686
        },
        {
          "id":"vvtP",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"First camshaft angle control loop proportional effect.",
          "address":652
        },
        {
          "id":"vvtI",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"First camshaft angle control loop integral effect.",
          "address":654
        },
        {
          "id":"vvtD",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"First camshaft angle control loop derivative effect.",
          "address":656
        },
        {
          "id":"vvt2P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Second camshaft angle control loop proportional effect.",
          "address":658
        },
        {
          "id":"vvt2I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Second camshaft angle control loop integral effect.",
          "address":660
        },
        {
          "id":"vvt2D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Second camshaft angle control loop derivative effect.",
          "address":662
        },
        {
          "id":"vvt3P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Third camshaft angle control loop proportional effect.",
          "address":664
        },
        {
          "id":"vvt3I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Third camshaft angle control loop integral effect.",
          "address":666
        },
        {
          "id":"vvt3D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Third camshaft angle control loop derivative effect.",
          "address":668
        },
        {
          "id":"vvt4P",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Fourth camshaft angle control loop proportional effect.",
          "address":670
        },
        {
          "id":"vvt4I",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Fourth camshaft angle control loop integral effect.",
          "address":672
        },
        {
          "id":"vvt4D",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Fourth camshaft angle control loop derivative effect.",
          "address":674
        },
        {
          "id":"din1freq",
          "type":2,
          "unit":"Hz",
          "descr":"Frequency of input signal on digital input 1 if configured as a frequency input.",
          "address":688
        },
        {
          "id":"din3freq",
          "type":2,
          "unit":"Hz",
          "descr":"Frequency of input signal on digital input 3 if configured as a frequency input.",
          "address":690
        },
        {
          "id":"din4freq",
          "type":2,
          "unit":"Hz",
          "descr":"Frequency of input signal on digital input 4 if configured as a frequency input.",
          "address":692
        },
        {
          "id":"din5freq",
          "type":2,
          "unit":"Hz",
          "descr":"Frequency of input signal on digital input 4 if configured as a frequency input.",
          "address":694
        },
        {
          "id":"flexfreq",
          "type":2,
          "scale":0.100000,
          "digits":1,
          "unit":"Hz",
          "descr":"Frequency of flex fuel sensor if fitted.",
          "address":696
        },
        {
          "id":"flexpw",
          "type":2,
          "scale":0.001000,
          "digits":3,
          "unit":"ms",
          "descr":"Signal pulse width of flex fuel sensor if fitted.",
          "address":698
        },
        {
          "id":"maf",
          "type":2,
          "unit":"g\/s",
          "scale":0.020000,
          "digits":2,
          "descr":"Mass air flow sensor, if fitted.",
          "address":700
        },
        {
          "id":"cylairmass_maf",
          "type":2,
          "unit":"g",
          "scale":0.000249,
          "digits":3,
          "descr":"Charge air mass per cylinder per cycle as determined by mass air flow sensor.",
          "address":704
        },
        {
          "id":"cylairmass_calc",
          "type":2,
          "unit":"g",
          "scale":0.000249,
          "digits":3,
          "descr":"Charge air mass per cylinder per cycle as determined by air mass model (VE map).",
          "address":702
        },
        {
          "id":"cylairmass",
          "type":2,
          "unit":"g",
          "scale":0.000249,
          "digits":3,
          "descr":"Charge air mass per cylinder per cycle as determined by either the air mass model or measured by the mass air flow sensor. Variable airmass_source indicates the source of this value.",
          "address":706
        },
        {
          "id":"egt1",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":710
        },
        {
          "id":"n2opwm",
          "type":1,
          "unit":"%",
          "digits":1,
          "scale":0.392157,
          "descr":"Duty cycle of first nitrous oxide solenoid, if using progressive control.",
          "address":971
        },
        {
          "id":"n2os2pwm",
          "type":1,
          "unit":"%",
          "digits":1,
          "scale":0.392157,
          "descr":"Duty cycle of second nitrous oxide solenoid, if using progressive control.",
          "address":972
        },
        {
          "id":"n2ofuelpwm",
          "type":1,
          "unit":"%",
          "digits":1,
          "scale":0.392157,
          "descr":"Duty cycle of first nitrous oxide supplementary fuel solenoid if using wet nitrous system with progressive control.",
          "address":973
        },
        {
          "id":"n2os2fuelpwm",
          "type":1,
          "unit":"%",
          "digits":1,
          "scale":0.392157,
          "descr":"Duty cycle of second nitrous oxide supplementary fuel solenoid if using wet nitrous system with progressive control.",
          "address":974
        },
        {
          "id":"alspwmvalve",
          "type":1,
          "unit":"%",
          "digits":1,
          "scale":0.392157,
          "descr":"Duty cycle of dedicated air bypass valve for anti lag system.",
          "address":977
        },
        {
          "id":"alsblockers",
          "type":1,
          "descr":"Bit mask of reasons to prevent anti lag strategy operation.\r\nBit 0: Excessive exhaust gas temperature.\r\nBit 1: Excessive engine coolant temperature.\r\nBit 2: Excessive charge air temperature.\r\nBit 3: Anti lag deactivated by timer.",
          "address":978
        },
        {
          "id":"als_active",
          "type":0,
          "address":"flags0.14",
          "descr":"Flag indicating anti lag is active"
        },
        {
          "id":"als_cdidle",
          "type":0,
          "address":"flags0.15",
          "descr":"Flag indicating anti lag cool-down cyclic idle is active"
        },
        {
          "id":"time_since_launch",
          "type":2,
          "scale":0.001000,
          "digits":3,
          "unit":"s",
          "descr":"Time since launch control was deactivated. Holds maximum value of 65.535 seconds if launch control has not been activated recently or at all. Value of 0 while launch control is active.",
          "address":610
        },
        {
          "id":"gearselect",
          "type":8,
          "options":[
            "P",
            "N",
            "R",
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9"
          ],
          "descr":"Transmission gear selector position.",
          "address":979
        },
        {
          "id":"atcmdgear",
          "type":1,
          "offset":-1,
          "descr":"Gear commanded by automatic transmission control. 0 means neutral, -1 means reverse. Other gears in ascending order from 1.",
          "address":980
        },
        {
          "id":"at_lockup",
          "type":0,
          "address":"outputs.28",
          "descr":"Automatic transmission lock up solenoid state"
        },
        {
          "id":"oilpress",
          "type":2,
          "unit":"mbar",
          "descr":"Engine oil pressure",
          "address":730
        },
        {
          "id":"prap",
          "type":2,
          "unit":"mbar",
          "descr":"Post restrictor absolute pressure, used in racing that requires an air restrictor.",
          "address":762
        },
        {
          "id":"pcap",
          "type":2,
          "unit":"mbar",
          "descr":"Post compressor absolute pressure, used in certain boost control applications.",
          "address":760
        },
        {
          "id":"oilpress_low",
          "type":0,
          "address":"flags0.18",
          "descr":"A flag that indicates the oil pressure is lower than the specified acceptable minimum."
        },
        {
          "id":"oiltemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Oil temperature, if such sensor is fitted.",
          "address":732
        },
        {
          "id":"fueltemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Fuel temperature, if such sensor is fitted.",
          "address":734
        },
        {
          "id":"fuelcomp",
          "type":2,
          "unit":"%",
          "scale":0.100000,
          "digits":1,
          "descr":"Fuel alcohol fraction, if a fuel composition sensor is fitted",
          "address":736
        },
        {
          "id":"transtemp",
          "type":2,
          "unit":"°C",
          "offset":-2731,
          "scale":0.100000,
          "digits":1,
          "descr":"Transmission temperature, if such sensor is fitted.",
          "address":738
        },
        {
          "id":"canscanaddr",
          "type":3,
          "descr":"The CAN ID last transmitted to during a CAN scan",
          "address":48
        },
        {
          "id":"canscan_running",
          "address":"flags0.17",
          "descr":"A flag that indicates a CAN scan is in progress"
        },
        {
          "id":"fuel_launchmod",
          "type":2,
          "digits":3,
          "scale":0.000977,
          "descr":"Fuel quantity multiplier originating from the launch control.",
          "address":708
        },
        {
          "id":"cantx1",
          "type":1,
          "descr":"Counter that counts up whenever the controller transmits a frame onto the first CAN network. Rolls over after 255 and starts over from 0.",
          "address":981
        },
        {
          "id":"cantx2",
          "type":1,
          "descr":"Counter that counts up whenever the controller transmits a frame onto the second CAN network. Rolls over after 255 and starts over from 0.",
          "address":982
        },
        {
          "id":"bcd1",
          "type":1,
          "descr":"Binary coded decimal input. Combines two or more digital inputs or logic values to create a single variable.",
          "address":983
        },
        {
          "id":"cruisespeed",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Cruise control speed setpoint.",
          "address":740
        },
        {
          "id":"cruiseP",
          "type":2,
          "sign":1,
          "descr":"Cruise control P output",
          "address":746
        },
        {
          "id":"cruiseI",
          "type":2,
          "sign":1,
          "descr":"Cruise control I output",
          "address":748
        },
        {
          "id":"cruiseD",
          "type":2,
          "sign":1,
          "descr":"Cruise control D output",
          "address":750
        },
        {
          "id":"effectiveapp",
          "type":2,
          "scale":0.097656,
          "digits":1,
          "unit":"%",
          "descr":"Effective throttle input value. Normally same as app but takes the value of cruiseapp if cruiseapp is greater than app.",
          "address":744
        },
        {
          "id":"torqueapplimit",
          "type":2,
          "scale":0.097656,
          "digits":1,
          "unit":"%",
          "descr":"Effective throttle limit imposed by torque management torque request limit.",
          "address":848
        },
        {
          "id":"cruiseapp",
          "type":2,
          "scale":0.097656,
          "digits":1,
          "unit":"%",
          "descr":"Throttle input from cruise control",
          "address":742
        },
        {
          "id":"flag_cruise",
          "address":"flags2.2",
          "descr":"A value of 1 indicates the cruise control is currently activated."
        },
        {
          "id":"cruiseswitch",
          "type":1,
          "descr":"Cruise control switch input state. 0 is normal. 1 = cancel. 2 = set\/coast. 3 = resume\/accel.",
          "address":984
        },
        {
          "id":"flipflops",
          "type":1,
          "descr":"Variable keeping the state of all flip flop logic functions.",
          "address":985
        },
        {
          "id":"flipflop1",
          "type":0,
          "address":"flipflops.0",
          "compact":8,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"count1",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":986
        },
        {
          "id":"gplatch1",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput1",
          "descr":"Value of general purpose latch function",
          "address":752
        },
        {
          "id":"gptimer1",
          "compact":0,
          "type":2,
          "unit":"s",
          "scale":0.010000,
          "digits":2,
          "descr":"Value of general purpose timer function",
          "address":770
        },
        {
          "id":"fuelpump",
          "type":0,
          "address":"outputs.1",
          "descr":"Indicator showing the state of the fuel pump relay"
        },
        {
          "id":"coolingfan_primary",
          "type":0,
          "address":"outputs.2",
          "descr":"Indicator showin the state of the primary cooling fan"
        },
        {
          "id":"gpslat",
          "type":3,
          "sign":1,
          "unit":"°",
          "scale":"0.0000016666666666666666666666666666667",
          "digits":6,
          "descr":"GPS latitude in decimal degrees. Positive numbers are north of the equator, negative numbers are south.",
          "address":60
        },
        {
          "id":"gpslot",
          "type":3,
          "sign":1,
          "unit":"°",
          "scale":"0.0000016666666666666666666666666666667",
          "digits":6,
          "descr":"GPS longitude in decimal degrees. Positive numbers are east of the meridian, negative numbers are west.",
          "address":56
        },
        {
          "id":"gpsspeed",
          "type":2,
          "unit":"km\/h",
          "digits":1,
          "scale":0.100000,
          "descr":"Speed over ground as received from GPS.",
          "address":766
        },
        {
          "id":"gpssats",
          "type":1,
          "descr":"Number of satellites in use by GPS receiver",
          "address":990
        },
        {
          "id":"gpshdop",
          "type":1,
          "scale":0.010000,
          "digits":2,
          "descr":"GPS horizontal dilution of position, a unitless measure of GPS data quality, the meaning of which is GPS receiver specific so it's not of much use by itself but can be used to evaluate the effect of different antennas or antenna placement on GPS receiver performance. A smaller number means greater confidence in position accuracy.",
          "address":991
        },
        {
          "id":"gpsheading",
          "type":2,
          "unit":"°",
          "scale":0.010000,
          "digits":2,
          "descr":"GPS heading",
          "address":764
        },
        {
          "id":"gpsalt",
          "type":2,
          "unit":"m",
          "scale":0.100000,
          "digits":1,
          "offset":-1000,
          "descr":"GPS altitude in metres above sea level",
          "address":768
        },
        {
          "id":"gpsflags",
          "type":1,
          "descr":"Status flags associated with GPS",
          "address":992
        },
        {
          "id":"gps_ready",
          "address":"gpsflags.0",
          "descr":"Flag indicating GPS receiver is receiving position"
        },
        {
          "id":"gps_data",
          "address":"gpsflags.1",
          "descr":"Flag indicating ECU is receiving GPS data, but the data may or may not include a valid position"
        },
        {
          "id":"powerenrich",
          "type":1,
          "unit":"%",
          "scale":0.392157,
          "descr":"If power enrichment mode is used, this variable indicates that power enrichment is active. A value of 0 means power enrichment is inactive, a value of 100% means the power enrichment maps are being used exclusively and any non-zero value smaller than 100 means that the strategy is interpolating between normal and power enrichment maps.",
          "address":993
        },
        {
          "id":"ign_pemod",
          "type":1,
          "unit":"°",
          "scale":0.087891,
          "sign":1,
          "descr":"Ignition timing added when power enrichment mode is active.",
          "address":994
        },
        {
          "id":"igncuts",
          "type":2,
          "descr":"A bit mask that shows any cylinders whose ignition is disabled by cylinder cut testing",
          "address":220
        },
        {
          "id":"alsinjcuts",
          "type":2,
          "descr":"A bit mask that shows any injector outputs disabled by the anti lag strategy",
          "address":216
        },
        {
          "id":"torquecylcutlevel",
          "type":1,
          "scale":14.285714,
          "unit":"%",
          "descr":"A variable indicating the level of cylinder shut off commanded by the torque management strategy",
          "address":1000
        },
        {
          "id":"injcuts",
          "type":2,
          "descr":"A bit mask that shows any injector outputs disabled by cylinder cut testing, anti lag or any other strategy.",
          "address":218
        },
        {
          "id":"cruise_active",
          "type":0,
          "address":"flags2.2",
          "descr":"A flag that indicates cruise control is active"
        },
        {
          "id":"serialdata",
          "type":2,
          "descr":"Value received via serial port, for example from external wide band lambda gauge",
          "address":778
        },
        {
          "id":"customtransfer1",
          "type":2,
          "descr":"Output of custom transfer function 1",
          "address":780
        },
        {
          "id":"customtransfer2",
          "type":2,
          "descr":"Output of custom transfer function 2",
          "address":782
        },
        {
          "id":"customtransfer3",
          "type":2,
          "descr":"Output of custom transfer function 3",
          "address":784
        },
        {
          "id":"customtransfer4",
          "type":2,
          "descr":"Output of custom transfer function 4",
          "address":786
        },
        {
          "id":"customtable1",
          "type":2,
          "descr":"Output of custom table 1",
          "address":788
        },
        {
          "id":"customtable2",
          "type":2,
          "descr":"Output of custom table 2",
          "address":790
        },
        {
          "id":"customtable3",
          "type":2,
          "descr":"Output of custom table 3",
          "address":792
        },
        {
          "id":"customtable4",
          "type":2,
          "descr":"Output of custom table 4",
          "address":794
        },
        {
          "id":"faultmask",
          "type":1,
          "descr":"Bit mask of activated fault handling modes",
          "address":995
        },
        {
          "id":"ign_ectmod",
          "type":2,
          "sign":1,
          "digits":1,
          "unit":"°",
          "scale":0.010986,
          "descr":"Ignition timing added by engine coolant temperature ignition modifier. Negative numbers signify timing retard.",
          "address":798
        },
        {
          "id":"fuel_ectenrich",
          "type":1,
          "digits":3,
          "unit":"lambda",
          "scale":0.001000,
          "descr":"Value subtracted from lambda target, taken from engine coolant temperature enrichment map.",
          "address":996
        },
        {
          "id":"fuel_airtempenrich",
          "type":1,
          "digits":3,
          "unit":"lambda",
          "scale":0.001000,
          "descr":"Value subtracted from lambda target, taken from charge air temperature enrichment map.",
          "address":997
        },
        {
          "id":"airmass_source",
          "type":0,
          "address":"flags2.3",
          "descr":"When the air mass strategy is used, this variable indicates whether the air mass is currently taken from the volumetric efficiency model or from the mass air flow sensor. A value of 0 indicates the air mass is modelled while a value of 1 indicates that it is measured."
        },
        {
          "id":"stoich",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"AFR",
          "descr":"When using air mass strategy, this variable indicates the current stoichiometric air\/fuel ratio used by the strategy.",
          "address":800
        },
        {
          "id":"ve",
          "type":2,
          "scale":0.010000,
          "digits":2,
          "unit":"%",
          "descr":"When using air mass strategy, this variable indicates the current volumetric efficiency used by the strategy.",
          "address":802
        },
        {
          "id":"userpgmstatus",
          "type":1,
          "descr":"If non-zero, this indicates that a user generated program is running on the ECU.",
          "address":1025
        },
        {
          "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":1026
        },
        {
          "id":"userflags",
          "type":2,
          "descr":"Flags used for outputs from custom strategies into ECU functions.",
          "address":806
        },
        {
          "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":808
        },
        {
          "id":"userpgmvalues",
          "type":3,
          "array":64,
          "hidden":1,
          "address":1028
        },
        {
          "id":"needsburn",
          "type":1,
          "descr":"A boolean indicator that the ECU has unsaved configuration changes in volatile memory.",
          "address":937
        },
        {
          "id":"remotebits",
          "type":1,
          "descr":"Bits that can be toggled by OBD2 commands or from Calibrator",
          "address":998
        },
        {
          "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":"torqueflags",
          "type":1,
          "descr":"Variable containing status flags for torque management. Bit 0 indicates torque is being managed intermittently by ignition timing control. Bit 1 indicates torque request is being managed (electronic throttle).",
          "address":999
        },
        {
          "id":"torque_limited",
          "type":0,
          "address":"torqueflags.0",
          "descr":"Flag that indicates engine torque is being reduced by torque control strategy by means of ignition timing control"
        },
        {
          "id":"torque_requestlimited",
          "type":0,
          "address":"torqueflags.1",
          "descr":"Flag that indicates torque request is being limited by the means of electronic throttle control"
        },
        {
          "id":"torquerequest",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"Engine torque requested by driver, as a function of accelerator pedal and engine speed from torque request map",
          "address":832
        },
        {
          "id":"torquerequestlimit",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"If greater than 0, shows an engine torque request limit from an external source",
          "address":844
        },
        {
          "id":"torquerequestlimited",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"Engine torque request after any limits have been applied.",
          "address":846
        },
        {
          "id":"torqueactual",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"Engine torque as indicated by torque model after any limits have been applied",
          "address":834
        },
        {
          "id":"torquereserve",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"Maximum engine torque possible with the current cylinder air mass.",
          "address":836
        },
        {
          "id":"torquefriction",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "descr":"Engine friction as indicated by torque model and used as part of final torque.",
          "address":838
        },
        {
          "id":"torqueeffect",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "descr":"Torque effect of combustion, before friction is subtracted, before torque management is applied.",
          "address":840
        },
        {
          "id":"torquelimit",
          "type":2,
          "unit":"Nm",
          "scale":0.200000,
          "digits":1,
          "offset":-1940,
          "descr":"If greater than 0, shows a torque limit from an external source.",
          "address":842
        },
        {
          "id":"torquembt",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "descr":"Ignition timing required for perfect engine efficiency by the torque model.",
          "address":850
        },
        {
          "id":"simplepwmdc1",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":816
        },
        {
          "id":"simplepwmf1",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":824
        },
        {
          "id":"scvpw",
          "type":2,
          "unit":"ms",
          "digits":3,
          "scale":0.001000,
          "descr":"If controlling synchronous suction control valves for direct injection rail pressure control, this is the pulse width.",
          "address":912
        },
        {
          "id":"scvangle",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Start angle of suction control valves, if synchronous suction control valves are being used for direct injection rail pressure control.",
          "sign":1,
          "address":914
        },
        {
          "id":"difp",
          "type":2,
          "unit":"bar",
          "digits":1,
          "scale":0.100000,
          "descr":"Direct injection fuel rail pressure.",
          "address":916
        },
        {
          "id":"difptarget",
          "type":2,
          "unit":"bar",
          "digits":1,
          "scale":0.100000,
          "descr":"Direct injection fuel rail pressure target for rail pressure control loop.",
          "address":918
        },
        {
          "id":"difperror",
          "type":2,
          "unit":"bar",
          "digits":1,
          "scale":0.100000,
          "sign":1,
          "descr":"Difference between measured rail pressure and target rail pressure.",
          "address":920
        },
        {
          "id":"difpctlcmd",
          "type":2,
          "unit":"%",
          "max":100,
          "scale":0.003052,
          "digits":2,
          "descr":"Effort requested by rail pressure control loop.",
          "address":922
        },
        {
          "id":"difpqtyduty",
          "type":2,
          "unit":"%",
          "max":100,
          "scale":0.003052,
          "digits":2,
          "descr":"Rail pressure control duty cycle added by fuel quantity adder table, prior to linearisation function and so on.",
          "address":924
        },
        {
          "id":"difpbaseduty",
          "type":2,
          "unit":"%",
          "max":100,
          "scale":0.003052,
          "digits":2,
          "descr":"Rail pressure control duty cycle added by base duty table, prior to linearisation function and so on.",
          "address":926
        },
        {
          "id":"difpP",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Rail pressure control proportional effect.",
          "address":928
        },
        {
          "id":"difpI",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Rail pressure control integral effect.",
          "address":930
        },
        {
          "id":"difpD",
          "type":2,
          "sign":1,
          "unit":"%",
          "digits":2,
          "scale":0.003052,
          "descr":"Rail pressure control derivative effect.",
          "address":932
        },
        {
          "id":"diheadroom",
          "type":2,
          "unit":"ms",
          "scale":0.001000,
          "digits":3,
          "descr":"The direct injection has a hard limit on permitted injection window. This variable shows the maximum possible injection duration with the current injection start angle",
          "address":934
        },
        {
          "id":"ignsw",
          "type":0,
          "descr":"This variable shows the state of the ignition switch input on controllers that have this input",
          "address":"gpin.27"
        },
        {
          "id":"intlambdanr",
          "type":2,
          "unit":"ohm",
          "digits":1,
          "scale":0.500000,
          "descr":"Impedance of the lambda sensor's nernst cell",
          "address":854
        },
        {
          "id":"intlambda2nr",
          "type":2,
          "unit":"ohm",
          "digits":1,
          "scale":0.500000,
          "descr":"Impedance of the 2nd lambda sensor's nernst cell",
          "address":856
        },
        {
          "id":"intlambdaheater",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "digits":1,
          "descr":"Lambda sensor heater duty cycle",
          "address":858
        },
        {
          "id":"intlambdaheaterP",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"Lambda sensor heater control loop proportional component",
          "address":900
        },
        {
          "id":"intlambdaheaterI",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"Lambda sensor heater control loop integral component",
          "address":902
        },
        {
          "id":"intlambdaheaterD",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"Lambda sensor heater control loop derivative component",
          "address":904
        },
        {
          "id":"intlambda2heater",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "digits":1,
          "descr":"2nd lambda sensor heater duty cycle",
          "address":860
        },
        {
          "id":"intlambda2heaterP",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"2nd lambda sensor heater control loop proportional component",
          "address":906
        },
        {
          "id":"intlambda2heaterI",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"2nd lambda sensor heater control loop integral component",
          "address":908
        },
        {
          "id":"intlambda2heaterD",
          "type":2,
          "unit":"%",
          "scale":0.024420,
          "sign":1,
          "digits":1,
          "descr":"2nd lambda sensor heater control loop derivative component",
          "address":910
        },
        {
          "id":"intlambdaipcmd",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "descr":"The pump current commanded by the lambda sensor control loop.",
          "address":862
        },
        {
          "id":"intlambdaipcorr",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "descr":"The pump current commanded by the lambda sensor control loop, after correction factors are applied for temperature and pressure.",
          "address":870
        },
        {
          "id":"intlambda2ipcmd",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "address":864
        },
        {
          "id":"intlambda2ipcorr",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "descr":"The pump current commanded by the lambda sensor control loop, after correction factors are applied for temperature and pressure.",
          "address":872
        },
        {
          "id":"intlambdaipfb",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "descr":"The pump current measured going into the lambda sensor. If no calibration resistor is connected this should equal the commanded pump current. If using the calibration resistor in an LSU4.9 sensor this value will be greater than the commanded pumpc current.",
          "address":866
        },
        {
          "id":"intlambda2ipfb",
          "type":2,
          "unit":"mA",
          "scale":0.001000,
          "digits":3,
          "sign":1,
          "address":868
        },
        {
          "id":"intlambdavn",
          "type":2,
          "unit":"mV",
          "scale":0.100000,
          "digits":1,
          "descr":"Lambda sensor nernst cell voltage",
          "address":874
        },
        {
          "id":"intlambdao2",
          "type":1,
          "unit":"%",
          "scale":0.100000,
          "digits":1,
          "address":1023
        },
        {
          "id":"intlambda2o2",
          "type":1,
          "unit":"%",
          "scale":0.100000,
          "digits":1,
          "address":1024
        },
        {
          "id":"intlambda2vn",
          "type":2,
          "unit":"mV",
          "scale":0.100000,
          "digits":1,
          "address":876
        },
        {
          "id":"spihighestfill",
          "type":1,
          "descr":"Variable for debugging controller internal network",
          "address":1020
        },
        {
          "id":"spilasterror",
          "type":1,
          "descr":"Variable for debugging controller internal network",
          "address":1021
        },
        {
          "id":"spierrorcount",
          "type":2,
          "descr":"Variable for debugging controller internal network",
          "address":852
        },
        {
          "id":"knocklevel1",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":878
        },
        {
          "id":"knocklevel_max",
          "type":2,
          "descr":"A unitless measure of the highest noise level recorded on any cylinder by either of the knock sensors during the previous engine cycle.",
          "address":894
        },
        {
          "id":"knockcount1",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1001
        },
        {
          "id":"knocksum",
          "type":2,
          "descr":"A counter that counts up each time the knock detection strategy detects knock on any cylinder",
          "address":896
        },
        {
          "id":"knockretard1",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1009
        },
        {
          "id":"knockretard_max",
          "type":1,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Maximum ignition timing retard currently applied to any cylinder by the knock control strategy.",
          "address":1017
        },
        {
          "id":"knockedcyl",
          "type":1,
          "descr":"The cylinder that most recently knocked. Zeroes out if there has not been any knock detected for more than one second. Useful for indicating that knock is currently detected.",
          "address":1019
        },
        {
          "id":"knockseverity",
          "type":1,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"A kind of octane indicator, showing the maximum knock retard value currently found in the knock trims table.",
          "address":1018
        },
        {
          "id":"knockthres",
          "type":2,
          "descr":"This is the noise level above which anything registered by the knock sensor is considered a knock event",
          "address":898
        },
        {
          "id":"slavehw_rev",
          "type":1,
          "descr":"A value that indicates the hardware revision of the LPC8 daughterboard. 0 for older boards with single wide band control. 1 for newer boards capable of dual wide band control.",
          "address":1022
        },
        {
          "id":"analog1",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":80
        },
        {
          "id":"analog2",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":82
        },
        {
          "id":"analog3",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":84
        },
        {
          "id":"analog4",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":86
        },
        {
          "id":"analog5",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":88
        },
        {
          "id":"analog6",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":90
        },
        {
          "id":"analog7",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":92
        },
        {
          "id":"analog8",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":94
        },
        {
          "id":"analog9",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":96
        },
        {
          "id":"analog10",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":98
        },
        {
          "id":"analog11",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":100
        },
        {
          "id":"analog12",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":102
        },
        {
          "id":"analog13",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":104
        },
        {
          "id":"analog14",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":106
        },
        {
          "id":"analog15",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":108
        },
        {
          "id":"analog16",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":110
        },
        {
          "id":"analog17",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":112
        },
        {
          "id":"analog18",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":114
        },
        {
          "id":"analog19",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":116
        },
        {
          "id":"analog20",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":118
        },
        {
          "id":"analog21",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":120
        },
        {
          "id":"analog22",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":122
        },
        {
          "id":"analog23",
          "scale":0.001221,
          "unit":"V",
          "type":2,
          "digits":3,
          "compact":0,
          "descr":"Analog input voltage",
          "address":124
        },
        {
          "id":"injpw2",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":224
        },
        {
          "id":"injpw3",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":226
        },
        {
          "id":"injpw4",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":228
        },
        {
          "id":"injpw5",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":230
        },
        {
          "id":"injpw6",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":232
        },
        {
          "id":"injpw7",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":234
        },
        {
          "id":"injpw8",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":236
        },
        {
          "id":"injpw9",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":238
        },
        {
          "id":"injpw10",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":240
        },
        {
          "id":"injpw11",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":242
        },
        {
          "id":"injpw12",
          "scale":0.001000,
          "unit":"ms",
          "type":2,
          "digits":3,
          "descr":"Fuel injector pulse width",
          "compact":0,
          "address":244
        },
        {
          "id":"injangle2",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":248
        },
        {
          "id":"injangle3",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":250
        },
        {
          "id":"injangle4",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":252
        },
        {
          "id":"injangle5",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":254
        },
        {
          "id":"injangle6",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":256
        },
        {
          "id":"injangle7",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":258
        },
        {
          "id":"injangle8",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":260
        },
        {
          "id":"injangle9",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":262
        },
        {
          "id":"injangle10",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":264
        },
        {
          "id":"injangle11",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":266
        },
        {
          "id":"injangle12",
          "scale":0.010986,
          "unit":"°",
          "type":2,
          "digits":1,
          "descr":"Angle of the start of injection. Relative to each injector's specified range start.",
          "compact":0,
          "address":268
        },
        {
          "id":"sparkangle2",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":278
        },
        {
          "id":"sparkangle3",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":280
        },
        {
          "id":"sparkangle4",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":282
        },
        {
          "id":"sparkangle5",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":284
        },
        {
          "id":"sparkangle6",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":286
        },
        {
          "id":"sparkangle7",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":288
        },
        {
          "id":"sparkangle8",
          "scale":0.010986,
          "unit":"°BTDC",
          "type":2,
          "digits":1,
          "sign":1,
          "compact":0,
          "descr":"Ignition angle per cylinder",
          "address":290
        },
        {
          "id":"injdc2",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":945
        },
        {
          "id":"injdc3",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":946
        },
        {
          "id":"injdc4",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":947
        },
        {
          "id":"injdc5",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":948
        },
        {
          "id":"injdc6",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":949
        },
        {
          "id":"injdc7",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":950
        },
        {
          "id":"injdc8",
          "type":1,
          "compact":0,
          "scale":0.500000,
          "digits":1,
          "unit":"%",
          "descr":"Fuel injector duty cycle.",
          "address":951
        },
        {
          "id":"cansrc1",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":342
        },
        {
          "id":"cansrc2",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":344
        },
        {
          "id":"cansrc3",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":346
        },
        {
          "id":"cansrc4",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":348
        },
        {
          "id":"cansrc5",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":350
        },
        {
          "id":"cansrc6",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":352
        },
        {
          "id":"cansrc7",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":354
        },
        {
          "id":"cansrc8",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":356
        },
        {
          "id":"cansrc9",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":358
        },
        {
          "id":"cansrc10",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":360
        },
        {
          "id":"cansrc11",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":362
        },
        {
          "id":"cansrc12",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":364
        },
        {
          "id":"cansrc13",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":366
        },
        {
          "id":"cansrc14",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":368
        },
        {
          "id":"cansrc15",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":370
        },
        {
          "id":"cansrc16",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":372
        },
        {
          "id":"cansrc17",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":374
        },
        {
          "id":"cansrc18",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":376
        },
        {
          "id":"cansrc19",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":378
        },
        {
          "id":"cansrc20",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":380
        },
        {
          "id":"cansrc21",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":382
        },
        {
          "id":"cansrc22",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":384
        },
        {
          "id":"cansrc23",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":386
        },
        {
          "id":"cansrc24",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":388
        },
        {
          "id":"cansrc25",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":390
        },
        {
          "id":"cansrc26",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":392
        },
        {
          "id":"cansrc27",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":394
        },
        {
          "id":"cansrc28",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":396
        },
        {
          "id":"cansrc29",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":398
        },
        {
          "id":"cansrc30",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":400
        },
        {
          "id":"cansrc31",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":402
        },
        {
          "id":"can2src1",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":406
        },
        {
          "id":"can2src2",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":408
        },
        {
          "id":"can2src3",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":410
        },
        {
          "id":"can2src4",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":412
        },
        {
          "id":"can2src5",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":414
        },
        {
          "id":"can2src6",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":416
        },
        {
          "id":"can2src7",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":418
        },
        {
          "id":"can2src8",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":420
        },
        {
          "id":"can2src9",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":422
        },
        {
          "id":"can2src10",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":424
        },
        {
          "id":"can2src11",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":426
        },
        {
          "id":"can2src12",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":428
        },
        {
          "id":"can2src13",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":430
        },
        {
          "id":"can2src14",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":432
        },
        {
          "id":"can2src15",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":434
        },
        {
          "id":"can2src16",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":436
        },
        {
          "id":"can2src17",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":438
        },
        {
          "id":"can2src18",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":440
        },
        {
          "id":"can2src19",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":442
        },
        {
          "id":"can2src20",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":444
        },
        {
          "id":"can2src21",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":446
        },
        {
          "id":"can2src22",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":448
        },
        {
          "id":"can2src23",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":450
        },
        {
          "id":"can2src24",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":452
        },
        {
          "id":"can2src25",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":454
        },
        {
          "id":"can2src26",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":456
        },
        {
          "id":"can2src27",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":458
        },
        {
          "id":"can2src28",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":460
        },
        {
          "id":"can2src29",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":462
        },
        {
          "id":"can2src30",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":464
        },
        {
          "id":"can2src31",
          "type":2,
          "compact":0,
          "descr":"General purpose CAN receive values.",
          "address":466
        },
        {
          "id":"calpot2",
          "type":1,
          "offset":1,
          "compact":0,
          "descr":"Position of calibration pot. Used by driver to select different calibrations.",
          "address":967
        },
        {
          "id":"calpot3",
          "type":1,
          "offset":1,
          "compact":0,
          "descr":"Position of calibration pot. Used by driver to select different calibrations.",
          "address":968
        },
        {
          "id":"calpot4",
          "type":1,
          "offset":1,
          "compact":0,
          "descr":"Position of calibration pot. Used by driver to select different calibrations.",
          "address":969
        },
        {
          "id":"cylcontrib2",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":530
        },
        {
          "id":"cylcontrib3",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":532
        },
        {
          "id":"cylcontrib4",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":534
        },
        {
          "id":"cylcontrib5",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":536
        },
        {
          "id":"cylcontrib6",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":538
        },
        {
          "id":"cylcontrib7",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":540
        },
        {
          "id":"cylcontrib8",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"A variable indicating whether the crankshaft accelerated or decelerated after the particular cylinder fired, and by how many microseconds the engine's cycle got shorter (positive number) or longer (negative number) after the cylinder fired.",
          "address":542
        },
        {
          "id":"boostgptrim2",
          "describedby":"boostpressuresource",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"General purpose pressure target trims for turbocharger boost control.",
          "address":570
        },
        {
          "id":"boostgptrim3",
          "describedby":"boostpressuresource",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"General purpose pressure target trims for turbocharger boost control.",
          "address":572
        },
        {
          "id":"egt2",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":712
        },
        {
          "id":"egt3",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":714
        },
        {
          "id":"egt4",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":716
        },
        {
          "id":"egt5",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":718
        },
        {
          "id":"egt6",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":720
        },
        {
          "id":"egt7",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":722
        },
        {
          "id":"egt8",
          "type":2,
          "compact":0,
          "unit":"°C",
          "scale":0.100000,
          "digits":1,
          "offset":-2731,
          "descr":"Exhaust gas temperature as measured by exhaust gas temperature sensor.",
          "address":724
        },
        {
          "id":"flipflop2",
          "type":0,
          "address":"flipflops.1",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop3",
          "type":0,
          "address":"flipflops.2",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop4",
          "type":0,
          "address":"flipflops.3",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop5",
          "type":0,
          "address":"flipflops.4",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop6",
          "type":0,
          "address":"flipflops.5",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop7",
          "type":0,
          "address":"flipflops.6",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"flipflop8",
          "type":0,
          "address":"flipflops.7",
          "compact":0,
          "descr":"State of flip flop logic function"
        },
        {
          "id":"count2",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":987
        },
        {
          "id":"count3",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":988
        },
        {
          "id":"count4",
          "type":1,
          "descr":"Value of general purpose counter function",
          "compact":0,
          "address":989
        },
        {
          "id":"gplatch2",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput2",
          "descr":"Value of general purpose latch function",
          "address":754
        },
        {
          "id":"gplatch3",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput3",
          "descr":"Value of general purpose latch function",
          "address":756
        },
        {
          "id":"gplatch4",
          "compact":0,
          "type":2,
          "describedby":"gplatchinput4",
          "descr":"Value of general purpose latch function",
          "address":758
        },
        {
          "id":"gptimer2",
          "compact":0,
          "type":2,
          "unit":"s",
          "scale":0.010000,
          "digits":2,
          "descr":"Value of general purpose timer function",
          "address":772
        },
        {
          "id":"gptimer3",
          "compact":0,
          "type":2,
          "unit":"s",
          "scale":0.010000,
          "digits":2,
          "descr":"Value of general purpose timer function",
          "address":774
        },
        {
          "id":"gptimer4",
          "compact":0,
          "type":2,
          "unit":"s",
          "scale":0.010000,
          "digits":2,
          "descr":"Value of general purpose timer function",
          "address":776
        },
        {
          "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":810
        },
        {
          "id":"uservar3",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":812
        },
        {
          "id":"uservar4",
          "type":2,
          "sign":1,
          "compact":0,
          "descr":"Output of user defined math expression",
          "address":814
        },
        {
          "id":"simplepwmdc2",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":818
        },
        {
          "id":"simplepwmdc3",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":820
        },
        {
          "id":"simplepwmdc4",
          "type":2,
          "unit":"%",
          "scale":0.003052,
          "digits":2,
          "descr":"Simple PWM function duty cycle",
          "compact":0,
          "address":822
        },
        {
          "id":"simplepwmf2",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":826
        },
        {
          "id":"simplepwmf3",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":828
        },
        {
          "id":"simplepwmf4",
          "type":2,
          "unit":"Hz",
          "scale":500000,
          "inverse":1,
          "descr":"Simple PWM function frequency",
          "compact":0,
          "address":830
        },
        {
          "id":"knocklevel2",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":880
        },
        {
          "id":"knocklevel3",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":882
        },
        {
          "id":"knocklevel4",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":884
        },
        {
          "id":"knocklevel5",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":886
        },
        {
          "id":"knocklevel6",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":888
        },
        {
          "id":"knocklevel7",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":890
        },
        {
          "id":"knocklevel8",
          "type":2,
          "compact":0,
          "descr":"A unitless measure of accumulated knock sensor noise over the configured knock sensing window for each cylinder",
          "address":892
        },
        {
          "id":"knockcount2",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1002
        },
        {
          "id":"knockcount3",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1003
        },
        {
          "id":"knockcount4",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1004
        },
        {
          "id":"knockcount5",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1005
        },
        {
          "id":"knockcount6",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1006
        },
        {
          "id":"knockcount7",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1007
        },
        {
          "id":"knockcount8",
          "type":1,
          "compact":0,
          "descr":"A counter that counts up each time knock is detected, one counter per cylinder.",
          "address":1008
        },
        {
          "id":"knockretard2",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1010
        },
        {
          "id":"knockretard3",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1011
        },
        {
          "id":"knockretard4",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1012
        },
        {
          "id":"knockretard5",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1013
        },
        {
          "id":"knockretard6",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1014
        },
        {
          "id":"knockretard7",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1015
        },
        {
          "id":"knockretard8",
          "type":1,
          "compact":0,
          "unit":"°",
          "digits":1,
          "scale":0.087891,
          "descr":"Ignition timing retard applied to each cylinder by the knock control strategy.",
          "address":1016
        }
      ]
    },
    "remoteprocedures":{
      "resetltft":{
        "description":"Zero long term fuel trims",
        "cmd":"ZT"
      },
      "resetknock":{
        "description":"Zero knock trims",
        "cmd":"ZK"
      },
      "getslavecal":{
        "cmd":"cG",
        "args":[
          1
        ],
        "returns":[
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9
        ]
      },
      "setslavecal":{
        "cmd":"cS",
        "args":[
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9,
          9
        ]
      },
      "burnslavecal":{
        "cmd":"cB",
        "args":[
          3
        ]
      },
      "lambdatest":{
        "cmd":"lT",
        "args":[
          9,
          9
        ]
      },
      "startlambdaheaters":{
        "cmd":"sH"
      },
      "startlogging":{
        "description":"Manually start internal controller logging",
        "cmd":"LT"
      },
      "stoplogging":{
        "description":"Halt internal data log",
        "cmd":"SL"
      },
      "resetn2otimers":{
        "description":"Zero N2O consumption timers",
        "cmd":"ZN"
      },
      "resetodometer":{
        "description":"Zero trip odometer",
        "cmd":"ZO"
      },
      "startscan":{
        "description":"Start CAN scan",
        "cmd":"SS"
      },
      "endscan":{
        "description":"Halt CAN scan",
        "cmd":"HS"
      },
      "prscan":{
        "description":"Resume CAN scan",
        "cmd":"RS"
      },
      "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
        ]
      },
      "outputtest":{
        "cmd":"OT",
        "args":[
          1,
          1
        ],
        "returns":[
          3
        ]
      },
      "igntest":{
        "cmd":"IT",
        "args":[
          1
        ]
      },
      "cutcyl":{
        "cmd":"DO",
        "args":[
          2,
          2
        ]
      },
      "clearerrors":{
        "cmd":"CE",
        "returns":[
          1
        ]
      },
      "remotebit":{
        "cmd":"RB",
        "returns":[
          1
        ],
        "args":[
          1,
          1
        ]
      },
      "userprogramstate":{
        "cmd":"UP",
        "args":[
          1
        ]
      }
    },
    "permanenterrorflags":{
      "error0":"nverror0",
      "error1":"nverror1",
      "error2":"nverror2",
      "error3":"nverror3",
      "error4":"nverror4"
    },
    "errorlist":{
      "error0":[
        [
          0,
          "Throttle primary sensor low voltage"
        ],
        [
          1,
          "Throttle primary sensor high voltage"
        ],
        [
          2,
          "Throttle secondary sensor low voltage"
        ],
        [
          3,
          "Throttle secondary sensor high voltage"
        ],
        [
          4,
          "Throttle position sensors disagree"
        ],
        [
          5,
          "Electronic throttle not following target"
        ],
        [
          6,
          "Engine enable input not active"
        ],
        [
          7,
          "Oil pressure low"
        ],
        [
          8,
          "Slave processor software fault"
        ],
        [
          9,
          "Slave processor hardware fault"
        ],
        [
          10,
          "Test mode active"
        ],
        [
          11,
          "Hardware fault"
        ],
        [
          12,
          "Configuration error"
        ],
        [
          13,
          "Firmware crashed"
        ],
        [
          14,
          "Interrupt crashed"
        ],
        [
          15,
          "Priority interrupt crashed"
        ],
        [
          16,
          "Second throttle primary sensor low voltage"
        ],
        [
          17,
          "Second throttle primary sensor high voltage"
        ],
        [
          18,
          "Second throttle secondary sensor low voltage"
        ],
        [
          19,
          "Second throttle secondary sensor high voltage"
        ],
        [
          20,
          "Second throttle position sensors disagree"
        ],
        [
          21,
          "Second throttle not following target"
        ]
      ],
      "error1":[
        [
          0,
          "TPS voltage low"
        ],
        [
          1,
          "TPS voltage high"
        ],
        [
          2,
          "Accelerator pedal primary sensor low voltage"
        ],
        [
          3,
          "Accelerator pedal primary sensor high voltage"
        ],
        [
          4,
          "Accelerator pedal secondary sensor low voltage"
        ],
        [
          5,
          "Accelerator pedal secondary sensor high voltage"
        ],
        [
          6,
          "Accelerator pedal sensors disagree"
        ],
        [
          16,
          "Second TPS low voltage"
        ],
        [
          17,
          "Second TPS high voltage"
        ]
      ],
      "error2":[
        [
          0,
          "MAP sensor voltage low"
        ],
        [
          1,
          "MAP sensor voltage high"
        ],
        [
          2,
          "Coolant temp sensor open circuit"
        ],
        [
          3,
          "Coolant temp sensor short circuit"
        ],
        [
          4,
          "Air temp sensor open circuit"
        ],
        [
          5,
          "Air temp sensor short circuit"
        ],
        [
          6,
          "Lambda sensor voltage out of range"
        ],
        [
          7,
          "Lambda sensor lack of activity"
        ],
        [
          8,
          "Camshaft position sensor error"
        ],
        [
          9,
          "RTC battery fault or no RTC battery fitted"
        ],
        [
          10,
          "Barometric pressure sensor low voltage"
        ],
        [
          11,
          "Barometric pressure sensor high voltage"
        ],
        [
          12,
          "EMAP sensor low voltage"
        ],
        [
          13,
          "EMAP sensor high voltage"
        ],
        [
          14,
          "MAP signal implausible"
        ],
        [
          15,
          "Engine coolant temperature too high"
        ],
        [
          16,
          "Supply voltage too low"
        ],
        [
          17,
          "Supply voltage too high"
        ],
        [
          18,
          "Charge air temperature too high"
        ],
        [
          19,
          "Overboost protection triggered"
        ],
        [
          20,
          "Fuel pressure sensor low value"
        ],
        [
          21,
          "Fuel pressure sensor high value"
        ],
        [
          22,
          "Loss of CAN input data"
        ],
        [
          23,
          "Fuel pressure low"
        ],
        [
          24,
          "Fuel pressure high"
        ],
        [
          25,
          "Engine coolant temperature implausible"
        ],
        [
          26,
          "VVT primary cam off target"
        ],
        [
          27,
          "VVT secondary cam off target"
        ],
        [
          28,
          "Lambda reading too lean"
        ],
        [
          29,
          "Lambda reading too rich"
        ],
        [
          30,
          "MAF input low value"
        ],
        [
          31,
          "MAF input high value"
        ]
      ],
      "error3":[
        [
          0,
          "Lambda sensor 2 voltage out of range"
        ],
        [
          1,
          "Lambda sensor 2 lack of activity"
        ],
        [
          2,
          "Lambda 2 reading too lean"
        ],
        [
          3,
          "Lambda 2 reading too rich"
        ],
        [
          4,
          "N2O run aborted by low fuel pressure"
        ],
        [
          5,
          "Oil pressure sensor low value"
        ],
        [
          6,
          "Oil pressure sensor high value"
        ],
        [
          7,
          "Oil temperature sensor low value"
        ],
        [
          8,
          "Oil temperature sensor high value"
        ],
        [
          9,
          "VVT cam 3 off target"
        ],
        [
          10,
          "VVT cam 4 off target"
        ],
        [
          11,
          "Post compressor pressure sensor low value"
        ],
        [
          12,
          "Post compressor pressure sensor high value"
        ],
        [
          13,
          "Post restrictor pressure sensor low value"
        ],
        [
          14,
          "Post restrictor pressure sensor high value"
        ],
        [
          15,
          "Transmission temperature sensor low value"
        ],
        [
          16,
          "Transmission temperature sensor high value"
        ],
        [
          17,
          "User defined error 1"
        ],
        [
          18,
          "User defined error 2"
        ],
        [
          19,
          "User defined error 3"
        ],
        [
          20,
          "User defined error 4"
        ],
        [
          21,
          "Injector duty cycle exceeded 96%"
        ],
        [
          22,
          "Knock sensor 1 low input signal"
        ],
        [
          23,
          "Knock sensor 2 low input signal"
        ],
        [
          24,
          "Excessive knock detected"
        ],
        [
          25,
          "Fuel temperature sensor low input value"
        ],
        [
          26,
          "Fuel temperature sensor high input value"
        ],
        [
          27,
          "Fuel composition sensor low input value"
        ],
        [
          28,
          "Fuel composition sensor high input value"
        ],
        [
          29,
          "Mass air flow sensor signal implausible"
        ],
        [
          30,
          "DI fuel pressure sensor low input value"
        ],
        [
          31,
          "DI fuel pressure sensor high input value"
        ]
      ],
      "error4":[
        [
          0,
          "MAP sensor 2 low input value"
        ],
        [
          1,
          "MAP sensor 2 high input value"
        ],
        [
          2,
          "MAP sensor 2 implausible"
        ]
      ]
    },
    "scopechannels":[
      [
        0,
        "crank"
      ],
      [
        1,
        "cam"
      ],
      [
        2,
        "cam 2"
      ],
      [
        3,
        "cam 3"
      ],
      [
        4,
        "cam 4"
      ],
      [
        5,
        "home"
      ],
      [
        10,
        "sync"
      ],
      [
        11,
        "scv"
      ],
      [
        12,
        "scv 2"
      ],
      [
        16,
        "ign 1"
      ],
      [
        17,
        "ign 2"
      ],
      [
        18,
        "ign 3"
      ],
      [
        19,
        "ign 4"
      ],
      [
        20,
        "ign 5"
      ],
      [
        21,
        "ign 6"
      ],
      [
        22,
        "ign 7"
      ],
      [
        23,
        "ign 8"
      ],
      [
        32,
        "inj 1"
      ],
      [
        33,
        "inj 2"
      ],
      [
        34,
        "inj 3"
      ],
      [
        35,
        "inj 4"
      ],
      [
        36,
        "inj 5"
      ],
      [
        37,
        "inj 6"
      ],
      [
        38,
        "inj 7"
      ],
      [
        39,
        "inj 8"
      ],
      [
        40,
        "debug 0"
      ],
      [
        41,
        "debug 1"
      ],
      [
        42,
        "debug 2"
      ],
      [
        43,
        "debug 3"
      ],
      [
        44,
        "debug 4"
      ],
      [
        45,
        "debug 5"
      ],
      [
        46,
        "debug 6"
      ],
      [
        47,
        "debug 7"
      ],
      [
        62,
        "evtlogchan1",
        "evtlogchan2"
      ]
    ],
    "validation":[
      {
        "description":"Fuel tables must not exceed 256 fields",
        "rule":"(c(\"fuelpribincount\") * c(\"fuelrpmbincount\")) < 257",
        "details":"Adjust fuel load breakpoint count and\/or fuel speed breakpoint count so their product is less than or equal to 256"
      },
      {
        "description":"Ignition tables must not exceed 256 fields",
        "rule":"(c(\"ignpribincount\") * c(\"ignrpmbincount\")) < 257",
        "details":"Adjust ignition load breakpoint count and\/or ignition speed breakpoint count so their product is less than or equal to 256"
      },
      {
        "description":"Lambda target tables must not exceed 256 fields",
        "rule":"(c(\"lambdatargetloadbincount\") * c(\"lambdatargetspeedbincount\")) < 257",
        "details":"Adjust lambda target load breakpoint count and\/or lambda target speed breakpoint count so their product is less than or equal to 256"
      },
      {
        "description":"Minimum electronic throttle duty cycle must not exceed maximum duty cycle.",
        "rule":"c(etcminduty) < c(etcmaxduty)"
      }
    ],
    "scripts":{
      "clearcontrollererrors":{
        "script":[
          "if",
          "enginespeed > 0",
          [
            "alert",
            "The error clear function is not available when the engine is running"
          ],
          [
            [
              "rpc",
              "clearerrors"
            ],
            [
              "alert",
              "Errors cleared"
            ]
          ]
        ]
      },
      "cylcutdialog":{
        "description":"Cylinder disable test dialog",
        "script":[
          [
            "declare",
            "testigncuts",
            0
          ],
          [
            "declare",
            "testinjcuts",
            0
          ],
          [
            "dialog",
            {
              "title":"Cylinder disable test",
              "id":"outputdisabletester",
              "xsize":800,
              "ysize":600,
              "noresize":true,
              "bgcolor":"0x000000",
              "fgcolor":"0xFFFFFF",
              "onclose":[
                "rpc",
                "cutcyl",
                [
                  0,
                  0
                ]
              ]
            },
            [
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  0,
                  0
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":0,
                "activecolour":"red",
                "falsetext":"Injector 1",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 1)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  50,
                  0
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":1,
                "activecolour":"red",
                "falsetext":"Injector 2",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 2)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  100,
                  0
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":2,
                "activecolour":"red",
                "falsetext":"Injector 3",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 4)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  150,
                  0
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":3,
                "activecolour":"red",
                "falsetext":"Injector 4",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 8)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  0,
                  10
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":4,
                "activecolour":"red",
                "falsetext":"Injector 5",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 16)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  50,
                  10
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":5,
                "activecolour":"red",
                "falsetext":"Injector 6",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 32)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  100,
                  10
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":6,
                "activecolour":"red",
                "falsetext":"Injector 7",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 64)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  150,
                  10
                ],
                "type":"indicator",
                "id":"injcuts",
                "condition":"b",
                "parameter":7,
                "activecolour":"red",
                "falsetext":"Injector 8",
                "onclick":[
                  [
                    "declare",
                    "testinjcuts",
                    "xor(x, 128)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  0,
                  20
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":0,
                "activecolour":"red",
                "falsetext":"Ign cyl 1",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 1)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  50,
                  20
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":1,
                "activecolour":"red",
                "falsetext":"Ign cyl 2",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 2)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  100,
                  20
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":2,
                "activecolour":"red",
                "falsetext":"Ign cyl 3",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 4)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  150,
                  20
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":3,
                "activecolour":"red",
                "falsetext":"Ign cyl 4",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 8)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  0,
                  30
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":4,
                "activecolour":"red",
                "falsetext":"Ign cyl 5",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 16)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  50,
                  30
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":5,
                "activecolour":"red",
                "falsetext":"Ign cyl 6",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 32)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  100,
                  30
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":6,
                "activecolour":"red",
                "falsetext":"Ign cyl 7",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 64)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  150,
                  30
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":7,
                "activecolour":"red",
                "falsetext":"Ign cyl 8",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 128)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  0,
                  40
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":8,
                "activecolour":"red",
                "falsetext":"Ign cyl 9",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 256)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  50,
                  40
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":9,
                "activecolour":"red",
                "falsetext":"Ign cyl 10",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 512)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  100,
                  40
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":10,
                "activecolour":"red",
                "falsetext":"Ign cyl 11",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 1024)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "size":[
                  50,
                  10
                ],
                "position":[
                  150,
                  40
                ],
                "type":"indicator",
                "id":"igncuts",
                "condition":"b",
                "parameter":11,
                "activecolour":"red",
                "falsetext":"Ign cyl 12",
                "onclick":[
                  [
                    "declare",
                    "testigncuts",
                    "xor(x, 2048)"
                  ],
                  [
                    "rpc",
                    "cutcyl",
                    [
                      "testigncuts",
                      "testinjcuts"
                    ]
                  ]
                ]
              },
              {
                "vars":[
                  "cylcontrib1",
                  "cylcontrib2",
                  "cylcontrib3",
                  "cylcontrib4",
                  "cylcontrib5",
                  "cylcontrib6",
                  "cylcontrib7",
                  "cylcontrib8"
                ],
                "range":[
                  "-1000",
                  "1000"
                ],
                "warn":"",
                "label":"Cylinder contribution",
                "horizontal":0,
                "border":0,
                "size":[
                  200,
                  50
                ],
                "position":[
                  0,
                  50
                ],
                "type":"bargraph"
              }
            ]
          ]
        ]
      },
      "igntestdialog":{
        "description":"Ignition output test dialog",
        "script":[
          "dialog",
          {
            "title":"Test ignition outputs",
            "id":"ignoutputtester",
            "xsize":800,
            "ysize":200,
            "noresize":true,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                40,
                50
              ],
              "position":[
                0,
                0
              ],
              "type":"button",
              "caption":"Coil 1",
              "onclick":[
                "rpc",
                "igntest",
                [
                  0
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                40,
                0
              ],
              "type":"button",
              "caption":"Coil 2",
              "onclick":[
                "rpc",
                "igntest",
                [
                  1
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                80,
                0
              ],
              "type":"button",
              "caption":"Coil 3",
              "onclick":[
                "rpc",
                "igntest",
                [
                  2
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                120,
                0
              ],
              "type":"button",
              "caption":"Coil 4",
              "onclick":[
                "rpc",
                "igntest",
                [
                  3
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                160,
                0
              ],
              "type":"button",
              "caption":"Stop",
              "onclick":[
                "rpc",
                "igntest",
                [
                  255
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                0,
                50
              ],
              "type":"button",
              "caption":"Coil 5",
              "onclick":[
                "rpc",
                "igntest",
                [
                  4
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                40,
                50
              ],
              "type":"button",
              "caption":"Coil 6",
              "onclick":[
                "rpc",
                "igntest",
                [
                  5
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                80,
                50
              ],
              "type":"button",
              "caption":"Coil 7",
              "onclick":[
                "rpc",
                "igntest",
                [
                  6
                ]
              ]
            },
            {
              "size":[
                40,
                50
              ],
              "position":[
                120,
                50
              ],
              "type":"button",
              "caption":"Coil 8",
              "onclick":[
                "rpc",
                "igntest",
                [
                  7
                ]
              ]
            }
          ]
        ]
      },
      "opentestdialog":{
        "description":"Output test dialog",
        "script":[
          "dialog",
          {
            "title":"Output test mode",
            "id":"outputtester",
            "xsize":800,
            "ysize":300,
            "noresize":true,
            "bgcolor":"0xCCCCCC",
            "fgcolor":"0x000000"
          },
          [
            {
              "size":[
                50,
                20
              ],
              "position":[
                0,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":0,
              "activecolour":"green",
              "falsetext":"Output 1",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  0,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                50,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":1,
              "activecolour":"green",
              "falsetext":"Output 2",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  1,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                100,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":2,
              "activecolour":"green",
              "falsetext":"Output 3",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  2,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                150,
                0
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":3,
              "activecolour":"green",
              "falsetext":"Output 4",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  3,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                0,
                20
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":4,
              "activecolour":"green",
              "falsetext":"Output 5",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  4,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                50,
                20
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":5,
              "activecolour":"green",
              "falsetext":"Output 6",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  5,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                100,
                20
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":6,
              "activecolour":"green",
              "falsetext":"Output 7",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  6,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                150,
                20
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":7,
              "activecolour":"green",
              "falsetext":"Output 8",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  7,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                0,
                40
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":24,
              "activecolour":"green",
              "falsetext":"Output 9",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  24,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                50,
                40
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":25,
              "activecolour":"green",
              "falsetext":"Output 10",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  25,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                100,
                40
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":26,
              "activecolour":"green",
              "falsetext":"Output 11",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  26,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                150,
                40
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":27,
              "activecolour":"green",
              "falsetext":"Output 12",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  27,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                0,
                60
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":8,
              "activecolour":"green",
              "falsetext":"Injector 1",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  8,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                50,
                60
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":9,
              "activecolour":"green",
              "falsetext":"Injector 2",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  9,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                100,
                60
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":10,
              "activecolour":"green",
              "falsetext":"Injector 3",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  10,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                150,
                60
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":11,
              "activecolour":"green",
              "falsetext":"Injector 4",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  11,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                0,
                80
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":12,
              "activecolour":"green",
              "falsetext":"Injector 5",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  12,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                50,
                80
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":13,
              "activecolour":"green",
              "falsetext":"Injector 6",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  13,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                100,
                80
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":14,
              "activecolour":"green",
              "falsetext":"Injector 7",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  14,
                  2,
                  [
                    "tmostate0"
                  ]
                ]
              ]
            },
            {
              "size":[
                50,
                20
              ],
              "position":[
                150,
                80
              ],
              "type":"indicator",
              "scriptvar":"tmostate0",
              "condition":"b",
              "parameter":15,
              "activecolour":"green",
              "falsetext":"Injector 8",
              "onclick":[
                "rpc",
                "outputtest",
                [
                  15,
                  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(\"canscan_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":{
      "analog":"All of the analog inputs (along with wheelspeed inputs) have a configurable low pass filter.\r\nThe low pass filter is an exponential decay filter and works in such a way that\r\nwhen it has value of 99% for example,\r\n99% of the inter-sample difference is shunted and it will take up to 100 samples\r\nfor a transient to come into full effect.\r\nSample rate for the analog inputs is 15625Hz so the -6dB frequency of the filter can be calculated like so:\r\n\r\nfc = 7812 * (1-(filterconstant \/ 100))\r\n\r\nA filter value of 99.9% means a -6dB cut off at 7.8Hz",
      "antilag":"The anti lag system offers three outputs.\r\nOne is by altering the position of the idle valve (or electronic throttle via the idle subsystem).\r\nAnother is by a switching valve that turns on when anti lag is active, this would be used with a vacuum operated valve venting into the exhaust manifold for example.\r\nThird option is to use a PWM controlled valve which can be mapped based on throttle position and engine speed.\r\nAll three can be used together or each on its own.\r\n\r\nWhen electronic throttle control is enabled on the ECU, accelerator pedal position is used in place of throttle for all anti lag functions.\r\n\r\nA cool down idle function is provided, it can be configured to activate for a period of time after the last anti lag activation (useful for engines with an idle valve) or it can be always on for engines that have the throttle fixed open to enable anti lag.\r\n",
      "basic":"If the number of primary injectors equals the number of cylinders, it is assumed that injector output 1 applies to cylinder 1 and so on for injection phasing purposes.\r\nIf second stage injectors are present, the first output not used by the primary injectors is the first second stage injector.\r\nIf the number of second stage injectors equals the number of cylinders, it is assumed that the first second stage injector applies to cylinder 1 and so on for injection phasing purposes.\r\nTrailing ignition coils are generally only used on Mazda Wankel engines with their long and narrow combustion chambers.\r\n",
      "boostctl":"The boost control system has a number of options for customisation to what the application requires or tuner desires.\r\n\r\nThree target maps based on engine speed and throttle or other input, selectable by calibration pot. Two base duty cycle tables selectable by calibration pot.\r\nThree general purpose trims that can tweak or limit the boost target based on\r\nany variable.\r\nThe pressure reference is by default MAP but can be configured to use any other pressure sensor such as post-restrictor pressure or compressor discharge pressure.\r\nExamples of gp trim use may include varying boost by calibration switch positionwithout the use of separate target tables, limiting boost by gear or road speed, reducing boost in case of excessive wheelspin, varying boost by barometer or whatever else the tuner can think of.\r\n\r\nThe P and I gains can be varied based on error for fast acting control when far off target but fine control when close to target.\r\nThe integrator can be disabled when below target to prevent overshooting.\r\n\r\nNormally, more control loop effort leads to an increase in the controlled parameter. If working with a control parameter that works the opposite such as post restrictor pressure, specify negative numbers for the control loop gains.\r\n\r\nIf the boost control valve has a non linear response, a finer control can be had by using the boost duty translation curve to generate a non-linear or inverse response to the boost control loop output.\r\nThe base duty map is applied before the translation.\r\n",
      "calpot":"The cal pot lets you have a number of different calibrations and select which ones to use based on switch position.\r\nThe input will normally be an analog input, but can also be a CAN source or whatever else.\r\nThe service interval sets how often the cal pot position is updated, the position must remain the same for two consecutive intervals before it is updated, so a service time of 50ms means there is a delay of up to 100ms before the position is updated after the knob is turned.\r\n\r\nUp to 4 cal pot inputs are supported. The 'cal pot assignment' table distributes the different functions across different calibration pots.\r\n\r\nThe system finds the position on the curve that is the closest to the input voltage to determine the current position of the cal pot. This behaviour changed in firmware version 1.15, previously it looked for a voltage lower than the input voltage.\r\n",
      "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",
      "ectsensor":"The engine coolant temperature sensor is normally connected to analog input 2 which has a 3000 ohm pull up resistor.\r\n\r\nIf the coolant temperature registers outside of the temperature limits configured, the sensor is considered to be at fault and the default value is used.\r\n\r\nIf after the engine has been running for the specified warm up time the coolant temperature is lower than the specified minimum temperature for a warm engine, the sensor is also considered to be at fault and the default value is used.\r\nThis check may be disabled by configuring a run time value of zero.\r\n\r\nAny faults will register errors which are maskable in the error masks configuration but will otherwise illuminate the check engine lamp.\r\n",
      "errmasks":"There are three fault levels shown on 4 real time variable bit masks.\r\nerror0 are fatal faults which will disable fuel injection, ignition, fuel pump and electronic throttle. In this category are ECU hardware faults, loss of electronic throttle control faults and unknown electronic throttle position (TPS fault).\r\nAdditional events that will show up on error0 are the engine disable input and ECU output test mode.\r\n\r\nerror1 are non-maskable faults which will disable electronic throttle if present. In this category are faults with the accelerator pedal position sensors.\r\n\r\nerror2 and error3 are maskable errors whose effect is configurable. Those faults can be user assigned to one of six fault handling levels, just turn on the check engine lamp or be ignored completely.\r\n\r\nAny fault level that is triggered will illuminate the check engine lamp also.\r\n\r\nThe tuner is advised to go over the list of possible faults and consider the implications of each one, setting up the fault handling appropriately for the application.\r\n",
      "etc":"To use the drive by wire functionality, the LPCX expansion board is required.\r\nElectronic throttle control occupies outputs 3 and 11.\r\n\r\nThe throttle position sensor connects to analog 0, secondary throttle position is analog 1. Accelerator pedal position is analog 8 and secondary pedal position is analog 9.\r\n\r\nError checking of the position sensors permits the primary and secondary position sensors to read within 10% of each other, if that difference threshold is exceeded for 800 milliseconds an error is set.\r\nAn error in pedal position sensing sets error level 1 and disables pedal input.\r\nAn error in throttle position sensing sets error level 0 and disables fuel injection as well as ignition.\r\n\r\nError checking of throttle operation requires that the throttle position is within 10% of throttle target at all times, if the threshold is exceeded for 800ms then a level 0 error is set which disables fuel injection and ignition.\r\nThis means the PID parameters must be sane before attempting to run the engine.\r\n\r\nWhen setting up the position sensors, it is best that the throttle position sensors cover the entire range of throttle movement, as the throttle target must not be 0% or 100%. In order for the PID control to work properly, the sensors must be able to read slightly past the useful range of the throttle valve.\r\n\r\nThe acceleration pedal position sensors have no such requirements other than the two sensors must agree.\r\n",
      "flipflop":"The flip flop logic provides the ability to use momentary switches and logic conditions to control ECU functions that take a logic input.\r\nIf the reset input is active, the other inputs have no effect.\r\nIf the set input is active, the toggle input has no effect.\r\nThe toggle input is blocked after activation for the same amount of time as the delay specified for the last performed action. If toggling on with a delay of 1 second, the switch must be released for 1 second after toggling before it becomes possible to toggle off.\r\n\r\nAs the general purpose logic conditions can be intertwined with the flip flop gates, it becomes possible to create functions to change mapping behaviour when cruise control switch is held during power on (when time < 2 seconds AND cruiseswitch = 2) or something similar with any ECU sensor input such as throttle position.\r\n\r\nThe flip flops have a user configurable power-on state.\r\n",
      "fuel":"The injector phasing is relative to TDC of each cylinder when the number of\r\ninjector outputs used is equal to the number of cylinders.\r\nOtherwise, the phasing is relative to TDC cyl #1\r\nThe injector phasing specifies the start of injection.\r\n\r\nIf mappable injection timing is configured, the injection angle map is added\r\nto the injector phasing constants.\r\nThe injection angle map is best kept relatively flat and the inter cycle variation limit should be configured smaller than the anticipated injector pulse widths in areas where any variations in angle are happening.\r\nKeep in mind that 1% injection duty cycle on a 4 stroke engine is 7.2 crank degrees.\r\n",
      "fuelpress":"When a fuel pressure sensor is fitted, it can be one of three types,\r\nbaro referenced (aka gauge pressure), MAP referenced (differential sensor connected to inlet manifold for reference) or absolute pressure.\r\nThe controller displays all three types of pressure, one is read off the sensor\r\nwhile the others are calculated from MAP and barometer values.\r\n",
      "gpcounters":"The general purpose counters facilitate the use of momentary switches to adjust ECU functions. This may include calibration switching, gear selection or similar functions. \r\nCan also be used to keep track of laps driven if a beacon is present or perform any other low speed counting function as the maximum value of these counters is 255 (but through the programmable logic they can be chained, triggering one to count up when another overflows.) \r\nThe maximum counting rate is once every 32 milliseconds.\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",
      "idle":"LPC4 supports two types of idle control valves directly.\r\nThose are basic PWM type which can be connected to output 3 if configured as such,\r\nand stepper motors, which can be driven by any combination of 4 outputs, usually outputs 5-6-7-8.\r\n\r\nFor PWM idle valves, you need to set a frequency, typically 100-200Hz is perfect. Too low and the valve will vibrate,\r\ntoo high and you may experience stiction, where valve is sluggish to respond to changes in duty cycle.\r\nFor most PWM valves, supply voltage compensation is the recommended setting. The exception for this is some 3-wire PWM valves which are duty controlled and not current controlled.\r\nFor a 3-wire valve with twin coils, the antiphase coil can be connected to output 5.\r\nThe tables concerning idle valve opening are in opening percentage, not PWM percentage. The opening percentage is converted to PWM\r\nby the PWM idle valve operating range setting, as some valves have a fail-safe opening at 0% duty. The operating range can be\r\nreversed so a higher duty cycle means less opening, this is useful for a 3-wire valve that has been wired backwards.\r\n\r\nFor stepper motors, these are the output functions:\r\n\r\nThe LPC4 is designed to drive unipolar stepper motors (6 pin), as found for example on Mitsubishis and older Subarus. Bipolar valves can be driven but\r\neach of the 4 wires going to the valve must be given a 12V pull-up resistor. Recommended value that works for most valves is 15 ohm and thermal rating should\r\nbe 2 watts or greater, typically 5 watt. If current holding is disabled those resistors won't get hot.\r\nIf you find that the motor operates in the wrong direction (higher opening percentage reduces idle speed) you must switch the coils or the polarity of one in the output config.\r\nIt is recommended that current holding when the stepper is stopped stays disabled. Enabling it may increase precision but valve may get very hot.\r\nIf using bipolar stepper with pull-up resistors current holding must not be\r\nenabled under any circumstance.\r\n\r\nStepper valve drive interval is the interval between steps. Values that work well may be between 2-5ms depending on valve. The first and last step in any movement\r\nof the valve are driven for double this duration. Values too small will produce unreliable valve operation, too large and the valve will move very slowly.\r\nWhen power is applied to the ECU, the valve is driven in the configured homing direction for the configured number of homing steps.\r\nWhich direction is used is usually not important, but some poorly designed combinations let the valve unscrew itself out of the motor\r\nif driven too far in the closed direction so generally, opening direction is safer. The number of homing steps should be greater than the opening range of the motor.\r\nSet the number of full-open steps to a number large enough to utilise the required range of the motor, but smaller than the mechanical limit.\r\nValve precision is reduced if the range exceeds the mechanical limit, and valve may become mechanically disabled if driven too far in the wrong direction as described above.\r\n\r\nFor closed loop idle control, a dual control algorithm is provided.\r\nThe primary control is by means of ignition timing advance by PID control.\r\nThe secondary control which improves the dynamic range of the idle control\r\nuses the idle valve in integrator control fashion.\r\nAs of firmware 2.0, enabling the idle valve integral disables the idle\r\nignition advance integral.\r\n",
      "intlogging":"If your controller is fitted with the optional internal logging memory, it can\r\nlog data internally at rates up to 500 samples per second in standard logging\r\nmode and up to 1000 samples per second for selected channels in structured log\r\nmode.\r\nThe size of the internal logging memory is typically 8GB.\r\nHowever, log retrieval over USB is far slower so for most use cases it is\r\nadvisable to use lower recording rates to reduce file size. 50Hz is a good compromise between file size and log resolution.\r\n\r\nThe logging is triggered by a logic condition such as used for the general purpose outputs.\r\n\r\nIf desired, the log file duration can be limited. This is useful to limit the file size so reviewing what happened in the last minutes of a driving session does not require the download of a whole hour's worth of data. If no limit is desired, configure a value of zero seconds for the maximum log file duration.\r\nWhen the limit is reached, logging is halted. If the start conditions are met at that time a new log file is immediately started.\r\n\r\nAnother method of automatically stopping data logs is also provided, and that is to stop recording after the log start conditions have not been met for a certain amount of time. This is useful to prevent recording several minutes of engine idling after a racing session.\r\nIf this feature is not desired, a value of zero seconds can be configured.\r\n\r\nNew in firmware 1.10 is burst logging, this enables recording data at a low rate during periods when there is little interesting activity but switch to a higher rate when a set of conditions is met and keep recording at the increased rate while the conditions are met and the off delay of the conditions has not expired.\r\n\r\nAlso new in firmware 1.10 is the ability to initiate internal logging manually from the Calibrator application using a remote procedure call. This is useful when doing live testing of something that requires a higher logging rate than possible via the USB interface. It is not necessary to enable internal logging for the manual trigger to work.\r\n",
      "lambda":"The LPC4 can accept input from any type of wide-band lambda controller that has an analog or CAN bus output.\r\n\r\nSome extra validation is done of the lambda sensor signal after one minute of engine run time.\r\nIf over-run fuel cut is present for more than 1.5 seconds the lambda sensor is\r\nexpected to read leaner than the lean check value or else a fault is registered.\r\nIf the engine sees more than 30% throttle above the check speed, the sensor is expected to read richer than the lean check value or else a fault is registered.\r\nIf the engine has been running for longer than a minute, gets above the lambda\r\ncheck speed at above 30% throttle and lambda sensor still hasn't deviated from the value read 1 second after ECU powered up by a margin of at least 0.05 lambda then a fault is registered.\r\n\r\nYou can observe the status of the lambda sensors on variables named lambda_ready and lambda2_ready respectively.\r\nTo be considered ready the lambda sensor input has to be within the specified validation range, and if the source is an external wide band lambda controller\r\nthe signal is validated by looking for a certain amount of activity to indicate the sensor isn't stuck at a certain value.\r\nIf using the internal lambda controller on LPC8 generation 2, the sensor is considered ready when it's within the allowed temperature range as well as pump current is within limits\r\nindicating the nernst voltage is on target.",
      "lambdasafety":"The safety checks are enabled\/disabled from the error masks section.\r\nClosed loop mode must be enabled for there to be a lambda target value,\r\nbut fuel trims do not need to be enabled.\r\nThe lambda reading must deviate from the target by a given amount for a given\r\ntime before an error is registered.\r\n",
      "launch":"The launch rev limit can be fixed or altered by a multiplier based on any input.The rev window specifies how far from the rev limit the ignition timing retard starts to have effect. The full amount of spark retard happens at the rev limit.\r\nIf the timing retard method is set to relative the timing is subtracted from\r\notherwise commanded timing.\r\nIf the timing retard method is set to absolute, the set value gradually becomes the commanded angle when nearing the limit.\r\nTwo alternate values are possible for limit and timing values, selectable by calibration potentiometer.\r\n",
      "mapsensor":"The LPC4 has a built in 4000mbar absolute pressure sensor, connected internally to analog channel 6. This can be used for manifold pressure or any other air pressure measurement.\r\nIf an external sensor is used for MAP sensing, it must be connected to analog channel 5.\r\n\r\nTwo noise filtering schemes are provided for the MAP signal.\r\nOne is an integration filter that integrates the samples collected between two firing events, this generally gives good results on engines with a reasonable inlet plenum design and are naturally aspirated or turbocharged.\r\nIf the integration filter is turned off, the exponential decay filter is used\r\nas with other analog inputs. The exponential decay filter gives better results\r\nwhen there's noise present that isn't in beat with the engine's crankshaft rotation, such as the noise of a positive displacement supercharger.\r\n\r\nIf the voltage on the MAP sensor channel falls outside of the range defined by the voltage span variable, the sensor is deemed faulty and the default value used.\r\nAdditionally, the ECU performs a plausibility check on the MAP signal.\r\nThe plausibility check can be disabled under the error masks section in the config, this may be necessary if the MAP sensor is connected to the plenum of an ITB engine for example.\r\nThe plausibility check performs three checks, any of which must fail for a whole second before the MAP sensor is deemed faulty and the default value assigned. \r\nThe first check is that when engine is stopped, MAP must be between 500 and 1200 mbar.\r\nThe second check is that when the engine speed is greater than the configured\r\nreference speed and throttle position below 5%, MAP must be lower than the reference value.\r\nThe third check is that when the engine speed is below the configured reference speed and throttle position above 50%, the MAP must be greater than the reference value.\r\n",
      "n2o":"If N2O inhibit on CEL is selected, the ECU will not allow N2O use if an unmasked error is present (check engine lamp illuminated). With the exception of lambda sensor and RTC battery errors.\r\n\r\nThe nitrous oxide system expects an arming input, usually taken through a\r\nmicroswitch on the accelerator pedal in series with an arming switch that supplies\r\nV+ to the positive side of a relay coil. The ECU then controls the negative side of the relay coil when conditions are met to open the nitrous solenoids.\r\n\r\nThe ECU can add fuel with the nitrous for a dry setup but the fuel curve also\r\naccepts negative numbers to fine tune fuelling of a wet system.\r\n\r\nThe nitrous onset latency is the estimated delay between applying power to the\r\nnitrous solenoids until nitrous has reached the intake ports.\r\nFirst the solenoids are powered, then after this delay the fuel adder and ignition retard come into effect.\r\nThis will be close to zero for a direct port system but a few dozen milliseconds may give a cleaner response if the nitrous nozzle is located far from the intake ports. Start with zero and increase the number if the engine hesitates for the first cycles after the nitrous becomes active.\r\n\r\nThe nitrous decay latency is the estimated delay between removing power from the nitrous solenoids until the intake tract is mostly free of nitrous oxide.\r\nAfter the nitrous solenoids are switched off, the fuel adder and ignition retard remain active for this duration.\r\nAgain, smaller numbers for direct port systems and larger for others.\r\nStart with 100 milliseconds or so and reduce the number if the engine hesitates when nitrous becomes inactive at almost full throttle.\r\n\r\nTwo stage nitrous control comes with some options and possible use cases.\r\nIf the stage 2 is set independent of stage 1, it can be triggered regardless of whether stage 1 is active. The use case being to have the ability to select three possible levels of nitrous by having f.ex a 100hp shot on stage 1 and 200 on stage 2 for a selection of 100\/200\/300hp by switches on the vehicle.\r\nIf stage 2 is not configured as being independent of stage 1, stage 2 can be configured to come on with a delay which starts ticking at the activation of stage 1.\r\n\r\nIt should be noted that when stage 2 is dependent of stage 1, stage 1 can deactivate on exceeding the engine speed limits or MAP limits without deactivating stage 2 once activated, but deactivating stage 1 by the means of the switched input will deactivate stage 2.\r\n\r\nIf progressive control is desired, an 8 point curve is provided that can run off a selectable parameter. The most obvious parameters to use are the n2otime\/n2os2time parameters as well as engine speed.\r\nTo use the progressive control, solenoids must be wired through solid state relays and the outputs triggering them must be configured for N2O PWM solenoid control.\r\nIt is possible to use both a switched output and a PWM output at the same time, for example to run a fuel solenoid off the switched output but ramp in the nitrous solenoid using PWM.\r\n",
      "shiftcut":"The gear shift cut provides three methods of power reduction which can be\r\nused selectively for making gear shifts smooth and reliable under power.\r\nFuel injection and\/or ignition can be cut to completely unpower the engine during the shift.\r\nIgnition timing can be retarded during and after the shift for a smoother transition into the next gear.\r\nIgnition retard without fuel or ignition cut can be useful to extend the life\r\nof a transmission that does not require unloading to enable shifting, such as an automatic transmission.\r\n\r\nIf ignition retard is used, it can be configured to cease as soon as the shift is done or gradually decay to zero over a configured amount of time after the shift cut is resumed.\r\n\r\nThe engine speed fraction before resuming function configures what fraction of the current engine speed becomes the new rev limit for the duration of the cut (if the fuel or ignition cut options are enabled).\r\nIf the resume on speed drop option is selected this speed is also used to disable the shift cut once the engine reaches it.\r\nFor example, if the value in that function for the current gear is 70% and the\r\ndriver shifts at 10000RPM the shift cut limits the engine speed to 7000RPM while active.\r\n\r\nThe resume on speed drop option deactivates the shift cut once the engine speed reaches the set limit. Without this option the engine will bounce off the rev limit until the shift cut is deactivated by timer or switch input.\r\n\r\nThe one shot timer option makes it so the switch input only serves to activate the shift cut but deactivation can only happen by timer or speed drop.\r\nWithout the one shot timer option, shift cut is deactivated when the switch releases if it hasn't already deactivated by timer or speed drop.\r\n\r\nThe shift cut trigger input is edge sensitive, so all of the conditions must be met at the time the input is switched to activate the cut, and a stuck switch has no effect.\r\n",
      "speeds":"When using individual wheel speeds, and the driven or undriven wheel speeds is derived from the individual wheel speeds, the ECU will calculate the average of the wheels in the group that have a speed within the threshold specified as valid.",
      "supplyvoltage":"The supply voltage error checking logic works as follows.\r\nThe maximum voltage value is continuously checked and check must fail for\r\na whole second before error code is thrown. Error is cleared if voltage drops 0.5 volts below the limit.\r\n\r\nThe minimum voltage for engine off or cranking is always considered the lower\r\nlimit so if voltage falls below that value that will trigger an error whether the engine is running or not.\r\n5 seconds after the engine starts the voltage limits for idle or running conditions start being enforced and must fail for a whole second before an error code is thrown. \r\nLow voltage errors are cleared if the voltage goes 0.5V above the minimum idle\/running voltage while the engine is running.\r\n\r\nThe switch from idle to running voltage check happens at the speed configured\r\nas maximum idle speed under idle control configuration.\r\n",
      "torque":"The torque model works as such.\r\nEngine friction is looked up from engine speed and MAP, multiplied by a coolant temperature function.\r\nCombustion efficiency is looked up from engine speed and MAP, multiplied by a coolant temperature function.\r\nCombustion effect is calculated by multiplying cylinder air mass by the combustion efficiency.\r\nCombustion effect is then corrected for lambda target, resulting in lower\r\nreported torque when running lean or rich of optimal.\r\nCombustion effect and engine fritcion are added to produce a torque reserve number.\r\nCombustion effect is then corrected for difference between actual timing and\r\nMBT timing as looked up from a separate MBT map using a second timing sensitivity map.\r\nCombustion effect and engine friction are added together to produce an actual torque number.\r\n\r\nFor torque reduction, the torque model will retard the ignition timing as far\r\nas is required to lose enough efficiency to drop the torque to a desired\r\nlevel, and if this exceeds the permitted maximum ignition retard then\r\noptionally it can shut off fuel and\/or ignition for some cylinders.\r\nAfter ignition is retarded by the torque strategy it is slowly brought back to\r\nnormal, as set by the ignition retard decay rate in order to prevent too\r\nsudden torque onset as well as prevent detonation.\r\n\r\nThe torque request is separate and looked up from accelerator pedal position\r\nand engine speed. The torque request can only be managed if the engine has an\r\nelectronic throttle body, as a reduction in torque request is met by a reverse\r\nlook up of the torque request map to find the effective accelerator position\r\nrequired for the desired torque.\r\n\r\nFor sudden short term torque reduction, use the torque limiter. For slower\r\nresponding and longer duration torque reduction use the torque\r\nrequest limiter.\r\n",
      "trigger":"For common trigger combinations, see the configuration presets.\r\nYou may not need to edit any trigger related settings at all if a preset\r\nis available that matches your engine.\r\n\r\nSync angle:\r\nDepending on the trigger mode.\r\n\r\nFor basic trigger mode, the sync angle denotes the angle before TDC at which\r\nthe trigger wheel is set. \r\n\r\nThe following documentation applies to versatile multitooth.\r\nVersatile multitooth covers a multitude of different trigger arrangements,\r\nif a preset is not available for your engine and you are unsure if this mode\r\ncovers your engine and how, contact support.\r\n\r\nValid crank sync modes:\r\n0: No syncable features present on crank. Must use cam sync for engine to run.\r\nTypical for Toyota\/Honda 24\/1 trigger.\r\n1: Missing tooth. If the timing between two adjacent falling edge events exceeds\r\nthat of the previous events by the configured sync factor, the decoder is synced.\r\nThis mode is only for trigger wheels where a single gap in the otherwise\r\nregular tooth placement is present.\r\nThis is the most commonly used configuration, common examples are 36-1 and 60-2.\r\nSync angle is the angle of the first tooth after the gap, unless delayed sync\r\nis enabled, then it's the second tooth.\r\n2: Extra tooth. If the timing between two adjacent falling edge events is shorter \r\nthan the previous events by at least the configured sync factor, the decoder is synced.\r\nSync angle is the angle of the first tooth after the extra tooth unless delayed\r\nsync is enabled, then it's the second tooth.\r\n\r\nValid cam sync modes:\r\n- No cam sync present, run with 360 degree sync only.\r\n1: Cam polling. Cam state will be checked during crank sync and\r\ncam sync is applied depending on cam sensor state. This is typical for a hall effect cam sync with a long slot.\r\n2: Cam counting. Cam edges are counted between crank falling edge events. \r\nIf the count matches the configured count cam sync will come into effect. \r\nThis is typical for VR sensor cam sync using one or more closely spaced teeth with irregular placement.\r\n3: Crank counting. In this mode, when the crank home (missing tooth, extra tooth, etc) is processed it checks the number of crank impulses seen since the last cam impulse, including the most recent crank impulse and if it falls inside the specified range 720 degree sync is found.\r\nThis is typical for a cam sync using multiple sparsely spaced irregular slots or teeth where multiple crank events happen between cam events. \r\n4: Single wheel. This denotes that the crank trigger input is connected to a sensor\r\nreading a wheel driven at cam speed and thus the sync angle is absolute within\r\nthe 720 degree cycle. Use this when mounting f.ex a 36-1 wheel on the cam.\r\n\r\nTrigger tooth configuration\r\nThe teeth are defined by the angle they occur after the previous tooth in the sequence.\r\nIf several adjacent teeth are evenly spaced, the definition can be repeated\r\nusing the repeat count table. A repeat count of zero means there are no repeated teeth.\r\nA tooth can have an angle of zero, in which case the tooth is counted and may\r\nbe used for sync purposes but is ignored for crank angle calculation purposes.\r\nThis is useful for odd spaced teeth whose angle is not exactly known or sensor can't time\r\naccurately with relation to the other teeth. This is also useful in some cases\r\nwhere there are too many teeth and mechanism is too sloppy to make accurate use\r\nof them all.\r\nAn example of a tooth angle configuration for a 36-1 wheel:\r\nTooth 1: 20 degrees\r\nTooth 2: 10 degrees\r\nTooth 1 repeats 0 times.\r\nTooth 1 repeats 33 times.\r\n\r\nPresently, the firmware does not do any validation of these values so getting\r\nthem wrong will result in unexpected behavior such as wrong engine speed reported\r\nand wrong ignition timing, with error varying between cylinders.\r\n\r\n\r\n-- Variable Valve Timing\r\nFor cam angle measurement there are two parameters that must be configured.\r\nOne is the number of divisions the cam pulses can be seen in.\r\nFor example a Toyota 2JZGTE VVTi will have three teeth on the cam, so enter 3\r\nin this field. Subarus with AVCS will have four with one or two missing, so 4\r\nis the number to use in those cases.\r\nThe divisor limits the angular range that can be reported to 720 divided by\r\nthe number of divisions.\r\nThe other configurable parameter is the offset of the cam tooth relative to TDC cyl #1.\r\nThe offset is used to shift the reported cam angles to smaller numbers and place them all within a continuous range. \r\nFor applications where two cams are to be controlled (f.ex Subaru) or the cam with VVT \r\nis different from the one that provides the cam sync information (Honda K series)\r\nit is possible to use Digital Input 1 as a second cam input. It must be configured as such in the inputs\/outputs category.\r\n",
      "vvt":"The variable valve timing control presently supports any single solenoid PWM operated VVT system with cam position feedback.\r\n\r\nThe primary cam is the cam connected to the cam sync input, the secondary cam is a cam with its position sensor connected to a general purpose digital input\r\nwhich has been configured as second cam input.\r\nThe cam angle offset is used to bring the values reported for the cam angle\r\ndown to reasonable numbers as well as bring the numbers into sync in case both cams being controlled are inlet cams.\r\nThe reported angle must not go to zero, leave some margin so reported position\r\nis at least 10 degrees with no advance to allow for some drift.\r\n\r\nThe cam angle divisions number should be set to at least one, but if the cam has multiple teeth evenly spaced this option can be set to the number of teeth present on the cam angle transducer to enable faster angle updates. If the cam has a number of teeth which are not perfectly evenly spaced one can pick a tooth to measure using the angle offset and then ignore the other teeth by setting the\r\nmaximum read angle to a number less than the spacing between teeth.\r\n\r\nIn the PID settings, base duty cycle should be whatever value is required to hold a steady angle, but it does not need to be exact.\r\n\r\nThe VVT error check starts running five seconds after engine start and only when engine is running above set minimum speed. An error is set if angle is outside\r\nof allowed error margin for 200 consecutive PID cycles.\r\nThe error check may be disabled during calibration by setting a margin of zero or an impossibly high minimum speed.\r\n"
    }
  },
  "controller_serialno":"00010",
  "controller_definition":"48",
  "controller_fwversion":"48",
  "controller_signature":"LPC8 v2.12",
  "controller_model":"L4",
  "gaugepanel":[
    {
      "id":"enginespeed",
      "size":[
        20,
        50
      ],
      "position":[
        0,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"map",
      "size":[
        20,
        50
      ],
      "position":[
        0,
        50
      ],
      "type":"gauge"
    },
    {
      "id":"throttle",
      "size":[
        20,
        50
      ],
      "position":[
        20,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"fuelmass",
      "size":[
        20,
        50
      ],
      "position":[
        20,
        50
      ],
      "type":"gauge"
    },
    {
      "id":"coolanttemp",
      "size":[
        15,
        50
      ],
      "position":[
        40,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"airtemp",
      "size":[
        15,
        50
      ],
      "position":[
        40,
        50
      ],
      "type":"gauge"
    },
    {
      "id":"lambdatgt",
      "size":[
        20,
        50
      ],
      "position":[
        55,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"lambda",
      "size":[
        20,
        50
      ],
      "position":[
        55,
        50
      ],
      "type":"gauge"
    },
    {
      "id":"faultmask",
      "condition":"!=",
      "parameter":"0",
      "truetext":"Check engine",
      "falsetext":"No faults",
      "activecolour":"amber",
      "size":[
        15,
        20
      ],
      "position":[
        185,
        80
      ],
      "type":"indicator"
    },
    {
      "id":"ltft_learning",
      "condition":"=",
      "parameter":"1",
      "truetext":"learning bank 1",
      "falsetext":"no learn 1",
      "activecolour":"green",
      "size":[
        15,
        20
      ],
      "position":[
        185,
        0
      ],
      "type":"indicator"
    },
    {
      "id":"ltft2_learning",
      "condition":"=",
      "parameter":"1",
      "truetext":"learning bank 2",
      "falsetext":"no learn 2",
      "activecolour":"green",
      "size":[
        15,
        20
      ],
      "position":[
        185,
        20
      ],
      "type":"indicator"
    },
    {
      "id":"ltft",
      "size":[
        15,
        50
      ],
      "position":[
        75,
        0
      ],
      "type":"gauge"
    },
    {
      "id":"supplyvoltage",
      "size":[
        15,
        50
      ],
      "position":[
        75,
        50
      ],
      "type":"gauge"
    },
    {
      "id":"synclosscount",
      "size":[
        15,
        40
      ],
      "position":[
        185,
        40
      ],
      "type":"gauge"
    }
  ],
  "keyshortcuts":{
    "F5":[
      "edit",
      "mainfuelmap"
    ],
    "F6":[
      "edit",
      "mainignmap"
    ]
  }
}