{ "minbuild":"2024-04-09 00:00", "rtvars_right":[ "enginespeed", "map", "airtemp", "coolanttemp", "app", "appsec", "railpressure", "railpressuretarget", "error0", "error1", "error2", "error3", "supplyvoltage", "time", "roadspeed", "roaddistance", "mainfrequency", "totalfuelqty", "fuellimit", "mainpw1", "pilotpw1", "calpot1", "mainangle1", "pilotangle1", "logging", "logseq", "runtime", "date", "ecutemp", "rawenginespeed", "synclosscount", "starter_engaged", "start_requested", "barometer", "glow_light", "cel" ], "rtgroups":{ "analog":[ "analog0", "analog1", "analog2", "analog3", "analog4", "analog5", "analog6", "analog7", "analog8", "analog9", "analog10", "analog11", "analog12", "analog13", "analog14", "analog15", "app", "map", "barometer", "coolanttemp", "supplyvoltage" ], "autotrans":[ "+gearselectorsrc", "gearselect", "atcmdgear" ], "oilpress":[ "oilpress", "+oilpsrc" ], "oiltemp":[ "oiltemp", "+oiltempsrc" ], "transtemp":[ "transtemp", "+transtempsrc" ], "oillevelsensor":[ "oillevel", "+oillevelsrc", "oiltemp" ], "oilqualitysensor":[ "oilquality", "+oilqualitysrc", "oillevel", "oiltemperature" ], "errmasks":[ "error0", "error1", "error2", "error3", "cel" ], "idle":[ "idletargetspeed", "idlefuelrequest", "deltarpm", "idleP", "idlePD", "idleI", "idleD" ], "trigger":[ "syncstate", "crankevent", "camevent", "synclosscount", "synclossreason", "rawcamangle", "rawcamangle2", "rawcamangle3", "rawcamangle4" ], "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" ], "intlogging":[ "logging", "logseq", "logrecs", "logstatus" ], "io":[ "vssinterval", "din1interval", "din3interval", "din4interval", "gpin", "outputs", "din1freq", "din3freq", "din4freq" ], "mapsensor":[ "map", "analog5", "analog6", "deltamap" ], "boostctl":[ "+boostpressuresource", "boosttarget", "boosterror", "boostdot", "boostgptrim1", "boostgptrim2", "boostgptrim3", "boostp1duty", "boostp2duty", "boostp3duty", "boostctlcmd", "boostduty", "boostP", "boostPD", "boostI", "boostD", "turbospeed" ], "boostctl2":[ "boostctlcmd", "boostp2duty", "boostp3duty", "boostp2limit", "+boostparam2picker", "boostp3limit", "+boostparam3picker", "boostp2P", "boostp2I", "boostp2D", "boostp3P", "boostp3I", "boostp3D" ], "ectsensor":[ "coolanttemp", "analog2", "runtime" ], "pwm0":[ "pwm0duty" ], "gppid":[ "pwm1duty", "pwm1P", "pwm1I", "pwm1D", "+pwm1var", "pwm1sp" ], "gppid2":[ "pwm2duty", "pwm2P", "pwm2I", "pwm2D", "+pwm2var", "pwm2sp" ], "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" ], "customlookup":[ "+customlookupsrc1", "customtransfer1", "+customlookupsrc2", "customtransfer2", "+customlookupsrc3", "customtransfer3", "+customlookupsrc4", "customtransfer4" ], "customtables":[ "+custom2dxsrc1", "+custom2dysrc1", "customtable1", "+custom2dxsrc2", "+custom2dysrc2", "customtable2", "+custom2dxsrc3", "+custom2dysrc3", "customtable3", "+custom2dxsrc4", "+custom2dysrc4", "customtable4" ], "rail":[ "railpressure", "railpressuretarget", "railpresserror", "railctlcmd", "railctlduty", "railP", "railI", "railD", "railpsecduty", "railpsecerroreffect", "railpseciqeffect", "railpsectargeteffect", "railpmod", "scvpw", "scvangle" ], "torque":[ "torqueactual", "torquelimit", "torquereserve", "torquerequest", "torquerequestlimit", "torquerequestlimited", "torquetempcomp", "torquefuelrequestlimit", "fuelrequestlimited", "torquefuellimit", "tq_rqlimited", "tq_limited", "+torquelimitrequestsrc", "+torquelimitsrc" ], "start":[ "start_requested", "starter_engaged", "glow_heating" ], "fan":[ "fanspeed", "fanpwmduty" ], "stepper":[ "steppos", "steptarget", "+stepsrc" ], "h2o":[ "h2o_active", "h2otimingmod", "h2opwmduty" ], "n2o":[ "n2o_active", "n2os2_active", "n2otimingmod", "n2olimitadder", "n2opwmduty", "n2os2pwmduty" ], "harsh":[ "harshcycles", "harshseverity", "harshfuelreduction" ], "balancecontrol":[ "balancectl_active", "balancetrim1", "balancetrim2", "balancetrim3", "balancetrim4", "balancetrim5", "balancetrim6", "balancetrim7", "balancetrim8", "cylcontrib1", "cylcontrib2", "cylcontrib3", "cylcontrib4", "cylcontrib5", "cylcontrib6", "cylcontrib7", "cylcontrib8" ], "maf":[ "maf", "cylairmass", "maf1", "maf2", "cylairmass_maf1", "cylairmass_maf2", "+maf1source", "+maf2source" ], "uservars":[ "uservar1", "uservar2", "uservar3", "uservar4" ], "simplepwm":[ "simplepwmdc1", "simplepwmf1", "+simplepwmdutyvar1", "+simplepwmfreqvar1", "simplepwmdc2", "simplepwmf2", "+simplepwmdutyvar2", "+simplepwmfreqvar2", "simplepwmdc3", "simplepwmf3", "+simplepwmdutyvar3", "+simplepwmfreqvar3", "simplepwmdc4", "simplepwmf4", "+simplepwmdutyvar4", "+simplepwmfreqvar4" ], "extrainjector":[ "extrapw1", "extraangle1" ], "gprevlimit":[ "gprevlimit", "+gprevlimitsrc" ], "cluster":[ "slavestatus", "slavecommcount", "slaverpm" ], "governor":[ "+governorspeedsrc", "governortarget", "governorerror", "fuelrequest", "govfuelreq", "governorP", "governorI", "governorD" ], "indcyl":[ "mainvoltrim1", "mainangletrim1", "mainvoltrim2", "mainangletrim2", "mainvoltrim3", "mainangletrim3", "mainvoltrim4", "mainangletrim4", "mainvoltrim5", "mainangletrim5", "mainvoltrim6", "mainangletrim6", "mainvoltrim7", "mainangletrim7", "mainvoltrim8", "mainangletrim8", "mainvoltrim9", "mainangletrim9", "mainvoltrim10", "mainangletrim10", "mainvoltrim11", "mainangletrim11", "mainvoltrim12", "mainangletrim12", "mainvoltrim13", "mainangletrim13", "mainvoltrim14", "mainangletrim14", "mainvoltrim15", "mainangletrim15", "mainvoltrim16", "mainangletrim16" ], "cankeypads":[ "keypadstate1", "keypadstate2", "keypadstate3", "keypadstate4" ], "cankeypad1":[ "keypadstate1", "keypad1.1", "keypad1.2", "keypad1.3", "keypad1.4", "keypad1.5", "keypad1.6", "keypad1.7", "keypad1.8", "keypad1.9", "keypad1.10", "keypad1.11", "keypad1.12", "keypad1.13", "keypad1.14", "keypad1.15" ], "cankeypad2":[ "keypadstate2", "keypad2.1", "keypad2.2", "keypad2.3", "keypad2.4", "keypad2.5", "keypad2.6", "keypad2.7", "keypad2.8", "keypad2.9", "keypad2.10", "keypad2.11", "keypad2.12", "keypad2.13", "keypad2.14", "keypad2.15" ], "cankeypad3":[ "keypadstate3", "keypad3.1", "keypad3.2", "keypad3.3", "keypad3.4", "keypad3.5", "keypad3.6", "keypad3.7", "keypad3.8", "keypad3.9", "keypad3.10", "keypad3.11", "keypad3.12", "keypad3.13", "keypad3.14", "keypad3.15" ], "cankeypad4":[ "keypadstate4", "keypad4.1", "keypad4.2", "keypad4.3", "keypad4.4", "keypad4.5", "keypad4.6", "keypad4.7", "keypad4.8", "keypad4.9", "keypad4.10", "keypad4.11", "keypad4.12", "keypad4.13", "keypad4.14", "keypad4.15" ] }, "config":[ { "name":"Basic engine and IO settings", "context":"basic", "type":255, "value":[ { "name":"Control mode", "id":"controlmode", "type":3, "value":"Common rail" }, { "name":"Fuel quantity range", "id":"fuelqtyrange", "type":3, "value":"650 mm3" }, { "name":"Number of cylinders", "id":"cylcount", "value":5.000000 }, { "name":"Engine type", "type":3, "id":"enginestroke", "value":"Four stroke" }, { "name":"ECU clustering mode", "context":"cluster", "id":"masterslavemode", "type":3, "value":"Stand alone" }, { "name":"Cylinder angle offset", "id":"baseangle", "type":5, "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ], "value":[ 0.000000, 144.004488, 575.995980, 287.997990, 432.002478 ] }, { "name":"Cylinder contribution offset", "id":"firingorderoffset", "value":0.000000 }, { "name":"Injector output assignment", "id":"injassign", "type":5, "applies":[ "controlmode", "!=", "Distributor pump" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ], "value":[ 5.000000, 1.000000, 2.000000, 6.000000, 3.000000 ] }, { "name":"Engine primary rev limit", "id":"mainrevlimit", "value":4500.000000 }, { "name":"Rev limit hysteresis", "id":"revlimithyster", "value":100.000000 }, { "name":"Fuel lift pump timeout", "id":"fueltimeout", "value":2.000000 }, { "name":"Use smoothed engine speed for lookups", "id":"usesmoothrpm", "type":3, "value":"Enabled" }, { "name":"Use smoothed engine speed for timing map lookups", "id":"timingsmoothrpm", "type":3, "value":"Disabled" }, { "name":"Engine speed breakpoints for smoothing functions", "id":"smoothingrpmpoints", "type":4, "value":[ 500.000000, 800.000000, 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000 ] }, { "name":"Accelerator pedal breakpoints for smoothing functions", "id":"smoothingpedalpoints", "type":4, "value":[ 1.955040, 4.985352, 9.970704, 14.956056, 20.039160, 39.980568, 60.019728, 79.961136 ] }, { "name":"Engine speed smoothing factor", "type":5, "xaxis":"smoothingrpmpoints", "id":"rpmsmoothingfiltermap", "yaxis":"smoothingpedalpoints", "value":[ 94.999604, 94.999604, 94.999604, 94.999604, 90.000428, 80.000550, 49.999390, 49.999390, 94.999604, 94.999604, 94.999604, 94.999604, 90.000428, 80.000550, 49.999390, 49.999390, 91.999488, 91.999488, 91.999488, 91.999488, 87.329928, 77.999964, 49.999390, 49.999390, 88.999372, 88.999372, 88.999372, 88.999372, 84.670110, 75.999378, 49.999390, 49.999390, 85.999256, 85.999256, 85.999256, 85.999256, 81.999610, 74.000318, 49.999390, 49.999390, 74.000318, 74.000318, 74.000318, 74.000318, 71.329818, 65.999500, 49.999390, 49.999390, 61.999854, 61.999854, 61.999854, 61.999854, 60.670708, 58.000208, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390, 49.999390 ] }, { "name":"Fuel request increase lag factor", "id":"fuelrequestposfiltermap", "type":5, "xaxis":"smoothingrpmpoints", "yaxis":"smoothingpedalpoints", "value":[ 70.000672, 70.000672, 70.000672, 70.000672, 70.000672, 70.000672, 39.999512, 39.999512, 68.850068, 68.850068, 68.850068, 68.850068, 68.850068, 68.850068, 39.999512, 39.999512, 66.919678, 66.919678, 66.919678, 66.919678, 66.919678, 66.919678, 39.999512, 39.999512, 64.999970, 64.999970, 64.999970, 64.999970, 64.999970, 64.999970, 39.999512, 39.999512, 63.080262, 63.080262, 63.080262, 63.080262, 63.080262, 63.080262, 39.999512, 39.999512, 55.380066, 55.380066, 55.380066, 55.380066, 55.380066, 55.380066, 39.999512, 39.999512, 47.690552, 47.690552, 47.690552, 47.690552, 47.690552, 47.690552, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512 ] }, { "name":"Fuel request decrease lag factor", "id":"fuelrequestnegfiltermap", "type":5, "xaxis":"smoothingrpmpoints", "yaxis":"smoothingpedalpoints", "value":[ 70.000672, 70.000672, 70.000672, 70.000672, 70.000672, 70.000672, 39.999512, 39.999512, 68.850068, 68.850068, 68.850068, 68.850068, 68.850068, 68.850068, 39.999512, 39.999512, 66.919678, 66.919678, 66.919678, 66.919678, 66.919678, 66.919678, 39.999512, 39.999512, 64.999970, 64.999970, 64.999970, 64.999970, 64.999970, 64.999970, 39.999512, 39.999512, 63.080262, 63.080262, 63.080262, 63.080262, 63.080262, 63.080262, 39.999512, 39.999512, 55.380066, 55.380066, 55.380066, 55.380066, 55.380066, 55.380066, 39.999512, 39.999512, 47.690552, 47.690552, 47.690552, 47.690552, 47.690552, 47.690552, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512, 39.999512 ] }, { "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":"Ignored" }, { "name":"Lambda sensor 1 lack of activity", "id":"faultlevel7", "type":3, "value":"Ignored" }, { "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":"Ignored" }, { "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":"Ignored" }, { "name":"Overboost protection triggered", "id":"faultlevel19", "type":3, "value":"Fault mode 1" }, { "name":"Rail pressure sensor low value", "id":"faultlevel20", "type":3, "value":"Ignored" }, { "name":"Rail pressure sensor high value", "id":"faultlevel21", "type":3, "value":"Ignored" }, { "name":"Loss of expected CAN input data", "applies":[ "canmode", "!=", "Disabled", "canrxenable", "=", "Enabled" ], "id":"faultlevel22", "type":3, "value":"Ignored" }, { "name":"Fuel rail pressure too low", "id":"faultlevel23", "type":3, "value":"Ignored" }, { "name":"Fuel rail pressure too high", "id":"faultlevel24", "type":3, "value":"Ignored" }, { "name":"Engine coolant temperature implausible", "id":"faultlevel25", "type":3, "value":"CEL only" }, { "name":"Engine oil level sensor low input", "id":"faultlevel28", "type":3, "value":"Ignored" }, { "name":"Engine oil level sensor high input", "id":"faultlevel29", "type":3, "value":"Ignored" }, { "name":"Engine oil quality sensor low input", "id":"faultlevel30", "type":3, "value":"Ignored" }, { "name":"Engine oil quality sensor high input", "id":"faultlevel31", "type":3, "value":"Ignored" }, { "name":"Mass air flow sensor 1 low input", "id":"faultlevel32", "type":3, "value":"CEL only" }, { "name":"Mass air flow sensor 1 high input", "id":"faultlevel33", "type":3, "value":"CEL only" }, { "name":"Mass air flow sensor 2 low input", "id":"faultlevel34", "type":3, "value":"CEL only" }, { "name":"Mass air flow sensor 2 high input", "id":"faultlevel35", "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":"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":"Communications with slave controller lost", "id":"faultlevel53", "type":3, "value":"Ignored" }, { "name":"Fault reported by slave controller", "id":"faultlevel54", "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":"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 rev limits", "id":"faultrevlimits", "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 fuel request limits", "id":"faultfuellimits", "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":"General purpose rev limit", "context":"gprevlimit", "type":255, "value":[ { "name":"General purpose rev limit enable condition", "type":3, "id":"gprevlimittrigger", "value":"Always off" }, { "name":"Lookup curve breakpoint count", "id":"gprevlimitptcount", "value":1.000000 }, { "name":"Input variable", "id":"gprevlimitsrc", "type":7, "value":"const_zero" }, { "name":"Lookup curve", "id":"gprevlimitpts", "type":4, "value":[ 0.000000 ] }, { "name":"General purpose rev limit", "id":"gprevlimitcurve", "type":5, "xaxis":"gprevlimitpts", "value":[ 0.000000 ] } ] }, { "name":"Engine enable input", "id":"engineenableinput", "type":3, "value":"Always on" }, { "name":"Engine shut off wait delay", "id":"stoptimeout", "value":10.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 ], "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 ], "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 ], "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 ], "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":[ "Fuel request", "Injection timing", "Boost control", "Fuel limit", "Rev limits" ], "value":[ 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000 ] }, { "name":"Cal pot fuel request 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 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Normal", "Normal", "Normal", "Normal" ] }, { "name":"Cal pot injection timing map selection", "applies":[ "calpotenable", "=", "Enabled" ], "id":"timingcalselect", "type":5, "xvariable":[ "calpotassign.1", "calpot1", "calpot2", "calpot3", "calpot4" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Normal", "Normal", "Normal", "Normal" ] }, { "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 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Alternate", "Alternate 2", "Alternate 2", "Alternate 2" ] }, { "name":"Cal pot boost control base duty options", "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 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Normal", "Normal", "Normal", "Normal" ] }, { "name":"Cal pot fuel limit map selection", "applies":[ "calpotenable", "=", "Enabled" ], "id":"fuellimcalselect", "type":5, "xvariable":[ "calpotassign.3", "calpot1", "calpot2", "calpot3", "calpot4" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Normal", "Normal", "Normal", "Normal" ] }, { "name":"Cal pot rail pressure map selection", "applies":[ "calpotenable", "=", "Enabled" ], "id":"railpcalselect", "type":5, "xvariable":[ "calpotassign.4", "calpot1", "calpot2", "calpot3", "calpot4" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8 ], "colwidth":2.000000, "value":[ "Normal", "Normal", "Normal", "Normal", "Normal", "Normal" ] }, { "name":"Cal pot pilot injection map selection", "applies":[ "calpotenable", "=", "Enabled" ], "id":"pilotcalselect", "type":5, "xvariable":[ "calpotassign.5", "calpot1", "calpot2", "calpot3", "calpot4" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8 ], "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.6", "calpot1", "calpot2", "calpot3", "calpot4" ], "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8 ], "novisual":1, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] } ] }, { "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 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":"const_zero" }, { "name":"Condition 2", "type":7, "id":"gpiocond2type4", "value":">" }, { "name":"Value 2", "id":"gpiocond2val4", "value":60.000000 }, { "name":"Hysteresis 2", "id":"gpiocond2hyster4", "value":10.000000 }, { "name":"Next condition", "type":7, "id":"gpiocond2and4", "value":"AND" }, { "name":"Variable 3", "id":"gpiocond3var4", "type":7, "value":"time" }, { "name":"Condition 3", "type":7, "id":"gpiocond3type4", "value":"=" }, { "name":"Value 3", "id":"gpiocond3val4", "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":"enginespeed" }, { "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":"const_zero" }, { "name":"Condition 2", "type":7, "id":"gpiocond2type9", "applies":[ "gpiocond1and9", "!=", "No other condition" ], "value":">" }, { "name":"Value 2", "id":"gpiocond2val9", "applies":[ "gpiocond1and9", "!=", "No other condition" ], "value":60.000000 }, { "name":"Hysteresis 2", "id":"gpiocond2hyster9", "applies":[ "gpiocond1and9", "!=", "No other condition" ], "value":10.000000 }, { "name":"Next condition", "type":7, "id":"gpiocond2and9", "applies":[ "gpiocond1and9", "!=", "No other condition" ], "value":"No other condition" }, { "name":"Variable 3", "id":"gpiocond3var9", "type":7, "applies":[ "gpiocond1and9", "!=", "No other condition", "gpiocond2and9", "!=", "No other condition" ], "value":"time" }, { "name":"Condition 3", "type":7, "applies":[ "gpiocond1and9", "!=", "No other condition", "gpiocond2and9", "!=", "No other condition" ], "id":"gpiocond3type9", "value":"=" }, { "name":"Value 3", "id":"gpiocond3val9", "applies":[ "gpiocond1and9", "!=", "No other condition", "gpiocond2and9", "!=", "No other condition" ], "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":"Sensor inputs", "type":255, "context":"analog", "value":[ { "name":"Pedal position inputs", "type":255, "value":[ { "name":"Accelerator source select", "id":"driverinputselect", "value":0.000000 }, { "name":"Alternate accelerator source", "id":"driverinputsrc", "type":7, "value":"const_zero" }, { "name":"Alternate secondary accelerator source", "id":"driversecinputsrc", "type":7, "value":"const_zero" }, { "name":"Accelerator pedal position primary voltage range", "applies":[ "dbwenable", "!=", "1234567890" ], "id":"pedalprimaryrange", "type":4, "xaxis":[ "low", "high" ], "value":[ 0.400488, 4.699629 ] }, { "name":"Accelerator pedal position primary voltage limits", "applies":[ "dbwenable", "!=", "1234567890" ], "id":"pedalprimarylimits", "type":4, "xaxis":[ "low", "high" ], "value":[ 0.200244, 4.899873 ] }, { "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.169719, 2.379729 ] }, { "name":"Accelerator pedal secondary transfer function", "applies":[ "dbwenable", "!=", "1234567890" ], "id":"pedalsecondarypos", "type":5, "xaxis":"pedalsecondaryvolts", "value":[ 0.000000, 100.000000 ] }, { "name":"Accelerator pedal position secondary voltage limits", "applies":[ "dbwenable", "!=", "1234567890" ], "id":"pedalsecondarylimits", "type":4, "value":[ 0.100122, 3.999996 ] }, { "name":"Accelerator pedal position sensor type", "id":"appsinglepot", "type":3, "value":"Dual potentiometer" }, { "name":"Maximum secondary position at idle with single potentiometer APP sensor", "id":"maxsecondaryatidle", "applies":[ "appsinglepot", "=", "Single potentiometer + switch" ], "value":99.999744 } ] }, { "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":"Disabled" }, { "name":"MAP sensor calibration voltage span", "id":"mapadcrange", "unit":"V", "type":4, "value":[ 0.500610, 4.999995 ] }, { "name":"MAP sensor calibration", "id":"mapvaluerange", "type":5, "xaxis":"mapadcrange", "value":[ 150.000000, 2830.000000 ] }, { "name":"MAP sensor valid voltage span", "id":"mapvalidrange", "unit":"V", "type":4, "value":[ 0.300366, 4.999995 ] }, { "name":"MAP sensor failure value", "id":"mapdefault", "value":1000.000000 }, { "name":"MAP sensor low pass rate", "id":"analogfilter6", "value":99.899590 } ] }, { "name":"Mass air flow sensors", "type":255, "context":"maf", "value":[ { "name":"MAF sensor 1 input", "id":"maf1source", "type":7, "value":"const_zero" }, { "name":"MAF sensor 2 input", "id":"maf2source", "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":"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":19.000000 }, { "name":"Coolant temperature sensor voltage span", "id":"coolantadc", "type":4, "value":[ 0.000000, 0.338217, 0.382173, 0.510378, 0.680097, 0.894993, 1.168497, 1.526250, 1.948716, 2.206347, 2.368740, 2.682537, 2.999997, 3.322341, 3.648348, 3.979239, 4.315014, 4.655673, 4.999995 ] }, { "name":"Coolant temperature sensor values", "id":"coolantvalues", "type":5, "unit":"°C", "xaxis":"coolantadc", "value":[ 140.000000, 93.000000, 88.900000, 78.700000, 68.700000, 59.500000, 50.400000, 41.300000, 32.100000, 27.000000, 23.000000, 16.000000, 9.000000, 3.000000, -3.000000, -9.000000, -16.000000, -22.000000, -32.000000 ] }, { "name":"Coolant temperature limits", "id":"coolantlimits", "type":4, "unit":"°C", "value":[ -30.000000, 140.000000 ] }, { "name":"Coolant temperature default value", "id":"coolantdefault", "value":130.000000 }, { "name":"Engine overheating temperature", "applies":[ "mask_engineoverheat", "!=", "No CEL" ], "id":"engineovertemp", "value":115.000000 }, { "name":"Engine overheating hysteresis", "applies":[ "mask_engineoverheat", "!=", "No CEL" ], "id":"engineovertemphyster", "value":10.000000 }, { "name":"Engine warm up time", "applies":[ "mask_ect_implausible", "!=", "No CEL" ], "id":"warmuptime", "value":600.000000 }, { "name":"Minimum coolant temperature when warmed up", "applies":[ "mask_ect_implausible", "!=", "No CEL" ], "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":17.000000 }, { "name":"Air temperature sensor voltage span", "id":"airtempadc", "type":4, "value":[ 4.957260, 4.833939, 4.630032, 4.323561, 3.901095, 3.521364, 3.179484, 2.783880, 2.305248, 1.887666, 1.433454, 1.167276, 0.890109, 0.709401, 0.587301, 0.283272, 0.000000 ] }, { "name":"Air temperature sensor values", "id":"airtempvalues", "type":5, "unit":"°C", "xaxis":"airtempadc", "value":[ -40.000000, -30.000000, -20.000000, -10.000000, 2.000000, 12.000000, 22.100000, 31.500000, 41.000000, 50.200000, 60.200000, 68.900000, 79.800000, 88.400000, 94.800000, 110.000000, 150.000000 ] }, { "name":"Air temperature limits", "id":"airtemplimits", "type":4, "unit":"°C", "value":[ -30.000000, 140.000000 ] }, { "name":"Air temperature default value", "id":"airtempdefault", "value":21.000000 }, { "name":"Intake air overheating value", "applies":[ "mask_iatoverheat", "!=", "No CEL" ], "id":"iatovertemp", "value":100.000000 }, { "name":"Intake air overheating hysteresis", "applies":[ "mask_iatoverheat", "!=", "No CEL" ], "id":"iatovertemphyster", "value":10.000000 } ] }, { "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":90.000428 }, { "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":94.999604 }, { "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":98.999250 }, { "name":"analog14 low pass rate", "id":"analogfilter14", "value":98.999250 }, { "name":"analog15 low pass rate", "id":"analogfilter15", "value":98.999250 } ] }, { "name":"Analog input pull ups", "type":255, "value":[ { "name":"Analog 9 pull up value", "id":"pullup_analog9", "type":7, "value":"57.6k Ohm" }, { "name":"Analog 10 pull up value", "id":"pullup_analog10", "type":7, "value":"57.6k Ohm" } ] }, { "name":"Barometric pressure sensor", "type":255, "value":[ { "name":"Barometric pressure sensor source", "type":3, "id":"extbaro", "value":"Internal" }, { "name":"Barometric pressure sensor input", "id":"barosource", "type":7, "applies":[ "barosource", "=", "External" ], "value":"const_zero" }, { "name":"Barometric pressure sensor voltage breakpoints", "id":"barovoltages", "type":4, "applies":[ "barosource", "=", "External" ], "value":[ 0.000000, 5.000000 ] }, { "name":"Barometric pressure sensor values", "id":"barovalues", "type":5, "xaxis":"barovoltages", "applies":[ "barosource", "=", "External" ], "value":[ 0.000000, 7000.000000 ] }, { "name":"Barometric pressure sensor input validation range", "id":"barovalidrange", "type":4, "applies":[ "barosource", "=", "External" ], "value":[ 1.000000, 5.000000 ] }, { "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":"Rail pressure sensor", "context":"rail", "type":255, "value":[ { "name":"Rail pressure sensor input", "id":"fpsource", "type":7, "value":"analog4" }, { "name":"Rail pressure voltage breakpoint count", "id":"fpbpcount", "value":2.000000 }, { "name":"Rail pressure sensor voltage breakpoints", "id":"fpvoltages", "type":4, "value":[ 0.515262, 4.515258 ] }, { "name":"Rail pressure sensor values", "id":"fpvalues", "type":5, "xaxis":"fpvoltages", "value":[ 0.000000, 1500.000000 ] }, { "name":"FP sensor input validation range", "id":"fpvalidrange", "type":4, "value":[ 0.000000, 4.999995 ] }, { "name":"FP error value", "id":"fpdefault", "value":1000.000000 } ] }, { "name":"Exhaust temperature sensors", "type":255, "context":"egt", "value":[ { "name":"EGT1 source", "id":"egtsrc1", "type":7, "value":"analog15" }, { "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":12.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.010989, 0.041514, 0.109890, 0.183150, 0.362637, 0.886446, 1.793649, 2.885223, 3.575088, 3.908421, 4.532352, 4.677651 ] }, { "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":[ 0.000000, 10.000000, 30.000000, 50.000000, 100.000000, 250.000000, 500.000000, 800.000000, 1000.000000, 1100.000000, 1300.000000, 1350.000000 ] }, { "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":"Lambda sensor", "context":"lambda", "type":255, "value":[ { "name":"Lambda sensor input", "id":"lambdasource", "type":7, "value":"const_zero" }, { "name":"Lambda sensor characteristic curve points", "id":"lambdaptcount", "value":2.000000 }, { "name":"Lambda sensor voltage breakpoints", "id":"lambdavoltages", "type":4, "value":[ 0.000000, 5.000000 ] }, { "name":"Lambda sensor values", "id":"lambdavalues", "type":5, "xaxis":"lambdavoltages", "value":[ 0.680000, 1.361000 ] }, { "name":"Lambda sensor input validation range", "id":"lambdavrange", "type":4, "value":[ 0.000000, 5.000000 ] }, { "name":"Lambda sensor validity checks", "id":"lambdacheckenable", "type":3, "value":"Disabled" }, { "name":"Lambda sensor lean validation value", "id":"lambdaleanvalue", "value":1.500000 }, { "name":"Lambda sensor accel validation engine speed", "id":"lambdacheckspeed", "value":2000.000000 }, { "name":"Lambda sensor rich validation fuel quantity", "id":"lambdarichfuel", "value":40.000000 }, { "name":"Second lambda sensor input", "id":"lambda2source", "type":7, "value":"const_zero" }, { "name":"Lambda 2 sensor characteristic curve points", "id":"lambda2ptcount", "value":2.000000 }, { "name":"Lambda 2 sensor voltage breakpoints", "id":"lambda2voltages", "type":4, "value":[ 0.000000, 5.000000 ] }, { "name":"Lambda 2 sensor values", "id":"lambda2values", "type":5, "xaxis":"lambda2voltages", "value":[ 0.680000, 1.361000 ] }, { "name":"Lambda 2 sensor input validation range", "id":"lambda2vrange", "type":4, "value":[ 0.000000, 5.000000 ] } ] }, { "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, "yaxis":"opyaxis", "xaxis":"opspeedbins", "value":[ 0.000000, 700.000000, 700.000000, 1500.000000, 3000.000000, 4000.000000, 4000.000000, 4000.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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 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":[ 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":"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":"Oil level sensor", "context":"oillevelsensor", "type":255, "value":[ { "name":"Oil level sensor input", "id":"oillevelsrc", "type":7, "value":"const_zero" }, { "name":"Oil level transfer function breakpoint count", "id":"oillevelbpcount", "value":2.000000 }, { "name":"Oil level input breakpoints", "id":"oillevelpoints", "type":4, "value":[ 0.000000, 1.000000 ] }, { "name":"Oil level sensor values", "id":"oillevelfunction", "type":5, "xaxis":"oillevelpoints", "value":[ 0.000000, 100.000000 ] }, { "name":"Oil level sensor valid input range", "id":"oillevelinputrange", "type":4, "value":[ 0.000000, 5000.000000 ] }, { "name":"Oil level sensor error value", "id":"oilleveldefault", "value":0.000000 } ] }, { "name":"Oil quality sensor", "context":"oilqualitysensor", "type":255, "value":[ { "name":"Oil quality sensor input", "id":"oilqualitysrc", "type":7, "value":"const_zero" }, { "name":"Oil quality transfer function breakpoint count", "id":"oilqualitybpcount", "value":2.000000 }, { "name":"Oil quality input breakpoints", "id":"oilqualitypoints", "type":4, "value":[ 0.000000, 1.000000 ] }, { "name":"Oil quality sensor values", "id":"oilqualityfunction", "type":5, "xaxis":"oilqualitypoints", "value":[ 0.000000, 100.000000 ] }, { "name":"Oil quality sensor valid input range", "id":"oilqualityinputrange", "type":4, "value":[ 0.000000, 5000.000000 ] }, { "name":"Oil quality sensor error value", "id":"oilqualitydefault", "value":0.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":"Fuel temperature sensor", "type":255, "context":"fueltemp", "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":"fueltempvoltages", "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":"fueltempvoltages", "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":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":"Engine speed inputs", "type":255, "context":"trigger", "value":[ { "name":"Trigger mode", "type":3, "id":"triggermode", "value":"Versatile multi tooth" }, { "name":"Trigger angle offset", "id":"syncangle", "value":102.005010 }, { "name":"Crank trigger active edge", "id":"invertcrank", "type":3, "value":"Falling" }, { "name":"Cam sync active edge", "id":"invertcam", "type":3, "value":"Falling" }, { "name":"Multi tooth jitter filter", "id":"jitterfix", "type":3, "value":"Enabled" }, { "name":"Trigger pulses skipped when starting", "id":"ignoredteeth", "value":5.000000 }, { "name":"Engine speed calculation delay", "id":"rpmcalcdelay", "value":0.000000 }, { "name":"Number of trigger tooth config slots", "applies":[ "triggermode", "!=", "Basic", "triggermode", "!=", "Equal spacing missing tooth" ], "id":"triggertoothcount", "type":0, "value":2.000000 }, { "name":"Trigger teeth", "id":"triggerteeth", "applies":[ "triggermode", "!=", "Basic", "triggermode", "!=", "Equal spacing 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":[ 5.998356, 17.995068 ] }, { "name":"Trigger tooth repeat count", "applies":[ "triggermode", "!=", "Basic", "triggermode", "!=", "Equal spacing 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":[ 56.000000, 0.000000 ] }, { "name":"Crank sync mode for multitooth", "applies":[ "triggermode", "!=", "Equal spacing missing tooth" ], "type":3, "id":"cranksyncmode", "value":"Double check missing tooth" }, { "name":"Crank sync threshold ratio", "id":"syncratio", "value":0.550051 }, { "name":"Crank tooth gap distance", "applies":[ "triggermode", "=", "Versatile multi tooth", "cranksyncmode", "=", "Count between long gaps" ], "id":"crankgapinterval", "value":1.000000 }, { "name":"Cam sync mode", "type":3, "id":"camsyncmode", "value":"Count cam impulses" }, { "name":"Cam sync count", "applies":[ "triggermode", "!=", "Basic" ], "applies_any":[ "camsyncmode", "=", "Count cam impulses", "camsyncmode", "=", "Count crank impulses" ], "id":"camcount", "value":1.000000 }, { "name":"Crank impulse count range for cam sync", "type":4, "applies_any":[ "camsyncmode", "=", "Count crank impulses", "camsyncmode", "=", "Count crank since last cam", "camsyncmode", "=", "Crank tooth window filter" ], "id":"camcountrange", "value":[ 0.000000, 2.000000 ] }, { "name":"Cam window filter", "applies":[ "triggermode", "!=", "Basic", "camsyncmode", "=", "Count cam 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", "id":"camsyncdelayed", "type":3, "value":"Disabled" }, { "name":"Ignore cam after start", "id":"camignoredpoststart", "type":3, "value":"Disabled" }, { "name":"Attempt starting when cam sensor is faulted", "id":"camlessfallback", "type":3, "value":"Disabled" }, { "name":"Cam sync timeout", "id":"camtimeout", "value":5.000000 }, { "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":"Crank speed sampling points for compression detection", "applies":[ "triggermode", "=", "Versatile multi tooth", "camsyncmode", "=", "Crank acceleration monitoring" ], "id":"crankspeedpoints", "type":4, "value":[ 0.000000, 0.000000, 0.000000 ] }, { "name":"Crank speed ratio for compression detection", "applies":[ "triggermode", "=", "Versatile multi tooth", "camsyncmode", "=", "Crank acceleration monitoring" ], "id":"crankspeedratio", "value":0.899817 }, { "name":"Primary trigger filter period", "id":"rpmfilter", "value":50.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", "!=", "Basic", "camsyncmode", "=", "Crank state on cam impulse" ], "id":"cranksyncstate", "value":0.000000 }, { "name":"Number of base teeth for missing tooth mode", "applies":[ "triggermode", "=", "Equal spacing missing tooth" ], "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":"Phase swap interval for sensorless cam sync", "id":"phaseswapinterval", "applies_any":[ "camsyncmode", "=", "No cam", "camlessfallback", "=", "Enabled" ], "value":2.000000 }, { "name":"Override engine speed computation interval", "id":"rpmcalcinterval", "value":0.000000 }, { "name":"Flexible jitter filter for versatile multi tooth", "id":"softjittercount", "value":0.000000 }, { "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":"Trigger angle offset for redundant crank trigger", "id":"sparesyncangle", "applies":[ "din4function", "=", "Redundant crank trigger" ], "value":70.002792 }, { "name":"Engine speed source for CAN trigger mode", "id":"enginespeedsrc", "type":7, "applies":[ "triggermode", "=", "CAN source" ], "value":"cansrc0" } ] }, { "name":"Frequency inputs", "type":255, "value":[ { "name":"Individual wheel speeds", "type":255, "value":[ { "name":"Front left wheel speed source", "id":"vssmode_fl", "type":3, "value":"Other" }, { "name":"Front left wheel speed source if other", "id":"vsssource_fl", "type":7, "applies":[ "vssmode_fl", "=", "Other" ], "value":"const_zero" }, { "name":"Front left wheel speed sensor pulses per kilometre", "applies":[ "vssmode_fl", "!=", "Other" ], "id":"ppkm_fl", "value":4000.000000 }, { "name":"Front right wheel speed source", "id":"vssmode_fr", "type":3, "value":"Other" }, { "name":"Front right wheel speed source if other", "id":"vsssource_fr", "type":7, "applies":[ "vssmode_fr", "=", "Other" ], "value":"const_zero" }, { "name":"Front right wheel speed sensor pulses per kilometre", "applies":[ "vssmode_fr", "!=", "Other" ], "id":"ppkm_fr", "value":4000.000000 }, { "name":"Rear left wheel speed source", "id":"vssmode_rl", "type":3, "value":"Other" }, { "name":"Rear left wheel speed source if other", "id":"vsssource_rl", "type":7, "applies":[ "vssmode_rl", "=", "Other" ], "value":"const_zero" }, { "name":"Rear left wheel speed sensor pulses per kilometre", "applies":[ "vssmode_rl", "!=", "Other" ], "id":"ppkm_rl", "value":4000.000000 }, { "name":"Rear right wheel speed source", "id":"vssmode_rr", "type":3, "value":"Other" }, { "name":"Rear right wheel speed source if other", "id":"vsssource_rr", "type":7, "applies":[ "vssmode_rr", "=", "Other" ], "value":"const_zero" }, { "name":"Rear right wheel speed sensor pulses per kilometre", "applies":[ "vssmode_rr", "!=", "Other" ], "id":"ppkm_rr", "value":4000.000000 }, { "name":"Individual wheel speeds valid range", "type":4, "id":"vssvalidrange", "value":[ 1.000000, 500.000000 ] } ] }, { "name":"Driven wheel speed source", "id":"vsssource", "type":3, "value":"INVALID: 255.000000" }, { "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":"INVALID: 255.000000" }, { "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":0.000000 }, { "name":"Speed at 3000RPM per gear", "id":"gearratios", "type":5, "xaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ], "applies":[ "gearsrc", "=", "const_zero" ], "value":[ 20.000000, 40.000000, 70.000000, 100.000000, 120.000000, 140.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Transmission gear position input", "id":"gearsrc", "type":7, "value":"const_zero" }, { "name":"Gear position count", "applies":[ "gearsrc", "!=", "const_zero" ], "id":"gearposcount", "value":8.000000 }, { "name":"Gear positions", "id":"gears", "applies":[ "gearsrc", "!=", "const_zero" ], "type":4, "value":[ -1.000000, 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000 ] }, { "name":"Gear position sensor values", "id":"gearvalues", "applies":[ "gearsrc", "!=", "const_zero" ], "type":4, "xaxis":"gears", "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.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":"Starting", "context":"start", "type":255, "value":[ { "name":"Minimum speed to attempt starting", "id":"minrpmtostart", "value":100.000000 }, { "name":"Engine speed to exit cranking mode", "id":"crankingspeed", "value":400.000000 }, { "name":"Minimum rail pressure to operate injectors", "id":"minrailpressuretostart", "value":100.000000 }, { "name":"Engine speed breakpoints for starting settings", "id":"crankingrpmbins", "type":4, "value":[ 100.000000, 200.000000, 300.000000, 400.000000 ] }, { "name":"Starting fuel quantity", "id":"crankingfuel", "type":5, "xaxis":"ectbins", "yaxis":"crankingrpmbins", "value":[ 60.000000, 56.100000, 53.400000, 51.600000, 49.800000, 48.000000, 46.500000, 44.700000, 42.900000, 41.100000, 39.300000, 36.900000, 34.200000, 30.000000, 30.000000, 30.000000, 60.000000, 56.100000, 53.400000, 51.600000, 49.800000, 48.000000, 46.500000, 44.700000, 42.900000, 41.100000, 39.300000, 36.900000, 34.200000, 30.000000, 30.000000, 30.000000, 60.000000, 56.100000, 53.400000, 51.600000, 49.800000, 48.000000, 46.500000, 44.700000, 42.900000, 41.100000, 39.300000, 36.900000, 34.200000, 30.000000, 30.000000, 30.000000, 60.000000, 56.100000, 53.400000, 51.600000, 49.800000, 48.000000, 46.500000, 44.700000, 42.900000, 41.100000, 39.300000, 36.900000, 34.200000, 30.000000, 30.000000, 30.000000 ] }, { "name":"Starting injection timing", "id":"crankingtiming", "type":5, "xaxis":"ectbins", "yaxis":"crankingrpmbins", "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":"Starting pilot fuel quantity", "id":"crankingpilot", "type":5, "xaxis":"ectbins", "yaxis":"crankingrpmbins", "value":[ 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 5.500000, 5.000000, 4.000000, 3.500000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 5.500000, 5.000000, 4.000000, 3.500000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 5.500000, 5.000000, 4.000000, 3.500000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 5.500000, 5.000000, 4.000000, 3.500000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000 ] }, { "name":"Starting pilot injection timing", "id":"crankingpilottiming", "type":5, "xaxis":"ectbins", "yaxis":"crankingrpmbins", "value":[ 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260 ] }, { "name":"Starter control", "type":255, "context":"start", "value":[ { "name":"Start request input", "type":3, "id":"startrequest", "value":"CAN source 3" }, { "name":"Starter allow condition (gear shift position)", "type":7, "id":"startallowvar", "value":"const_zero" }, { "name":"Shifter positions to allow starting", "type":4, "id":"startallowpositions", "value":[ 0.000000, 0.000000 ] }, { "name":"Delay starting while preheating glow plugs", "type":3, "id":"start_waitglow", "value":"Enabled" }, { "name":"Starting timeout", "id":"starttimeout", "value":10.000000 }, { "name":"Starter response timeout", "id":"startrpmtimeout", "value":2.000000 } ] } ] }, { "name":"Idle control", "context":"idle", "type":255, "value":[ { "name":"Idle speed target", "id":"idletarget", "type":5, "xaxis":"ectbins", "value":[ 900.000000, 900.000000, 900.000000, 885.000000, 869.000000, 854.000000, 841.000000, 826.000000, 810.000000, 795.000000, 779.000000, 759.000000, 736.000000, 700.000000, 700.000000, 700.000000 ] }, { "name":"Idle speed after start adder", "id":"idleafterstartspeedadder", "type":5, "xaxis":"ectbins", "yaxis":"idleruntimepts", "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":"Idle fuel after start adder", "id":"idleafterstartfueladder", "type":5, "xaxis":"ectbins", "yaxis":"idleruntimepts", "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":"P factor", "id":"idleKp", "type":5, "xaxis":"ectbins", "value":[ 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916, 0.399916 ] }, { "name":"I factor", "id":"idleKi", "type":5, "xaxis":"ectbins", "value":[ 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008, 0.020008 ] }, { "name":"D factor", "id":"idleKd", "type":5, "xaxis":"ectbins", "value":[ 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012, 0.030012 ] }, { "name":"Idle error breakpoints", "id":"idleerrorbins", "type":4, "value":[ -300.000000, -250.000000, -200.000000, -150.000000, -100.000000, -75.000000, -50.000000, -25.000000, 25.000000, 50.000000, 75.000000, 100.000000, 150.000000, 200.000000, 250.000000, 300.000000 ] }, { "name":"Engine speed derivative breakpoints", "id":"idlerpmrocbins", "type":4, "value":[ -1000.000000, -500.000000, -260.000000, -60.000000, 60.000000, 260.000000, 500.000000, 1000.000000 ] }, { "name":"Engine run time breakpoints", "id":"idleruntimepts", "type":4, "value":[ 0.000000, 0.100000, 1.000000, 2.000000, 5.000000, 10.000000, 30.000000, 60.000000 ] }, { "name":"Idle P factor modifier", "id":"idleKpmod", "type":5, "xaxis":"idleerrorbins", "value":[ 1.499695, 1.499695, 1.499695, 1.499695, 1.499695, 1.300387, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Idle PD map", "id":"idlePDmap", "type":5, "xaxis":"idleerrorbins", "yaxis":"idlerpmrocbins", "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":"Idle I factor modifier", "id":"idleKimod", "type":5, "xaxis":"idleerrorbins", "value":[ 1.300387, 1.300387, 1.300387, 1.300387, 1.300387, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Idle ID map", "id":"idleIDmap", "type":5, "xaxis":"idleerrorbins", "yaxis":"idlerpmrocbins", "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":"Idle D factor modifier", "id":"idleKdmod", "type":5, "xaxis":"idleerrorbins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 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":"Max I value", "id":"idleImax", "value":10.000000 }, { "name":"Min I value", "id":"idleImin", "value":-10.000000 }, { "name":"Integral value restriction based on run time", "type":5, "id":"idleruntimeIrange", "xaxis":"idleruntimepts", "yaxis":[ "Min", "Max" ], "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, 100.000035, 100.000035, 100.000035, 100.000035 ] }, { "name":"Max P value", "id":"idlePmax", "value":20.000000 }, { "name":"Min P value", "id":"idlePmin", "value":-10.000000 }, { "name":"Idle max accelerator pedal position", "id":"idlemaxapp", "value":0.976560 }, { "name":"Approximate fuel needed", "id":"idleoffset", "type":5, "xaxis":"ectbins", "value":[ 22.900000, 21.000000, 19.700000, 18.800000, 18.000000, 17.100000, 16.400000, 15.500000, 14.600000, 13.700000, 12.900000, 11.700000, 10.400000, 9.400000, 9.400000, 9.400000 ] }, { "name":"Idle PID service interval", "id":"idleserviceinterval", "value":40.000000 }, { "name":"Idle PID service synchronous", "id":"idlesyncenable", "type":3, "value":"Disabled" }, { "name":"Idle decay upper limit", "id":"idlemaxrpm", "value":1200.000000 }, { "name":"Idle decay time", "id":"idledecaytime", "value":0.500000 }, { "name":"Idle-up input 1", "id":"idleupin1", "type":3, "value":"Cruise switch toggle" }, { "name":"Idle-up mode 1", "id":"idleup1adder", "type":3, "value":"Minimum target" }, { "name":"Idle-up value 1", "id":"idleuprpm1", "value":1300.000000 }, { "name":"Idle-up input 2", "id":"idleupin2", "type":3, "value":"CAN source 6" }, { "name":"Idle-up mode 2", "id":"idleup2adder", "type":3, "value":"Adder" }, { "name":"Idle-up value 2", "id":"idleuprpm2", "value":150.000000 }, { "name":"Idle cylinder balance control", "type":255, "context":"balancecontrol", "value":[ { "name":"Cylinder balance control enable", "type":3, "id":"balancetrims_enable", "value":"Disabled" }, { "name":"Balance control authority", "id":"balanceauthority", "value":5.000000 }, { "name":"Balance control step size limit", "id":"balancemaxstep", "value":0.100000 }, { "name":"Balance control sensitivity", "id":"balancesensitivity", "value":0.500000 }, { "name":"Balance control minimum fuel quantity", "id":"balanceminfuel", "value":5.000000 }, { "name":"Balance control minimum engine speed", "id":"balanceminrpm", "value":500.000000 }, { "name":"Balance control maximum engine speed", "id":"balancemaxrpm", "value":1500.000000 }, { "name":"Balance control minimum engine run time", "id":"balanceruntime", "value":2.000000 } ] } ] }, { "name":"Fuel system configuration", "type":255, "context":"fuel", "value":[ { "name":"Injector boost voltage", "id":"boostvoltage", "value":80.239194 }, { "name":"Injector peak current", "id":"peakcurrent", "value":17.967915 }, { "name":"Injector high current phase", "id":"highcurrent", "value":15.058800 }, { "name":"Injector high current duration", "id":"highcurdur", "value":250.000000 }, { "name":"Injector hold current", "id":"holdcurrent", "value":11.979550 }, { "name":"Maximum injection advance", "id":"maxinjadvance", "value":40.000026 }, { "name":"Minimum injection advance", "id":"mininjadvance", "value":-19.994520 }, { "name":"Minimum main advance with pilot injection active", "id":"minmainadvancewithpost", "value":-9.997260 }, { "name":"Minimum angle for post injection", "id":"postinjectionend", "value":-49.997286 }, { "name":"Low pass filter for pressure feedback into injector flow models", "id":"flowmap_filter", "applies":[ "controlmode", "=", "Common rail" ], "value":0.000000 }, { "name":"Separate flow models per cylinder", "id":"injmodelpercyl", "type":3, "vale":"Disabled", "value":"Disabled" }, { "name":"Fuel quantity breakpoints for injector models separated from other maps", "type":3, "id":"separatefuelvolbins", "value":"Disabled" }, { "name":"Injector model fuel quantity breakpoint count", "id":"injmodelfuelvolbincount", "applies":[ "separatefuelvolbins", "=", "Enabled" ], "value":16.000000 }, { "name":"Injector model fuel quantity breakpoints", "id":"injmodelfuelvolbins", "type":4, "applies":[ "separatefuelvolbins", "=", "Enabled" ], "value":[ 1.000000, 2.000000, 3.000000, 4.000000, 6.000000, 8.000000, 10.000000, 20.000000, 30.000000, 40.000000, 50.000000, 60.000000, 70.000000, 90.000000, 110.000000, 130.000000 ] }, { "name":"Fuel injector flow model", "id":"injectormodel", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "variations":[ [ "injmodelpercyl", "=", "Enabled" ], { "name":"Fuel injector flow model injector 1" }, [ "injmodelpercyl", "!=", "Enabled" ], { "name":"Fuel injector flow model" }, [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "value":[ 269.000000, 223.000000, 174.000000, 176.000000, 166.000000, 150.000000, 134.000000, 121.000000, 118.000000, 114.000000, 110.000000, 106.000000, 105.000000, 102.000000, 100.000000, 97.000000, 378.000000, 298.000000, 214.000000, 213.000000, 202.000000, 181.000000, 166.000000, 150.000000, 142.000000, 131.000000, 130.000000, 125.000000, 123.000000, 121.000000, 118.000000, 115.000000, 422.000000, 342.000000, 244.000000, 238.000000, 230.000000, 202.000000, 183.000000, 175.000000, 162.000000, 151.000000, 150.000000, 145.000000, 143.000000, 140.000000, 136.000000, 133.000000, 456.000000, 366.000000, 264.000000, 259.000000, 251.000000, 223.000000, 206.000000, 193.000000, 184.000000, 180.000000, 176.000000, 171.000000, 166.000000, 162.000000, 159.000000, 155.000000, 500.000000, 420.000000, 307.000000, 296.000000, 280.000000, 256.000000, 238.000000, 222.000000, 212.000000, 200.000000, 199.000000, 194.000000, 190.000000, 184.000000, 181.000000, 176.000000, 567.000000, 480.000000, 366.000000, 344.000000, 304.000000, 274.000000, 258.000000, 243.000000, 235.000000, 228.000000, 223.000000, 220.000000, 216.000000, 211.000000, 205.000000, 200.000000, 622.000000, 574.000000, 456.000000, 407.000000, 330.000000, 293.000000, 275.000000, 259.000000, 251.000000, 257.000000, 248.000000, 253.000000, 246.000000, 241.000000, 236.000000, 230.000000, 818.000000, 795.000000, 603.000000, 535.000000, 464.000000, 406.000000, 360.000000, 326.000000, 312.000000, 287.000000, 276.000000, 276.000000, 270.000000, 263.000000, 257.000000, 251.000000, 1038.000000, 1020.000000, 809.000000, 702.000000, 595.000000, 518.000000, 467.000000, 425.000000, 392.000000, 375.000000, 360.000000, 352.000000, 344.000000, 336.000000, 328.000000, 320.000000, 1348.000000, 1348.000000, 1158.000000, 1011.000000, 810.000000, 677.000000, 584.000000, 531.000000, 491.000000, 459.000000, 436.000000, 417.000000, 408.000000, 398.000000, 390.000000, 379.000000, 1644.000000, 1644.000000, 1489.000000, 1288.000000, 1119.000000, 953.000000, 852.000000, 767.000000, 705.000000, 650.000000, 599.000000, 556.000000, 542.000000, 531.000000, 518.000000, 504.000000, 1869.000000, 1878.000000, 1724.000000, 1580.000000, 1370.000000, 1237.000000, 1113.000000, 1023.000000, 948.000000, 866.000000, 818.000000, 777.000000, 759.000000, 742.000000, 725.000000, 707.000000, 2020.000000, 2020.000000, 1955.000000, 1861.000000, 1755.000000, 1604.000000, 1473.000000, 1354.000000, 1236.000000, 1172.000000, 1103.000000, 1046.000000, 1022.000000, 999.000000, 976.000000, 952.000000, 2152.000000, 2160.000000, 2133.000000, 2088.000000, 2044.000000, 1999.000000, 1856.000000, 1775.000000, 1669.000000, 1527.000000, 1435.000000, 1354.000000, 1323.000000, 1293.000000, 1262.000000, 1231.000000, 2369.000000, 2369.000000, 2369.000000, 2344.000000, 2320.000000, 2295.000000, 2270.000000, 2170.000000, 2040.000000, 1866.000000, 1754.000000, 1655.000000, 1617.000000, 1580.000000, 1542.000000, 1504.000000, 2494.000000, 2494.000000, 2494.000000, 2494.000000, 2494.000000, 2444.000000, 2383.000000, 2278.000000, 2141.000000, 1959.000000, 1841.000000, 1738.000000, 1698.000000, 1659.000000, 1619.000000, 1579.000000 ] }, { "name":"Additional flow models", "type":255, "value":[ { "name":"Fuel injector flow model injector 2", "id":"injectormodel2", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 3", "id":"injectormodel3", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 4", "id":"injectormodel4", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 5", "id":"injectormodel5", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 6", "id":"injectormodel6", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 7", "id":"injectormodel7", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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 injector flow model injector 8", "id":"injectormodel8", "type":5, "xaxis":"railpressurebins", "yaxis":"fuelvolbins", "applies":[ "injmodelpercyl", "=", "Enabled" ], "variations":[ [ "separatefuelvolbins", "=", "Enabled" ], { "yaxis":"injmodelfuelvolbins" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "yaxis":"fuelvolbins" } ], "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":"Injector pulse width offset source", "id":"injpwaddersrc", "type":7, "value":"const_zero" }, { "name":"Injector pulse width offset input breakpoints", "id":"injpwadderpts", "applies":[ "injpwaddersrc", "!=", "const_zero" ], "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Injector pulse width offset", "id":"injpwadder", "xaxis":"injpwadderpts", "applies":[ "injpwaddersrc", "!=", "const_zero" ], "type":5, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Limit fuel by rail pressure", "id":"railpfuellimit_enable", "type":3, "value":"Disabled" }, { "name":"Fuel limit by rail pressure", "id":"fuellimitrailpmap", "applies":[ "railpfuellimit_enable", "=", "Enabled" ], "type":5, "xaxis":"rpmbins", "yaxis":"railpressurebins", "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 ] }, { "name":"Injector settling time", "id":"injectorsettletime", "value":200.000000 }, { "name":"Minimum injection quantity", "id":"minfuelqty", "value":0.900000 }, { "name":"Minimum injection quantity to resume injection", "id":"resumefuelqty", "value":1.200000 }, { "name":"Pilot injection enable condition", "id":"pilotinjectiontrigger", "type":3, "value":"Always on" }, { "name":"Overrun fuel cut", "type":255, "value":[ { "name":"Overrun fuel cut enable", "id":"overrunenable", "type":3, "value":"Disabled" }, { "name":"Throttle threshold", "applies":[ "overrunenable", "=", "Enabled" ], "id":"overrunthrottle", "value":1.953120 }, { "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 } ] }, { "name":"Post injection", "type":255, "value":[ { "name":"Activation condition", "id":"postfueltrigger", "type":3, "value":"Always off" }, { "name":"Load source", "id":"postfuelloadsource", "type":7, "value":"map" }, { "name":"Engine speed breakpoint count", "id":"postfuelrpmbpcount", "value":12.000000 }, { "name":"Load breakpoint count", "id":"postfuelloadbpcount", "value":8.000000 }, { "name":"Engine speed breakpoints", "id":"postfuelrpmbins", "type":4, "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 ] }, { "name":"Load breakpoints", "id":"postfuelloadbins", "type":4, "value":[ 800.000000, 1000.000000, 1400.000000, 1800.000000, 2200.000000, 2600.000000, 3000.000000, 3400.000000 ] } ] } ] }, { "name":"Rail pressure control", "type":255, "context":"rail", "value":[ { "name":"Rail pressure control base effort", "type":5, "id":"railpbasepwm", "xaxis":"rpmbins", "yaxis":"railpressurebins", "yvariable":"railpressuretarget", "value":[ 90.000428, 14.100240, 13.801144, 13.801144, 13.801144, 13.801144, 13.898808, 13.898808, 13.898808, 13.898808, 13.898808, 13.999524, 13.999524, 13.999524, 90.000428, 13.599712, 13.898808, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 15.000580, 90.000428, 13.498996, 14.298620, 16.099300, 17.201072, 17.201072, 17.201072, 17.100356, 17.100356, 17.100356, 17.100356, 16.999640, 16.999640, 16.999640, 90.000428, 15.501108, 16.099300, 18.000696, 18.800320, 18.598888, 18.901036, 18.901036, 18.901036, 18.901036, 18.998700, 18.998700, 18.998700, 18.998700, 90.000428, 17.201072, 18.901036, 20.100472, 20.601000, 21.000812, 19.499228, 19.999756, 20.201188, 20.298852, 20.500284, 20.698664, 20.799380, 21.000812, 90.000428, 19.599944, 20.601000, 22.200248, 22.398628, 22.700776, 21.699720, 22.200248, 22.600060, 23.100588, 23.601116, 24.098592, 24.501456, 24.998932, 90.000428, 20.900096, 22.200248, 22.999872, 24.000928, 24.599120, 25.398744, 26.100704, 26.698896, 27.400856, 27.999048, 28.701008, 29.299200, 30.001160, 90.000428, 24.199308, 25.798556, 24.998932, 25.999988, 26.698896, 27.300140, 27.999048, 28.600292, 29.299200, 30.001160, 30.700068, 31.301312, 32.000220, 90.000428, 25.600176, 26.399800, 26.900328, 27.498520, 28.499576, 29.198484, 31.301312, 31.899504, 32.500748, 33.098940, 33.800900, 34.399092, 35.000336, 90.000428, 28.499576, 29.198484, 29.699012, 30.199540, 31.099880, 32.100936, 34.099996, 35.101052, 36.099056, 36.999396, 38.000452, 39.001508, 39.999512, 90.000428, 32.601464, 33.300372, 33.898564, 34.399092, 35.400148, 36.300488, 38.598644, 42.700532, 43.698536, 44.800308, 45.899028, 46.900084, 47.998804, 90.000428, 35.900676, 36.999396, 37.899736, 38.800076, 40.200944, 41.699476, 47.199180, 51.200352, 55.201524, 56.098812, 57.099868, 58.000208, 58.000208, 90.000428, 43.100344, 43.298724, 43.500156, 43.600872, 45.899028, 48.099520, 52.698884, 57.899492, 62.898668, 64.198820, 65.498972, 66.701460, 67.000556, 90.000428, 46.201176, 47.901140, 49.100576, 50.400728, 52.500504, 54.499564, 56.599340, 60.899608, 66.399312, 68.599804, 70.699580, 71.801352, 73.998792, 90.000428, 51.600164, 53.599224, 55.201524, 56.700056, 59.300360, 61.900664, 65.498972, 68.099276, 71.700636, 73.199168, 75.799472, 79.400832, 79.999024, 90.000428, 61.598516, 63.600628, 65.199876, 66.701460, 69.298712, 71.899016, 74.499320, 77.099624, 79.699928, 82.199516, 84.799820, 87.400124, 90.000428 ] }, { "name":"Rail pressure control PWM frequency", "id":"railpwmperiod", "value":500.000000 }, { "name":"Rail pressure PID control service interval", "id":"railpidserviceperiod", "value":50.000000 }, { "name":"Condition to run rail pressure control when engine is off", "id":"forcerailcontrolinput", "type":3, "value":"Always off" }, { "name":"Proportional gain", "id":"railKp", "type":5, "xaxis":"rprpmbins", "yaxis":"rperrbins", "value":[ 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200, 0.500200 ] }, { "name":"Integral gain", "id":"railKi", "type":5, "xaxis":"rprpmbins", "yaxis":"rperrbins", "value":[ 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160, 0.400160 ] }, { "name":"Derivative gain", "id":"railKd", "type":5, "xaxis":"rprpmbins", "value":[ 0.019520, 0.019520, 0.019520, 0.019520, 0.019520, 0.019520, 0.019520, 0.019520 ] }, { "name":"Proportional gain injection quantity modifier", "id":"railKpiqmod", "type":5, "xaxis":"rprpmbins", "yaxis":"rpiqbins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 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":"Integral gain injection quantity modifier", "id":"railKiiqmod", "type":5, "xaxis":"rprpmbins", "yaxis":"rpiqbins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 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":"Integral maximum value", "id":"railImax", "value":50.000916 }, { "name":"Integral minimum value", "id":"railImin", "value":-50.000916 }, { "name":"Rail pressure control fuel quantity compensation", "id":"railpqtyadder", "type":5, "xaxis":"rprpmbins", "yaxis":"rpiqbins", "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.400868, 1.400868, 1.400868, 1.400868, 1.400868, 1.400868, 1.400868, 1.400868, 2.899400, 2.899400, 2.899400, 2.899400, 2.899400, 2.899400, 2.899400, 2.899400, 4.300268, 4.300268, 4.300268, 4.300268, 4.300268, 4.300268, 4.300268, 4.300268, 5.701136, 5.701136, 5.701136, 5.701136, 5.701136, 5.701136, 5.701136, 5.701136, 7.098952, 7.098952, 7.098952, 7.098952, 7.098952, 7.098952, 7.098952, 7.098952, 8.600536, 8.600536, 8.600536, 8.600536, 8.600536, 8.600536, 8.600536, 8.600536, 10.001404, 10.001404, 10.001404, 10.001404, 10.001404, 10.001404, 10.001404, 10.001404 ] }, { "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":"rperrbins", "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":"rpiqbins", "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":"rptargetbins", "type":4, "value":[ 300.000000, 500.000000, 700.000000, 900.000000, 1100.000000, 1300.000000, 1500.000000, 1700.000000 ] }, { "name":"Linearisation function breakpoint count", "id":"railplinearptcount", "value":0.000000 }, { "name":"Linearisation function breakpoints", "applies":[ "railplinearptcount", ">", 1 ], "id":"railplinearin", "type":4, "value":[ 0.000000 ] }, { "name":"Linearisation function", "applies":[ "railplinearptcount", ">", 1 ], "id":"railplinearout", "type":5, "xaxis":"railplinearin", "value":[ 0.000000 ] }, { "name":"Supply voltage duty cycle compensation", "id":"railpvoltagecorr", "type":5, "xaxis":"supplyvoltbins", "value":[ 1.999919, 1.749807, 1.555384, 1.400041, 1.272054, 1.166538, 1.076654, 1.000448, 0.933035, 0.875392, 0.823611, 0.776715 ] }, { "name":"Maximum duty cycle", "id":"railpmaxduty", "value":99.000776 }, { "name":"Maximum pressure target", "id":"maxfptarget", "value":2000.000000 }, { "name":"Keep rail pressure during engine shut off", "id":"railpduringshutdown", "type":3, "value":"Disabled" }, { "name":"Control rail pressure ramp up during cranking", "id":"railpstartupramp_enable", "type":3, "value":"Disabled" }, { "name":"Cranking time breakpoints for pressure ramp-up", "applies":[ "railpstartupramp_enable", "=", "Enabled" ], "id":"railcrankingtimebins", "type":4, "value":[ 0.500000, 1.000000, 1.500000, 2.000000, 2.500000, 3.000000, 3.500000, 4.000000 ] }, { "name":"Rail target limit ramp during cranking", "applies":[ "railpstartupramp_enable", "=", "Enabled" ], "id":"railcrankingramp", "type":5, "xaxis":"railcrankingtimebins", "value":[ 0.000000, 50.000000, 100.000000, 150.000000, 200.000000, 250.000000, 300.000000, 350.000000 ] }, { "name":"General purpose rail pressure trim", "type":255, "value":[ { "name":"Trim enable input", "id":"railpmodenable", "type":3, "value":"Always off" }, { "name":"Trim mode", "type":3, "id":"railpmodmode", "value":"Adder" }, { "name":"Modifier variable", "type":7, "id":"railpmodsource", "value":"const_zero" }, { "name":"Breakpoint count", "id":"railpmodptcount", "value":16.000000 }, { "name":"Breakpoints", "id":"railpmodbins", "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":"Modifier function", "id":"railpmod", "type":5, "xaxis":"railpmodbins", "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":"Synchronous suction valve control", "type":255, "value":[ { "name":"Synchronised suction control valve base angle", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvbaseangle", "value":0.000000 }, { "name":"Synchronised suction control valve maximum advance angle", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvmaxadvance", "value":0.000000 }, { "name":"Single synchronised suction control valve opening events per engine cycle", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvpercycle", "value":2.000000 }, { "name":"Y axis variable for suction control valve advance", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvangleyaxvar", "type":7, "value":"const_zero" }, { "name":"Y axis for suction control valve advance", "applies":[ "output.8", "=", "Suction control valve 1" ], "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", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvdurayaxvar", "type":7, "value":"const_zero" }, { "name":"Y axis for suction control valve duration", "applies":[ "output.8", "=", "Suction control valve 1" ], "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", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvanglemap", "type":5, "xaxis":"rprpmbins", "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", "applies":[ "output.8", "=", "Suction control valve 1" ], "id":"scvdurationmap", "type":5, "xaxis":"rprpmbins", "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":"Secondary rail pressure control output", "type":255, "value":[ { "name":"Service interval for secondary rail pressure control", "id":"railpsecondaryserviceperiod", "value":0.000000 }, { "name":"PWM frequency for secondary rail pressure control", "id":"railpsecondarypwmperiod", "value":250.000000 }, { "name":"Rail pressure secondary duty based on error", "id":"railpsecondaryerrormap", "type":5, "xaxis":"rprpmbins", "yaxis":"rperrbins", "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 secondary duty based on injection quantity", "id":"railpsecondaryiqmap", "type":5, "xaxis":"rprpmbins", "yaxis":"rpiqbins", "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 secondary duty based on pressure target", "id":"railpsecondarytargetmap", "type":5, "xaxis":"rprpmbins", "yaxis":"rptargetbins", "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":"Supply voltage duty cycle compensation", "id":"railpsecondaryvoltagecorr", "type":5, "xaxis":"supplyvoltbins", "value":[ 1.999919, 1.749807, 1.555384, 1.400041, 1.272054, 1.166538, 1.076654, 1.000448, 0.933035, 0.875392, 0.823611, 0.776715 ] }, { "name":"Maximum duty cycle", "id":"railpsecondarymaxduty", "value":99.000776 } ] }, { "name":"Fault checking", "type":255, "value":[ { "name":"Minimum engine run time to run rail pressure fault checks", "id":"rpfaultruntime", "value":2.000000 }, { "name":"Minimum fuel quantity to run rail pressure fault checks", "id":"rpfaultminfuelqty", "value":5.000000 }, { "name":"High pressure fault tolerance", "id":"railphightolerance", "value":200.000000 }, { "name":"High pressure fault timeout", "id":"rphightime", "value":2.000000 }, { "name":"High pressure fault reset timeout", "id":"rphighresettime", "value":2.000000 }, { "name":"Low pressure fault tolerance", "id":"railplowtolerance", "value":200.000000 }, { "name":"Low pressure fault timeout", "id":"rplowtime", "value":2.000000 }, { "name":"Low pressure fault reset timeout", "id":"rplowresettime", "value":2.000000 } ] } ] }, { "name":"Common breakpoints", "type":255, "value":[ { "name":"Engine speed breakpoints for fuelling", "id":"rpmbins", "type":4, "variable":"rpm", "value":[ 200.000000, 500.000000, 900.000000, 1200.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000, 5500.000000, 6000.000000 ] }, { "name":"Accelerator pedal breakpoints", "id":"appbins", "type":4, "value":[ 0.000000, 1.955040, 4.985352, 9.970704, 20.039160, 30.009864, 39.980568, 49.951272, 60.019728, 69.990432, 79.961136, 90.029592 ] }, { "name":"Manifold absolute pressure breakpoints", "id":"mapbins", "type":4, "value":[ 800.000000, 1000.000000, 1200.000000, 1400.000000, 1600.000000, 1800.000000, 2000.000000, 2200.000000, 2400.000000, 2600.000000, 2800.000000, 3000.000000 ] }, { "name":"Fuel quantity breakpoints", "id":"fuelvolbins", "type":4, "variable":"mainfuelqty", "value":[ 1.000000, 2.000000, 3.000000, 4.000000, 6.000000, 8.000000, 10.000000, 20.000000, 30.000000, 40.000000, 50.000000, 60.000000, 70.000000, 90.000000, 110.000000, 130.000000 ] }, { "name":"Rail pressure breakpoints for injector model", "id":"railpressurebins", "type":4, "variations":[ [ "controlmode", "=", "Common rail" ], { "name":"Rail pressure breakpoints for injector model", "endif":true }, [ "controlmode", "!=", "Common rail" ], { "name":"Engine speed breakpoints for injector model" } ], "value":[ 200.000000, 300.000000, 400.000000, 500.000000, 600.000000, 700.000000, 800.000000, 900.000000, 1000.000000, 1100.000000, 1200.000000, 1300.000000, 1400.000000, 1500.000000, 1600.000000, 1700.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":"Supply voltage breakpoints", "id":"supplyvoltbins", "type":4, "value":[ 7.000000, 8.000000, 9.000000, 10.000000, 11.000000, 12.000000, 13.000000, 14.000000, 15.000000, 16.000000, 17.000000, 18.000000 ] }, { "name":"Engine speed breakpoint count", "id":"rpmbincount", "type":0, "value":14.000000 }, { "name":"Accelerator pedal breakpoint count", "id":"appbincount", "type":0, "value":12.000000 }, { "name":"Manifold absolute pressure breakpoint count", "id":"mapbincount", "value":12.000000 }, { "name":"Fuel quantity breakpoint count", "id":"fuelvolbincount", "value":16.000000 }, { "name":"Rail pressure breakpoint count", "id":"railpbincount", "variations":[ [ "controlmode", "=", "Common rail" ], { "name":"Rail pressure breakpoint count", "endif":true }, [ "controlmode", "!=", "Common rail" ], { "name":"Engine speed breakpoint count for injector model" } ], "value":16.000000 }, { "name":"Manifold pressure breakpoints for pilot injection modifier", "id":"airpilotmapbins", "type":4, "value":[ 600.000000, 800.000000, 1200.000000, 1500.000000, 1800.000000, 2100.000000, 2400.000000, 2700.000000 ] }, { "name":"Engine speed breakpoint count for coolant temperature timing modifiers", "id":"cooltemptimingmodrpmbincount", "value":12.000000 }, { "name":"Engine speed breakpoints for coolant temperature timing modifiers", "id":"cooltemptimingmodrpmbins", "type":4, "value":[ 500.000000, 800.000000, 1200.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000, 5500.000000 ] }, { "name":"Fuel quantity breakpoints for coolant temperature timing modifiers", "id":"cooltemptimingmodfuelqtybins", "type":4, "value":[ 0.000000, 2.000000, 4.000000, 6.000000, 8.000000, 10.000000, 20.000000, 30.000000, 40.000000, 50.000000, 60.000000, 70.000000, 80.000000, 90.000000, 100.000000, 120.000000 ] } ] }, { "name":"Tables", "type":255, "value":[ { "name":"Fuel request map", "id":"fuelrequestmap", "type":5, "xaxis":"rpmbins", "yaxis":"appbins", "value":[ 30.000000, 9.000000, 3.000000, 3.000000, 2.810000, 2.500000, 1.500000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 30.000000, 13.800000, 10.800000, 9.800000, 9.110000, 8.970000, 7.850000, 6.730000, 5.610000, 4.490000, 3.360000, 2.240000, 1.120000, 0.000000, 33.000000, 18.110000, 17.230000, 14.230000, 13.020000, 12.990000, 11.370000, 9.740000, 8.120000, 6.500000, 4.870000, 3.250000, 1.620000, 0.000000, 36.000000, 28.730000, 25.730000, 21.730000, 19.670000, 17.240000, 15.080000, 12.930000, 10.770000, 8.620000, 6.460000, 4.310000, 2.150000, 0.000000, 37.500000, 45.600000, 40.600000, 36.600000, 32.490000, 27.300000, 23.890000, 20.480000, 17.060000, 13.650000, 10.240000, 6.820000, 3.410000, 0.000000, 48.000000, 55.670000, 55.590000, 49.590000, 43.730000, 34.430000, 30.130000, 25.820000, 21.520000, 17.210000, 12.910000, 8.610000, 4.300000, 0.000000, 44.000000, 65.960000, 69.610000, 65.910000, 62.250000, 52.140000, 47.660000, 43.190000, 38.710000, 34.230000, 29.760000, 25.280000, 20.810000, 16.330000, 40.000000, 81.300000, 81.300000, 79.300000, 76.250000, 70.160000, 65.720000, 61.290000, 56.850000, 52.410000, 47.980000, 43.540000, 39.110000, 34.670000, 60.000000, 88.200000, 88.200000, 88.200000, 85.860000, 81.970000, 78.600000, 75.230000, 71.860000, 68.480000, 65.110000, 61.740000, 58.370000, 55.000000, 100.000000, 94.100000, 94.100000, 94.100000, 92.540000, 89.940000, 87.860000, 85.790000, 83.710000, 81.630000, 79.560000, 77.480000, 75.410000, 73.330000, 100.000000, 101.100000, 101.100000, 101.100000, 100.510000, 99.530000, 98.550000, 97.560000, 96.580000, 95.600000, 94.620000, 93.630000, 92.650000, 91.670000, 100.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000, 110.000000 ] }, { "name":"Fuel limit map", "id":"fuellimitmap", "type":5, "xaxis":"rpmbins", "yaxis":"mapbins", "value":[ 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 60.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 68.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 76.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 84.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 92.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000, 120.000000 ] }, { "name":"Fuel limit charge air temperature correction", "id":"airtempfunction", "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":"Injection timing map", "id":"injanglemap", "type":5, "xaxis":"rpmbins", "yaxis":"fuelvolbins", "yvariable":"mainfuelqty", "value":[ -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 8.503164, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, 9.997260, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 4.998630, 4.998630, 9.305142, 11.700090, 11.700090, 11.700090, 11.700090, 11.700090, 11.700090, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 5.998356, 6.998082, 10.096134, 13.304046, 13.304046, 13.304046, 13.304046, 13.304046, 13.304046, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 6.998082, 7.997808, 9.997260, 12.996438, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 6.998082, 7.997808, 9.997260, 12.996438, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 6.998082, 7.997808, 9.997260, 12.996438, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 7.997808, 8.997534, 10.996986, 13.996164, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 7.997808, 8.997534, 10.996986, 13.996164, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616, -3.998904, -3.998904, -3.998904, -2.999178, 0.999726, 7.997808, 8.997534, 10.996986, 13.996164, 14.995890, 15.995616, 15.995616, 15.995616, 15.995616 ] }, { "name":"Rail pressure map", "id":"railpressuremap", "type":5, "xaxis":"rpmbins", "yvariable":"mainfuelqty", "yaxis":"fuelvolbins", "value":[ 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 550.000000, 600.000000, 650.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 700.000000, 300.000000, 300.000000, 300.000000, 400.000000, 540.000000, 620.000000, 680.000000, 760.000000, 875.000000, 887.500000, 887.500000, 887.500000, 887.500000, 887.500000, 350.000000, 350.000000, 350.000000, 433.300000, 580.000000, 690.000000, 760.000000, 870.000000, 1050.000000, 1075.000000, 1075.000000, 1075.000000, 1075.000000, 1075.000000, 350.000000, 350.000000, 350.000000, 466.700000, 620.000000, 760.000000, 840.000000, 980.000000, 1225.000000, 1262.500000, 1262.500000, 1262.500000, 1262.500000, 1262.500000, 420.000000, 430.000000, 440.000000, 500.000000, 660.000000, 830.000000, 960.000000, 1110.000000, 1350.000000, 1450.000000, 1450.000000, 1450.000000, 1450.000000, 1450.000000, 500.000000, 500.000000, 500.000000, 500.000000, 700.000000, 900.000000, 1040.000000, 1230.000000, 1400.000000, 1450.000000, 1450.000000, 1450.000000, 1450.000000, 1450.000000, 500.000000, 500.000000, 500.000000, 570.000000, 740.000000, 940.000000, 1130.000000, 1300.000000, 1440.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 500.000000, 500.000000, 500.000000, 640.000000, 800.000000, 1000.000000, 1200.000000, 1370.000000, 1440.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 500.000000, 500.000000, 500.000000, 640.000000, 800.000000, 1000.000000, 1200.000000, 1370.000000, 1440.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 500.000000, 500.000000, 500.000000, 640.000000, 800.000000, 1000.000000, 1200.000000, 1370.000000, 1440.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000, 1470.000000 ] }, { "name":"Pilot injection map", "id":"pilotinjmap", "type":5, "xaxis":"rpmbins", "yvariable":"mainfuelqty", "yaxis":"fuelvolbins", "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, 1.500000, 1.500000, 1.500000, 1.500000, 1.000000, 1.000000, 1.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 2.000000, 2.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, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 2.000000, 2.000000, 2.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 2.000000, 2.000000, 2.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 3.000000, 1.800000, 1.900000, 1.900000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 1.900000, 1.900000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 1.900000, 1.900000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 1.900000, 1.900000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 4.000000, 4.000000, 4.000000, 3.000000, 3.000000, 3.000000, 1.800000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Pilot injection timing map", "id":"pilotinjanglemap", "type":5, "xaxis":"rpmbins", "yvariable":"mainfuelqty", "yaxis":"fuelvolbins", "value":[ 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 6.998082, 6.998082, 6.998082, 6.998082, 12.897564, 18.994794, 25.498506, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766, 30.002766 ] }, { "name":"Pilot injection air density modifier", "id":"airpilotmod", "type":5, "xaxis":"airtempbins", "yaxis":"airpilotmapbins", "value":[ 1.300387, 1.300387, 1.300387, 1.300387, 1.222227, 1.143090, 1.077631, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.300387, 1.300387, 1.300387, 1.300387, 1.222227, 1.143090, 1.077631, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.300387, 1.300387, 1.300387, 1.300387, 1.222227, 1.143090, 1.077631, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.149929, 1.149929, 1.149929, 1.149929, 1.110849, 1.070792, 1.038551, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 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":"Pilot injection coolant temperature modifier", "id":"cooltemppilotmod", "type":5, "xaxis":"ectbins", "value":[ 1.499695, 1.499695, 1.499695, 1.452799, 1.405903, 1.359007, 1.319927, 1.273031, 1.227112, 1.180216, 1.133320, 1.069815, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Main injection timing coolant temperature modifier", "id":"cooltemptimingmod", "type":5, "xaxis":"cooltemptimingmodrpmbins", "yaxis":"ectbins", "value":[ 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.999452, 1.999452, 1.999452, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 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, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":"Main injection timing coolant temperature speed gain", "id":"cooltemptiminggain", "type":5, "xaxis":"cooltemptimingmodfuelqtybins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 0.500224, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Pilot injection timing coolant temperature modifier", "id":"cooltemppilottimingmod", "type":5, "xaxis":"cooltemptimingmodrpmbins", "yaxis":"ectbins", "value":[ 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 0.999726, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.999726, 0.999726, 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, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":"Pilot injection timing coolant temperature speed gain", "id":"cooltemppilottiminggain", "type":5, "xaxis":"cooltemptimingmodfuelqtybins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 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":"Post injection timing map", "id":"postfueltimingmap", "type":5, "xaxis":"postfuelrpmbins", "yaxis":"postfuelloadbins", "applies":[ "postfueltrigger", "!=", "Always off" ], "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 ] }, { "name":"Post injection quantity map", "id":"postfuelmap", "type":5, "xaxis":"postfuelrpmbins", "yaxis":"postfuelloadbins", "applies":[ "postfueltrigger", "!=", "Always off" ], "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 ] }, { "name":"Alternate maps selectable by calibration pots", "type":255, "value":[ { "name":"Alternate fuel request map", "id":"altfuelrequestmap", "type":5, "xaxis":"rpmbins", "yaxis":"appbins", "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 ] }, { "name":"Alternate fuel limit map", "id":"altfuellimitmap", "type":5, "xaxis":"rpmbins", "yaxis":"mapbins", "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 ] }, { "name":"Alternate injection timing map", "id":"altinjanglemap", "type":5, "xaxis":"rpmbins", "yaxis":"fuelvolbins", "value":[ 4.998630, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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 rail pressure map", "id":"altrailpressuremap", "type":5, "xaxis":"rpmbins", "yaxis":"fuelvolbins", "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 ] }, { "name":"Alternate pilot injection map", "id":"altpilotinjmap", "type":5, "xaxis":"rpmbins", "yaxis":"fuelvolbins", "value":[ 5.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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 pilot injection timing map", "id":"altpilotinjanglemap", "type":5, "xaxis":"rpmbins", "yaxis":"fuelvolbins", "value":[ 4.998630, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":"Individual cylinder tuning", "type":255, "context":"indcyl", "value":[ { "name":"Set up", "type":255, "value":[ { "name":"Individual cylinder fuel volume trims enable", "id":"percylqtytrimsenable", "type":3, "value":"Disabled" }, { "name":"Individual cylinder injection angle trims enable", "id":"percyltimingtrimsenable", "type":3, "value":"Disabled" }, { "name":"Variable selection for main fuel volume trim maps", "id":"mainvoltrimsrc", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ], "value":[ "const_zero", "const_zero", "const_zero", "const_zero", "const_zero" ] }, { "name":"Variable selection for main timing trim maps", "id":"maintimingtrimsrc", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ], "value":[ "const_zero", "const_zero", "const_zero", "const_zero", "const_zero" ] }, { "name":"Engine speed breakpoints for cylinder 1", "id":"trimrpmpts1", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 2", "id":"trimrpmpts2", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 3", "id":"trimrpmpts3", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 4", "id":"trimrpmpts4", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 5", "id":"trimrpmpts5", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 6", "id":"trimrpmpts6", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 7", "id":"trimrpmpts7", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 8", "id":"trimrpmpts8", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 9", "id":"trimrpmpts9", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 10", "id":"trimrpmpts10", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 11", "id":"trimrpmpts11", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 12", "id":"trimrpmpts12", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 13", "id":"trimrpmpts13", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 14", "id":"trimrpmpts14", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 15", "id":"trimrpmpts15", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Engine speed breakpoints for cylinder 16", "id":"trimrpmpts16", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 1", "id":"mainvoltrimpts1", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 2", "id":"mainvoltrimpts2", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 3", "id":"mainvoltrimpts3", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 4", "id":"mainvoltrimpts4", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 5", "id":"mainvoltrimpts5", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 6", "id":"mainvoltrimpts6", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 7", "id":"mainvoltrimpts7", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 8", "id":"mainvoltrimpts8", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 9", "id":"mainvoltrimpts9", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 10", "id":"mainvoltrimpts10", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 11", "id":"mainvoltrimpts11", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 12", "id":"mainvoltrimpts12", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 13", "id":"mainvoltrimpts13", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 14", "id":"mainvoltrimpts14", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 15", "id":"mainvoltrimpts15", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main fuel volume trim cylinder 16", "id":"mainvoltrimpts16", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 1", "id":"maintimingtrimpts1", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 2", "id":"maintimingtrimpts2", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 3", "id":"maintimingtrimpts3", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 4", "id":"maintimingtrimpts4", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 5", "id":"maintimingtrimpts5", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 6", "id":"maintimingtrimpts6", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 7", "id":"maintimingtrimpts7", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 8", "id":"maintimingtrimpts8", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 9", "id":"maintimingtrimpts9", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 10", "id":"maintimingtrimpts10", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 11", "id":"maintimingtrimpts11", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 12", "id":"maintimingtrimpts12", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 13", "id":"maintimingtrimpts13", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 14", "id":"maintimingtrimpts14", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 15", "id":"maintimingtrimpts15", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Y axis breakpoints for main injection angle trim cylinder 16", "id":"maintimingtrimpts16", "type":4, "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] } ] }, { "name":"Cylinder 1 main injection volume trim", "id":"mainqtytrim1", "type":5, "xaxis":"trimrpmpts1", "yaxis":"mainvoltrimpts1", "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":"Cylinder 1 main angle trim", "id":"maintimingtrim1", "type":5, "xaxis":"trimrpmpts1", "yaxis":"maintimingtrimpts1", "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":"Cylinder 2 main injection volume trim", "id":"mainqtytrim2", "type":5, "xaxis":"trimrpmpts2", "yaxis":"mainvoltrimpts2", "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":"Cylinder 2 main angle trim", "id":"maintimingtrim2", "type":5, "xaxis":"trimrpmpts2", "yaxis":"maintimingtrimpts2", "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":"Cylinder 3 main injection volume trim", "id":"mainqtytrim3", "type":5, "xaxis":"trimrpmpts3", "yaxis":"mainvoltrimpts3", "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":"Cylinder 3 main angle trim", "id":"maintimingtrim3", "type":5, "xaxis":"trimrpmpts3", "yaxis":"maintimingtrimpts3", "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":"Cylinder 4 main injection volume trim", "id":"mainqtytrim4", "type":5, "xaxis":"trimrpmpts4", "yaxis":"mainvoltrimpts4", "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":"Cylinder 4 main angle trim", "id":"maintimingtrim4", "type":5, "xaxis":"trimrpmpts4", "yaxis":"maintimingtrimpts4", "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":"Cylinder 5 main injection volume trim", "id":"mainqtytrim5", "type":5, "xaxis":"trimrpmpts5", "yaxis":"mainvoltrimpts5", "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":"Cylinder 5 main angle trim", "id":"maintimingtrim5", "type":5, "xaxis":"trimrpmpts5", "yaxis":"maintimingtrimpts5", "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":"Cylinder 6 main injection volume trim", "id":"mainqtytrim6", "type":5, "xaxis":"trimrpmpts6", "yaxis":"mainvoltrimpts6", "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":"Cylinder 6 main angle trim", "id":"maintimingtrim6", "type":5, "xaxis":"trimrpmpts6", "yaxis":"maintimingtrimpts6", "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":"Cylinder 7 main injection volume trim", "id":"mainqtytrim7", "type":5, "xaxis":"trimrpmpts7", "yaxis":"mainvoltrimpts7", "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":"Cylinder 7 main angle trim", "id":"maintimingtrim7", "type":5, "xaxis":"trimrpmpts7", "yaxis":"maintimingtrimpts7", "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":"Cylinder 8 main injection volume trim", "id":"mainqtytrim8", "type":5, "xaxis":"trimrpmpts8", "yaxis":"mainvoltrimpts8", "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":"Cylinder 8 main angle trim", "id":"maintimingtrim8", "type":5, "xaxis":"trimrpmpts8", "yaxis":"maintimingtrimpts8", "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":"Cylinder 9 main injection volume trim", "id":"mainqtytrim9", "type":5, "xaxis":"trimrpmpts9", "yaxis":"mainvoltrimpts9", "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":"Cylinder 9 main angle trim", "id":"maintimingtrim9", "type":5, "xaxis":"trimrpmpts9", "yaxis":"maintimingtrimpts9", "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":"Cylinder 10 main injection volume trim", "id":"mainqtytrim10", "type":5, "xaxis":"trimrpmpts10", "yaxis":"mainvoltrimpts10", "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":"Cylinder 10 main angle trim", "id":"maintimingtrim10", "type":5, "xaxis":"trimrpmpts10", "yaxis":"maintimingtrimpts10", "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":"Cylinder 11 main injection volume trim", "id":"mainqtytrim11", "type":5, "xaxis":"trimrpmpts11", "yaxis":"mainvoltrimpts11", "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":"Cylinder 11 main angle trim", "id":"maintimingtrim11", "type":5, "xaxis":"trimrpmpts11", "yaxis":"maintimingtrimpts11", "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":"Cylinder 12 main injection volume trim", "id":"mainqtytrim12", "type":5, "xaxis":"trimrpmpts12", "yaxis":"mainvoltrimpts12", "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":"Cylinder 12 main angle trim", "id":"maintimingtrim12", "type":5, "xaxis":"trimrpmpts12", "yaxis":"maintimingtrimpts12", "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":"Cylinder 13 main injection volume trim", "id":"mainqtytrim13", "type":5, "xaxis":"trimrpmpts13", "yaxis":"mainvoltrimpts13", "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":"Cylinder 13 main angle trim", "id":"maintimingtrim13", "type":5, "xaxis":"trimrpmpts13", "yaxis":"maintimingtrimpts13", "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":"Cylinder 14 main injection volume trim", "id":"mainqtytrim14", "type":5, "xaxis":"trimrpmpts14", "yaxis":"mainvoltrimpts14", "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":"Cylinder 14 main angle trim", "id":"maintimingtrim14", "type":5, "xaxis":"trimrpmpts14", "yaxis":"maintimingtrimpts14", "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":"Cylinder 15 main injection volume trim", "id":"mainqtytrim15", "type":5, "xaxis":"trimrpmpts15", "yaxis":"mainvoltrimpts15", "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":"Cylinder 15 main angle trim", "id":"maintimingtrim15", "type":5, "xaxis":"trimrpmpts15", "yaxis":"maintimingtrimpts15", "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":"Cylinder 16 main injection volume trim", "id":"mainqtytrim16", "type":5, "xaxis":"trimrpmpts16", "yaxis":"mainvoltrimpts16", "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":"Cylinder 16 main angle trim", "id":"maintimingtrim16", "type":5, "xaxis":"trimrpmpts16", "yaxis":"maintimingtrimpts16", "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":"High speed governor", "type":255, "context":"governor", "value":[ { "name":"High speed governor enable", "id":"governor_enable", "type":3, "value":"Disabled" }, { "name":"Governor speed source", "id":"governorspeedsrc", "type":7, "value":"enginespeed" }, { "name":"Governor speed", "type":5, "id":"governorspeed", "xaxis":"governorpedalpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 1500.000000, 1600.000000, 1700.000000, 1800.000000, 1900.000000, 2000.000000, 2100.000000, 2200.000000, 2300.000000, 2400.000000, 2500.000000, 2600.000000, 2700.000000, 2800.000000, 2900.000000, 3000.000000 ] }, { "name":"Secondary speed limit", "type":5, "id":"governorlimiter", "xaxis":"governorlimiterpts", "applies":[ "governor_enable", "=", "Enabled", "governorlimitersrc", "!=", "const_zero" ], "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] }, { "name":"Proportional gain", "id":"governorPgain", "type":5, "xaxis":"governorrpmpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847 ] }, { "name":"Integral gain", "id":"governorIgain", "type":5, "xaxis":"governorrpmpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032, 0.020032 ] }, { "name":"Derivative gain", "id":"governorDgain", "type":5, "xaxis":"governorrpmpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847, 0.099847 ] }, { "name":"Proportional gain error modifier", "id":"governorPgainmod", "type":5, "xaxis":"governorrpmerrpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Integral gain error modifier", "id":"governorIgainmod", "type":5, "xaxis":"governorrpmerrpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Derivative gain error modifier", "id":"governorDgainmod", "type":5, "xaxis":"governorrpmerrpts", "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448, 1.000448 ] }, { "name":"Service interval", "id":"governorcycletime", "applies":[ "governor_enable", "=", "Enabled" ], "value":50.000000 }, { "name":"Accelerator breakpoints", "id":"governorpedalpts", "type":4, "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 0.000000, 6.744888, 13.294272, 20.039160, 26.686296, 33.333432, 39.980568, 46.725456, 53.274840, 60.019728, 66.666864, 73.314000, 79.961136, 86.706024, 93.255408, 100.000296 ] }, { "name":"Engine speed breakpoints", "id":"governorrpmpts", "type":4, "applies":[ "governor_enable", "=", "Enabled" ], "value":[ 0.000000, 300.000000, 600.000000, 900.000000, 1200.000000, 1500.000000, 1800.000000, 2100.000000, 2400.000000, 2700.000000, 3000.000000, 3300.000000, 3600.000000, 3900.000000, 4200.000000, 4500.000000 ] }, { "name":"Speed error breakpoints", "id":"governorrpmerrpts", "type":4, "applies":[ "governor_enable", "=", "Enabled" ], "value":[ -600.000000, -400.000000, -200.000000, -100.000000, 100.000000, 200.000000, 400.000000, 600.000000 ] }, { "name":"Secondary speed limit condition", "type":3, "id":"governorlimiterenable", "applies":[ "governor_enable", "=", "Enabled", "governorlimitersrc", "!=", "const_zero" ], "value":"Always off" }, { "name":"Secondary speed limit source", "id":"governorlimitersrc", "type":7, "applies":[ "governor_enable", "=", "Enabled" ], "value":"const_zero" }, { "name":"Secondary speed limiter breakpoint count", "id":"governorlimiterptcount", "applies":[ "governor_enable", "=", "Enabled", "governorlimitersrc", "!=", "const_zero" ], "value":8.000000 }, { "name":"Secondary speed limit breakpoints", "id":"governorlimiterpts", "type":4, "applies":[ "governor_enable", "=", "Enabled", "governorlimitersrc", "!=", "const_zero" ], "value":[ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 ] } ] }, { "name":"Glow heating control", "type":255, "context":"glow", "value":[ { "name":"Inhibit preheating until starting requested", "id":"glow_waitstart", "type":3, "value":"Disabled" }, { "name":"Pre start glow time", "id":"preglowtime", "type":5, "xaxis":"ectbins", "value":[ 9.000000, 8.000000, 7.300000, 6.800000, 6.400000, 5.900000, 5.500000, 5.100000, 4.600000, 4.100000, 3.700000, 3.100000, 2.400000, 1.300000, 0.500000, 0.000000 ] }, { "name":"Coolant temperature threshold to disable glow during cranking", "id":"maxectglowduringstart", "value":150.000000 }, { "name":"After start glow strategy", "id":"afterstartglowmode", "type":3, "value":"Simple timer" }, { "name":"After start glow time", "id":"afterglowtime", "applies":[ "afterstartglowmode", "=", "Simple timer" ], "type":5, "xaxis":"ectbins", "value":[ 4.000000, 4.000000, 3.700000, 3.500000, 3.200000, 3.000000, 2.800000, 2.600000, 2.400000, 2.200000, 2.000000, 1.700000, 1.300000, 0.800000, 0.000000, 0.000000 ] }, { "name":"Engine run time breakpoints for after glow", "id":"afterglowruntime", "applies":[ "afterstartglowmode", "=", "Pulsed" ], "type":4, "value":[ 0.000000, 10.000000, 20.000000, 30.000000, 40.000000, 60.000000, 80.000000, 100.000000, 120.000000, 150.000000 ] }, { "name":"Pulse cycle length", "id":"afterglowperiod", "applies":[ "afterstartglowmode", "=", "Pulsed" ], "value":5.000000 }, { "name":"After start glow duty cycle", "id":"afterglowduty", "applies":[ "afterstartglowmode", "=", "Pulsed" ], "type":5, "xaxis":"ectbins", "yaxis":"afterglowruntime", "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":"Glow plug diagnostics via smart glow controller", "id":"glowdiagenable", "type":3, "value":"Enabled" } ] }, { "name":"Inputs\/outputs", "context":"io", "type":255, "value":[ { "name":"Output function association", "type":255, "value":[ { "name":"Output 1 function", "type":3, "id":"output.0", "value":"Disabled" }, { "name":"Output 2 function", "id":"output.1", "type":3, "value":"Disabled" }, { "name":"Output 3 function", "id":"output.2", "type":3, "value":"Disabled" }, { "name":"Output 4 function", "id":"output.3", "type":3, "value":"Disabled" }, { "name":"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.8", "type":3, "value":"Disabled" }, { "name":"Output 10 function", "id":"output.9", "type":3, "value":"Disabled" }, { "name":"Output 11 function", "id":"output.10", "type":3, "value":"Disabled" }, { "name":"Output 12 function", "id":"output.11", "type":3, "value":"Disabled" }, { "name":"Output 13 function", "id":"output.12", "type":3, "value":"Disabled" }, { "name":"Output 14 function", "id":"output.13", "type":3, "value":"Disabled" }, { "name":"Output 15 function", "id":"output.14", "type":3, "value":"Disabled" }, { "name":"Output 16 function", "id":"output.15", "type":3, "value":"Disabled" }, { "name":"Output 17 function", "id":"output.16", "type":3, "value":"Disabled" } ] }, { "name":"Digital inputs", "type":255, "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 activation level", "id":"gpin_invert0", "type":3, "value":"Active low" }, { "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 pull down", "id":"din2pd", "type":3, "value":"Enabled" }, { "name":"Digital input 2 activation level", "id":"gpin_invert1", "type":3, "value":"Active low" } ] }, { "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 activation level", "id":"gpin_invert5", "type":3, "value":"Active low" }, { "name":"Digital input 3 frequency divider", "id":"din3skip", "value":1.000000 }, { "name":"Digital input 3 capture edge", "id":"din3rising", "type":3, "value":"Falling" }, { "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 activation level", "id":"gpin_invert6", "type":3, "value":"Active low" }, { "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":"INVALID: 255.000000" }, { "name":"Digital input 5 activation level", "id":"gpin_invert4", "type":3, "value":"Active low" }, { "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":"Digital input 6", "type":255, "value":[ { "name":"Digital input 6 function", "id":"din6function", "type":3, "value":"General purpose digital input" }, { "name":"Digital input 6 activation level", "id":"gpin_invert19", "type":3, "value":"Active low" }, { "name":"Digital input 6 capture edge", "id":"din6rising", "type":3, "value":"Falling" }, { "name":"Digital input 6 frequency divider", "id":"din6skip", "value":1.000000 }, { "name":"Digital input 6 filter period", "id":"din6filter", "value":1.000000 }, { "name":"Digital input 6 low pass rate", "id":"freqfilter5", "value":50.000000 } ] }, { "name":"Digital input 7", "type":255, "value":[ { "name":"Digital input 7 function", "id":"din7function", "type":3, "value":"General purpose digital input" }, { "name":"Digital input 7 activation level", "id":"gpin_invert20", "type":3, "value":"Active low" }, { "name":"Digital input 7 capture edge", "id":"din7rising", "type":3, "value":"Falling" }, { "name":"Digital input 7 frequency divider", "id":"din7skip", "value":1.000000 }, { "name":"Digital input 7 filter period", "id":"din7filter", "value":1.000000 }, { "name":"Digital input 7 low pass rate", "id":"freqfilter6", "value":50.000000 } ] }, { "name":"Digital input 8", "type":255, "value":[ { "name":"Digital input 8 function", "id":"din8function", "type":3, "context":"gps", "value":"General purpose digital input" }, { "name":"Digital input 8 activation level", "id":"gpin_invert21", "type":3, "value":"Active low" }, { "name":"Digital input 8 baud rate", "id":"din8baud", "type":3, "context":"gps", "applies":[ "din8function", "!=", "General purpose digital input" ], "value":"115200" } ] }, { "name":"Analog inputs used as logic inputs", "type":255, "value":[ { "name":"Analog input 0 activation level", "id":"gpin_invert7", "type":3, "value":"Active low" }, { "name":"Analog input 1 activation level", "id":"gpin_invert8", "type":3, "value":"Active low" }, { "name":"Analog input 2 activation level", "id":"gpin_invert9", "type":3, "value":"Active low" }, { "name":"Analog input 3 activation level", "id":"gpin_invert10", "type":3, "value":"Active low" }, { "name":"Analog input 4 activation level", "id":"gpin_invert2", "type":3, "value":"Active low" }, { "name":"Analog input 5 activation level", "id":"gpin_invert3", "type":3, "value":"Active low" }, { "name":"Analog input 8 activation level", "id":"gpin_invert11", "type":3, "value":"Active low" }, { "name":"Analog input 9 activation level", "id":"gpin_invert12", "type":3, "value":"Active low" }, { "name":"Analog input 10 activation level", "id":"gpin_invert13", "type":3, "value":"Active low" }, { "name":"Analog input 11 activation level", "id":"gpin_invert14", "type":3, "value":"Active low" }, { "name":"Analog input 12 activation level", "id":"gpin_invert15", "type":3, "value":"Active low" }, { "name":"Analog input 13 activation level", "id":"gpin_invert16", "type":3, "value":"Active low" }, { "name":"Analog input 14 activation level", "id":"gpin_invert17", "type":3, "value":"Active low" }, { "name":"Analog input 15 activation level", "id":"gpin_invert18", "type":3, "value":"Active low" } ] } ] }, { "name":"Analog output", "type":255, "value":[ { "name":"Analog output source", "id":"aoutsrc", "type":7, "value":"effectiveapp" }, { "name":"Transfer function breakpoint count", "id":"aoutbpcount", "value":16.000000 }, { "name":"Transfer function breakpoints", "id":"aoutpoints", "type":4, "value":[ 0.000000, 4.980456, 9.960912, 15.039024, 20.019480, 24.999936, 29.980392, 34.960848, 40.038960, 45.019416, 49.999872, 59.960784, 70.019352, 79.980264, 90.038832, 99.999744 ] }, { "name":"Transfer function", "id":"aoutfunction", "type":5, "xaxis":"aoutpoints", "value":[ 0.499422, 0.632247, 0.770385, 0.903210, 1.036035, 1.174173, 1.306998, 1.445136, 1.577961, 1.710786, 1.848924, 2.119887, 2.385537, 2.656500, 2.927463, 3.198426 ] } ] }, { "name":"Tach output cylinder count", "id":"tachcylcount", "value":4.000000 }, { "name":"Tach output test speed", "id":"tachotestspeed", "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":"Air conditioning switch input", "id":"airconinput", "type":3, "value":"CAN source 6" }, { "name":"Variable speed fan control", "type":255, "context":"fan", "value":[ { "name":"Temperature to start fan", "id":"fanstarttemp", "value":85.000000 }, { "name":"Temperature for maximum fan speed", "id":"fanmaxtemp", "value":100.000000 }, { "name":"PWM duty cycle to stop fan", "id":"fanoffduty", "value":89.843750 }, { "name":"PWM duty cycle for maximum fan speed", "id":"fanmaxduty", "value":10.156250 }, { "name":"PWM frequency", "id":"fanpwmfreq", "value":10.000000 }, { "name":"Minimum fan speed with air conditioning", "id":"fanacspeed", "value":39.843750 } ] }, { "name":"Stepper motor control", "context":"stepper", "type":255, "value":[ { "name":"Step interval", "id":"stepinterval", "value":0.000000 }, { "name":"Keep motor energised when not moving", "id":"stepholdcurrent", "type":3, "applies":[ "stepinterval", "!=", 0 ], "value":"Disabled" }, { "name":"Home position", "id":"stephomeopen", "type":3, "applies":[ "stepinterval", "!=", 0 ], "value":"Closed" }, { "name":"Rehome command input", "id":"steprehome", "type":3, "applies":[ "stepinterval", "!=", 0 ], "value":"Always off" }, { "name":"Home sensor input", "id":"stephome", "type":3, "applies":[ "stepinterval", "!=", 0 ], "value":"Always off" }, { "name":"Homing step count", "id":"homesteps", "applies":[ "stepinterval", "!=", 0 ], "value":500.000000 }, { "name":"Allowed movement range from home", "id":"fullopensteps", "applies":[ "stepinterval", "!=", 0 ], "value":400.000000 }, { "name":"Control source", "id":"stepsrc", "type":7, "applies":[ "stepinterval", "!=", 0 ], "value":"const_zero" }, { "name":"Transfer function breakpoint count", "id":"steppointcount", "applies":[ "stepinterval", "!=", 0 ], "value":2.000000 }, { "name":"Transfer function breakpoints", "id":"steppoints", "type":4, "applies":[ "stepinterval", "!=", 0 ], "value":[ 0.000000, 0.000000 ] }, { "name":"Transfer function", "id":"stepfunction", "type":5, "xaxis":"steppoints", "applies":[ "stepinterval", "!=", 0 ], "value":[ 0.000000, 0.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":"Intercooler fan\r\n" }, { "name":"On delay", "id":"gpioondelay0", "value":1.000000 }, { "name":"Off delay", "id":"gpiooffdelay0", "value":10.000000 }, { "name":"Variable 1", "id":"gpiocond1var0", "type":7, "value":"airtemp" }, { "name":"Condition 1", "type":3, "id":"gpiocond1type0", "value":">" }, { "name":"Value 1", "id":"gpiocond1val0", "value":40.000000 }, { "name":"Hysteresis 1", "id":"gpiocond1hyster0", "value":5.000000 }, { "name":"Next condition", "type":7, "id":"gpiocond1and0", "value":"AND" }, { "name":"Variable 2", "applies":[ "gpiocond1and0", "!=", "No other condition" ], "id":"gpiocond2var0", "type":7, "value":"engine_running" }, { "name":"Condition 2", "applies":[ "gpiocond1and0", "!=", "No other condition" ], "type":7, "id":"gpiocond2type0", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and0", "!=", "No other condition" ], "id":"gpiocond2val0", "value":1.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and0", "!=", "No other condition" ], "id":"gpiocond2hyster0", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and0", "!=", "No other condition" ], "type":7, "id":"gpiocond2and0", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and0", "!=", "No other condition", "gpiocond1and0", "!=", "No other condition" ], "id":"gpiocond3var0", "type":7, "value":"const_zero" }, { "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":1.000000 }, { "name":"Hysteresis 1", "id":"gpiocond1hyster1", "value":0.000000 }, { "name":"Next condition", "type":7, "id":"gpiocond1and1", "value":"AND" }, { "name":"Variable 2", "applies":[ "gpiocond1and1", "!=", "No other condition" ], "id":"gpiocond2var1", "type":7, "value":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and1", "!=", "No other condition" ], "type":7, "id":"gpiocond2type1", "value":">" }, { "name":"Value 2", "applies":[ "gpiocond1and1", "!=", "No other condition" ], "id":"gpiocond2val1", "value":400.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and1", "!=", "No other condition" ], "id":"gpiocond2hyster1", "value":100.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and1", "!=", "No other condition" ], "type":7, "id":"gpiocond2and1", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and1", "!=", "No other condition", "gpiocond2and1", "!=", "No other condition" ], "id":"gpiocond3var1", "type":7, "value":"const_zero" }, { "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":0.000000 }, { "name":"Hysteresis 3", "applies":[ "gpiocond1and1", "!=", "No other condition", "gpiocond2and1", "!=", "No other condition" ], "id":"gpiocond3hyster1", "value":0.000000 } ] }, { "name":"General purpose logic 3", "type":255, "context":"gplogic", "value":[ { "name":"Description", "id":"gpiodescr2", "type":6, "value":"Fan control" }, { "name":"On delay", "id":"gpioondelay2", "value":0.000000 }, { "name":"Off delay", "id":"gpiooffdelay2", "value":0.000000 }, { "name":"Variable 1", "id":"gpiocond1var2", "type":7, "value":"outputs" }, { "name":"Condition 1", "type":3, "id":"gpiocond1type2", "value":"bit" }, { "name":"Value 1", "id":"gpiocond1val2", "value":2.000000 }, { "name":"Hysteresis 1", "id":"gpiocond1hyster2", "value":0.000000 }, { "name":"Next condition", "type":7, "id":"gpiocond1and2", "value":"OR" }, { "name":"Variable 2", "applies":[ "gpiocond1and2", "!=", "No other condition" ], "id":"gpiocond2var2", "type":7, "value":"gplogic4" }, { "name":"Condition 2", "applies":[ "gpiocond1and2", "!=", "No other condition" ], "type":7, "id":"gpiocond2type2", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and2", "!=", "No other condition" ], "id":"gpiocond2val2", "value":1.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":1.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":"const_zero" }, { "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":"const_zero" }, { "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":"const_zero" }, { "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":"const_zero" }, { "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":"const_zero" }, { "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":"const_zero" }, { "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":"Start" }, { "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":1.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":"const_zero" }, { "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":"const_zero" }, { "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and10", "!=", "No other condition" ], "type":7, "id":"gpiocond2type10", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and10", "!=", "No other condition" ], "id":"gpiocond2val10", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and10", "!=", "No other condition" ], "id":"gpiocond2hyster10", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and10", "!=", "No other condition" ], "type":7, "id":"gpiocond2and10", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and10", "!=", "No other condition", "gpiocond2and10", "!=", "No other condition" ], "id":"gpiocond3var10", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and10", "!=", "No other condition", "gpiocond2and10", "!=", "No other condition" ], "type":7, "id":"gpiocond3type10", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and10", "!=", "No other condition", "gpiocond2and10", "!=", "No other condition" ], "id":"gpiocond3val10", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and11", "!=", "No other condition" ], "type":7, "id":"gpiocond2type11", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and11", "!=", "No other condition" ], "id":"gpiocond2val11", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and11", "!=", "No other condition" ], "id":"gpiocond2hyster11", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and11", "!=", "No other condition" ], "type":7, "id":"gpiocond2and11", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and11", "!=", "No other condition", "gpiocond2and11", "!=", "No other condition" ], "id":"gpiocond3var11", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and11", "!=", "No other condition", "gpiocond2and11", "!=", "No other condition" ], "type":7, "id":"gpiocond3type11", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and11", "!=", "No other condition", "gpiocond2and11", "!=", "No other condition" ], "id":"gpiocond3val11", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and12", "!=", "No other condition" ], "type":7, "id":"gpiocond2type12", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and12", "!=", "No other condition" ], "id":"gpiocond2val12", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and12", "!=", "No other condition" ], "id":"gpiocond2hyster12", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and12", "!=", "No other condition" ], "type":7, "id":"gpiocond2and12", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and12", "!=", "No other condition", "gpiocond2and12", "!=", "No other condition" ], "id":"gpiocond3var12", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and12", "!=", "No other condition", "gpiocond2and12", "!=", "No other condition" ], "type":7, "id":"gpiocond3type12", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and12", "!=", "No other condition", "gpiocond2and12", "!=", "No other condition" ], "id":"gpiocond3val12", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and13", "!=", "No other condition" ], "type":7, "id":"gpiocond2type13", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and13", "!=", "No other condition" ], "id":"gpiocond2val13", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and13", "!=", "No other condition" ], "id":"gpiocond2hyster13", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and13", "!=", "No other condition" ], "type":7, "id":"gpiocond2and13", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and13", "!=", "No other condition", "gpiocond2and13", "!=", "No other condition" ], "id":"gpiocond3var13", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and13", "!=", "No other condition", "gpiocond2and13", "!=", "No other condition" ], "type":7, "id":"gpiocond3type13", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and13", "!=", "No other condition", "gpiocond2and13", "!=", "No other condition" ], "id":"gpiocond3val13", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and14", "!=", "No other condition" ], "type":7, "id":"gpiocond2type14", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and14", "!=", "No other condition" ], "id":"gpiocond2val14", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and14", "!=", "No other condition" ], "id":"gpiocond2hyster14", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and14", "!=", "No other condition" ], "type":7, "id":"gpiocond2and14", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and14", "!=", "No other condition", "gpiocond2and14", "!=", "No other condition" ], "id":"gpiocond3var14", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and14", "!=", "No other condition", "gpiocond2and14", "!=", "No other condition" ], "type":7, "id":"gpiocond3type14", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and14", "!=", "No other condition", "gpiocond2and14", "!=", "No other condition" ], "id":"gpiocond3val14", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and15", "!=", "No other condition" ], "type":7, "id":"gpiocond2type15", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and15", "!=", "No other condition" ], "id":"gpiocond2val15", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and15", "!=", "No other condition" ], "id":"gpiocond2hyster15", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and15", "!=", "No other condition" ], "type":7, "id":"gpiocond2and15", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and15", "!=", "No other condition", "gpiocond2and15", "!=", "No other condition" ], "id":"gpiocond3var15", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and15", "!=", "No other condition", "gpiocond2and15", "!=", "No other condition" ], "type":7, "id":"gpiocond3type15", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and15", "!=", "No other condition", "gpiocond2and15", "!=", "No other condition" ], "id":"gpiocond3val15", "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":"const_zero" }, { "name":"Condition 2", "applies":[ "gpiocond1and16", "!=", "No other condition" ], "type":7, "id":"gpiocond2type16", "value":"=" }, { "name":"Value 2", "applies":[ "gpiocond1and16", "!=", "No other condition" ], "id":"gpiocond2val16", "value":0.000000 }, { "name":"Hysteresis 2", "applies":[ "gpiocond1and16", "!=", "No other condition" ], "id":"gpiocond2hyster16", "value":0.000000 }, { "name":"Next condition", "applies":[ "gpiocond1and16", "!=", "No other condition" ], "type":7, "id":"gpiocond2and16", "value":"No other condition" }, { "name":"Variable 3", "applies":[ "gpiocond1and16", "!=", "No other condition", "gpiocond2and16", "!=", "No other condition" ], "id":"gpiocond3var16", "type":7, "value":"const_zero" }, { "name":"Condition 3", "applies":[ "gpiocond1and16", "!=", "No other condition", "gpiocond2and16", "!=", "No other condition" ], "type":7, "id":"gpiocond3type16", "value":"=" }, { "name":"Value 3", "applies":[ "gpiocond1and16", "!=", "No other condition", "gpiocond2and16", "!=", "No other condition" ], "id":"gpiocond3val16", "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":"Enabled" }, { "name":"Short description", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0descr", "type":6, "value":"Fan" }, { "name":"PWM frequency", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0period", "value":10.000000 }, { "name":"Table selection", "applies":[ "pwm0enable", "=", "Enabled" ], "type":3, "id":"pwm0tabsel", "value":"Single table" }, { "name":"Primary X axis variable", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0primaryxvar", "type":7, "value":"enginespeed" }, { "name":"Primary Y axis variable", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0primaryyvar", "type":7, "value":"coolanttemp" }, { "name":"Primary X axis", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0primaryxaxis", "type":4, "value":[ 400.000000, 500.000000, 1000.000000, 2000.000000, 3000.000000, 4000.000000, 5000.000000, 6000.000000 ] }, { "name":"Primary Y axis", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0primaryyaxis", "type":4, "value":[ 50.000000, 60.000000, 70.000000, 80.000000, 90.000000, 100.000000, 110.000000, 120.000000 ] }, { "name":"Duty cycle", "applies":[ "pwm0enable", "=", "Enabled" ], "id":"pwm0primary", "type":5, "xaxis":"pwm0primaryxaxis", "yaxis":"pwm0primaryyaxis", "value":[ 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 89.803953, 69.803946, 69.803946, 69.803946, 69.803946, 69.803946, 69.803946, 69.803946, 89.803953, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 89.803953, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 89.803953, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925, 9.803925 ] }, { "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":50.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":250.000000 }, { "name":"Bipolar mode", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "type":3, "id":"pwm1polarised", "value":"Disabled" }, { "name":"Control variable", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1var", "type":7, "value":"railpressure" }, { "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":"totalfuelqty" }, { "name":"X axis", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1xaxis", "type":4, "value":[ 200.000000, 500.000000, 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 4000.000000 ] }, { "name":"Y axis", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1yaxis", "type":4, "value":[ 0.000000, 10.000000, 20.000000, 30.000000, 50.000000, 70.000000, 90.000000, 110.000000 ] }, { "name":"Set point", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1target", "type":5, "xaxis":"pwm1xaxis", "yaxis":"pwm1yaxis", "value":[ 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 500.000000, 500.000000, 500.000000, 300.000000, 300.000000, 300.000000, 400.000000, 500.000000, 500.000000, 500.000000, 500.000000, 300.000000, 300.000000, 300.000000, 500.000000, 600.000000, 700.000000, 700.000000, 700.000000, 500.000000, 500.000000, 500.000000, 600.000000, 800.000000, 900.000000, 900.000000, 900.000000, 500.000000, 500.000000, 500.000000, 720.000000, 1000.000000, 1200.000000, 1200.000000, 1200.000000, 500.000000, 500.000000, 500.000000, 900.000000, 1200.000000, 1350.000000, 1400.000000, 1400.000000, 500.000000, 500.000000, 500.000000, 900.000000, 1200.000000, 1400.000000, 1450.000000, 1450.000000, 500.000000, 500.000000, 500.000000, 900.000000, 1200.000000, 1400.000000, 1450.000000, 1450.000000 ] }, { "name":"Base duty", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "type":5, "id":"pwm1base", "xaxis":"pwm1xaxis", "yaxis":"pwm1yaxis", "value":[ 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916, 50.000916 ] }, { "name":"Maximum duty", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1maxduty", "value":94.999604 }, { "name":"Minimum duty", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1minduty", "value":0.000000 }, { "name":"P factor", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1Kp", "value":0.070028 }, { "name":"I factor", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1Ki", "value":0.030012 }, { "name":"D factor", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1Kd", "value":0.020008 }, { "name":"Integrator max", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1Imax", "value":50.000916 }, { "name":"Integrator min", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1Imin", "value":-50.000916 }, { "name":"Setpoint low pass filter", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "id":"pwm1targetfilter", "value":0.000000 }, { "name":"Setpoint slew rate limit enable", "applies":[ "pwm1pidserviceperiod", "!=", 0 ], "type":3, "id":"pwm1slewlimit_enable", "value":"Disabled" }, { "name":"Setpoint slew rate limit", "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":0.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":"const_zero" }, { "name":"X axis", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2xaxis", "type":4, "value":[ 200.000000, 500.000000, 1000.000000, 2000.000000, 3000.000000, 4000.000000, 5000.000000, 6000.000000 ] }, { "name":"Y axis", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2yaxis", "type":4, "value":[ 0.000000, 10.000000, 20.000000, 30.000000, 40.000000, 50.000000, 70.000000, 90.000000 ] }, { "name":"Set point", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2target", "type":5, "xaxis":"pwm2xaxis", "yaxis":"pwm2yaxis", "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":"Base duty", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "type":5, "id":"pwm2base", "xaxis":"pwm2xaxis", "yaxis":"pwm2yaxis", "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":"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.200080 }, { "name":"I factor", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2Ki", "value":0.050020 }, { "name":"D factor", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2Kd", "value":0.100040 }, { "name":"Integrator max", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2Imax", "value":30.001160 }, { "name":"Integrator min", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2Imin", "value":-50.000916 }, { "name":"Setpoint low pass filter", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "id":"pwm2targetfilter", "value":0.000000 }, { "name":"Setpoint slew rate limit enable", "applies":[ "pwm2pidserviceperiod", "!=", 0 ], "type":3, "id":"pwm2slewlimit_enable", "value":"Disabled" }, { "name":"Setpoint slew rate limit", "applies":[ "pwm2pidserviceperiod", "!=", 0, "pwm2slewlimit_enable", "=", "Enabled" ], "id":"pwm2slewlimit", "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":"Output type", "id":"customlookupsigned1", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"customlookupdecimal1", "type":3, "value":"0" } ] }, { "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":"Output type", "id":"customlookupsigned2", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"customlookupdecimal2", "type":3, "value":"0" } ] }, { "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":"Output type", "id":"customlookupsigned3", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"customlookupdecimal3", "type":3, "value":"0" } ] }, { "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":"Output type", "id":"customlookupsigned4", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"customlookupdecimal4", "type":3, "value":"0" } ] } ] }, { "name":"User defined tables", "context":"customtables", "type":255, "value":[ { "name":"User defined table 1", "type":255, "value":[ { "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":"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 breakpoints", "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":"Output type", "id":"custom2dsigned1", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"custom2ddecimal1", "type":3, "value":"0" } ] }, { "name":"User defined table 2", "type":255, "value":[ { "name":"Table", "id":"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":"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 breakpoints", "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":"Output type", "id":"custom2dsigned2", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"custom2ddecimal2", "type":3, "value":"0" } ] }, { "name":"User defined table 3", "type":255, "value":[ { "name":"Table", "id":"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":"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 breakpoints", "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":"Output type", "id":"custom2dsigned3", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"custom2ddecimal3", "type":3, "value":"0" } ] }, { "name":"User defined table 4", "type":255, "value":[ { "name":"Table", "id":"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":"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 breakpoints", "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":"Output type", "id":"custom2dsigned4", "type":3, "value":"Unsigned" }, { "name":"Digits after the decimal point", "id":"custom2ddecimal4", "type":3, "value":"0" } ] } ] }, { "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":"General purpose injection trims", "context":"gptrims", "type":255, "value":[ { "name":"General purpose main injection timing trim 1", "type":255, "value":[ { "name":"Enable condition", "type":3, "id":"gptimingmod1enable", "value":"Always off" }, { "name":"Input variable", "id":"gptimingmod1src", "type":7, "value":"const_zero" }, { "name":"Breakpoint count", "id":"gptimingmod1ptcount", "value":16.000000 }, { "name":"Breakpoints", "id":"gptimingmod1pts", "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":"Function", "id":"gptimingmod1function", "type":5, "xaxis":"gptimingmod1pts", "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 main injection timing trim 2", "type":255, "value":[ { "name":"Enable condition", "type":3, "id":"gptimingmod2enable", "value":"Always off" }, { "name":"Input variable", "id":"gptimingmod2src", "type":7, "value":"const_zero" }, { "name":"Breakpoint count", "id":"gptimingmod2ptcount", "value":16.000000 }, { "name":"Breakpoints", "id":"gptimingmod2pts", "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":"Function", "id":"gptimingmod2function", "type":5, "xaxis":"gptimingmod2pts", "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 limit 1", "type":255, "value":[ { "name":"Enable condition", "type":3, "id":"gpfuellimit1enable", "value":"Always off" }, { "name":"Input variable", "id":"gpfuellimit1src", "type":7, "value":"const_zero" }, { "name":"Breakpoint count", "id":"gpfuellimit1ptcount", "value":16.000000 }, { "name":"Breakpoints", "id":"gpfuellimit1pts", "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":"Function", "id":"gpfuellimit1function", "type":5, "xaxis":"gpfuellimit1pts", "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 limit 2", "type":255, "value":[ { "name":"Enable condition", "type":3, "id":"gpfuellimit2enable", "value":"Always off" }, { "name":"Input variable", "id":"gpfuellimit2src", "type":7, "value":"const_zero" }, { "name":"Breakpoint count", "id":"gpfuellimit2ptcount", "value":16.000000 }, { "name":"Breakpoints", "id":"gpfuellimit2pts", "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":"Function", "id":"gpfuellimit2function", "type":5, "xaxis":"gpfuellimit2pts", "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":"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":"Enabled" }, { "name":"PWM control frequency", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostperiod", "value":100.000000 }, { "name":"PID service interval", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostserviceinterval", "value":20.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":"govfuelreq" }, { "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":10.000000 }, { "name":"Boost request breakpoints", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostloadbins", "type":4, "value":[ 10.000000, 30.000000, 50.000000, 70.000000, 90.000000, 110.000000, 130.000000, 150.000000 ] }, { "name":"Engine speed breakpoints", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostrpmbins", "type":4, "value":[ 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000, 5500.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":[ 800.000000, 1300.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":[ -1600.000000, -1200.000000, -800.000000, -400.000000, -200.000000, -100.000000, 100.000000, 200.000000, 400.000000, 800.000000, 1200.000000, 1600.000000 ] }, { "name":"Boost rate of change breakpoint count", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostdotbincount", "value":12.000000 }, { "name":"Boost rate of change breakpoints", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostdotbins", "type":4, "value":[ -50.000000, -20.000000, -15.000000, -10.000000, -5.000000, -2.000000, 2.000000, 5.000000, 10.000000, 15.000000, 20.000000, 50.000000 ] } ] }, { "name":"Pressure target", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostmap", "type":5, "xaxis":"boostrpmbins", "yaxis":"boostloadbins", "value":[ 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1000.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1200.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1700.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 1900.000000, 2000.000000, 2000.000000, 2000.000000, 2200.000000, 2200.000000, 2200.000000, 2200.000000, 2200.000000, 2200.000000, 2200.000000, 2000.000000, 2000.000000, 2200.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2000.000000, 2000.000000, 2200.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2000.000000, 2000.000000, 2200.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000, 2400.000000 ] }, { "name":"Base duty cycle", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"wgdutymap", "type":5, "xaxis":"boostrpmbins", "yaxis":"boosttargetbins", "value":[ 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312, 90.000428, 90.000428, 90.000428, 90.000428, 89.499900, 88.999372, 88.498844, 88.001368, 87.500840, 87.000312 ] }, { "name":"Minimum duty cycle", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostminduty", "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 ] }, { "name":"Maximum duty cycle", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostmaxduty", "type":5, "xaxis":"boostrpmbins", "yaxis":"boosttargetbins", "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, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 99.998780, 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":"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 ] }, { "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 ] }, { "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 ] }, { "name":"PD table", "applies":[ "boostctl_enable", "=", "Enabled" ], "type":5, "id":"boostPDmap", "xaxis":"boosterrorbins", "yaxis":"boostdotbins", "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 ] }, { "name":"ID table", "applies":[ "boostctl_enable", "=", "Enabled" ], "type":5, "id":"boostIDmap", "xaxis":"boosterrorbins", "yaxis":"boostdotbins", "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 ] }, { "name":"P gain", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostKp", "xaxis":"boosterrorbins", "type":5, "value":[ 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040, 0.100040 ] }, { "name":"I gain", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostKi", "xaxis":"boosterrorbins", "type":5, "value":[ 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880, 0.004880 ] }, { "name":"D gain", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostKd", "value":0.000000 }, { "name":"Integrator max value", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostImax", "value":3.000116 }, { "name":"Integrator min value", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostImin", "value":-15.000580 }, { "name":"Zero integrator below target", "applies":[ "boostctl_enable", "=", "Enabled" ], "id":"boostzerointbelow", "type":3, "value":"Enabled" }, { "name":"Minimum error below target to enable integrator", "applies":[ "boostctl_enable", "=", "Enabled", "boostzerointbelow", "=", "Enabled" ], "id":"boostienablerange", "value":500.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 ] }, { "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 ] }, { "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":"Turbo override trigger", "id":"turbooverridetrigger", "type":3, "value":"Always off" }, { "name":"Turbo override source", "id":"turbooverridesource", "type":7, "value":"const_zero" }, { "name":"Turbo override function breakpoint count", "id":"turbooverridebpcount", "value":1.000000 }, { "name":"Turbo override breakpoints", "id":"turbooverridebins", "type":4, "value":[ 0.000000 ] }, { "name":"Turbo override duty cycle", "id":"turbooverrideduty", "type":5, "xaxis":"turbooverridebins", "value":[ 0.000000 ] } ] }, { "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":"Enabled" }, { "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", "DID1" ] ] ], "value":[ "enginespeed", "map", "effectiveapp", "mainfuelqty", "coolanttemp", "airtemp", "egt1", "oiltemp", "lambda", "oilpress", "railpressure", "mainangle1", "supplyvoltage", "roadspeed", "emap", "barometer", "lambda2", "mainangle1", "const_zero", "cylairmass", "torquerequest", "torquerequestlimited", "torqueactual", "const_zero", "pilotfuelqty", "postfuelqty", "pilotangle1", "postangle1", "cel", "glow_light", "cruise_active", "din2", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "const_zero", "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":[ 1792.000000, 1793.000000, 1794.000000, 1795.000000, 1796.000000, 1797.000000, 1798.000000, 1799.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":[ "100Hz", "10Hz", "100Hz", "100Hz", "100Hz", "100Hz", "100Hz", "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":"Enabled" }, { "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":[ "50Hz", "50Hz", "50Hz", "50Hz", "10Hz", "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":[ 528.000000, 530.000000, 776.000000, 786.000000, 1544.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":[ "canmode", "!=", "Disabled", "customcanenable", "=", "Enabled" ], "id":"customcantxbytes", "type":5, "novisual":1, "yaxis":"customcanaddr", "scriptbutton":[ "Launch preview tool", [ "library", "ccan1preview" ] ], "value":[ 8.000000, 8.000000, 8.000000, 8.000000, 8.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, 64.000000, 0.000000, 0.000000, 125.000000, 44.000000, 2.000000, 238.000000, 32.000000, 0.000000, 32.000000, 0.000000, 32.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 150.000000, 62.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 40.000000, 8.000000, 43.000000, 255.000000, 0.000000, 0.000000, 255.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":[ 2.000000, 4.000000, 4.000000, 4.000000, 2.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":[ 2.000000, 38.000000, 0.000000, 0.000000, 2.000000, 4.000000, 6.000000, 54.000000, 1.000000, 5.000000, 27.000000, 25.000000, 0.000000, 2.000000, 4.000000, 6.000000, 0.000000, 5.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":[ "effectiveapp", "effectiveapp", "const_zero", "const_zero", "torquerequest", "torquerequest", "torquerequestlimited", "tq_limited", "enginespeed", "coolanttemp", "glow_light", "cel", "torqueactual", "torqueactual", "torquereserve", "torqueidlerequest", "coolanttemp", "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" ] }, { "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":[ "u8", "bit", "bit", "bit", "u16be", "u16be", "u16be", "bit", "u16be", "u8", "bit", "bit", "u16be", "u16be", "u16be", "u16be", "u8", "u16be", "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, 13.000000, 13.000000, 13.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 13.000000, 13.000000, 13.000000, 13.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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, 1023.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 2331.000000, 4731.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 2331.000000, 4731.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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, 250.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 240.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 240.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":[ "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on", "Always on" ] }, { "name":"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":14.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":[ "Road speed", "Blip Request", "tq limit TCM", "Gear", "TCM CEL", "TC Lock Up", "Oil Pan Temp", "Trans Temp", "Trans Brake", "MPFlag", "start request", "cruise switch", "brake pedal", "Air conditioning" ] }, { "name":"Format", "applies":[ "canmode", "!=", "Disabled", "canrxenable", "=", "Enabled" ], "id":"canrxdescr", "type":5, "yaxis":"canrxname", "value":[ "u16le", "u16le", "u16le", "s8", "bit", "bit", "u16le", "u16le", "bit", "bit", "bit", "u8", "bit", "bit" ] }, { "name":"Addresses", "applies":[ "canmode", "!=", "Disabled", "canrxenable", "=", "Enabled" ], "id":"canrxaddr", "type":5, "yaxis":"canrxname", "value":[ 1824.000000, 1824.000000, 1824.000000, 1824.000000, 1825.000000, 1825.000000, 1825.000000, 1825.000000, 1826.000000, 1826.000000, 1398.000000, 1398.000000, 4196.000000, 4210.000000 ] }, { "name":"Byte offsets", "applies":[ "canmode", "!=", "Disabled", "canrxenable", "=", "Enabled" ], "id":"canrxoffset", "type":5, "yaxis":"canrxname", "value":[ 6.000000, 4.000000, 2.000000, 0.000000, 6.000000, 4.000000, 2.000000, 0.000000, 1.000000, 0.000000, 0.000000, 11.000000, 6.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, 13.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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, 65535.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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, 65535.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":[ 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.000000, 2.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 ] }, { "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 ] } ] }, { "name":"OBD2 service", "type":255, "context":"obd2", "value":[ { "name":"OBD2 service enable", "id":"obd2enable", "type":3, "value":"Disabled" }, { "name":"Interface for OBD2 service", "id":"obd2interface", "type":3, "value":"CAN 1" }, { "name":"OBD2 broadcast ID enable", "applies":[ "obd2enable", "=", "Enabled" ], "id":"obd2bcenable", "type":3, "value":"Enabled" }, { "name":"OBD2 listening ID", "applies":[ "obd2enable", "=", "Enabled" ], "id":"obdid", "value":2016.000000 }, { "name":"OBD2 response ID", "applies":[ "obd2enable", "=", "Enabled" ], "id":"obdresponseid", "value":2024.000000 }, { "name":"OBD2 VIN number reported", "applies":[ "obd2enable", "=", "Enabled" ], "id":"obdvin", "type":6, "value":"MERCEDESPATROL" }, { "name":"Custom PID slot count", "applies":[ "obd2enable", "=", "Enabled" ], "id":"customobdcount", "value":16.000000 }, { "name":"OBD2 custom PIDs", "id":"customobdpid", "applies":[ "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":[ 150.000000, 0.000000, 0.000000, 0.000000, 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":[ "obd2enable", "=", "Enabled" ], "id":"customobddata", "type":5, "yaxis":"customobdpid", "colwidth":2, "value":[ "egt1", "const_zero", "const_zero", "const_zero", "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":[ "obd2enable", "=", "Enabled" ], "id":"customobdformat", "type":5, "yaxis":"customobdpid", "colwidth":3, "value":[ "u16be", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit", "bit" ] }, { "name":"OBD2 custom PID input range", "applies":[ "obd2enable", "=", "Enabled" ], "id":"customobdrange", "type":5, "yaxis":"customobddata", "novisual":1, "xaxis":[ "Low", "High" ], "colwidth":3, "value":[ 2731.000000, 16231.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":[ "obd2enable", "=", "Enabled" ], "id":"customobdoutput", "type":5, "yaxis":"customobddata", "novisual":1, "xaxis":[ "Low", "High" ], "colwidth":3, "value":[ 0.000000, 1350.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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", "DID1" ] ] ], "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 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":"Blink Marine CAN keypads", "type":255, "context":"cankeypads", "value":[ { "name":"Blink Marine keypad interface", "id":"blinkkeypadenable", "type":3, "value":"Disabled" }, { "name":"Keypad 1", "type":255, "context":"cankeypad1", "value":[ { "name":"Keypad size", "id":"blinkkeypadsize1", "value":4.000000 }, { "name":"Button modes", "id":"blinkkeypad1buttonmodes", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "value":[ "Momentary", "Momentary", "Momentary", "Momentary" ] }, { "name":"Button auxiliary inputs", "id":"blinkkeypad1buttonauxinputs", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Reset", "Set" ], "value":[ "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":"Button light modes", "id":"blinkkeypad1lightstates", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Off", "On" ], "value":[ "Off", "Off", "Off", "Off", "Off", "Off", "Off", "Off" ] } ] }, { "name":"Keypad 2", "type":255, "context":"cankeypad2", "value":[ { "name":"Keypad size", "id":"blinkkeypadsize2", "value":0.000000 }, { "name":"Button modes", "id":"blinkkeypad2buttonmodes", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "value":[ "Momentary" ] }, { "name":"Button auxiliary inputs", "id":"blinkkeypad2buttonauxinputs", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Reset", "Set" ], "value":[ "Digital in 1", "Digital in 1" ] }, { "name":"Button light modes", "id":"blinkkeypad2lightstates", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Off", "On" ], "value":[ "Off", "Off" ] } ] }, { "name":"Keypad 3", "type":255, "context":"cankeypad3", "value":[ { "name":"Keypad size", "id":"blinkkeypadsize3", "value":0.000000 }, { "name":"Button modes", "id":"blinkkeypad3buttonmodes", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "value":[ "Momentary" ] }, { "name":"Button auxiliary inputs", "id":"blinkkeypad3buttonauxinputs", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Reset", "Set" ], "value":[ "Digital in 1", "Digital in 1" ] }, { "name":"Button light modes", "id":"blinkkeypad3lightstates", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Off", "On" ], "value":[ "Off", "Off" ] } ] }, { "name":"Keypad 4", "type":255, "context":"cankeypad4", "value":[ { "name":"Keypad size", "id":"blinkkeypadsize4", "value":0.000000 }, { "name":"Button modes", "id":"blinkkeypad4buttonmodes", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "value":[ "Momentary" ] }, { "name":"Button auxiliary inputs", "id":"blinkkeypad4buttonauxinputs", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Reset", "Set" ], "value":[ "Digital in 1", "Digital in 1" ] }, { "name":"Button light modes", "id":"blinkkeypad4lightstates", "type":5, "yaxis":[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], "xaxis":[ "Off", "On" ], "value":[ "Off", "Off" ] } ] }, { "name":"Utility screen", "id":"blinkutility", "type":9, "layout":[ { "wid":"switchtoj1939", "caption":"Switch to j1939 mode", "size":[ 30, 10 ], "position":[ 0, 10 ], "type":"button", "onclick":[ [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "125kbit" ], [ "set", "can2mode", "125kbit" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x615", 5, "0x2b", "0xff", "0x20", "1", "1" ] ], [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "250kbit" ], [ "set", "can2mode", "250kbit" ] ] ] }, { "wid":"enableheartbeat", "caption":"Enable heartbeat", "size":[ 30, 10 ], "position":[ 30, 10 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x75", "0x01", "100", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x37", "0x02", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight0", "caption":"Backlight off", "size":[ 30, 10 ], "position":[ 0, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight10", "caption":"Backlight 10%", "size":[ 30, 10 ], "position":[ 30, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0x06", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight25", "caption":"Backlight 25%", "size":[ 30, 10 ], "position":[ 60, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0x10", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight50", "caption":"Backlight 50%", "size":[ 30, 10 ], "position":[ 90, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0x20", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight75", "caption":"Backlight 75%", "size":[ 30, 10 ], "position":[ 120, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0x30", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"backlight100", "caption":"Backlight 100%", "size":[ 30, 10 ], "position":[ 150, 20 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x7b", "0x3F", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"makekeypad1", "caption":"Make keypad 1", "size":[ 30, 10 ], "position":[ 0, 50 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2200", 8, "0x04", "0x1b", "0x70", "0x21", "0x21", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2300", 8, "0x04", "0x1b", "0x70", "0x21", "0x21", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2400", 8, "0x04", "0x1b", "0x70", "0x21", "0x21", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"makekeypad2", "caption":"Make keypad 2", "size":[ 30, 10 ], "position":[ 30, 50 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x70", "0x22", "0x22", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2300", 8, "0x04", "0x1b", "0x70", "0x22", "0x22", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2400", 8, "0x04", "0x1b", "0x70", "0x22", "0x22", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"makekeypad3", "caption":"Make keypad 3", "size":[ 30, 10 ], "position":[ 60, 50 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x70", "0x23", "0x23", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2200", 8, "0x04", "0x1b", "0x70", "0x23", "0x23", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2400", 8, "0x04", "0x1b", "0x70", "0x23", "0x23", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"makekeypad4", "caption":"Make keypad 4", "size":[ 30, 10 ], "position":[ 90, 50 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x70", "0x24", "0x24", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2200", 8, "0x04", "0x1b", "0x70", "0x24", "0x24", "0xFF", "0xFF", "0xFF" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2300", 8, "0x04", "0x1b", "0x70", "0x24", "0x24", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"busselector", "caption":"CAN bus 2", "size":[ 30, 10 ], "position":[ 0, 0 ], "type":"button", "checkbox":true }, { "wid":"set500k", "caption":"Set to 500k", "size":[ 30, 10 ], "position":[ 40, 80 ], "type":"button", "onclick":[ [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "250kbit" ], [ "set", "can2mode", "250kbit" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x6f", "0x02", "0xFF", "0xFF", "0xFF", "0xFF" ] ], [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "500kbit" ], [ "set", "can2mode", "500kbit" ] ] ] }, { "wid":"set250k", "caption":"Set to 250k", "size":[ 30, 10 ], "position":[ 70, 80 ], "type":"button", "onclick":[ [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "500kbit" ], [ "set", "can2mode", "500kbit" ] ], [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x6f", "0x03", "0xFF", "0xFF", "0xFF", "0xFF" ] ], [ "if", "widgetval(busselector) = 0", [ "set", "canmode", "250kbit" ], [ "set", "can2mode", "250kbit" ] ] ] }, { "wid":"lightshowoff", "caption":"Startup light show off", "size":[ 30, 10 ], "position":[ 0, 30 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x34", "0", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"lightshowslow", "caption":"Startup light show slow", "size":[ 30, 10 ], "position":[ 30, 30 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x34", "1", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "wid":"lightshowfast", "caption":"Startup light show fast", "size":[ 30, 10 ], "position":[ 60, 30 ], "type":"button", "onclick":[ [ "rpc", "canxmit", [ "widgetval(busselector)", "0x18EF2100", 8, "0x04", "0x1b", "0x34", "2", "0xFF", "0xFF", "0xFF", "0xFF" ] ] ] }, { "size":[ 170, 10 ], "position":[ 30, 0 ], "type":"static", "caption":"Make sure only one keypad is connected to the CAN network when using these utilities. If the keypad has been addressed as 2-4 it must be configured as keypad 1 prior to applying other settings, and then it can be changed back to whatever identifier it had." } ] } ] } ] }, { "name":"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":2.999980 }, { "name":"I factor", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruiseKi", "value":0.499956 }, { "name":"D factor", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruiseKd", "value":2.000068 }, { "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":49.995264 }, { "name":"Default cruise speed", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruisedefaultspeed", "value":95.000000 }, { "name":"Cruise switch input", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruisesource", "type":7, "value":"cansrc4" }, { "name":"Cruise switch values", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruisebuttonmap", "type":5, "colwidth":2.000000, "xaxis":[ "Inactive", "Stop", "Set\/Decel", "Resume\/Accel" ], "value":[ 0.000000, 1.000000, 8.000000, 4.000000 ] }, { "name":"Overspeed threshold", "applies":[ "cruiseenable", "!=", "Disabled" ], "id":"cruiseoverspeed", "value":5.000000 }, { "name":"Brake pedal input", "id":"brakeinput", "type":3, "value":"CAN source 5" } ] }, { "name":"Torque model", "context":"torque", "type":255, "value":[ { "name":"Torque model enable", "id":"torquemodel_enable", "type":3, "value":"Disabled" }, { "name":"Separate maps for fuel to torque and torque to fuel conversion", "id":"torquemodel_twomaps", "type":3, "value":"Disabled" }, { "name":"Torque map", "applies":[ "torquemodel_enable", "=", "Enabled" ], "type":5, "id":"torquemap", "xaxis":"torquefuelbins", "yaxis":"torquerpmbins", "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, -9.000000, 8.600000, 26.200000, 43.800000, 61.400000, 96.400000, 131.600000, 166.800000, 201.800000, 237.000000, 272.200000, 307.200000, 342.400000, 377.600000, 412.800000, 447.800000, -18.200000, -0.400000, 17.200000, 35.000000, 52.600000, 88.000000, 123.400000, 158.800000, 194.200000, 229.600000, 265.000000, 300.400000, 335.600000, 371.000000, 406.400000, 441.800000, -27.200000, -9.400000, 8.400000, 26.200000, 44.200000, 79.800000, 115.400000, 151.000000, 186.600000, 222.200000, 257.800000, 293.600000, 329.200000, 364.800000, 400.400000, 436.000000, -36.400000, -18.400000, -0.400000, 17.400000, 35.400000, 71.400000, 107.200000, 143.200000, 179.000000, 214.800000, 250.800000, 286.600000, 322.600000, 358.400000, 394.400000, 430.200000, -45.400000, -27.200000, -9.200000, 8.800000, 27.000000, 63.000000, 99.200000, 135.400000, 171.400000, 207.600000, 243.800000, 279.800000, 316.000000, 352.200000, 388.400000, 424.400000, -54.400000, -36.200000, -18.000000, 0.200000, 18.400000, 54.800000, 91.200000, 127.400000, 163.800000, 200.200000, 236.600000, 273.000000, 309.400000, 345.800000, 382.000000, 418.400000, -63.600000, -45.200000, -27.000000, -8.600000, 9.800000, 46.400000, 83.000000, 119.600000, 156.200000, 192.800000, 229.400000, 266.200000, 302.800000, 339.400000, 376.000000, 412.600000, -72.600000, -54.200000, -35.600000, -17.200000, 1.200000, 38.000000, 75.000000, 111.800000, 148.800000, 185.600000, 222.400000, 259.400000, 296.200000, 333.000000, 370.000000, 406.800000, -81.800000, -63.200000, -44.600000, -26.000000, -7.600000, 29.600000, 66.600000, 103.800000, 140.800000, 178.000000, 215.200000, 252.200000, 289.400000, 326.400000, 363.600000, 400.600000, -90.800000, -72.000000, -53.400000, -34.600000, -16.000000, 21.400000, 58.800000, 96.000000, 133.400000, 170.800000, 208.200000, 245.600000, 283.000000, 320.400000, 357.600000, 395.000000, -100.000000, -81.200000, -62.400000, -43.600000, -24.800000, 12.800000, 50.400000, 88.000000, 125.600000, 163.200000, 200.800000, 238.400000, 276.000000, 313.600000, 351.200000, 388.800000 ] }, { "name":"Fuel from torque map", "applies":[ "torquemodel_enable", "=", "Enabled", "torquemodel_twomaps", "=", "Enabled" ], "type":5, "id":"fuelfromtorquemap", "xaxis":"torquefuelbins", "yaxis":"torquerpmbins", "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":"Coolant temperature torque compensation", "type":5, "id":"torqueectmultiplier", "xaxis":"ectbins", "value":[ 1.000448, 1.000448, 1.000448, 1.000448, 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":"Engine speed breakpoints for torque model", "id":"torquerpmbins", "applies":[ "torquemodel_enable", "=", "Enabled" ], "type":4, "value":[ 0.000000, 500.000000, 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000, 5500.000000 ] }, { "name":"Fuel quantity breakpoints for torque model", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquefuelbins", "type":4, "value":[ 0.000000, 5.000000, 10.000000, 15.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":"Torque breakpoints for fuel from torque map", "applies":[ "torquemodel_enable", "=", "Enabled", "torquemodel_twomaps", "=", "Enabled" ], "id":"torquebins", "type":4, "value":[ -100.000000, -50.000000, 0.000000, 50.000000, 100.000000, 150.000000, 200.000000, 250.000000, 300.000000, 350.000000, 400.000000, 450.000000, 500.000000, 550.000000, 600.000000, 650.000000 ] }, { "name":"Engine speed breakpoint count", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquerpmbincount", "value":12.000000 }, { "name":"Fuel quantity breakpoint count", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquefuelbincount", "value":16.000000 }, { "name":"Torque breakpoint count", "applies":[ "torquemodel_enable", "=", "Enabled", "torquemodel_twomaps", "=", "Enabled" ], "id":"torquebincount", "value":16.000000 }, { "name":"Torque request limit source", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquelimitrequestsrc", "type":7, "value":"cansrc2" }, { "name":"Torque request limit enable input", "applies":[ "torquemodel_enable", "=", "Enabled" ], "type":3, "id":"torquelimitrequestenable", "value":"Always on" }, { "name":"Torque limit source", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquelimitsrc", "type":7, "value":"cansrc1" }, { "name":"Torque limit enable input", "applies":[ "torquemodel_enable", "=", "Enabled" ], "type":3, "id":"torquelimitenable", "value":"Always on" }, { "name":"Minimum torque computed", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquemin", "value":-100.000000 }, { "name":"Maximum torque computed", "applies":[ "torquemodel_enable", "=", "Enabled" ], "id":"torquemax", "value":1100.000000 } ] }, { "name":"Water\/methanol injection control", "type":255, "context":"h2o", "value":[ { "name":"Water injection control enable", "id":"h2o_enable", "type":3, "value":"Disabled" }, { "name":"Accelerator threshold triggerable by cruise control", "id":"h2o_cruise", "type":3, "value":"Disabled" }, { "name":"Water injection enable input", "id":"h2oinput", "type":3, "value":"Always on" }, { "name":"Minimum accelerator pedal position", "id":"h2omintps", "value":95.019288 }, { "name":"Minimum engine speed", "id":"h2ominrpm", "value":2000.000000 }, { "name":"Maximum engine speed", "id":"h2omaxrpm", "value":5000.000000 }, { "name":"Minimum MAP", "id":"h2ominmap", "value":1800.000000 }, { "name":"Minimum engine coolant temperature", "id":"h2ominect", "value":72.000000 }, { "name":"Maximum engine coolant temperature", "id":"h2omaxect", "value":100.000000 }, { "name":"PWM frequency", "id":"h2opwmfreq", "value":14.999700 }, { "name":"PWM load source", "id":"h2oloadsrc", "type":7, "value":"map" }, { "name":"Load breakpoints", "id":"h2oloadbins", "type":4, "value":[ 1000.000000, 1300.000000, 1600.000000, 1900.000000, 2200.000000, 2500.000000, 2800.000000, 3100.000000 ] }, { "name":"Engine speed breakpoints", "id":"h2orpmbins", "type":4, "value":[ 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000 ] }, { "name":"PWM duty cycle", "id":"h2opwmmap", "type":5, "xaxis":"h2orpmbins", "yaxis":"h2oloadbins", "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":"Injection timing modifier when water injection is active", "id":"h2otimingmap", "type":5, "xaxis":"h2orpmbins", "yaxis":"h2oloadbins", "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":"Nitrous oxide control", "type":255, "context":"n2o", "value":[ { "name":"Nitrous oxide control enable", "id":"n2o_enable", "type":3, "value":"Disabled" }, { "name":"Stage 1 enable input", "id":"n2oinput", "type":3, "value":"Always on" }, { "name":"Stage 2 enable input", "id":"n2os2input", "type":3, "value":"Always off" }, { "name":"Enable conditions for stage 1", "type":255, "value":[ { "name":"Minimum accelerator pedal position", "id":"n2omintps", "value":95.019288 }, { "name":"Minimum engine speed", "id":"n2ominrpm", "value":2000.000000 }, { "name":"Maximum engine speed", "id":"n2omaxrpm", "value":5000.000000 }, { "name":"Minimum MAP", "id":"n2ominmap", "value":1800.000000 }, { "name":"Minimum engine coolant temperature", "id":"n2ominect", "value":72.000000 }, { "name":"Maximum engine coolant temperature", "id":"n2omaxect", "value":100.000000 } ] }, { "name":"Enable conditions for stage 2", "type":255, "value":[ { "name":"Stage 2 operating mode", "type":3, "id":"n2o_stage1before2", "value":"Independent of stage 1" }, { "name":"Minimum accelerator pedal position", "id":"n2os2mintps", "value":95.019288 }, { "name":"Minimum engine speed", "id":"n2os2minrpm", "value":2000.000000 }, { "name":"Maximum engine speed", "id":"n2os2maxrpm", "value":5000.000000 }, { "name":"Minimum MAP", "id":"n2os2minmap", "value":1800.000000 }, { "name":"Minimum engine coolant temperature", "id":"n2os2minect", "value":72.000000 }, { "name":"Maximum engine coolant temperature", "id":"n2os2maxect", "value":100.000000 } ] }, { "name":"Breakpoints and PWM settings", "type":255, "value":[ { "name":"Stage 1 PWM frequency", "id":"n2opwmfreq", "value":14.999700 }, { "name":"Stage 2 PWM frequency", "id":"n2os2pwmfreq", "value":14.999700 }, { "name":"Load source", "id":"n2oloadsrc", "type":7, "value":"map" }, { "name":"Load breakpoints", "id":"n2oloadbins", "type":4, "value":[ 1000.000000, 1300.000000, 1600.000000, 1900.000000, 2200.000000, 2500.000000, 2800.000000, 3100.000000 ] }, { "name":"Engine speed breakpoints", "id":"n2orpmbins", "type":4, "value":[ 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000 ] } ] }, { "name":"Stage 1 PWM duty cycle", "id":"n2opwmmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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":"Injection timing modifier when stage 1 is active", "id":"n2otimingmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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 limit adder when stage 1 is active", "id":"n2olimitmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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":"Stage 2 PWM duty cycle", "id":"n2os2pwmmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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":"Injection timing modifier when stage 2 is active", "id":"n2os2timingmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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 limit adder when stage 2 is active", "id":"n2os2limitmap", "type":5, "xaxis":"n2orpmbins", "yaxis":"n2oloadbins", "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":"Transbrake control", "type":255, "value":[ { "name":"Transbrake input", "id":"transbraketrigger", "type":3, "value":"Always off" }, { "name":"Transbrake activation condition", "id":"transbrakecondition", "type":3, "value":"Always on" }, { "name":"Transbrake bump input", "id":"transbrakebumptrigger", "type":3, "value":"Always off" }, { "name":"Transbrake bump duration", "id":"transbrakebumptime", "value":50.000000 }, { "name":"Transbrake bump reactivation period", "id":"transbrakebumpholdoff", "value":500.000000 } ] }, { "name":"Harshness control", "context":"harsh", "type":255, "value":[ { "name":"Harshness index computation enable", "id":"harshindex_enable", "type":3, "value":"Disabled" }, { "name":"Harshness computation interval", "id":"harshindexinterval", "value":40.000000 }, { "name":"Engine speed tolerance", "id":"harshindextolerance", "value":75.000000 }, { "name":"Maximum engine speed for harshness control", "id":"harshindexmaxrpm", "value":3000.000000 }, { "name":"Harshness fuel reduction decay rate", "id":"harshreductiondecay", "value":1.000000 }, { "name":"Harshness cycle breakpoints", "id":"harshnesscyclebins", "type":4, "value":[ 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000, 7.000000 ] }, { "name":"Harshness severity breakpoints", "id":"harshnessseverbins", "type":4, "value":[ 0.000000, 100.000000, 150.000000, 200.000000, 250.000000, 300.000000, 400.000000, 500.000000 ] }, { "name":"Harshness reaction map", "id":"harshnessmap", "type":5, "xaxis":"harshnesscyclebins", "yaxis":"harshnessseverbins", "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 harshness control authority", "id":"harshnessrpmbins", "type":4, "value":[ 0.000000, 500.000000, 700.000000, 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000 ] }, { "name":"Pedal position breakpoints for harshness control authority", "id":"harshnesspedalbins", "type":4, "value":[ 0.000000, 4.980456, 9.960912, 15.039024, 20.019480, 24.999936, 29.980392, 49.999872 ] }, { "name":"Harshness control authority", "id":"harshnessauth", "type":5, "xaxis":"harshnessrpmbins", "yaxis":"harshnesspedalbins", "value":[ 0.000000, 0.000000, 10.000000, 10.000000, 15.000000, 15.000000, 15.000000, 15.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 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":"Extra injectors control", "context":"extrainjector", "type":255, "value":[ { "name":"Set up", "type":255, "value":[ { "name":"Extra injector master enable", "id":"secinj_enable", "type":3, "value":"Disabled" }, { "name":"Extra injector enable condition", "id":"secinjenableinput", "type":3, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":"Always on" }, { "name":"Extra injector duration mode", "id":"secinj_pwmode", "type":3, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":"Time" }, { "name":"Y axis variable for duration map", "id":"secinjpwyvar", "type":7, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":"mainpw1" }, { "name":"Y axis variable for timing map", "id":"secinjtimingyvar", "type":7, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":"mainangle1" }, { "name":"Engine speed breakpoint count", "id":"secinjxaxiscount", "applies":[ "secinj_enable", "!=", "Disabled" ], "value":10.000000 }, { "name":"Duration map Y axis breakpoint count", "id":"secinjpwyaxiscount", "applies":[ "secinj_enable", "!=", "Disabled" ], "value":16.000000 }, { "name":"Timing map Y axis breakpoint count", "id":"secinjtimingyaxiscount", "applies":[ "secinj_enable", "!=", "Disabled" ], "value":10.000000 }, { "name":"Engine speed breakpoints", "id":"secinjxaxis", "type":4, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":[ 500.000000, 1000.000000, 1500.000000, 2000.000000, 2500.000000, 3000.000000, 3500.000000, 4000.000000, 4500.000000, 5000.000000 ] }, { "name":"Duration map Y axis breakpoints", "id":"secinjpwyaxis", "type":4, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":[ 0.000000, 100.000000, 200.000000, 300.000000, 400.000000, 500.000000, 600.000000, 700.000000, 800.000000, 900.000000, 1000.000000, 1200.000000, 1400.000000, 1600.000000, 1800.000000, 2000.000000 ] }, { "name":"Timing map Y axis breakpoints", "id":"secinjtimingyaxis", "type":4, "applies":[ "secinj_enable", "!=", "Disabled" ], "value":[ -19.994520, -9.997260, -4.998630, 0.000000, 4.998630, 9.997260, 14.995890, 19.994520, 35.001396, 40.000026 ] }, { "name":"Earliest start of injection", "id":"maxextraadvance", "applies":[ "secinj_enable", "!=", "Disabled" ], "value":350.002974 }, { "name":"Latest start of injection", "id":"minextraadvance", "applies":[ "secinj_enable", "!=", "Disabled" ], "value":0.000000 }, { "name":"Maximum duty cycle", "id":"secinjdclimit", "value":94.921875 }, { "name":"Modifier 1", "type":255, "value":[ { "name":"Modifier 1 mode", "id":"secinjmod1mode", "type":3, "value":"Disabled" }, { "name":"Modifier 1 input variable", "id":"secinjmod1var", "type":7, "value":"const_zero" }, { "name":"Modifier 1 breakpoint count", "id":"secinjmod1bpcount", "value":16.000000 }, { "name":"Modifier 1 breakpoints", "id":"secinjmod1axis", "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":"Modifier 2", "type":255, "value":[ { "name":"Modifier 2 mode", "id":"secinjmod2mode", "type":3, "value":"Disabled" }, { "name":"Modifier 2 input variable", "id":"secinjmod2var", "type":7, "value":"const_zero" }, { "name":"Modifier 2 breakpoint count", "id":"secinjmod2bpcount", "value":16.000000 }, { "name":"Modifier 2 breakpoints", "id":"secinjmod2axis", "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":"Modifier 3", "type":255, "value":[ { "name":"Modifier 3 mode", "id":"secinjmod3mode", "type":3, "value":"Disabled" }, { "name":"Modifier 3 input variable", "id":"secinjmod3var", "type":7, "value":"const_zero" }, { "name":"Modifier 3 breakpoint count", "id":"secinjmod3bpcount", "value":16.000000 }, { "name":"Modifier 3 breakpoints", "id":"secinjmod3axis", "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":"Duration map", "id":"secinjpwmap", "type":5, "xaxis":"secinjxaxis", "yaxis":"secinjpwyaxis", "applies":[ "secinj_enable", "!=", "Disabled" ], "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":"Timing map", "id":"secinjtimingmap", "type":5, "xaxis":"secinjxaxis", "yaxis":"secinjtimingyaxis", "applies":[ "secinj_enable", "!=", "Disabled" ], "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 ] }, { "name":"Modifier function 1", "id":"secinjmod1curve", "type":5, "xaxis":"secinjmod1axis", "applies":[ "secinj_enable", "!=", "Disabled", "secinjmod1mode", "!=", "Disabled" ], "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":"Modifier function 2", "id":"secinjmod2curve", "type":5, "xaxis":"secinjmod2axis", "applies":[ "secinj_enable", "!=", "Disabled", "secinjmod2mode", "!=", "Disabled" ], "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":"Modifier function 3", "id":"secinjmod3curve", "type":5, "xaxis":"secinjmod3axis", "applies":[ "secinj_enable", "!=", "Disabled", "secinjmod3mode", "!=", "Disabled" ], "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":"Custom strategies", "type":255, "userlevel":200, "value":[ { "name":"User program code", "type":6, "id":"userprogramcode", "scriptbutton":[ "Compile", [ [ "updateconfig" ], [ "compileuserprogram", 1, "userprogramcode", "userprogram", "userpgmvalues", true ] ] ], "scriptbutton2":[ "Open toolbox", [ [ "codetoolbox", 1, "userprogramcode", "userconfdef", "userrtdef" ] ] ], "value":"" }, { "name":"User defined configuration variables", "type":6, "id":"userconftree", "scriptbutton":[ "Apply", [ [ "updateconfig" ], [ "applyuserconfdef", "userconftree", true ] ] ], "value":"" }, { "name":"User defined controller flash variables", "type":6, "id":"userconfdef", "scriptbutton":[ "Apply", [ [ "updateconfig" ], [ "applyuserecudef", "userconfdef", "userconf", true ] ] ], "value":"" }, { "name":"User program real time variables", "type":6, "id":"userrtdef", "scriptbutton":[ "Apply", [ [ "updateconfig" ], [ "applyuserrtdef", "userrtdef", "userpgmvalues", null, true ] ] ], "value":"" } ] } ], "ticker":{ "vars":[ "enginespeed", "app", "map", "railpressure" ] }, "definition":{ "commsmode":"usbhid", "signature":"DID1 v1.20", "usbid":"Baldur's DID1ECU", "firmwarebuild":36, "defbuild":36, "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) | (app > 10)" ] ] ], "enumerators":{ "enum_moreless":[ "=", "not =", ">", "<", "bit", "not bit" ], "enum_keypadledcolour":[ "Off", "Red", "Green", "Blue", "Yellow", "Cyan", "Magenta", "White", "Amber", "Yellow\/green" ], "enum_keypadmodes":[ "Momentary", "Toggle" ], "enum_andor":[ "No other condition", "AND", "OR" ], "enum_enabled":[ "Disabled", "Enabled" ], "enum_onoff":[ "Off", "On" ], "enum_bool":[ "false", "true" ], "enum_triggeredge":[ "Falling", "Rising" ], "enum_errhilo":[ "CEL on all errors", "Ignore low condition", "Ignore high condition", "Ignore all errors" ], "enum_canspeed":[ "Disabled", "62.5kbit", "83.3kbit", "100kbit", "125kbit", "250kbit", "500kbit", "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":[ [ 65535, "Always off" ], [ 32767, "Always on" ], [ 0, "Digital in 1" ], [ 1, "Digital in 2" ], [ 5, "Digital in 3" ], [ 6, "Digital in 4" ], [ 4, "Digital in 5" ], [ 19, "Digital in 6" ], [ 20, "Digital in 7" ], [ 21, "Digital in 8" ], [ 22, "Ignition switch input" ], [ 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" ], [ 16, "Analog 13" ], [ 17, "Analog 14" ], [ 18, "Analog 15" ], [ 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" ], [ 80, "CAN 2 source 0" ], [ 81, "CAN 2 source 1" ], [ 82, "CAN 2 source 2" ], [ 83, "CAN 2 source 3" ], [ 84, "CAN 2 source 4" ], [ 85, "CAN 2 source 5" ], [ 86, "CAN 2 source 6" ], [ 87, "CAN 2 source 7" ], [ 88, "CAN 2 source 8" ], [ 89, "CAN 2 source 9" ], [ 90, "CAN 2 source 10" ], [ 91, "CAN 2 source 11" ], [ 92, "CAN 2 source 12" ], [ 93, "CAN 2 source 13" ], [ 94, "CAN 2 source 14" ], [ 95, "CAN 2 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" ], [ 1025, "CAN keypad 1 button 1" ], [ 1026, "CAN keypad 1 button 2" ], [ 1027, "CAN keypad 1 button 3" ], [ 1028, "CAN keypad 1 button 4" ], [ 1029, "CAN keypad 1 button 5" ], [ 1030, "CAN keypad 1 button 6" ], [ 1031, "CAN keypad 1 button 7" ], [ 1032, "CAN keypad 1 button 8" ], [ 1033, "CAN keypad 1 button 9" ], [ 1034, "CAN keypad 1 button 10" ], [ 1035, "CAN keypad 1 button 11" ], [ 1036, "CAN keypad 1 button 12" ], [ 1037, "CAN keypad 1 button 13" ], [ 1038, "CAN keypad 1 button 14" ], [ 1039, "CAN keypad 1 button 15" ], [ 1041, "CAN keypad 2 button 1" ], [ 1042, "CAN keypad 2 button 2" ], [ 1043, "CAN keypad 2 button 3" ], [ 1044, "CAN keypad 2 button 4" ], [ 1045, "CAN keypad 2 button 5" ], [ 1046, "CAN keypad 2 button 6" ], [ 1047, "CAN keypad 2 button 7" ], [ 1048, "CAN keypad 2 button 8" ], [ 1049, "CAN keypad 2 button 9" ], [ 1050, "CAN keypad 2 button 10" ], [ 1051, "CAN keypad 2 button 11" ], [ 1052, "CAN keypad 2 button 12" ], [ 1053, "CAN keypad 2 button 13" ], [ 1054, "CAN keypad 2 button 14" ], [ 1055, "CAN keypad 2 button 15" ], [ 1057, "CAN keypad 3 button 1" ], [ 1058, "CAN keypad 3 button 2" ], [ 1059, "CAN keypad 3 button 3" ], [ 1060, "CAN keypad 3 button 4" ], [ 1061, "CAN keypad 3 button 5" ], [ 1062, "CAN keypad 3 button 6" ], [ 1063, "CAN keypad 3 button 7" ], [ 1064, "CAN keypad 3 button 8" ], [ 1065, "CAN keypad 3 button 9" ], [ 1066, "CAN keypad 3 button 10" ], [ 1067, "CAN keypad 3 button 11" ], [ 1068, "CAN keypad 3 button 12" ], [ 1069, "CAN keypad 3 button 13" ], [ 1070, "CAN keypad 3 button 14" ], [ 1071, "CAN keypad 3 button 15" ], [ 1073, "CAN keypad 4 button 1" ], [ 1074, "CAN keypad 4 button 2" ], [ 1075, "CAN keypad 4 button 3" ], [ 1076, "CAN keypad 4 button 4" ], [ 1077, "CAN keypad 4 button 5" ], [ 1078, "CAN keypad 4 button 6" ], [ 1079, "CAN keypad 4 button 7" ], [ 1080, "CAN keypad 4 button 8" ], [ 1081, "CAN keypad 4 button 9" ], [ 1082, "CAN keypad 4 button 10" ], [ 1083, "CAN keypad 4 button 11" ], [ 1084, "CAN keypad 4 button 12" ], [ 1085, "CAN keypad 4 button 13" ], [ 1086, "CAN keypad 4 button 14" ], [ 1087, "CAN keypad 4 button 15" ], [ 32768, "Digital in 1 inverted" ], [ 32769, "Digital in 2 inverted" ], [ 32773, "Digital in 3 inverted" ], [ 32774, "Digital in 4 inverted" ], [ 32772, "Digital in 5 inverted" ], [ 32787, "Digital in 6 inverted" ], [ 32788, "Digital in 7 inverted" ], [ 32789, "Digital in 8 inverted" ], [ 32790, "Ignition switch inverted" ], [ 32775, "Analog 0 inverted" ], [ 32776, "Analog 1 inverted" ], [ 32777, "Analog 2 inverted" ], [ 32778, "Analog 3 inverted" ], [ 32770, "Analog 4 inverted" ], [ 32771, "Analog 5 inverted" ], [ 32779, "Analog 8 inverted" ], [ 32780, "Analog 9 inverted" ], [ 32781, "Analog 10 inverted" ], [ 32782, "Analog 11 inverted" ], [ 32783, "Analog 12 inverted" ], [ 32784, "Analog 13 inverted" ], [ 32785, "Analog 14 inverted" ], [ 32786, "Analog 15 inverted" ], [ 32800, "General purpose 1 inverted" ], [ 32801, "General purpose 2 inverted" ], [ 32802, "General purpose 3 inverted" ], [ 32803, "General purpose 4 inverted" ], [ 32804, "General purpose 5 inverted" ], [ 32806, "General purpose 6 inverted" ], [ 32807, "General purpose 7 inverted" ], [ 32808, "General purpose 8 inverted" ], [ 32810, "General purpose 9 inverted" ], [ 32811, "General purpose 10 inverted" ], [ 32812, "General purpose 11 inverted" ], [ 32813, "General purpose 12 inverted" ], [ 32814, "General purpose 13 inverted" ], [ 32815, "General purpose 14 inverted" ], [ 32816, "General purpose 15 inverted" ], [ 32817, "General purpose 16 inverted" ], [ 32821, "Cruise control overspeed inverted" ], [ 32824, "Flip flop 1 inverted" ], [ 32825, "Flip flop 2 inverted" ], [ 32826, "Flip flop 3 inverted" ], [ 32827, "Flip flop 4 inverted" ], [ 32828, "Flip flop 5 inverted" ], [ 32829, "Flip flop 6 inverted" ], [ 32830, "Flip flop 7 inverted" ], [ 32831, "Flip flop 8 inverted" ], [ 32832, "CAN source 0 inverted" ], [ 32833, "CAN source 1 inverted" ], [ 32834, "CAN source 2 inverted" ], [ 32835, "CAN source 3 inverted" ], [ 32836, "CAN source 4 inverted" ], [ 32837, "CAN source 5 inverted" ], [ 32838, "CAN source 6 inverted" ], [ 32839, "CAN source 7 inverted" ], [ 32840, "CAN source 8 inverted" ], [ 32841, "CAN source 9 inverted" ], [ 32842, "CAN source 10 inverted" ], [ 32843, "CAN source 11 inverted" ], [ 32844, "CAN source 12 inverted" ], [ 32845, "CAN source 13 inverted" ], [ 32846, "CAN source 14 inverted" ], [ 32847, "CAN source 15 inverted" ], [ 32848, "CAN 2 source 0 inverted" ], [ 32849, "CAN 2 source 1 inverted" ], [ 32850, "CAN 2 source 2 inverted" ], [ 32851, "CAN 2 source 3 inverted" ], [ 32852, "CAN 2 source 4 inverted" ], [ 32853, "CAN 2 source 5 inverted" ], [ 32854, "CAN 2 source 6 inverted" ], [ 32855, "CAN 2 source 7 inverted" ], [ 32856, "CAN 2 source 8 inverted" ], [ 32857, "CAN 2 source 9 inverted" ], [ 32858, "CAN 2 source 10 inverted" ], [ 32859, "CAN 2 source 11 inverted" ], [ 32860, "CAN 2 source 12 inverted" ], [ 32861, "CAN 2 source 13 inverted" ], [ 32862, "CAN 2 source 14 inverted" ], [ 32863, "CAN 2 source 15 inverted" ], [ 32864, "User program output 0 inverted" ], [ 32865, "User program output 1 inverted" ], [ 32866, "User program output 2 inverted" ], [ 32867, "User program output 3 inverted" ], [ 32868, "User program output 4 inverted" ], [ 32869, "User program output 5 inverted" ], [ 32870, "User program output 6 inverted" ], [ 32871, "User program output 7 inverted" ], [ 32872, "User program output 8 inverted" ], [ 32873, "User program output 9 inverted" ], [ 32874, "User program output 10 inverted" ], [ 32875, "User program output 11 inverted" ], [ 32876, "User program output 12 inverted" ], [ 32877, "User program output 13 inverted" ], [ 32878, "User program output 14 inverted" ], [ 32879, "User program output 15 inverted" ], [ 32880, "Remote bit 0 inverted" ], [ 32881, "Remote bit 1 inverted" ], [ 32882, "Remote bit 2 inverted" ], [ 32883, "Remote bit 3 inverted" ], [ 32884, "Remote bit 4 inverted" ], [ 32885, "Remote bit 5 inverted" ], [ 32886, "Remote bit 6 inverted" ], [ 32887, "Remote bit 7 inverted" ], [ 33793, "CAN keypad 1 button 1 inverted" ], [ 33794, "CAN keypad 1 button 2 inverted" ], [ 33795, "CAN keypad 1 button 3 inverted" ], [ 33796, "CAN keypad 1 button 4 inverted" ], [ 33797, "CAN keypad 1 button 5 inverted" ], [ 33798, "CAN keypad 1 button 6 inverted" ], [ 33799, "CAN keypad 1 button 7 inverted" ], [ 33800, "CAN keypad 1 button 8 inverted" ], [ 33801, "CAN keypad 1 button 9 inverted" ], [ 33802, "CAN keypad 1 button 10 inverted" ], [ 33803, "CAN keypad 1 button 11 inverted" ], [ 33804, "CAN keypad 1 button 12 inverted" ], [ 33805, "CAN keypad 1 button 13 inverted" ], [ 33806, "CAN keypad 1 button 14 inverted" ], [ 33807, "CAN keypad 1 button 15 inverted" ], [ 33809, "CAN keypad 2 button 1 inverted" ], [ 33810, "CAN keypad 2 button 2 inverted" ], [ 33811, "CAN keypad 2 button 3 inverted" ], [ 33812, "CAN keypad 2 button 4 inverted" ], [ 33813, "CAN keypad 2 button 5 inverted" ], [ 33814, "CAN keypad 2 button 6 inverted" ], [ 33815, "CAN keypad 2 button 7 inverted" ], [ 33816, "CAN keypad 2 button 8 inverted" ], [ 33817, "CAN keypad 2 button 9 inverted" ], [ 33818, "CAN keypad 2 button 10 inverted" ], [ 33819, "CAN keypad 2 button 11 inverted" ], [ 33820, "CAN keypad 2 button 12 inverted" ], [ 33821, "CAN keypad 2 button 13 inverted" ], [ 33822, "CAN keypad 2 button 14 inverted" ], [ 33823, "CAN keypad 2 button 15 inverted" ], [ 33825, "CAN keypad 3 button 1 inverted" ], [ 33826, "CAN keypad 3 button 2 inverted" ], [ 33827, "CAN keypad 3 button 3 inverted" ], [ 33828, "CAN keypad 3 button 4 inverted" ], [ 33829, "CAN keypad 3 button 5 inverted" ], [ 33830, "CAN keypad 3 button 6 inverted" ], [ 33831, "CAN keypad 3 button 7 inverted" ], [ 33832, "CAN keypad 3 button 8 inverted" ], [ 33833, "CAN keypad 3 button 9 inverted" ], [ 33834, "CAN keypad 3 button 10 inverted" ], [ 33835, "CAN keypad 3 button 11 inverted" ], [ 33836, "CAN keypad 3 button 12 inverted" ], [ 33837, "CAN keypad 3 button 13 inverted" ], [ 33838, "CAN keypad 3 button 14 inverted" ], [ 33839, "CAN keypad 3 button 15 inverted" ], [ 33841, "CAN keypad 4 button 1 inverted" ], [ 33842, "CAN keypad 4 button 2 inverted" ], [ 33843, "CAN keypad 4 button 3 inverted" ], [ 33844, "CAN keypad 4 button 4 inverted" ], [ 33845, "CAN keypad 4 button 5 inverted" ], [ 33846, "CAN keypad 4 button 6 inverted" ], [ 33847, "CAN keypad 4 button 7 inverted" ], [ 33848, "CAN keypad 4 button 8 inverted" ], [ 33849, "CAN keypad 4 button 9 inverted" ], [ 33850, "CAN keypad 4 button 10 inverted" ], [ 33851, "CAN keypad 4 button 11 inverted" ], [ 33852, "CAN keypad 4 button 12 inverted" ], [ 33853, "CAN keypad 4 button 13 inverted" ], [ 33854, "CAN keypad 4 button 14 inverted" ], [ 33855, "CAN keypad 4 button 15 inverted" ] ], "map_outputs":[ [ 0, "Disabled" ], [ 128, "Always on" ], [ 1, "Fuel pump relay" ], [ 2, "Fan relay" ], [ 3, "Check engine light" ], [ 4, "Glow plug relay" ], [ 5, "Mercedes Benz PWM glow relay" ], [ 6, "Cruise control light" ], [ 31, "Cruise control overspeed" ], [ 7, "Starter relay" ], [ 8, "Glow plug wait indicator" ], [ 9, "Transbrake solenoid" ], [ 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" ], [ 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, "Stepper phase 1A" ], [ 49, "Stepper phase 1B" ], [ 50, "Stepper phase 2A" ], [ 51, "Stepper phase 2B" ], [ 28, "Water injection pump" ], [ 29, "Nitrous oxide" ], [ 30, "Nitrous oxide stage 2" ], [ 52, "Extra injector 1" ], [ 53, "Extra injector 2" ], [ 54, "Extra injector 3" ], [ 55, "Extra injector 4" ], [ 56, "Extra injector 5" ], [ 57, "Extra injector 6" ], [ 58, "Extra injector 7" ], [ 59, "Extra injector 8" ], [ 60, "GP PID 1 polarity output" ], [ 61, "GP PID 2 polarity output" ] ], "map_pwmoutputs":[ [ 65, "Boost control" ], [ 66, "Generic PWM" ], [ 67, "Rail pressure control" ], [ 68, "PWM variable speed fan" ], [ 69, "Generic PID control" ], [ 70, "Generic PID control 2" ], [ 73, "Nitrous oxide PWM control" ], [ 74, "Nitrous oxide stage 2 PWM control" ], [ 75, "Water injection PWM control" ], [ 76, "Secondary rail pressure control" ], [ 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" ], [ 91, "Simple PWM 1" ], [ 92, "Simple PWM 2" ], [ 93, "Simple PWM 3" ], [ 94, "Simple PWM 4" ] ], "enum_faultlevels":[ "Ignored", "CEL only", "Fault mode 1", "Fault mode 2", "Fault mode 3", "Fault mode 4", "Fault mode 5", "Fault mode 6" ], "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", "Frequency and duty cycle", "Mercedes Benz oil level sensor" ] }, "presets":[ { "category":"Common firing orders", "data":[ { "name":"3 cyl 4 stroke 1-3-2", "data":{ "cylcount":3, "baseangle":[ 0, 480, 240 ] } }, { "name":"4 cyl 4 stroke 1-3-4-2", "data":{ "cylcount":4, "baseangle":[ 0, 540, 180, 360 ] } }, { "name":"Mercedes Benz 5 cylinder", "data":{ "cylcount":5, "baseangle":[ 0.000000, 144.000000, 576.000000, 288.000000, 432.000000 ] } }, { "name":"I6 4 stroke 1-5-3-6-2-4", "data":{ "cylcount":6, "baseangle":[ 0, 480, 240, 600, 120, 360 ] } } ] }, { "category":"I\/O assignment presets", "data":[ { "name":"Mercedes Benz OM61x plug and play I\/O set up", "description":"W163, W210, W203 cars with OM611, OM612, OM613. Some wiring modification may be necessary", "data":{ "output.0":"Disabled", "output.1":"Disabled", "output.2":"Rail pressure control", "output.3":"Disabled", "output.4":"Boost control", "output.5":"Disabled", "output.6":"Disabled", "output.7":"PWM variable speed fan", "output.8":"Disabled", "output.9":"Starter relay", "output.10":"Mercedes Benz PWM glow relay", "pedalprimaryrange":[ 0.400000, 4.700000 ], "pedalprimarylimits":[ 0.200000, 4.900000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 0.170000, 2.380000 ], "pedalsecondarypos":[ 0, 100 ], "pedalsecondarylimits":[ 0.100000, 4 ], "appsinglepot":"Dual potentiometer", "mapadcrange":[ 0.500000, 5 ], "mapvaluerange":[ 150, 2830 ], "mapvalidrange":[ 0.300000, 5 ], "ectsource":"analog2", "coolantbpcount":19, "coolantadc":[ 0.000000, 0.338000, 0.382000, 0.510000, 0.680000, 0.895000, 1.168000, 1.526000, 1.949000, 2.206000, 2.369000, 2.683000, 3.000000, 3.322000, 3.648000, 3.979000, 4.315000, 4.656000, 5.000000 ], "coolantvalues":[ 140.000000, 93.000000, 88.900000, 78.700000, 68.700000, 59.500000, 50.400000, 41.300000, 32.100000, 27.000000, 23.000000, 16.000000, 9.000000, 3.000000, -3.000000, -9.000000, -16.000000, -22.000000, -32.000000 ], "airtempsource":"analog3", "airtempbpcount":17, "airtempadc":[ 4.957000, 4.834000, 4.630000, 4.324000, 3.901000, 3.521000, 3.179000, 2.784000, 2.305000, 1.888000, 1.433000, 1.167000, 0.890000, 0.709000, 0.587000, 0.283000, 0.000000 ], "airtempvalues":[ -40.000000, -30.000000, -20.000000, -10.000000, 2.000000, 12.000000, 22.100000, 31.500000, 41.000000, 50.200000, 60.200000, 68.900000, 79.800000, 88.400000, 94.800000, 110.000000, 150.000000 ], "fpsource":"analog4", "fpbpcount":2, "fpvoltages":[ 0.515000, 4.515000 ], "fpvalues":[ 0, 1500 ], "fpvalidrange":[ 0.200000, 4.900000 ] } } ] }, { "category":"Crank\/cam trigger presets", "data":[ { "name":"Mercedes Benz 4 cylinder", "description":"OM611 plug and play injector assignment", "data":{ "triggertoothcount":2, "ignoredteeth":5, "rpmfilter":50, "camfilter":100, "triggerteeth":[ 6, 18 ], "repeattooth":[ 56, 0 ], "syncratio":0.550000, "syncangle":102, "cranksyncmode":"Double check missing tooth", "triggermode":"Versatile multi tooth", "camsyncmode":"Count cam impulses", "camcount":1, "cylcount":4, "baseangle":[ 0.000000, 540, 180, 360 ], "injassign":[ 1, 6, 5, 3 ] } }, { "name":"Mercedes Benz 5 cylinder", "description":"OM612 plug and play injector assignment", "data":{ "triggertoothcount":2, "ignoredteeth":5, "rpmfilter":50, "camfilter":100, "triggerteeth":[ 6, 18 ], "repeattooth":[ 56, 0 ], "syncratio":0.550000, "syncangle":102, "cranksyncmode":"Double check missing tooth", "triggermode":"Versatile multi tooth", "camsyncmode":"Count cam impulses", "camcount":1, "cylcount":5, "baseangle":[ 0.000000, 144.000000, 576.000000, 288.000000, 432.000000 ], "injassign":[ 5, 1, 2, 6, 3 ] } }, { "name":"Mercedes Benz 6 cylinder", "description":"60-2 on crank", "data":{ "triggertoothcount":2, "ignoredteeth":5, "rpmfilter":50, "camfilter":100, "triggerteeth":[ 6, 18 ], "repeattooth":[ 56, 0 ], "syncratio":0.550000, "syncangle":102, "cranksyncmode":"Double check missing tooth", "triggermode":"Versatile multi tooth", "camsyncmode":"Count cam impulses", "camcount":1, "cylcount":6, "baseangle":[ 0.000000, 480.000000, 240.000000, 600.000000, 120.000000, 360.000000 ], "injassign":[ 1, 2, 3, 4, 5, 6 ] } } ] }, { "category":"Accelerator pedals", "data":[ { "name":"Mercedes Benz CDI accelerator pedal sensor", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.500000, 4.700000 ], "pedalprimarylimits":[ 0.100000, 4.900000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 0.260000, 2.380000 ], "pedalsecondarypos":[ 0, 100 ], "pedalsecondarylimits":[ 0.100000, 4 ], "appsinglepot":"Dual potentiometer" } }, { "name":"Mercedes Benz OM606 or first gen Sprinter pedal", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.350000, 4 ], "pedalprimarylimits":[ 0.200000, 4.800000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 1.500000, 3.500000 ], "pedalsecondarypos":[ 100.000000, 30 ], "pedalsecondarylimits":[ 0, 5 ], "appsinglepot":"Single potentiometer + switch", "maxsecondaryatidle":35 } }, { "name":"BMW E46 accelerator pedal", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.700000, 4.600000 ], "pedalprimarylimits":[ 0.200244, 4.899873 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 0.350000, 2.300000 ], "pedalsecondarypos":[ 0.000000, 100.000296 ], "pedalsecondarylimits":[ 0.100122, 3.999996 ], "appsinglepot":"Dual potentiometer" } }, { "name":"Nissan Patrol ZD30 common rail pedal sensor", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.780000, 4.000000 ], "pedalprimarylimits":[ 0.400000, 4.600000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 0.500000, 2.100000 ], "pedalsecondarypos":[ 0.000000, 100.000296 ], "pedalsecondarylimits":[ 0.200000, 3.999996 ], "appsinglepot":"Dual potentiometer" } }, { "name":"Nissan Patrol ZD30\/VP44 pedal sensor", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.500000, 3.200000 ], "pedalprimarylimits":[ 0.200000, 4.900000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 1.500000, 2.400000 ], "pedalsecondarypos":[ 100.000000, 10 ], "pedalsecondarylimits":[ 0, 5 ], "appsinglepot":"Single potentiometer + switch", "maxsecondaryatidle":100 } }, { "name":"Jeep Rubicon pedal sensor", "data":{ "driverinputselect":0, "pedalprimaryrange":[ 0.500000, 4.558000 ], "pedalprimarylimits":[ 0.200000, 4.900000 ], "pedalsecondarypoints":2, "pedalsecondaryvolts":[ 0.250000, 2.270000 ], "pedalsecondarypos":[ 0, 100 ], "pedalsecondarylimits":[ 0.100000, 4.500000 ], "appsinglepot":"Dual potentiometer" } } ] }, { "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":"BMW M57 coolant temperature sensor", "data":{ "coolantbpcount":20, "coolantadc":[ 0.000000, 0.150183, 0.277167, 0.335775, 0.444444, 0.573870, 0.768009, 1.036629, 1.341879, 1.733820, 1.943832, 2.153844, 2.678874, 2.978019, 3.322341, 3.648348, 3.979239, 4.315014, 4.655673, 4.999995 ], "coolantvalues":[ 140.000000, 111.000000, 94.300000, 87.900000, 78.200000, 69.700000, 60.000000, 50.300000, 41.600000, 32.700000, 28.200000, 24.400000, 15.200000, 10.000000, 3.000000, -3.000000, -9.000000, -16.000000, -24.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":"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":"Mercedes Benz CDI plug and play", "description":"Developed on ML270 CDI, should work for W210 E320 CDI and other cars of the era also.", "data":{ "canmode":"500kbit", "customcanenable":"Enabled", "customcaninterval":[ "50Hz", "50Hz", "50Hz", "50Hz", "10Hz" ], "customcanchecksums":[ "None", "None", "None", "None", "None" ], "customcanaddr":[ "0x210", "0x212", "0x308", "0x312", "0x608" ], "customcanlength":[ 2, 4, 4, 4, 2 ], "customcantxbytes":[ 8, 8, 8, 8, 8 ], "customcanfiller":[ 0, 0, 0, 64, 0, 0, 125, 44, 2, 238, 32, 0, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 150, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 8, 43, 255, 0, 0, 255 ], "customcanoffsets":[ 2, 38, 0, 0, 2, 4, 6, 54, 1, 5, 27, 25, 0, 2, 4, 6, 0, 5, 0, 0 ], "customcandata":[ "effectiveapp", "effectiveapp", "const_zero", "const_zero", "torquerequest", "torquerequest", "torquerequestlimited", "tq_limited", "enginespeed", "coolanttemp", "glow_light", "cel", "torqueactual", "torqueactual", "torquereserve", "torqueidlerequest", "coolanttemp", "enginespeed" ], "customcanformat":[ "u8", "bit", "bit", "bit", "u16be", "u16be", "u16be", "bit", "u16be", "u8", "bit", "bit", "u16be", "u16be", "u16be", "u16be", "u8", "u16be", "bit", "bit" ], "customcanbitshifts":[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "customcanbitshort":[ 0, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0, 0, 13, 13, 13, 13, 0, 0, 0, 0 ], "customcanrange":[ 0, 1023, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2331, 4731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2331, 4731, 0, 0, 0, 0, 0, 0 ], "customcanoutput":[ 0, 250, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0 ], "customcantxconds":[ "Always on", "Always on", "Always on", "Always on", "Always on" ], "canrxenable":"Enabled", "canrxname":[ "Road speed", "tq limit TCM", "tq limit ESP", "start request", "cruise switch", "brake pedal", "Air conditioning" ], "canrxdescr":[ "u16be", "u16be", "u16be", "bit", "u8", "bit", "bit" ], "canrxaddr":[ 512, 536, 768, 576, 576, 1064, 1072 ], "canrxoffset":[ 2, 0, 4, 8, 0, 11, 6 ], "canrxbits":[ 0, 0, 0, 13, 0, 13, 0, 0, 0, 4, 0, 0, 0, 0 ], "canrxrange":[ 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "canrxoutput":[ 0, 46442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "canrxtimeout":[ 2, 2, 2, 2, 2, 2, 2 ], "canrxdefault":[ 0, 0, 0, 0, 0, 0, 0 ], "cruisesource":"cansrc4", "cruisebuttonmap":[ 0, 1, 8, 4 ], "brakeinput":"CAN source 5", "torquelimitrequestsrc":"cansrc2", "torquelimitsrc":"cansrc1", "torquelimitrequestenable":"Always on", "torquelimitenable":"Always on", "startrequest":"CAN source 3", "idleupin2":"CAN source 6", "idleup2adder":"Adder", "idleuprpm2":150, "airconinput":"CAN source 6", "vsssource":"CAN source 0" } } ] } ], "confdef":[ { "page":0, "size":24576, "data":[ { "id":"bits0", "type":3, "address":12 }, { "id":"bits1", "type":3, "address":16 }, { "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 is translated to pressure.", "address":12080 }, { "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":20092 }, { "id":"mapvaluerange", "min":0, "max":65535, "type":2, "array":2, "unit":"mbar", "descr":"The calibration values for the MAP sensor.", "address":12084 }, { "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":12088 }, { "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":12224 }, { "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":12154 }, { "id":"coolantvalues", "min":-100, "max":200, "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":12090 }, { "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":12374 }, { "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":12218 }, { "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":12222 }, { "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":12225 }, { "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":12290 }, { "id":"airtempvalues", "min":-100, "max":200, "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":12226 }, { "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":12354 }, { "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":12358 }, { "id":"baseangle", "min":0.000000, "max":719.900000, "type":2, "unit":"°ATDC", "scale":0.010986, "array":16, "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":13234 }, { "id":"cylcount", "type":1, "min":0, "max":16, "reset":1, "descr":"Number of cylinders or combustion chambers the engine has.", "address":13216 }, { "id":"rpmbins", "input":"enginespeed", "min":0, "max":65000, "type":2, "array":32, "cols":"rpmbincount", "descr":"Engine speed breakpoints used for fuel maps.", "address":7318 }, { "id":"fuelqtyrange", "type":8, "options":[ "650 mm3", "1300 mm3", "1950 mm3", "2600 mm3", "3250 mm3" ], "descr":"By default the controller is set up for passenger car sized engines, and the 16 bits used for the fuel quantity maps allows values up to 650 mm3 with a granularity of 0.01mm3. By changing this setting it is possible to change the scale of all the fuel quantity functions to be more suitable for larger engines.", "address":23442 }, { "id":"fuelrequestmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"appbincount", "cols":"rpmbincount", "digits":2, "descr":"This is the primary fuel map. It specifies the maximum fuel volume injected depending on engine speed and accelerator pedal position, subject to limiters.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":150 }, { "id":"pilotinjmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":3222 }, { "id":"fuellimitmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"mapbincount", "cols":"rpmbincount", "digits":2, "descr":"This map specifies the maximum injected fuel quantity as a function of charge air pressure and engine speed. Subject to modifiers.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":1174 }, { "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":13230 }, { "id":"sparesyncangle", "min":0, "max":719.900000, "type":2, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"This is to mark the sync angle of the redundant crank trigger if a redundant sensor is hooked up.\r\nThe way the redundant sensor strategy works is that digital input 4 can be configured as a redundant crank trigger input and if no events are received on the main crank trigger input the ECU starts to consider the redundant sensor instead on start up.", "address":13232 }, { "id":"railpressurebins", "type":2, "array":32, "cols":"railpbincount", "input":"railpressure", "unit":"bar", "scale":0.100000, "digits":1, "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"bar", "digits":1, "scale":0.100000, "input":"railpressure", "endif":true }, [ "controlmode", "!=", "Common rail" ], { "unit":"RPM", "digits":0, "scale":1, "input":"enginespeed" } ], "address":7574 }, { "id":"fuelvolbins", "type":2, "array":32, "cols":"fuelvolbincount", "input":"mainfuelqty", "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":7510, "max":650 }, { "id":"appbins", "type":2, "array":32, "cols":"appbincount", "input":"effectiveapp", "unit":"%", "digits":1, "scale":0.097752, "address":7382 }, { "id":"mapbins", "type":2, "array":32, "cols":"mapbincount", "input":"map", "unit":"mbar", "address":7446 }, { "id":"rpmbincount", "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 512.", "address":7638 }, { "id":"appbincount", "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 512.", "address":12426 }, { "id":"mapbincount", "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 512.", "address":7641 }, { "id":"fuelvolbincount", "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 512.", "address":7640 }, { "id":"railpbincount", "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 512.", "address":7639 }, { "id":"triggertoothcount", "type":1, "descr":"This setting specifies the number of different trigger tooth configuration cells in versatile multi tooth trigger mode.", "address":13266 }, { "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":"camcountrange", "type":1, "array":2, "descr":"Count range to use when cam sync mode is set to count crank impulses since cam impulse or count crank impulses between cam impulses.", "address":13679 }, { "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":13668 }, { "id":"camcountpattern", "type":1, "array":8, "cols":"campatternsize", "descr":"Pattern used for specifying cam impulse counts in cam count pattern mode.", "address":13669 }, { "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":13677 }, { "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":16452 }, { "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":16460 }, { "id":"tachcylcount", "type":2, "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":12428 }, { "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":12360 }, { "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":12362 }, { "id":"idleKp", "type":2, "array":16, "sign":1, "scale":0.000244, "digits":4, "address":13732 }, { "id":"idleKi", "type":2, "array":16, "sign":1, "scale":0.000244, "digits":4, "address":13764 }, { "id":"idleKd", "type":2, "array":16, "sign":1, "scale":0.000244, "digits":4, "address":13796 }, { "id":"idleImin", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"To limit integral wind-up, this setting specifies the minimum integral effect on idle control.", "address":13828 }, { "id":"idleImax", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"To limit integral wind-up, this setting specifies the maximum integral effect on idle control.", "address":13830 }, { "id":"idleruntimepts", "type":2, "array":8, "unit":"s", "scale":0.001000, "digits":1, "input":"runtime", "address":14392 }, { "id":"idleruntimeIrange", "type":1, "array":16, "rows":2, "cols":8, "digits":1, "scale":0.392157, "unit":"%", "descr":"To control integral wind up on start up, this table adjusts the allowed integral range, where a value of 100% allows the full value set by the I min and max parameters", "address":14408 }, { "id":"idleafterstartspeedadder", "type":1, "sign":1, "unit":"RPM", "array":128, "scale":10, "rows":8, "cols":16, "descr":"This table can be used to increase or decrease the idle speed target during and shortly after engine start up.", "address":14424 }, { "id":"idleafterstartfueladder", "type":2, "sign":1, "array":128, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "rows":8, "cols":16, "descr":"This table can help with cold starts by adding more feed forward fuel to the idle control loop shortly after starting. It can also reduce the idle fuel request if that is for any reason desirable shortly after start up.", "address":14552 }, { "id":"idleoptions", "type":1, "address":14808 }, { "id":"idlesyncenable", "type":8, "address":"idleoptions.0.0", "options":"enum_enabled", "descr":"When this option is enabled, the idle service interval should be set to something absurdly long like 200 milliseconds, and from start up, up to 500 RPM above the maximum configured idle speed, the idle service will run after every combustion event." }, { "id":"idlePmin", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"To prevent overly agressive idle control, this setting specifies the minimum proportional effect on idle control.", "address":17316 }, { "id":"idlePmax", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"To prevent overly agressive idle control, this setting specifies the maximum proportional effect on idle control.", "address":17318 }, { "id":"idletarget", "array":16, "unit":"RPM", "type":2, "descr":"Idle speed PID loop setpoint.", "address":13696 }, { "id":"idlemaxrpm", "type":2, "unit":"RPM", "descr":"Above this engine speed the idle control is inactive", "address":17320 }, { "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":13730 }, { "id":"idlemaxapp", "unit":"%", "type":2, "digits":1, "min":0.000000, "max":100.000000, "scale":0.097656, "descr":"If the accelerator pedal position exceeds this value, the idle control loop will not run.", "address":13728 }, { "id":"idleerrorbins", "type":2, "sign":1, "input":"idleerror", "array":16, "descr":"Idle error describes how far from the target idle speed the engine is running. A positive number means engine is running faster than the target and the contrary for a negative number.", "address":17188 }, { "id":"idlePDmap", "type":2, "array":128, "cols":16, "rows":8, "sign":1, "scale":0.010000, "digits":2, "max":300, "min":-300, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"This map affects idle fuelling directly based on a combination of idle error and engine speed rate of change. The output is stored in real time variable idlePD.", "address":13832 }, { "id":"idleIDmap", "type":2, "array":128, "cols":16, "rows":8, "sign":1, "scale":0.010000, "digits":2, "max":300, "min":-300, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"This map affects the idle control integral value directly based on idle error and engine speed rate of change.", "address":14088 }, { "id":"idlerpmrocbins", "type":2, "sign":1, "input":"deltarpm", "scale":20, "unit":"RPM", "array":8, "address":14344 }, { "id":"idleKpmod", "type":2, "digits":3, "scale":0.000977, "array":16, "descr":"This modifier adjusts the P factor based on idle error value and is multiplied with the regular P factor setting. A value of 1 has no effect, less than 1 reduces the gain and greater than 1 increases it.", "address":17220 }, { "id":"idleKimod", "type":2, "digits":3, "scale":0.000977, "array":16, "descr":"This modifier adjusts the I factor based on idle error value and is multiplied with the regular I factor setting. A value of 1 has no effect, less than 1 reduces the gain and greater than 1 increases it.", "address":17252 }, { "id":"idleKdmod", "type":2, "digits":3, "scale":0.000977, "array":16, "descr":"This modifier adjusts the D factor based on idle error value and is multiplied with the regular D factor setting. A value of 1 has no effect, less than 1 reduces the gain and greater than 1 increases it.", "address":17284 }, { "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 3 pin 49. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12406 }, { "id":"output.1", "type":8, "options":"map_outputs", "descr":"This setting specifies the output function of connector 4 pin 10. This pin has no PWM capability.", "address":12407 }, { "id":"output.2", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 4 pin 21. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12408 }, { "id":"output.3", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 3 pin 50. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12409 }, { "id":"output.4", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 3 pin 48. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12410 }, { "id":"output.5", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 4 pin 33. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12411 }, { "id":"output.6", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 3 pin 51. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12412 }, { "id":"output.7", "type":8, "options":"map_outputs", "extraopts":"map_pwmoutputs", "reset":1, "descr":"This setting specifies the output function of connector 3 pin 52. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12413 }, { "id":"output.8", "type":8, "options":"map_outputs", "extraopts":[ [ 89, "Suction control valve 1" ] ], "descr":"This setting specifies the output function of connector 3 pin 12. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12414 }, { "id":"output.9", "type":8, "options":"map_outputs", "extraopts":[ [ 90, "Suction control valve 2" ] ], "descr":"This setting specifies the output function of connector 3 pin 43. After saving the changes, power cycling the controller may be required to fully apply the changes.", "address":12415 }, { "id":"output.10", "type":8, "options":"map_outputs", "descr":"This setting specifies the output function of connector 3 pin 25. This pin has a maximum current capacity of 1A and is not PWM capable except for Mercedes Benz glow plug control.", "address":12416 }, { "id":"output.11", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 200 and up.\r\nThis setting specifies the output function of connector 4 pin 38. This pin has a maximum current capacity of 1A and is not PWM capable.", "address":12417 }, { "id":"output.12", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 200 and up.\r\nThis setting specifies the output function of connector 4 pin 39. This pin has a maximum current capacity of 1A and is not PWM capable.", "address":12418 }, { "id":"output.13", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 200 and up.\r\nThis setting specifies the output function of connector 4 pin 40. This pin has a maximum current capacity of 1A and is not PWM capable.", "address":12419 }, { "id":"output.14", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 200 and up.\r\nThis setting specifies the output function of connector 4 pin 30. This pin has a maximum current capacity of 1A and is not PWM capable.", "address":12420 }, { "id":"output.15", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 300 and up.\r\nThis setting specifies the output function of connector 4 pin 29. This pin supplies 12V as opposed to ground like the other outputs. This pin has a maximum current capacity of 1A and is not PWM capable. If the output is to be paralleled with another source such as a switch, a diode must be placed inline to prevent back feeding 12V into the output.", "address":12421 }, { "id":"output.16", "type":8, "options":"map_outputs", "descr":"Only valid for controllers with serial number 400 and up.\r\nThis setting specifies the output function of connector 4 pin 32. This pin has a maximum current capacity of 1A and is not PWM capable.", "address":12422 }, { "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":12370 }, { "id":"fanhysteresis", "type":1, "scale":0.100000, "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":12372 }, { "id":"mainrevlimit", "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":12364 }, { "id":"revlimithyster", "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":12366 }, { "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":7852 }, { "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":8364 }, { "id":"boostminduty", "type":2, "array":256, "rows":"boosttargetbincount", "cols":"boostrpmbincount", "unit":"%", "digits":1, "scale":0.003052, "descr":"To restrict the range a VGT turbocharger is capable of operating in, for example to prevent excessive back pressure during transient conditions or to force a certain position during engine braking, this map is provided to set the minimum effort commanded by the turbocharger control (fully open position of VGT).\r\nPlease note that this sets the control effort, if you are using a linearisation function on the output that is applied after this map.", "address":8876 }, { "id":"boostmaxduty", "type":2, "array":256, "rows":"boosttargetbincount", "cols":"boostrpmbincount", "unit":"%", "digits":1, "scale":0.003052, "descr":"To restrict the range a VGT turbocharger is capable of operating in, for example to prevent excessive back pressure during transient conditions or to force a certain position during engine braking, this map is provided to set the maximum effort commanded by the turbocharger control (fully closed position of VGT).\r\nPlease note that this sets the control effort, if you are using a linearisation function on the output that is applied after this map.", "address":9388 }, { "id":"boostperiod", "min":1, "max":500, "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":10284 }, { "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":9916 }, { "id":"boostoptions", "type":2, "address":9994 }, { "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":10206 }, { "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":10230 }, { "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":10260 }, { "id":"boostdotbins", "type":2, "sign":1, "relative":1, "array":12, "cols":"boostdotbincount", "describedby":"boostpressuresource", "input":"boostdot", "descr":"The rate of change is computed as the change in control variable between two consecutive cycles of the control loop.", "address":10288 }, { "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":10204 }, { "id":"boostdotbincount", "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":10286 }, { "id":"boostPDmap", "type":2, "unit":"%", "scale":0.003052, "digits":1, "array":144, "sign":1, "rows":"boostdotbincount", "cols":"boosterrorbincount", "descr":"The result of this map goes to the boostPD variable, which is added to the P, I and D variables. This is an optional adder or even replacement for the P and D components.\r\nNote that unlike the P and D gains this map is in percentage units and directly affects the output duty cycle. Generally in the positive error region the numbers should be negative, and get more negative the bigger the error is, and the inverse is true in the other half of the map.", "address":10312 }, { "id":"boostIDmap", "type":2, "unit":"%", "scale":0.003052, "digits":2, "sign":1, "array":144, "rows":"boostdotbincount", "cols":"boosterrorbincount", "descr":"If enabled, the values in this table are added to the integral.", "address":10600 }, { "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":10888 }, { "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":10892 }, { "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":11404 }, { "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":11428 }, { "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":11458 }, { "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":11482 }, { "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":11452 }, { "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":11454 }, { "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":11456 }, { "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":11484 }, { "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":11488 }, { "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":12000 }, { "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":12024 }, { "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":12054 }, { "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":12078 }, { "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":12048 }, { "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":12050 }, { "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":12052 }, { "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":7840 }, { "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":7839 }, { "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":7838 }, { "id":"boostloadbins", "type":2, "array":32, "cols":"boostloadbincount", "describedby":"boostloadsource", "descr":"Breakpoints for the primary boost request input.", "address":7710 }, { "id":"boostloadsource", "type":9, "maxwidth":2, "descr":"Normally this is the fuel request.", "address":7844 }, { "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":7848 }, { "id":"boostrpmbins", "type":2, "unit":"RPM", "array":32, "input":"enginespeed", "cols":"boostrpmbincount", "address":7646 }, { "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":7774 }, { "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":10254 }, { "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":10256 }, { "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":10258 }, { "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":10202 }, { "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":12, "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":9918 }, { "id":"boostgp2switch", "type":12, "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":9920 }, { "id":"boostgp3switch", "type":12, "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":9922 }, { "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":9988 }, { "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":10060 }, { "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":10132 }, { "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":9992 }, { "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":10064 }, { "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":10136 }, { "id":"boostgp1breakpts", "type":2, "array":16, "cols":"boostgp1bpcount", "describedby":"boostgp1source", "address":9956 }, { "id":"boostgp2breakpts", "type":2, "array":16, "cols":"boostgp2bpcount", "describedby":"boostgp2source", "address":10028 }, { "id":"boostgp3breakpts", "type":2, "array":16, "cols":"boostgp3bpcount", "describedby":"boostgp3source", "address":10098 }, { "id":"boostgp1", "type":2, "array":16, "sign":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":9924 }, { "id":"boostgp2", "type":2, "array":16, "sign":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":9996 }, { "id":"boostgp3", "type":2, "array":16, "sign":1, "cols":"boostgp3bpcount", "describedby":"boostpressuresource", "descr":"The output of this function can be seen on real time variable 'boostgptrim3' when the trim is active.", "address":10066 }, { "id":"boostmapselect", "type":8, "array":8, "cols":[ "calpotassign.2", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate", "Alternate 2" ], "address":9900 }, { "id":"wgdutymapselect", "type":8, "array":8, "cols":[ "calpotassign.2", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":9908 }, { "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":10137 }, { "id":"boostdutybreakpts", "type":2, "array":16, "cols":"boostdutybpcount", "unit":"%", "scale":0.003052, "input":"boostctlcmd", "digits":1, "address":10138 }, { "id":"boostdutycurve", "type":2, "array":16, "cols":"boostdutybpcount", "unit":"%", "scale":0.003052, "digits":1, "address":10170 }, { "id":"triggermode", "type":8, "options":[ "Log only", "Versatile multi tooth", "Dual edge", "Duty cycle coded", "Equal spacing missing tooth", "Clueless missing tooth", "CAN source", "Speed only (no sync)" ], "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'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'Clueless missing tooth' is a mode to handle trigger wheels with several equally spaced gaps in the pattern that give no clue about where in the firing order the engine could possibly be and the only way to synchronise is to observe cam signal in relation to the tooth gaps.\r\n'CAN source' lets the ECU gets engine speed from a CAN network, an analog input, user program or anywhere else, it will not perform engine synchronous operations this way like fuel injection or but other strategies work.\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":13215 }, { "id":"enginespeedsrc", "type":9, "maxwidth":2, "descr":"If trigger mode is set to CAN source, the engine speed is taken from this variable", "address":13224 }, { "id":"triggerconfig0", "type":3, "address":13220 }, { "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. 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":16770 }, { "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":16771 }, { "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":118 }, { "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":12368 }, { "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":13228 }, { "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":16916 }, { "id":"sdloginterval", "min":4, "max":500, "type":1, "scale":1000, "inverse":1, "unit":"Hz", "address":13654 }, { "id":"sdlogburstinterval", "min":4, "max":500, "type":1, "scale":1000, "inverse":1, "unit":"Hz", "address":13655 }, { "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":13658 }, { "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":13660 }, { "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":13142 }, { "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":13178 }, { "id":"gpiocond1var0", "compact":0, "type":9, "address":12436 }, { "id":"gpiocond1val0", "compact":0, "type":3, "describedby":"gpiocond1var0", "address":12508 }, { "id":"gpiocond1hyster0", "compact":0, "type":3, "describedby":"gpiocond1var0", "relative":1, "address":12580 }, { "id":"gpiocond1param0", "compact":0, "type":1, "address":12652 }, { "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":12672 }, { "id":"gpiocond2val0", "compact":0, "type":3, "describedby":"gpiocond2var0", "address":12744 }, { "id":"gpiocond2hyster0", "compact":0, "type":3, "describedby":"gpiocond2var0", "relative":1, "address":12816 }, { "id":"gpiocond2param0", "compact":0, "type":1, "address":12888 }, { "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":12908 }, { "id":"gpiocond3val0", "compact":0, "type":3, "describedby":"gpiocond3var0", "address":12980 }, { "id":"gpiocond3hyster0", "compact":0, "type":3, "describedby":"gpiocond3var0", "relative":1, "address":13052 }, { "id":"gpiocond3param0", "compact":0, "type":1, "address":13124 }, { "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":"flowmap_filter", "type":2, "scale":0.001526, "digits":2, "descr":"This low pass filter can help rail pressure stability by quenching a feedback loop created by injector flow model too rapidly reacting to changes in rail pressure. It is an exponential decay filter where 0 is no filtering, 50% halves the impact of any immediate change in pressure and so on and so forth. The filter runs in beat with the rail pressure PID loop so changes in rail pressure control loop interval will affect the cut off frequency of the filter.", "address":22420 }, { "id":"extbaro", "type":8, "options":[ "Internal", "External" ], "address":"bits0.3.3", "reset":1, "descr":"To use the barometric sensor built into the ECU, select 'Internal'. Otherwise, to use an external sensor for barometric pressure, select 'External' and then select an input and calibration below." }, { "id":"maxinjadvance", "min":-180, "max":359, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"No injection may take place before this angle on any cylinder. Commanded injection angles before this are truncated to this value.", "address":13686 }, { "id":"mininjadvance", "min":-180, "max":359, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"No main or pilot injection may take place after this angle on any cylinder. If the injection pulse width extends past this angle, injection is cut off early.", "address":13688 }, { "id":"minmainadvancewithpost", "min":-180, "max":359, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"When post injection is active, main injection will end no later than this. If the injection pulse width extends past this angle, injection is cut off early.", "address":13690 }, { "id":"maxextraadvance", "min":-359, "max":359, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"No extra injection may take start before this angle on any cylinder. Commanded injection angles before this are truncated to this value.", "address":13692 }, { "id":"minextraadvance", "min":-359, "max":359, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"No extra injection may start after this angle on any cylinder.", "address":13694 }, { "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":13268 }, { "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":13524 }, { "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":13662 }, { "id":"enginestroke", "type":8, "options":[ "Four stroke", "Two stroke" ], "address":"bits0.23.23", "reset":1, "descr":"This options selects whether a full engine cycle is 360 degrees of crank rotation or 720 degrees." }, { "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":13678 }, { "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":13652 }, { "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" ], [ 9, "Crank acceleration monitoring" ] ], "descr":"'No cam' means no cam sync input is used but instead when running a 4 stroke engine the ECU will inject fuel on half of the cylinders during start up until it gets some response from the engine and then it will assume phasing is correct and resume fuelling for all cylinders.\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.\r\n'Count crank since last cam' means that when a crank sync event occurs the number of crank impulses since the last cam impulse is checked and if it falls inside the specified range then cam sync is registered.\r\n'Crank tooth window filter' starts a counter when a missing tooth is found on the crank and when this counter is within range any impulse seen on the cam will enable cam sync to occur.\r\n'Crank acceleration monitoring' is a mode to run without a separate cam sync, using compression detection on an engine with an odd cylinder count or odd fire arrangement where no two cylinders are at TDC compression simultaneously.", "reset":1, "address":13663 }, { "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":13214 }, { "id":"percylfueltuning", "type":8, "options":"enum_enabled", "address":"bits0.5.5" }, { "id":"idledecaytime", "type":2, "unit":"s", "scale":0.001000, "digits":2, "descr":"For a controlled return to idle on a manual transmission car, this setting specifies how quickly the engine is allowed to drop from the decay upper limit down to the specified idle speed target.\nMakes slow maneuvers while slipping the clutch easier and provides a more pleasant controlled return to idle after clutch is depressed at high engine speed.", "address":17322 }, { "id":"din1function", "type":8, "options":"enum_dinfunctions", "descr":"Sets the function of connector 3 pin 20.\r\nFor 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":15684 }, { "id":"din3function", "type":8, "options":"enum_dinfunctions", "descr":"Sets the function of connector 3 pin 22.\r\nFor 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":15685 }, { "id":"din4function", "type":8, "options":"enum_dinfunctions", "extraopts":[ [ 50, "Redundant crank trigger" ] ], "reset":1, "descr":"Sets the function of connector 3 pin 26.\r\nFor 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":15686 }, { "id":"din5function", "type":8, "options":"enum_dinfunctions", "reset":1, "descr":"Sets the function of connector 3 pin 24.\r\nFor 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":15687 }, { "id":"din6function", "type":8, "options":"enum_dinfunctions", "reset":1, "descr":"Only applies to controllers with serial number 200 and up.\r\nSets the function of connector 4 pin 15.\r\nFor 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":15688 }, { "id":"din7function", "type":8, "options":"enum_dinfunctions", "reset":1, "descr":"Only applies to controllers with serial number 200 and up.\r\nSets the function of connector 3 pin 47.\r\nFor 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":15689 }, { "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":15778 }, { "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":15780 }, { "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":15782 }, { "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":15784 }, { "id":"din6filter", "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":15786 }, { "id":"din7filter", "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":15788 }, { "id":"gearratios", "type":2, "array":16, "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":15690 }, { "id":"gearsrc", "type":9, "maxwidth":2, "descr":"If anything other than const_zero is selected, instead of calculating gear from the ratio between engine speed and road speed, gear is computed from a sensor input.", "address":15724 }, { "id":"gearposcount", "type":1, "min":1, "max":16, "descr":"The number of positions on the gear position sensor, probably including neutral, reverse, etc", "address":15776 }, { "id":"gearvalues", "type":2, "describedby":"gearsrc", "array":16, "cols":"gearposcount", "address":15728 }, { "id":"gears", "type":1, "array":16, "cols":"gearposcount", "sign":1, "address":15760 }, { "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":16762 }, { "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":16763 }, { "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":16764 }, { "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":16765 }, { "id":"din6skip", "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":16766 }, { "id":"din7skip", "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":16767 }, { "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":"din6rising", "type":8, "address":"dinconf.5.5", "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":"din7rising", "type":8, "address":"dinconf.6.6", "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":"overrunthrottle", "type":2, "digits":1, "scale":0.097656, "unit":"%", "descr":"Accelerator pedal position must be equal to or below this value and all other conditions must be met simultaneously to enter overrun fuel cut.", "address":15790 }, { "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":15792 }, { "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":15794 }, { "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":15796 }, { "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":15798 }, { "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.", "onchange":[ [ "rpc", "initcan" ] ], "address":12431 }, { "id":"can2mode", "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.", "onchange":[ [ "rpc", "initcan" ] ], "address":12432 }, { "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":15125 }, { "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":14810 }, { "id":"pwm0primaryxvar", "type":9, "maxwidth":2, "address":14812 }, { "id":"pwm0primaryyvar", "type":9, "maxwidth":2, "address":14816 }, { "id":"pwm0secondaryxvar", "type":9, "maxwidth":2, "address":14820 }, { "id":"pwm0secondaryyvar", "type":9, "maxwidth":2, "address":14824 }, { "id":"pwm0ternaryxvar", "type":9, "maxwidth":2, "address":14828 }, { "id":"pwm0ternaryyvar", "type":9, "maxwidth":2, "address":14832 }, { "id":"pwm0primaryxaxis", "type":2, "array":8, "describedby":"pwm0primaryxvar", "address":14836 }, { "id":"pwm0primaryyaxis", "type":2, "array":8, "describedby":"pwm0primaryyvar", "address":14852 }, { "id":"pwm0secondaryxaxis", "type":2, "array":8, "describedby":"pwm0secondaryxvar", "address":14868 }, { "id":"pwm0secondaryyaxis", "type":2, "array":8, "describedby":"pwm0secondaryyvar", "address":14884 }, { "id":"pwm0ternaryxaxis", "type":2, "array":8, "describedby":"pwm0ternaryxvar", "address":14900 }, { "id":"pwm0ternaryyaxis", "type":2, "array":8, "describedby":"pwm0ternaryyvar", "address":14916 }, { "id":"pwm0primary", "type":1, "unit":"%", "max":100, "digits":1, "scale":0.392157, "array":64, "rows":8, "cols":8, "address":14932 }, { "id":"pwm0secondary", "type":1, "digits":2, "scale":0.010000, "array":64, "rows":8, "cols":8, "address":14996 }, { "id":"pwm0ternary", "type":1, "digits":2, "scale":0.010000, "array":64, "rows":8, "cols":8, "address":15060 }, { "id":"pwm0mode", "type":1, "address":15124 }, { "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":12, "options":"map_inputs", "address":15680 }, { "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":15682 }, { "id":"pwm1options", "type":1, "address":15179 }, { "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":15676 }, { "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":15678 }, { "id":"pwm1targetpts", "type":2, "describedby":"pwm1var", "array":8, "address":15490 }, { "id":"pwm1errorpts", "type":2, "describedby":"pwm1var", "relative":1, "input":"pwm1error", "array":8, "address":15506 }, { "id":"pwm1Itgtlimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":15522 }, { "id":"pwm1Ierrlimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":15554 }, { "id":"pwm1gplimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":15592 }, { "id":"pwm1gplimitsrc", "type":9, "maxwidth":2, "address":15588 }, { "id":"pwm1gpdutymodsrc", "type":9, "maxwidth":2, "address":15640 }, { "id":"pwm1gplimitpts", "type":2, "describedby":"pwm1gplimitsrc", "array":8, "address":15624 }, { "id":"pwm1gpdutypts", "type":2, "describedby":"pwm1gpdutymodsrc", "array":8, "address":15660 }, { "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":15644 }, { "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":15176 }, { "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":15178 }, { "id":"pwm1var", "type":9, "maxwidth":2, "address":15180 }, { "id":"pwm1xvar", "type":9, "maxwidth":2, "address":15184 }, { "id":"pwm1yvar", "type":9, "maxwidth":2, "address":15188 }, { "id":"pwm1xaxis", "type":2, "array":8, "describedby":"pwm1xvar", "address":15192 }, { "id":"pwm1yaxis", "type":2, "array":8, "describedby":"pwm1yvar", "address":15208 }, { "id":"pwm1target", "type":2, "describedby":"pwm1var", "array":64, "rows":8, "cols":8, "address":15224 }, { "id":"pwm1base", "type":2, "scale":0.003052, "digits":1, "sign":1, "rows":8, "cols":8, "array":64, "address":15352 }, { "id":"pwm1minduty", "type":2, "scale":0.003052, "sign":1, "digits":1, "address":16810 }, { "id":"pwm1maxduty", "type":2, "scale":0.003052, "sign":1, "digits":1, "address":16812 }, { "id":"pwm1Kp", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":15480 }, { "id":"pwm1Ki", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":15482 }, { "id":"pwm1Kd", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":15484 }, { "id":"pwm1Imin", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":15486 }, { "id":"pwm1Imax", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":15488 }, { "id":"pwm2enable", "type":12, "options":"map_inputs", "address":16304 }, { "id":"pwm2defaultduty", "type":2, "scale":0.003052, "digits":1, "sign":1, "descr":"If the control loop is disabled via the enable input, this is the duty cycle the output assumes. This value is not restricted by the maximum\/minimum duty limits set for the control loop.", "address":16306 }, { "id":"pwm2options", "type":1, "address":15803 }, { "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":16300 }, { "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":16302 }, { "id":"pwm2targetpts", "type":2, "describedby":"pwm2var", "array":8, "address":16114 }, { "id":"pwm2errorpts", "type":2, "describedby":"pwm2var", "relative":1, "input":"pwm2error", "array":8, "address":16130 }, { "id":"pwm2Itgtlimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":16146 }, { "id":"pwm2Ierrlimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":16178 }, { "id":"pwm2gplimit", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "array":16, "rows":2, "cols":8, "address":16216 }, { "id":"pwm2gplimitsrc", "type":9, "maxwidth":2, "address":16212 }, { "id":"pwm2gpdutymodsrc", "type":9, "maxwidth":2, "address":16264 }, { "id":"pwm2gplimitpts", "type":2, "describedby":"pwm2gplimitsrc", "array":8, "address":16248 }, { "id":"pwm2gpdutypts", "type":2, "describedby":"pwm2gpdutymodsrc", "array":8, "address":16284 }, { "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":16268 }, { "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":15800 }, { "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":15802 }, { "id":"pwm2var", "type":9, "maxwidth":2, "address":15804 }, { "id":"pwm2xvar", "type":9, "maxwidth":2, "address":15808 }, { "id":"pwm2yvar", "type":9, "maxwidth":2, "address":15812 }, { "id":"pwm2xaxis", "type":2, "array":8, "describedby":"pwm2xvar", "address":15816 }, { "id":"pwm2yaxis", "type":2, "array":8, "describedby":"pwm2yvar", "address":15832 }, { "id":"pwm2target", "type":2, "describedby":"pwm2var", "array":64, "rows":8, "cols":8, "address":15848 }, { "id":"pwm2base", "type":2, "scale":0.003052, "digits":1, "sign":1, "rows":8, "cols":8, "array":64, "address":15976 }, { "id":"pwm2minduty", "type":2, "scale":0.003052, "digits":1, "sign":1, "address":16814 }, { "id":"pwm2maxduty", "type":2, "scale":0.003052, "digits":1, "sign":1, "address":16816 }, { "id":"pwm2Kp", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":16104 }, { "id":"pwm2Ki", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":16106 }, { "id":"pwm2Kd", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":16108 }, { "id":"pwm2Imin", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":16110 }, { "id":"pwm2Imax", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":16112 }, { "id":"calpotnpos", "type":1, "max":8, "min":1, "address":16308 }, { "id":"calpotvolts", "type":2, "array":8, "describedby":"calpotsrc", "cols":"calpotnpos", "address":16310 }, { "id":"calpotsrc", "type":9, "maxwidth":2, "address":16328 }, { "id":"calpot2npos", "type":1, "max":8, "min":1, "address":16333 }, { "id":"calpot2volts", "type":2, "array":8, "describedby":"calpot2src", "cols":"calpot2npos", "address":16334 }, { "id":"calpot2src", "type":9, "maxwidth":2, "address":16352 }, { "id":"calpot3npos", "type":1, "max":8, "min":1, "address":16356 }, { "id":"calpot3volts", "type":2, "array":8, "describedby":"calpot3src", "cols":"calpot3npos", "address":16358 }, { "id":"calpot3src", "type":9, "maxwidth":2, "address":16376 }, { "id":"calpot4npos", "type":1, "max":8, "min":1, "address":16380 }, { "id":"calpot4volts", "type":2, "array":8, "describedby":"calpot4src", "cols":"calpot4npos", "address":16382 }, { "id":"calpot4src", "type":9, "maxwidth":2, "address":16400 }, { "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":16404 }, { "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":16332 }, { "id":"fuelcalselect", "type":8, "array":8, "cols":[ "calpotassign.0", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":16412 }, { "id":"timingcalselect", "type":8, "array":8, "cols":[ "calpotassign.1", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":16444 }, { "id":"fuellimcalselect", "type":8, "array":8, "cols":[ "calpotassign.3", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":16428 }, { "id":"railpcalselect", "type":8, "array":8, "cols":[ "calpotassign.4", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":16436 }, { "id":"pilotcalselect", "type":8, "array":8, "cols":[ "calpotassign.5", "calpotnpos", "calpot2npos", "calpot3npos", "calpot4npos" ], "options":[ "Normal", "Alternate" ], "address":16420 }, { "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":16462 }, { "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":16466 }, { "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":16498 }, { "id":"emapsource", "type":9, "maxwidth":2, "address":16508 }, { "id":"emapvoltages", "type":2, "array":2, "describedby":"emapsource", "address":16512 }, { "id":"emapvalidrange", "type":2, "array":2, "describedby":"emapsource", "address":16516 }, { "id":"emapvalues", "type":2, "array":2, "unit":"mbar", "address":16520 }, { "id":"emapdefault", "type":2, "unit":"mbar", "address":16524 }, { "id":"barosource", "type":9, "maxwidth":2, "address":16528 }, { "id":"barovoltages", "type":2, "array":2, "describedby":"barosource", "address":16532 }, { "id":"barovalidrange", "type":2, "array":2, "describedby":"barosource", "address":16536 }, { "id":"barovalues", "type":2, "array":2, "unit":"mbar", "address":16540 }, { "id":"barodefault", "type":2, "unit":"mbar", "address":16544 }, { "id":"ectsource", "type":9, "maxwidth":2, "address":16548 }, { "id":"airtempsource", "type":9, "maxwidth":2, "address":16552 }, { "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":16558 }, { "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":16560 }, { "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":16562 }, { "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":16564 }, { "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":16566 }, { "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":16568 }, { "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":16570 }, { "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":16572 }, { "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":16574 }, { "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":16575 }, { "id":"fpsource", "type":9, "maxwidth":2, "descr":"The source of the fuel rail pressure sensor value.", "address":16576 }, { "id":"fpbpcount", "type":1, "max":32, "min":2, "address":16580 }, { "id":"fpvoltages", "type":2, "array":32, "describedby":"fpsource", "cols":"fpbpcount", "descr":"The input range of the fuel pressure sensor transfer function.", "address":16582 }, { "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":16710 }, { "id":"fpvalues", "type":2, "array":32, "unit":"bar", "cols":"fpbpcount", "scale":0.100000, "digits":1, "descr":"The output range of the fuel pressure sensor transfer function.", "address":16646 }, { "id":"fpdefault", "type":2, "unit":"bar", "scale":0.100000, "digits":1, "descr":"The default value used if the fuel pressure sensor is showing non-sensible values.", "address":16714 }, { "id":"railphightolerance", "type":2, "unit":"bar", "scale":0.100000, "digits":1, "max":3276, "descr":"The rail pressure is allowed to deviate this far above the setpoint before an error is flagged.", "address":16716 }, { "id":"railplowtolerance", "type":2, "unit":"bar", "scale":0.100000, "digits":1, "max":3276, "descr":"The rail pressure is allowed to deviate this far below the setpoint before an error is flagged.", "address":16718 }, { "id":"rphightime", "type":1, "unit":"s", "scale":0.100000, "digits":1, "descr":"The rail pressure error must stay above the high threshold for this time before an error is flagged. Any time it spends within limits decrements the timer instead of resetting it immediately.", "address":16720 }, { "id":"rplowtime", "type":1, "unit":"s", "scale":0.100000, "digits":1, "descr":"The rail pressure error must stay more negative than the low threshold for this time before an error is flagged. Any time it spends within limits decrements the timer instead of resetting it immediately.", "address":16721 }, { "id":"rphighresettime", "type":1, "unit":"s", "scale":0.100000, "digits":1, "descr":"Once a rail pressure high fault has been flagged, the pressure must stay within limits for this time before the error flag is cleared. If this time is zero then the flag stays set until the ECU is powered off.", "address":16722 }, { "id":"rplowresettime", "type":1, "unit":"s", "scale":0.100000, "digits":1, "descr":"Once a rail pressure low fault has been flagged, the pressure must stay within limits for this time before the error flag is cleared. If this time is zero then the flag stays set until the ECU is powered off.", "address":16723 }, { "id":"rpfaultruntime", "type":2, "unit":"s", "scale":0.001000, "digits":1, "descr":"The engine must be running for this time before rail pressure fault checking starts. Setting this value to zero disables rail pressure fault checking.\r\nSee the error masks section in the basic engine settings to set how a fault is handled.", "address":16724 }, { "id":"rpfaultminfuelqty", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"Some rail pressure control mechanisms do not provide any way to drop rail pressure when the injectors are shut off, and others have so much pump capacity that precise control at very small fuel quantities is difficult.\r\nThis value specifies the minimum injected quantity to enable rail pressure fault checking.", "address":16726, "max":650 }, { "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":16728 }, { "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":16730 }, { "id":"injanglemap", "type":2, "unit":"°BTDC", "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "scale":0.010986, "digits":1, "sign":1, "max":359, "min":-180, "address":2198 }, { "id":"pilotinjanglemap", "type":2, "unit":"°BTDC", "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "scale":0.010986, "digits":1, "sign":1, "max":359, "min":-180, "address":4246 }, { "id":"dinconf", "type":2, "address":16732 }, { "id":"calpotrevlimit", "type":2, "array":8, "cols":[ "calpotassign.6", "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":16734 }, { "id":"idleupin1", "type":12, "options":"map_inputs", "extraopts":[ [ 253, "Cruise switch toggle" ] ], "descr":"If cruise switch toggle is selected and cruise control is enabled in the configuration, the set button for the cruise control will toggle high idle when the vehicle speed is below 5 km\/h", "address":16750 }, { "id":"idleoffset", "min":0.000000, "max":650, "array":16, "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "descr":"This function specifies the approximate fuel injection quantity needed to maintain idle speed at different coolant temperatures.\nThe purpose is to make the idle control behaviour better across different temperatures by providing a feed-forward value, a starting point.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":14360 }, { "id":"idleuprpm1", "type":2, "unit":"RPM", "address":16754 }, { "id":"idleup1adder", "type":8, "options":[ "Minimum target", "Adder" ], "address":"bits0.6.6", "descr":"In minimum target mode, you can configure the idle-up value to 1000RPM for example and if the idle target is lower than the idle-up value the idle-up value takes effect" }, { "id":"idleupin2", "type":12, "options":"map_inputs", "address":16752 }, { "id":"idleuprpm2", "type":2, "unit":"RPM", "address":16756 }, { "id":"idleup2adder", "type":8, "options":[ "Minimum target", "Adder" ], "address":"bits0.7.7" }, { "id":"vsssource", "type":8, "options":[ "Wheel speed input", "GPS", "CAN source 0", "CAN source 1", "CAN source 2", "CAN source 3", "CAN source 4", "CAN source 5", "CAN source 6", "CAN source 7", "CAN source 8", "CAN source 9", "CAN source 10", "CAN source 11", "CAN source 12", "CAN source 13", "CAN source 14", "CAN source 15" ], "descr":"If CAN is used as a speed source, the CAN source should be scaled so that its value is 10 times greater than the speed, for a resolution of 0.1km\/h", "address":16768 }, { "id":"vsssource2", "type":8, "options":[ "Undriven wheel speed input", "GPS", "CAN source 0", "CAN source 1", "CAN source 2", "CAN source 3", "CAN source 4", "CAN source 5", "CAN source 6", "CAN source 7", "CAN source 8", "CAN source 9", "CAN source 10", "CAN source 11", "CAN source 12", "CAN source 13", "CAN source 14", "CAN source 15" ], "descr":"If CAN is used as a speed source, the CAN source should be scaled so that its value is 10 times greater than the speed, for a resolution of 0.1km\/h", "address":16769 }, { "id":"password", "type":7, "width":32, "address":16772 }, { "id":"password_set", "type":3, "address":16804 }, { "id":"password_level", "type":8, "options":[ "No access", "Diagnostics", "Full access" ], "address":16808 }, { "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":"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":"obd2interface", "type":8, "address":"bits1.14.14", "options":[ "CAN 1", "CAN 2" ], "descr":"Select which CAN interface the OBD2 service listens on" }, { "id":"ffset0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16818 }, { "id":"ffreset0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16874 }, { "id":"fftoggle0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16842 }, { "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":16834 }, { "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":16890 }, { "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":16858 }, { "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":16866 }, { "id":"ffbootstate0", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16898 }, { "id":"usererrorconf", "type":1, "address":16914 }, { "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":12, "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":16906 }, { "id":"sdlogmode", "type":8, "options":[ [ 1, "Standard" ], [ 2, "Event log" ], [ 3, "Structured 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":13656 }, { "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":16918 }, { "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":16920 }, { "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":16924 }, { "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":17180 }, { "id":"pedalprimaryrange", "type":2, "array":2, "unit":"V", "digits":3, "max":5, "scale":0.001221, "input":"analog0", "variations":[ [ "driverinputselect", "=", 1234567890 ], { "describedby":"driverinputsrc", "endif":true }, [ "driverinputselect", "!=", 1234567890 ], { "describedby":null } ], "address":24, "describedby":null }, { "id":"pedalprimarylimits", "type":2, "array":2, "unit":"V", "digits":3, "max":5, "scale":0.001221, "input":"analog0", "descr":"This setting specifies the voltage limits the pedal input must stay within in order to be considered valid. Outside of this range it is considered faulted and the pedal will be ignored until the ECU is powered off.", "variations":[ [ "driverinputselect", "=", 1234567890 ], { "describedby":"driverinputsrc", "endif":true }, [ "driverinputselect", "!=", 1234567890 ], { "describedby":null } ], "address":28, "describedby":null }, { "id":"pedalsecondarylimits", "type":2, "array":2, "unit":"V", "digits":3, "max":5, "scale":0.001221, "input":"analog1", "descr":"This setting specifies the voltage limits the pedal input must stay within in order to be considered valid. Outside of this range it is considered faulted and the pedal will be ignored until the ECU is powered off.", "variations":[ [ "driverinputselect", "=", 1234567890 ], { "describedby":"driversecinputsrc", "endif":true }, [ "driverinputselect", "!=", 1234567890 ], { "describedby":null } ], "address":32, "describedby":null }, { "id":"pedalsecondarypoints", "type":1, "min":2, "max":16, "address":36 }, { "id":"pedalsecondaryvolts", "type":2, "array":16, "cols":"pedalsecondarypoints", "unit":"V", "digits":3, "max":5, "scale":0.001221, "input":"analog1", "variations":[ [ "driverinputselect", "=", 1234567890 ], { "describedby":"driversecinputsrc", "endif":true }, [ "driverinputselect", "!=", 1234567890 ], { "describedby":null } ], "address":38, "describedby":null }, { "id":"pedalsecondarypos", "type":2, "array":16, "cols":"pedalsecondarypoints", "unit":"%", "digits":1, "max":100, "scale":0.097752, "address":70 }, { "id":"minrpmtostart", "type":2, "unit":"RPM", "descr":"The ECU will not attempt to inject any fuel unless cranking speed is greater than this value.", "address":7642 }, { "id":"minrailpressuretostart", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "input":"railpressure", "descr":"Injectors will not be opened if fuel rail pressure is below this value. If operating in control modes other than common rail, set this value to zero or engine will not start.", "address":7644 }, { "id":"injectorsettletime", "type":2, "unit":"µs", "min":100, "descr":"This setting specifies the amount of time that must pass from when one injection ends before another can be attempted.", "address":17324 }, { "id":"afterstartglowmode", "type":8, "address":"bits0.24.24", "options":[ "Simple timer", "Pulsed" ], "descr":"In simple timer mode, the glow plugs are simply kept on for a configured amount of time after the engine is started.\r\nIn pulsed mode, the glow plugs are pulsed on and off during engine warm up." }, { "id":"maxectglowduringstart", "type":2, "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "descr":"If the engine coolant temperature is below this value, the glow plugs will be energised during cranking.", "address":17376 }, { "id":"afterglowruntime", "type":2, "unit":"s", "array":10, "input":"runtime", "max":300, "address":17540 }, { "id":"afterglowperiod", "type":1, "unit":"s", "scale":0.100000, "digits":1, "descr":"This is the cycle time of the pulsed after start glow function. For example if this is set to 4 seconds and the duty cycle is configured to 25% then the glow plugs will turn on for 1 second and turn off for 3 seconds before turning on for 1 second again.", "address":17538 }, { "id":"afterglowduty", "type":1, "unit":"%", "max":100, "array":160, "rows":10, "cols":16, "descr":"After the engine has started up, if the pulsed after start glow mode is selected, this table specifies the fraction of the glow period that the glow output is switched on.", "address":17378 }, { "id":"preglowtime", "type":1, "scale":0.100000, "unit":"s", "digits":1, "array":16, "descr":"If using the ECU to control a glow plug relay, this function specifies the glow duration after key-on depending on engine coolant temperature.", "address":17328 }, { "id":"afterglowtime", "type":2, "scale":0.100000, "unit":"s", "digits":1, "array":16, "descr":"If using the ECU to control a glow plug relay, this function specifies the glow duration after engine is running depending on engine coolant temperature.", "address":17344 }, { "id":"injectorsettletime", "type":2, "unit":"µs", "min":100, "max":1000, "descr":"When operating multiple injection events, if they are scheduled very close together, this specifies the minimum time the injector must remain closed before it is ready to open again.\r\nIf this rule is violated the prior event will be cut short or the later event will be delayed if the prior event cannot be made any shorter.", "address":17324 }, { "id":"minfuelqty", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"If any injection pulse is specified to deliver a fuel quantity smaller than this value, the pulse will be skipped. Set this to the smallest fuel quantity the injector can reliably meter.", "address":17326, "max":650 }, { "id":"resumefuelqty", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"To avoid harshness when pilot injection or main injection is being enabled or disabled, set this to a minimum injection value to commence fuel injection after it has been disabled.", "address":17562, "max":650 }, { "id":"maxsecondaryatidle", "min":0, "max":100, "type":2, "scale":0.097656, "digits":1, "descr":"When the accelerator pedal is below the position specified in the 'Idle max throttle' setting, the secondary sensor must report a value equal or lower to this setting.", "address":17560 }, { "id":"appsinglepot", "type":8, "address":"bits0.0.0", "options":[ "Dual potentiometer", "Single potentiometer + switch" ], "descr":"All modern cars have dual potentiometers in their accelerator pedals. All or nearly all 1990s electronic diesels use a single potentiometer plus a switch that acts as a secondary sensor, grounding the secondary input to signal that the pedal is pressed and forcing the engine to stay at idle otherwise." }, { "id":"cooltemppilotmod", "type":2, "digits":3, "scale":0.000977, "array":16, "address":17564 }, { "id":"airpilotmapbins", "type":2, "unit":"mbar", "input":"map", "array":8, "address":17852 }, { "id":"airpilotmod", "type":2, "digits":3, "scale":0.000977, "array":128, "rows":8, "cols":16, "address":17596 }, { "id":"cooltemptimingmod", "type":2, "sign":1, "digits":1, "scale":0.010986, "unit":"°", "min":-45, "max":45, "array":256, "rows":16, "cols":"cooltemptimingmodrpmbincount", "address":17870 }, { "id":"cooltemppilottimingmod", "type":2, "sign":1, "digits":1, "scale":0.010986, "unit":"°", "min":-45, "max":45, "array":256, "rows":16, "cols":"cooltemptimingmodrpmbincount", "address":18382 }, { "id":"cooltemptimingmodrpmbins", "type":2, "input":"enginespeed", "array":16, "cols":"cooltemptimingmodrpmbincount", "address":18894 }, { "id":"cooltemptimingmodrpmbincount", "type":1, "min":1, "max":16, "address":17868 }, { "id":"cooltemptiminggain", "type":2, "digits":3, "scale":0.000977, "array":16, "address":18958 }, { "id":"cooltemppilottiminggain", "type":2, "digits":3, "scale":0.000977, "array":16, "address":18990 }, { "id":"cooltemptimingmodfuelqtybins", "type":2, "input":"mainfuelqty", "digits":2, "scale":0.010000, "array":16, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":18926, "max":650 }, { "id":"boostvoltage", "type":1, "scale":0.507843, "digits":1, "unit":"V", "max":100, "address":19022 }, { "id":"peakcurrent", "type":1, "scale":0.285205, "offset":-140, "digits":1, "unit":"A", "min":0, "address":19023 }, { "id":"highcurrent", "type":1, "scale":0.313725, "max":30, "offset":-128, "digits":1, "unit":"A", "min":0, "address":20924 }, { "id":"highcurdur", "type":2, "max":1000, "unit":"µs", "min":0, "descr":"Applies only to controllers with serial number 200 and greater.\r\nOnce the peak current is reached the current drops down to the high current phase. This parameter specifies the duration of this phase, starting when the injector is powered initially.", "address":20922 }, { "id":"holdcurrent", "type":1, "scale":0.239591, "offset":-167, "digits":1, "unit":"A", "min":0, "address":19024 }, { "id":"dinpdcontrol", "type":1, "address":19025 }, { "id":"din1pd", "type":8, "address":"dinpdcontrol.0.0", "options":"enum_enabled" }, { "id":"din2pd", "type":8, "address":"dinpdcontrol.1.1", "options":"enum_enabled" }, { "id":"railpduringshutdown", "type":8, "address":"bits0.27.27", "options":"enum_enabled", "descr":"If enabled, the rail pressure control loop keeps running with normal pressure target while the engine is being shut off by the ECU. This is required by some fuel system designs. Otherwise the rail pressure target is set to zero during shutdown which is a safer option for fuel systems that don't have a requirement to stay pressurised during and after engine shut down." }, { "id":"railpstartupramp_enable", "type":8, "address":"bits1.7.7", "options":"enum_enabled", "descr":"If enabled, the rail pressure target during cranking will start to ramp up gradually to prevent integral wind up once rail pressure picks up, and provide weak starters a fighting chance against large common rail pumps." }, { "id":"railpressuremap", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "address":5270 }, { "id":"railpbasepwm", "type":2, "unit":"%", "scale":0.003052, "digits":1, "array":512, "rows":"railpbincount", "cols":"rpmbincount", "address":6294 }, { "id":"rperrbins", "type":2, "sign":1, "unit":"bar", "digits":1, "scale":0.100000, "array":8, "input":"railpresserror", "address":19026 }, { "id":"rprpmbins", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":19042 }, { "id":"rpiqbins", "type":2, "unit":"mm3", "min":0, "max":650, "scale":0.010000, "digits":2, "array":8, "input":"totalfuelqty", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":19058 }, { "id":"railpqtyadder", "type":2, "unit":"%", "scale":0.003052, "digits":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":19074 }, { "id":"railKp", "type":2, "sign":1, "scale":0.002440, "digits":3, "array":64, "rows":8, "cols":8, "address":19202 }, { "id":"railKpiqmod", "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":22290 }, { "id":"railKi", "type":2, "sign":1, "scale":0.002440, "digits":3, "array":64, "rows":8, "cols":8, "address":19330 }, { "id":"railKiiqmod", "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":22162 }, { "id":"railKd", "type":2, "sign":1, "scale":0.002440, "digits":3, "array":8, "address":19458 }, { "id":"railImin", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":19474 }, { "id":"railImax", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":1, "address":19476 }, { "id":"railpwmperiod", "type":2, "scale":1000000, "inverse":1, "max":"2000", "unit":"Hz", "descr":"This parameter specifies the PWM frequency. Note that not all pins support the same maximum PWM frequency. Only outputs 3 and 4 have sufficient flyback protection to directly drive solenoids drawing 2A or more at high frequency.", "address":19478 }, { "id":"railpidserviceperiod", "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":19480 }, { "id":"railpmaxduty", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":1, "address":19482 }, { "id":"railpsecondarymaxduty", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":1, "address":19664 }, { "id":"railpvoltagecorr", "type":2, "scale":0.000977, "digits":3, "array":12, "address":19484 }, { "id":"railpsecondaryvoltagecorr", "type":2, "scale":0.000977, "digits":3, "array":12, "address":19666 }, { "id":"railpsecondarytargetmap", "type":2, "sign":1, "scale":0.003052, "digits":2, "unit":"%", "array":64, "rows":8, "cols":8, "address":19690 }, { "id":"railpsecondaryerrormap", "type":2, "sign":1, "scale":0.003052, "digits":2, "unit":"%", "array":64, "rows":8, "cols":8, "address":19946 }, { "id":"railpsecondaryiqmap", "type":2, "sign":1, "scale":0.003052, "digits":2, "unit":"%", "array":64, "rows":8, "cols":8, "address":19818 }, { "id":"railpsecondaryserviceperiod", "type":1, "unit":"ms", "descr":"The interval at which the secondary rail pressure PWM output is evaluated. Set to 0 if not using a secondary rail pressure control device.\r\nIf using a secondary rail pressure control device, the results of the three maps associated with it are added together to produce an output. The primary control runs a PID loop to get the rail pressure exactly on target, the secondary device is called upon to assist the performance of the primary PID loop.", "address":20074 }, { "id":"railpsecondarypwmperiod", "type":2, "scale":1000000, "inverse":1, "max":"2000", "unit":"Hz", "descr":"This parameter specifies the PWM frequency of the secondary rail pressure control device. Note that not all pins support the same maximum PWM frequency. Only outputs 3 and 4 have sufficient flyback protection to directly drive solenoids drawing 2A or more at high frequency.", "address":19662 }, { "id":"rptargetbins", "type":2, "unit":"bar", "scale":0.100000, "digits":1, "array":8, "input":"railpressuretarget", "address":20076 }, { "id":"supplyvoltbins", "type":2, "unit":"V", "digits":2, "scale":0.001000, "array":12, "input":"supplyvoltage", "address":19508 }, { "id":"railplinearptcount", "type":1, "max":32, "descr":"If a transfer function is desired to modify the linear output of the PID routine to reflect non-linear response of the control valve, set this value to the number of breakpoints needed. If this function is not needed, set this value to 0.", "address":19660 }, { "id":"railplinearin", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":1, "array":32, "cols":"railplinearptcount", "input":"railctlcmd", "address":19532 }, { "id":"railplinearout", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":1, "array":32, "cols":"railplinearptcount", "address":19596 }, { "id":"controlmode", "type":8, "options":[ "Common rail", "Mechanical unit injector", "Distributor pump" ], "descr":"Common rail mode also applies to hydraulically energised unit injectors.\r\nNote that in distributor pump mode, all cylinders must be assigned to the same injector output.\r\nAnother thing to note is that the minimum rail pressure to run injectors in the starting settings must be zero if there is no rail pressure signal.", "address":19661 }, { "id":"injassign", "type":1, "min":1, "max":32, "array":16, "offset":1, "cols":"cylcount", "descr":"This function assigns injector outputs to cylinders.", "address":102 }, { "id":"stepinterval", "type":1, "unit":"ms", "descr":"This value is the minimum interval between steps in the stepper motor control. Set to 0 to disable stepper control.", "address":20097 }, { "id":"stephomeopen", "type":8, "options":[ "Closed", "Open" ], "address":"bits0.4.4", "descr":"When set to Closed, the stepper will drive towards position 0 when homing. When set to closed the stepper will drive towards the fully open position when homing." }, { "id":"stepholdcurrent", "type":8, "options":"enum_enabled", "address":"bits0.1.1", "descr":"When enabled, the stepper motor is energised all of the time, even when it is not moving. This is normally undesireable as it makes the motor heat up but in some cases it is necessary to provide a braking force to prevent external forces from moving the stepper when no power is applied." }, { "id":"steprehome", "type":12, "options":"map_inputs", "descr":"An optional input to request re-homing the stepper. Normally, homing is only done during ECU start up, but in some applications it may be helpful to redo it periodically.", "address":20098 }, { "id":"stephome", "type":12, "options":"map_inputs", "descr":"An optional input for a home sensor indicating that the stepper has reached home position. If not used the stepper will drive a pre determined number of homing steps and the assumption is made it has bottomed out.", "address":20100 }, { "id":"homesteps", "type":2, "unit":"steps", "descr":"This is the number of steps the stepper will take to find the home position. It must be greater than the number of steps needed to sweep through the stepper's complete range of motion. Optionally a sensor\/switch can be used to indicate when home is reached and stop the homing process but the default is to rely on the stepper hitting a mechanical limit.", "address":20104 }, { "id":"fullopensteps", "type":2, "unit":"steps", "descr":"This is the number of steps the stepper is allowed to travel from the home position. This also specifies the distance from home to position 0 when home is on the fully open end.", "address":20106 }, { "id":"stepsrc", "type":9, "maxwidth":2, "address":20108 }, { "id":"steppointcount", "type":1, "min":2, "max":16, "descr":"This parameter defines the number of points on the transfer function that controls the stepper motor.", "address":20102 }, { "id":"steppoints", "type":2, "array":16, "describedby":"stepsrc", "cols":"steppointcount", "address":20144 }, { "id":"stepfunction", "type":2, "array":16, "cols":"steppointcount", "unit":"steps", "address":20112 }, { "id":"scvbaseangle", "type":2, "min":0, "max":359.900000, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"In degrees before TDC cyl 1", "address":20176 }, { "id":"scvmaxadvance", "type":2, "min":0, "max":359.900000, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"Maximum angle the suction control valves may be advanced ahead of the base angle.", "address":20178 }, { "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":20180 }, { "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":20308 }, { "id":"scvdurmode", "type":8, "options":[ "Crank angle", "Time" ], "address":20476 }, { "id":"scvangleyaxis", "type":2, "describedby":"scvangleyaxvar", "array":8, "address":20444 }, { "id":"scvdurayaxis", "type":2, "describedby":"scvdurayaxvar", "array":8, "address":20460 }, { "id":"scvangleyaxvar", "type":9, "maxwidth":2, "address":20436 }, { "id":"scvdurayaxvar", "type":9, "maxwidth":2, "address":20440 }, { "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":20480 }, { "id":"pullupctl", "type":2, "address":20478 }, { "id":"pullup_analog9", "type":8, "address":"pullupctl.9.9", "options":[ "57.6k Ohm", "3000 Ohm" ], "descr":"For most sensors a weak (57k) pull up is favoured. The exception is passive sensors of variable resistance such as thermistors, where a stronger bias current is required for good signal resolution." }, { "id":"pullup_analog10", "type":8, "address":"pullupctl.10.10", "options":[ "57.6k Ohm", "3000 Ohm" ], "descr":"For most sensors a weak (57k) pull up is favoured. The exception is passive sensors of variable resistance such as thermistors, where a stronger bias current is required for good signal resolution." }, { "id":"smoothingrpmpoints", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":20482 }, { "id":"smoothingpedalpoints", "type":2, "unit":"%", "input":"effectiveapp", "scale":0.097752, "digits":1, "array":8, "address":20498 }, { "id":"rpmsmoothingfiltermap", "type":2, "scale":0.001526, "digits":2, "unit":"%", "array":64, "rows":8, "cols":8, "descr":"This is an exponential decay filter, where 0% is no filtering at all and 99% throws away 99% of the difference during each cycle. The product of this filter is a variable called smoothrpm and it can optionally be used for strategies that are function of engine speed for smoother operation.", "address":20514 }, { "id":"fuelrequestposfiltermap", "type":2, "unit":"%", "scale":0.001526, "digits":2, "array":64, "rows":8, "cols":8, "descr":"This value induces an exponential decay filter on the fuel request as input by accelerator pedal. Evaluated 100 times per second.\nThis value acts when fuel request 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.\nThe purpose of this filter is for improved drivability, the filter produces a smoother increase in torque when accelerator pedal input is increased.", "address":20642 }, { "id":"fuelrequestnegfiltermap", "type":2, "unit":"%", "scale":0.001526, "digits":2, "array":64, "rows":8, "cols":8, "descr":"This value induces an exponential decay filter on the fuel request as input by accelerator pedal. Evaluated 100 times per second.\nThis value acts when fuel request 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.\nThe purpose of this filter is for improved drivability, the filter produces a smoother decrease in torque when accelerator pedal input is decreased.", "address":20770 }, { "id":"usesmoothrpm", "type":8, "address":"bits0.10.10", "options":"enum_enabled", "value":"Enabled", "descr":"If enabled, fuel request, fuel limit and rail pressure maps will operate with smoothed engine speed, reducing the possibility of sharp speed derived changes resulting in oscillation in engine torque." }, { "id":"timingsmoothrpm", "type":8, "address":"bits0.18.18", "options":"enum_enabled", "value":"Enabled", "descr":"If enabled, injection start angle maps will operate with smoothed engine speed, reducing the possibility of sharp speed derived changes resulting in oscillation in engine torque." }, { "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":"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 steady state loaded 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 on the overrun and richer than this parameter when the engine speed is above the loaded validation speed and fuel quantity is greater than the check threshold.", "address":20898 }, { "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":20900 }, { "id":"lambdarichfuel", "type":2, "unit":"mm3", "digits":2, "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"When injected fuel quantity is greater than this value, the lambda sensor is expected to read richer than the lean check value.", "address":20902, "max":650 }, { "id":"stoptimeout", "type":2, "unit":"s", "scale":0.001000, "digits":1, "min":1, "descr":"This option only has an effect on controllers with serial number 200 or greater.\r\nIt sets a reasonable amount of time to wait after trying to shut the engine off by turning off the ignition switch before the main relay shuts off regardless of engine speed.", "address":22424 }, { "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":"injmodelpercyl", "type":8, "options":"enum_enabled", "address":"bits0.11.11", "descr":"If this option is enabled the controller will use one injector flow model per cylinder. If disabled the same model will be used for all cylinders." }, { "id":"balancetrims_enable", "type":8, "options":"enum_enabled", "address":"bits0.15.15", "descr":"If this option is enabled the controller will attempt to balance the cylinders at idle by adjusting the fuel quantity to each one according to the cylinder contribution." }, { "id":"balanceminfuel", "unit":"mm3", "input":"mainfuelqty", "min":0, "max":650, "type":2, "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"The cylinder balance control will not operate when main fuel quantity drops below this value", "address":20904 }, { "id":"balanceminrpm", "unit":"RPM", "input":"enginespeed", "type":2, "descr":"The cylinder balance control will not operate when engine speed drops below this value", "address":20906 }, { "id":"balancemaxrpm", "unit":"RPM", "input":"enginespeed", "type":2, "descr":"The cylinder balance control will not operate when engine speed goes above this value", "address":20908 }, { "id":"balanceauthority", "unit":"mm3", "type":2, "digits":2, "scale":0.000625, "max":20, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"The maximum amount of fuel added or removed by the balance control strategy. If this is 10 for example, one cylinder could have 10 mm3 added and another could have 10 mm3 removed for a spread of 20 mm3. Suggested starting value 3-5", "address":20910 }, { "id":"balancemaxstep", "unit":"mm3", "type":2, "digits":2, "scale":0.000625, "max":10, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"The maximum amount of fuel trim adapted by the balance control strategy in a single cycle.", "address":20916 }, { "id":"balancesensitivity", "type":2, "digits":3, "scale":0.001000, "descr":"Relative sensitivity of the cylinder balance control. Too small and the control will take long to settle, too big and the control will cause more imbalance than it corrects.", "address":20912 }, { "id":"balanceruntime", "type":2, "unit":"s", "scale":0.001000, "digits":1, "descr":"Engine run time before the balance control starts to run.", "address":20914 }, { "id":"crankspeedpoints", "type":1, "array":3, "descr":"Teeth index starting at crank sync point at which to sample crank speed for acceleration based cam sync on odd cylinder count engines. The procedure to set this up is to record an event log while cranking the engine and spot at which teeth the intervals are the smallest and greatest.", "address":13681 }, { "id":"crankspeedratio", "type":2, "digits":3, "scale":0.000977, "descr":"This value describes the ratio of how much slower (value smaller than 1) or faster (value greater than 1) the crank must be turning at the second sampling point compared to the first and third to register a cam sync based on crank acceleration.", "address":13684 }, { "id":"railpfuellimit_enable", "type":8, "options":"enum_enabled", "address":"bits0.16.16" }, { "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":20918 }, { "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":20919 }, { "id":"camlessfallback", "type":8, "options":"enum_enabled", "address":"triggerconfig0.10.10", "descr":"If enabled and the crank trigger is of a type that can achieve half sync (state 3) by itself, then if unable to achieve full sync within the given time the ECU will attempt to start the engine using the cam less starting mode in which half of the cylinders get fuel on every cycle until the engine speed during any tooth period exceeds the minimum speed to exit cranking mode." }, { "id":"camtimeout", "type":2, "unit":"s", "scale":0.001000, "digits":1, "descr":"If the engine has been cranking for this duration and not managed to achieve full sync (syncstate = 7) then a cam sensor fault is registered in the error flags. If enabled to do so, the ECU will attempt a camless start up.", "address":20920 }, { "id":"turbooverridetrigger", "type":12, "options":"map_inputs", "descr":"When the selected input is active, the turbocharger output duty prior to the translation function is handled by the override function rather than the turbocharger control loop. This is useful for handling turbocharger control in overrun conditions or during launch control.", "address":20926 }, { "id":"turbooverridebpcount", "type":1, "min":1, "max":16, "address":20925 }, { "id":"turbooverridesource", "type":9, "maxwidth":2, "address":20928 }, { "id":"turbooverridebins", "type":2, "array":16, "cols":"turbooverridebpcount", "describedby":"turbooverridesource", "address":20932 }, { "id":"turbooverrideduty", "type":2, "array":16, "cols":"turbooverridebpcount", "unit":"%", "digits":1, "scale":0.003052, "address":20964 }, { "id":"postinjectionend", "min":-180, "max":0, "type":2, "sign":1, "unit":"°BTDC", "scale":0.010986, "digits":1, "descr":"No post injection may take place after this angle on any cylinder. If the injection pulse width extends past this angle, injection is cut off early.", "address":20996 }, { "id":"postfueltrigger", "type":12, "options":"map_inputs", "descr":"If set to any other value than Always off, post injection timing will be computed continually. Then if the condition selected by this value is true then post injection is enabled.", "address":20998 }, { "id":"pilotinjectiontrigger", "type":12, "options":"map_inputs", "descr":"Normally this should be set to 'Always on'. This option is provided for situations where pilot injection needs to be temporarily turned off.", "address":22160 }, { "id":"postfuelrpmbpcount", "type":1, "min":1, "max":32, "descr":"Breakpoint count for engine speed breakpoints in post injection maps. Product of engine speed breakpoint count and load breakpoint count must not exceed 256", "address":21001 }, { "id":"postfuelloadbpcount", "type":1, "min":1, "max":32, "descr":"Breakpoint count for load breakpoints in post injection maps. Product of engine speed breakpoint count and load breakpoint count must not exceed 256", "address":21000 }, { "id":"postfuelloadsource", "type":9, "maxwidth":2, "address":21004 }, { "id":"postfuelloadbins", "array":32, "type":2, "describedby":"postfuelloadsource", "cols":"postfuelloadbpcount", "address":21008 }, { "id":"postfuelrpmbins", "array":32, "type":2, "input":"enginespeed", "cols":"postfuelrpmbpcount", "address":21072 }, { "id":"postfuelmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":256, "rows":"postfuelloadbpcount", "cols":"postfuelrpmbpcount", "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"This map specifies the quantity of post injection when post injection is enabled, can be cut short by post injection end angle limit.", "address":21136 }, { "id":"postfueltimingmap", "min":-180, "sign":1, "max":0, "type":2, "unit":"°BTDC", "scale":0.010986, "digits":1, "array":256, "rows":"postfuelloadbpcount", "cols":"postfuelrpmbpcount", "descr":"In degrees before TDC, this map specifies the angle when post injection starts if it is enabled. Since this only happens after TDC the numbers will be negative.\r\nIf main injection happens to be still going when post injection is scheduled then post injection will not occur.", "address":21648 }, { "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":22418 }, { "id":"glowdiagenable", "type":8, "options":"enum_enabled", "address":"bits1.0.0", "descr":"If the glow plug diagnostics are enabled, the ECU will continue communicating with the glow controller after it has commanded the plugs off. If the diagnostics are disabled then all communications with the glow controller are cut off immediately when the plugs should go out." }, { "id":"phaseswapinterval", "type":2, "unit":"s", "scale":0.001000, "digits":1, "descr":"This parameter specifies the interval between phase swaps when attempting to start without a cam sensor but not using the odd-cylinder specific cam sync mode.", "address":22422 }, { "id":"simplepwmdutyvar1", "type":9, "maxwidth":16, "compact":0, "address":22428 }, { "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":22472 }, { "id":"simplepwmdutypts1", "type":2, "describedby":"simplepwmdutyvar1", "array":16, "cols":"simplepwmdutyptcount1", "compact":0, "address":22480 }, { "id":"simplepwmduty1", "type":2, "unit":"%", "scale":0.003052, "digits":2, "array":16, "cols":"simplepwmdutyptcount1", "compact":0, "address":22608 }, { "id":"simplepwmfreqvar1", "type":9, "maxwidth":16, "compact":0, "address":22444 }, { "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":22476 }, { "id":"simplepwmfreqpts1", "type":2, "describedby":"simplepwmfreqvar1", "array":16, "cols":"simplepwmfreqptcount1", "compact":0, "address":22736 }, { "id":"simplepwmfreq1", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "max":"2000", "array":16, "cols":"simplepwmfreqptcount1", "compact":0, "address":22864 }, { "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":22460 }, { "id":"simplepwmenable1", "type":12, "options":"map_inputs", "compact":0, "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'", "address":22464 }, { "id":"gprevlimittrigger", "type":12, "options":"map_inputs", "descr":"When this trigger is active, and the result from the gp rev limit function is greater than zero but smaller than the main rev limit, the general purpose rev limit is active", "address":22992 }, { "id":"gprevlimitsrc", "type":9, "maxwidth":2, "address":22996 }, { "id":"gprevlimitptcount", "type":1, "min":1, "max":8, "descr":"If this is set to 1, then no input variable is necessary and the rev limit is constant.", "address":22994 }, { "id":"gprevlimitpts", "type":2, "describedby":"gprevlimitsrc", "array":8, "cols":"gprevlimitptcount", "address":23016 }, { "id":"gprevlimitcurve", "type":2, "unit":"RPM", "array":8, "cols":"gprevlimitptcount", "address":23000 }, { "id":"masterslavemode", "type":8, "options":[ "Stand alone", "Master", "Slave" ], "descr":"For normal operation this should be set to 'Stand alone'.\r\nIf using multiple ECUs together to run engines with high cylinder counts, one must be set as master to enable it to transmit the required information via CAN2 and the other(s) must be set to slave to receive the information.", "address":23032 }, { "id":"governor_enable", "type":8, "address":"bits0.28.28", "options":"enum_enabled", "descr":"The high speed governor enables the ECU to regulate engine speed above idle speed for applications that require constant speed operation. The desired speed is set as a function of accelerator position and the fuel request map specifies the maximum fuel, and the govfuelreq variable shows the fuel request after it has been reduced by the governor" }, { "id":"governorcycletime", "type":1, "unit":"ms", "min":1, "max":250, "descr":"This parameter specifies the interval at which the governor PID function is evaluated.", "address":23033 }, { "id":"governorspeedsrc", "type":9, "maxwidth":2, "address":23292 }, { "id":"governorpedalpts", "type":2, "array":16, "input":"effectiveapp", "unit":"%", "digits":1, "scale":0.097752, "address":23034 }, { "id":"governorspeed", "type":2, "array":16, "describedby":"governorspeedsrc", "address":23066 }, { "id":"governorrpmpts", "type":2, "array":16, "unit":"RPM", "input":"enginespeed", "address":23098 }, { "id":"governorPgain", "type":2, "array":16, "digits":4, "scale":0.000313, "descr":"The scale is such that a value of 1 results in 1.0 mm3 of fuel added or removed for 1 RPM of error, unless you are operating in larger fuel quantity mode (1300-3250mm3) where the scale is multiplied", "address":23130 }, { "id":"governorIgain", "type":2, "array":16, "digits":4, "scale":0.000313, "address":23162 }, { "id":"governorDgain", "type":2, "array":16, "digits":4, "scale":0.000313, "address":23194 }, { "id":"governorrpmerrpts", "type":2, "unit":"RPM", "sign":1, "input":"governorerror", "array":8, "address":23226 }, { "id":"governorPgainmod", "type":2, "array":8, "digits":3, "scale":0.000977, "max":31, "address":23242 }, { "id":"governorIgainmod", "type":2, "array":8, "digits":3, "scale":0.000977, "max":31, "address":23258 }, { "id":"governorDgainmod", "type":2, "array":8, "digits":3, "scale":0.000977, "max":31, "address":23274 }, { "id":"governorlimitersrc", "type":9, "maxwidth":2, "descr":"Set this to const_zero (top of list) to disable the secondary speed limit input, otherwise the secondary speed limit will take precedence if its value is lower than the accelerator based function.", "address":23296 }, { "id":"governorlimiterpts", "type":2, "describedby":"governorlimitersrc", "array":16, "cols":"governorlimiterptcount", "address":23300 }, { "id":"governorlimiter", "type":2, "array":16, "cols":"governorlimiterptcount", "describedby":"governorspeedsrc", "address":23332 }, { "id":"governorlimiterptcount", "type":1, "min":1, "max":16, "address":23364 }, { "id":"governorlimiterenable", "type":12, "options":"map_inputs", "address":23366 }, { "id":"tachotestspeed", "type":2, "unit":"RPM", "descr":"If set to a value greater than 0, this setting overrides the tachometer output speed for testing\/calibration purposes.", "address":12424 }, { "id":"railpmodenable", "type":12, "options":"map_inputs", "address":23370 }, { "id":"railpmodmode", "type":8, "options":[ "Adder", "Upper limit", "Lower limit" ], "descr":"In adder mode, the rail pressure modifier is added to the target. In upper limit mode the modifier specifies the maximum pressure. In lower limit mode the modifier specifies the minimum pressure.", "address":23368 }, { "id":"maxfptarget", "type":2, "scale":0.100000, "digits":1, "unit":"bar", "descr":"This setting is only parsed on power up so any changes require the ECU to be power cycled.\r\nThis setting specifies the maximum rail pressure target after any trims are applied, and it should in any case be no more than at least 20 bar below the maximum pressure the rail pressure sensor can read as in no circumstance may the pressure target be set so close to the maximum the sensor is capable of that the control strategy cannot sense that the pressure is above target.", "address":23440 }, { "id":"railpmodsource", "type":9, "maxwidth":2, "address":23372 }, { "id":"railpmodptcount", "type":1, "min":2, "max":16, "address":23369 }, { "id":"railpmodbins", "type":2, "describedby":"railpmodsource", "cols":"railpmodptcount", "array":16, "address":23376 }, { "id":"railpmod", "type":2, "sign":1, "unit":"bar", "scale":0.100000, "digits":1, "array":16, "cols":"railpmodptcount", "address":23408 }, { "id":"hsloglevel", "type":8, "options":[ [ 0, "Crank only" ], [ 10, "Crank, cams and sync" ], [ 39, "Crank, cams, sync, injectors" ], [ 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":23445 }, { "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":23448 }, { "id":"evtlogchan2", "type":9, "maxwidth":2, "address":23452 }, { "id":"rpmcalcinterval", "type":1, "max":16, "descr":"For odd fire engines or engines with crank trigger wheel tooth spacing that don't match the cylinder angle spacing, this setting can be used to override how the engine cycle is divided to calculate engine speed. Most applications should leave this setting at 0, do not change without consulting support.", "address":23443 }, { "id":"softjittercount", "type":1, "max":7, "descr":"If the multi tooth jitter filter is turned off, and using the versatile multi tooth trigger strategy, this setting lets you calculate the immediately apparent engine speed over a longer span than a single crank tooth.\r\nUse with caution, multi tooth jitter filter should almost never be turned off to begin with and this is probably really only useful for odd fire engines with very narrow spaced (big banger) firing orders.", "address":23444 }, { "id":"gpinlevel", "type":3, "address":23456 }, { "id":"gpin_invert0", "type":8, "address":"gpinlevel.0.0", "options":[ "Active low", "Active high" ], "compact":32, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"separatefuelvolbins", "type":8, "options":"enum_enabled", "address":"bits1.8.8", "descr":"Enabling this option lets the injector flow models use fuel volume breakpoints separate from other maps that rely on fuel volume, enabling changing injectors without restructuring other maps.\r\nThis option exists for backwards compatibility with older configurations, and should probably be enabled for every new configuration." }, { "id":"percylqtytrimsenable", "type":8, "options":"enum_enabled", "address":"bits1.9.9", "descr":"Note that disabling the trims while the ECU is powered on will not zero out the trims on the remote controller if running in master\/slave mode." }, { "id":"percyltimingtrimsenable", "type":8, "options":"enum_enabled", "address":"bits1.10.10", "descr":"Note that disabling the trims while the ECU is powered on will not zero out the trims on the remote controller if running in master\/slave mode." }, { "id":"injpwaddersrc", "type":9, "maxwidth":2, "address":23460 }, { "id":"injpwadderpts", "type":2, "array":8, "describedby":"injpwaddersrc", "address":23480 }, { "id":"injpwadder", "type":2, "unit":"µs", "array":8, "descr":"This value is added to the injector flow map values, as well as to the start of injection. Normally not used, do not use unless you have carefully characterised your injectors and concluded that it will make tuning simpler and not more complex.", "address":23464 }, { "id":"vssvarpicker", "type":9, "address":23528 }, { "id":"vssvarpicker2", "type":9, "address":23532 }, { "id":"vsssource", "type":8, "options":[ "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7", "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":16768 }, { "id":"vsssource2", "type":8, "options":[ "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7", "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":16769 }, { "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":23496 }, { "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":23500 }, { "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":23504 }, { "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":23508 }, { "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":23512 }, { "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":23514 }, { "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":23516 }, { "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":23518 }, { "id":"vssmode_fl", "type":8, "options":[ "Other", "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7" ], "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":23520 }, { "id":"vssmode_fr", "type":8, "options":[ "Other", "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7" ], "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":23521 }, { "id":"vssmode_rl", "type":8, "options":[ "Other", "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7" ], "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":23522 }, { "id":"vssmode_rr", "type":8, "options":[ "Other", "Digital input 1", "Digital input 3", "Digital input 4", "Digital input 5", "Digital input 6", "Digital input 7" ], "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":23523 }, { "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":23524 }, { "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":13144 }, { "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":13146 }, { "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":13148 }, { "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":13150 }, { "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":13152 }, { "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":13154 }, { "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":13156 }, { "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":13158 }, { "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":13160 }, { "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":13162 }, { "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":13164 }, { "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":13166 }, { "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":13168 }, { "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":13170 }, { "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":13172 }, { "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":13174 }, { "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":13176 }, { "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":13180 }, { "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":13182 }, { "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":13184 }, { "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":13186 }, { "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":13188 }, { "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":13190 }, { "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":13192 }, { "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":13194 }, { "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":13196 }, { "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":13198 }, { "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":13200 }, { "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":13202 }, { "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":13204 }, { "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":13206 }, { "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":13208 }, { "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":13210 }, { "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":13212 }, { "id":"gpiocond1var1", "compact":0, "type":9, "address":12440 }, { "id":"gpiocond1var2", "compact":0, "type":9, "address":12444 }, { "id":"gpiocond1var3", "compact":0, "type":9, "address":12448 }, { "id":"gpiocond1var4", "compact":0, "type":9, "address":12452 }, { "id":"gpiocond1var5", "compact":0, "type":9, "address":12456 }, { "id":"gpiocond1var6", "compact":0, "type":9, "address":12460 }, { "id":"gpiocond1var7", "compact":0, "type":9, "address":12464 }, { "id":"gpiocond1var8", "compact":0, "type":9, "address":12468 }, { "id":"gpiocond1var9", "compact":0, "type":9, "address":12472 }, { "id":"gpiocond1var10", "compact":0, "type":9, "address":12476 }, { "id":"gpiocond1var11", "compact":0, "type":9, "address":12480 }, { "id":"gpiocond1var12", "compact":0, "type":9, "address":12484 }, { "id":"gpiocond1var13", "compact":0, "type":9, "address":12488 }, { "id":"gpiocond1var14", "compact":0, "type":9, "address":12492 }, { "id":"gpiocond1var15", "compact":0, "type":9, "address":12496 }, { "id":"gpiocond1var16", "compact":0, "type":9, "address":12500 }, { "id":"gpiocond1var17", "compact":0, "type":9, "address":12504 }, { "id":"gpiocond1val1", "compact":0, "type":3, "describedby":"gpiocond1var1", "address":12512 }, { "id":"gpiocond1val2", "compact":0, "type":3, "describedby":"gpiocond1var2", "address":12516 }, { "id":"gpiocond1val3", "compact":0, "type":3, "describedby":"gpiocond1var3", "address":12520 }, { "id":"gpiocond1val4", "compact":0, "type":3, "describedby":"gpiocond1var4", "address":12524 }, { "id":"gpiocond1val5", "compact":0, "type":3, "describedby":"gpiocond1var5", "address":12528 }, { "id":"gpiocond1val6", "compact":0, "type":3, "describedby":"gpiocond1var6", "address":12532 }, { "id":"gpiocond1val7", "compact":0, "type":3, "describedby":"gpiocond1var7", "address":12536 }, { "id":"gpiocond1val8", "compact":0, "type":3, "describedby":"gpiocond1var8", "address":12540 }, { "id":"gpiocond1val9", "compact":0, "type":3, "describedby":"gpiocond1var9", "address":12544 }, { "id":"gpiocond1val10", "compact":0, "type":3, "describedby":"gpiocond1var10", "address":12548 }, { "id":"gpiocond1val11", "compact":0, "type":3, "describedby":"gpiocond1var11", "address":12552 }, { "id":"gpiocond1val12", "compact":0, "type":3, "describedby":"gpiocond1var12", "address":12556 }, { "id":"gpiocond1val13", "compact":0, "type":3, "describedby":"gpiocond1var13", "address":12560 }, { "id":"gpiocond1val14", "compact":0, "type":3, "describedby":"gpiocond1var14", "address":12564 }, { "id":"gpiocond1val15", "compact":0, "type":3, "describedby":"gpiocond1var15", "address":12568 }, { "id":"gpiocond1val16", "compact":0, "type":3, "describedby":"gpiocond1var16", "address":12572 }, { "id":"gpiocond1val17", "compact":0, "type":3, "describedby":"gpiocond1var17", "address":12576 }, { "id":"gpiocond1hyster1", "compact":0, "type":3, "describedby":"gpiocond1var1", "relative":1, "address":12584 }, { "id":"gpiocond1hyster2", "compact":0, "type":3, "describedby":"gpiocond1var2", "relative":1, "address":12588 }, { "id":"gpiocond1hyster3", "compact":0, "type":3, "describedby":"gpiocond1var3", "relative":1, "address":12592 }, { "id":"gpiocond1hyster4", "compact":0, "type":3, "describedby":"gpiocond1var4", "relative":1, "address":12596 }, { "id":"gpiocond1hyster5", "compact":0, "type":3, "describedby":"gpiocond1var5", "relative":1, "address":12600 }, { "id":"gpiocond1hyster6", "compact":0, "type":3, "describedby":"gpiocond1var6", "relative":1, "address":12604 }, { "id":"gpiocond1hyster7", "compact":0, "type":3, "describedby":"gpiocond1var7", "relative":1, "address":12608 }, { "id":"gpiocond1hyster8", "compact":0, "type":3, "describedby":"gpiocond1var8", "relative":1, "address":12612 }, { "id":"gpiocond1hyster9", "compact":0, "type":3, "describedby":"gpiocond1var9", "relative":1, "address":12616 }, { "id":"gpiocond1hyster10", "compact":0, "type":3, "describedby":"gpiocond1var10", "relative":1, "address":12620 }, { "id":"gpiocond1hyster11", "compact":0, "type":3, "describedby":"gpiocond1var11", "relative":1, "address":12624 }, { "id":"gpiocond1hyster12", "compact":0, "type":3, "describedby":"gpiocond1var12", "relative":1, "address":12628 }, { "id":"gpiocond1hyster13", "compact":0, "type":3, "describedby":"gpiocond1var13", "relative":1, "address":12632 }, { "id":"gpiocond1hyster14", "compact":0, "type":3, "describedby":"gpiocond1var14", "relative":1, "address":12636 }, { "id":"gpiocond1hyster15", "compact":0, "type":3, "describedby":"gpiocond1var15", "relative":1, "address":12640 }, { "id":"gpiocond1hyster16", "compact":0, "type":3, "describedby":"gpiocond1var16", "relative":1, "address":12644 }, { "id":"gpiocond1hyster17", "compact":0, "type":3, "describedby":"gpiocond1var17", "relative":1, "address":12648 }, { "id":"gpiocond1param1", "compact":0, "type":1, "address":12653 }, { "id":"gpiocond1param2", "compact":0, "type":1, "address":12654 }, { "id":"gpiocond1param3", "compact":0, "type":1, "address":12655 }, { "id":"gpiocond1param4", "compact":0, "type":1, "address":12656 }, { "id":"gpiocond1param5", "compact":0, "type":1, "address":12657 }, { "id":"gpiocond1param6", "compact":0, "type":1, "address":12658 }, { "id":"gpiocond1param7", "compact":0, "type":1, "address":12659 }, { "id":"gpiocond1param8", "compact":0, "type":1, "address":12660 }, { "id":"gpiocond1param9", "compact":0, "type":1, "address":12661 }, { "id":"gpiocond1param10", "compact":0, "type":1, "address":12662 }, { "id":"gpiocond1param11", "compact":0, "type":1, "address":12663 }, { "id":"gpiocond1param12", "compact":0, "type":1, "address":12664 }, { "id":"gpiocond1param13", "compact":0, "type":1, "address":12665 }, { "id":"gpiocond1param14", "compact":0, "type":1, "address":12666 }, { "id":"gpiocond1param15", "compact":0, "type":1, "address":12667 }, { "id":"gpiocond1param16", "compact":0, "type":1, "address":12668 }, { "id":"gpiocond1param17", "compact":0, "type":1, "address":12669 }, { "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":12676 }, { "id":"gpiocond2var2", "compact":0, "type":9, "address":12680 }, { "id":"gpiocond2var3", "compact":0, "type":9, "address":12684 }, { "id":"gpiocond2var4", "compact":0, "type":9, "address":12688 }, { "id":"gpiocond2var5", "compact":0, "type":9, "address":12692 }, { "id":"gpiocond2var6", "compact":0, "type":9, "address":12696 }, { "id":"gpiocond2var7", "compact":0, "type":9, "address":12700 }, { "id":"gpiocond2var8", "compact":0, "type":9, "address":12704 }, { "id":"gpiocond2var9", "compact":0, "type":9, "address":12708 }, { "id":"gpiocond2var10", "compact":0, "type":9, "address":12712 }, { "id":"gpiocond2var11", "compact":0, "type":9, "address":12716 }, { "id":"gpiocond2var12", "compact":0, "type":9, "address":12720 }, { "id":"gpiocond2var13", "compact":0, "type":9, "address":12724 }, { "id":"gpiocond2var14", "compact":0, "type":9, "address":12728 }, { "id":"gpiocond2var15", "compact":0, "type":9, "address":12732 }, { "id":"gpiocond2var16", "compact":0, "type":9, "address":12736 }, { "id":"gpiocond2var17", "compact":0, "type":9, "address":12740 }, { "id":"gpiocond2val1", "compact":0, "type":3, "describedby":"gpiocond2var1", "address":12748 }, { "id":"gpiocond2val2", "compact":0, "type":3, "describedby":"gpiocond2var2", "address":12752 }, { "id":"gpiocond2val3", "compact":0, "type":3, "describedby":"gpiocond2var3", "address":12756 }, { "id":"gpiocond2val4", "compact":0, "type":3, "describedby":"gpiocond2var4", "address":12760 }, { "id":"gpiocond2val5", "compact":0, "type":3, "describedby":"gpiocond2var5", "address":12764 }, { "id":"gpiocond2val6", "compact":0, "type":3, "describedby":"gpiocond2var6", "address":12768 }, { "id":"gpiocond2val7", "compact":0, "type":3, "describedby":"gpiocond2var7", "address":12772 }, { "id":"gpiocond2val8", "compact":0, "type":3, "describedby":"gpiocond2var8", "address":12776 }, { "id":"gpiocond2val9", "compact":0, "type":3, "describedby":"gpiocond2var9", "address":12780 }, { "id":"gpiocond2val10", "compact":0, "type":3, "describedby":"gpiocond2var10", "address":12784 }, { "id":"gpiocond2val11", "compact":0, "type":3, "describedby":"gpiocond2var11", "address":12788 }, { "id":"gpiocond2val12", "compact":0, "type":3, "describedby":"gpiocond2var12", "address":12792 }, { "id":"gpiocond2val13", "compact":0, "type":3, "describedby":"gpiocond2var13", "address":12796 }, { "id":"gpiocond2val14", "compact":0, "type":3, "describedby":"gpiocond2var14", "address":12800 }, { "id":"gpiocond2val15", "compact":0, "type":3, "describedby":"gpiocond2var15", "address":12804 }, { "id":"gpiocond2val16", "compact":0, "type":3, "describedby":"gpiocond2var16", "address":12808 }, { "id":"gpiocond2val17", "compact":0, "type":3, "describedby":"gpiocond2var17", "address":12812 }, { "id":"gpiocond2hyster1", "compact":0, "type":3, "describedby":"gpiocond2var1", "relative":1, "address":12820 }, { "id":"gpiocond2hyster2", "compact":0, "type":3, "describedby":"gpiocond2var2", "relative":1, "address":12824 }, { "id":"gpiocond2hyster3", "compact":0, "type":3, "describedby":"gpiocond2var3", "relative":1, "address":12828 }, { "id":"gpiocond2hyster4", "compact":0, "type":3, "describedby":"gpiocond2var4", "relative":1, "address":12832 }, { "id":"gpiocond2hyster5", "compact":0, "type":3, "describedby":"gpiocond2var5", "relative":1, "address":12836 }, { "id":"gpiocond2hyster6", "compact":0, "type":3, "describedby":"gpiocond2var6", "relative":1, "address":12840 }, { "id":"gpiocond2hyster7", "compact":0, "type":3, "describedby":"gpiocond2var7", "relative":1, "address":12844 }, { "id":"gpiocond2hyster8", "compact":0, "type":3, "describedby":"gpiocond2var8", "relative":1, "address":12848 }, { "id":"gpiocond2hyster9", "compact":0, "type":3, "describedby":"gpiocond2var9", "relative":1, "address":12852 }, { "id":"gpiocond2hyster10", "compact":0, "type":3, "describedby":"gpiocond2var10", "relative":1, "address":12856 }, { "id":"gpiocond2hyster11", "compact":0, "type":3, "describedby":"gpiocond2var11", "relative":1, "address":12860 }, { "id":"gpiocond2hyster12", "compact":0, "type":3, "describedby":"gpiocond2var12", "relative":1, "address":12864 }, { "id":"gpiocond2hyster13", "compact":0, "type":3, "describedby":"gpiocond2var13", "relative":1, "address":12868 }, { "id":"gpiocond2hyster14", "compact":0, "type":3, "describedby":"gpiocond2var14", "relative":1, "address":12872 }, { "id":"gpiocond2hyster15", "compact":0, "type":3, "describedby":"gpiocond2var15", "relative":1, "address":12876 }, { "id":"gpiocond2hyster16", "compact":0, "type":3, "describedby":"gpiocond2var16", "relative":1, "address":12880 }, { "id":"gpiocond2hyster17", "compact":0, "type":3, "describedby":"gpiocond2var17", "relative":1, "address":12884 }, { "id":"gpiocond2param1", "compact":0, "type":1, "address":12889 }, { "id":"gpiocond2param2", "compact":0, "type":1, "address":12890 }, { "id":"gpiocond2param3", "compact":0, "type":1, "address":12891 }, { "id":"gpiocond2param4", "compact":0, "type":1, "address":12892 }, { "id":"gpiocond2param5", "compact":0, "type":1, "address":12893 }, { "id":"gpiocond2param6", "compact":0, "type":1, "address":12894 }, { "id":"gpiocond2param7", "compact":0, "type":1, "address":12895 }, { "id":"gpiocond2param8", "compact":0, "type":1, "address":12896 }, { "id":"gpiocond2param9", "compact":0, "type":1, "address":12897 }, { "id":"gpiocond2param10", "compact":0, "type":1, "address":12898 }, { "id":"gpiocond2param11", "compact":0, "type":1, "address":12899 }, { "id":"gpiocond2param12", "compact":0, "type":1, "address":12900 }, { "id":"gpiocond2param13", "compact":0, "type":1, "address":12901 }, { "id":"gpiocond2param14", "compact":0, "type":1, "address":12902 }, { "id":"gpiocond2param15", "compact":0, "type":1, "address":12903 }, { "id":"gpiocond2param16", "compact":0, "type":1, "address":12904 }, { "id":"gpiocond2param17", "compact":0, "type":1, "address":12905 }, { "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":12912 }, { "id":"gpiocond3var2", "compact":0, "type":9, "address":12916 }, { "id":"gpiocond3var3", "compact":0, "type":9, "address":12920 }, { "id":"gpiocond3var4", "compact":0, "type":9, "address":12924 }, { "id":"gpiocond3var5", "compact":0, "type":9, "address":12928 }, { "id":"gpiocond3var6", "compact":0, "type":9, "address":12932 }, { "id":"gpiocond3var7", "compact":0, "type":9, "address":12936 }, { "id":"gpiocond3var8", "compact":0, "type":9, "address":12940 }, { "id":"gpiocond3var9", "compact":0, "type":9, "address":12944 }, { "id":"gpiocond3var10", "compact":0, "type":9, "address":12948 }, { "id":"gpiocond3var11", "compact":0, "type":9, "address":12952 }, { "id":"gpiocond3var12", "compact":0, "type":9, "address":12956 }, { "id":"gpiocond3var13", "compact":0, "type":9, "address":12960 }, { "id":"gpiocond3var14", "compact":0, "type":9, "address":12964 }, { "id":"gpiocond3var15", "compact":0, "type":9, "address":12968 }, { "id":"gpiocond3var16", "compact":0, "type":9, "address":12972 }, { "id":"gpiocond3var17", "compact":0, "type":9, "address":12976 }, { "id":"gpiocond3val1", "compact":0, "type":3, "describedby":"gpiocond3var1", "address":12984 }, { "id":"gpiocond3val2", "compact":0, "type":3, "describedby":"gpiocond3var2", "address":12988 }, { "id":"gpiocond3val3", "compact":0, "type":3, "describedby":"gpiocond3var3", "address":12992 }, { "id":"gpiocond3val4", "compact":0, "type":3, "describedby":"gpiocond3var4", "address":12996 }, { "id":"gpiocond3val5", "compact":0, "type":3, "describedby":"gpiocond3var5", "address":13000 }, { "id":"gpiocond3val6", "compact":0, "type":3, "describedby":"gpiocond3var6", "address":13004 }, { "id":"gpiocond3val7", "compact":0, "type":3, "describedby":"gpiocond3var7", "address":13008 }, { "id":"gpiocond3val8", "compact":0, "type":3, "describedby":"gpiocond3var8", "address":13012 }, { "id":"gpiocond3val9", "compact":0, "type":3, "describedby":"gpiocond3var9", "address":13016 }, { "id":"gpiocond3val10", "compact":0, "type":3, "describedby":"gpiocond3var10", "address":13020 }, { "id":"gpiocond3val11", "compact":0, "type":3, "describedby":"gpiocond3var11", "address":13024 }, { "id":"gpiocond3val12", "compact":0, "type":3, "describedby":"gpiocond3var12", "address":13028 }, { "id":"gpiocond3val13", "compact":0, "type":3, "describedby":"gpiocond3var13", "address":13032 }, { "id":"gpiocond3val14", "compact":0, "type":3, "describedby":"gpiocond3var14", "address":13036 }, { "id":"gpiocond3val15", "compact":0, "type":3, "describedby":"gpiocond3var15", "address":13040 }, { "id":"gpiocond3val16", "compact":0, "type":3, "describedby":"gpiocond3var16", "address":13044 }, { "id":"gpiocond3val17", "compact":0, "type":3, "describedby":"gpiocond3var17", "address":13048 }, { "id":"gpiocond3hyster1", "compact":0, "type":3, "describedby":"gpiocond3var1", "relative":1, "address":13056 }, { "id":"gpiocond3hyster2", "compact":0, "type":3, "describedby":"gpiocond3var2", "relative":1, "address":13060 }, { "id":"gpiocond3hyster3", "compact":0, "type":3, "describedby":"gpiocond3var3", "relative":1, "address":13064 }, { "id":"gpiocond3hyster4", "compact":0, "type":3, "describedby":"gpiocond3var4", "relative":1, "address":13068 }, { "id":"gpiocond3hyster5", "compact":0, "type":3, "describedby":"gpiocond3var5", "relative":1, "address":13072 }, { "id":"gpiocond3hyster6", "compact":0, "type":3, "describedby":"gpiocond3var6", "relative":1, "address":13076 }, { "id":"gpiocond3hyster7", "compact":0, "type":3, "describedby":"gpiocond3var7", "relative":1, "address":13080 }, { "id":"gpiocond3hyster8", "compact":0, "type":3, "describedby":"gpiocond3var8", "relative":1, "address":13084 }, { "id":"gpiocond3hyster9", "compact":0, "type":3, "describedby":"gpiocond3var9", "relative":1, "address":13088 }, { "id":"gpiocond3hyster10", "compact":0, "type":3, "describedby":"gpiocond3var10", "relative":1, "address":13092 }, { "id":"gpiocond3hyster11", "compact":0, "type":3, "describedby":"gpiocond3var11", "relative":1, "address":13096 }, { "id":"gpiocond3hyster12", "compact":0, "type":3, "describedby":"gpiocond3var12", "relative":1, "address":13100 }, { "id":"gpiocond3hyster13", "compact":0, "type":3, "describedby":"gpiocond3var13", "relative":1, "address":13104 }, { "id":"gpiocond3hyster14", "compact":0, "type":3, "describedby":"gpiocond3var14", "relative":1, "address":13108 }, { "id":"gpiocond3hyster15", "compact":0, "type":3, "describedby":"gpiocond3var15", "relative":1, "address":13112 }, { "id":"gpiocond3hyster16", "compact":0, "type":3, "describedby":"gpiocond3var16", "relative":1, "address":13116 }, { "id":"gpiocond3hyster17", "compact":0, "type":3, "describedby":"gpiocond3var17", "relative":1, "address":13120 }, { "id":"gpiocond3param1", "compact":0, "type":1, "address":13125 }, { "id":"gpiocond3param2", "compact":0, "type":1, "address":13126 }, { "id":"gpiocond3param3", "compact":0, "type":1, "address":13127 }, { "id":"gpiocond3param4", "compact":0, "type":1, "address":13128 }, { "id":"gpiocond3param5", "compact":0, "type":1, "address":13129 }, { "id":"gpiocond3param6", "compact":0, "type":1, "address":13130 }, { "id":"gpiocond3param7", "compact":0, "type":1, "address":13131 }, { "id":"gpiocond3param8", "compact":0, "type":1, "address":13132 }, { "id":"gpiocond3param9", "compact":0, "type":1, "address":13133 }, { "id":"gpiocond3param10", "compact":0, "type":1, "address":13134 }, { "id":"gpiocond3param11", "compact":0, "type":1, "address":13135 }, { "id":"gpiocond3param12", "compact":0, "type":1, "address":13136 }, { "id":"gpiocond3param13", "compact":0, "type":1, "address":13137 }, { "id":"gpiocond3param14", "compact":0, "type":1, "address":13138 }, { "id":"gpiocond3param15", "compact":0, "type":1, "address":13139 }, { "id":"gpiocond3param16", "compact":0, "type":1, "address":13140 }, { "id":"gpiocond3param17", "compact":0, "type":1, "address":13141 }, { "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":16468 }, { "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":16470 }, { "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":16472 }, { "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":16474 }, { "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":16476 }, { "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":16478 }, { "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":16480 }, { "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":16482 }, { "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":16484 }, { "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":16486 }, { "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":16488 }, { "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":16490 }, { "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":16492 }, { "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":16494 }, { "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":16496 }, { "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":16499 }, { "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":16500 }, { "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":16501 }, { "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":16502 }, { "id":"freqfilter5", "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":16503 }, { "id":"freqfilter6", "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":16504 }, { "id":"ffset1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16820 }, { "id":"ffset2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16822 }, { "id":"ffset3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16824 }, { "id":"ffset4", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16826 }, { "id":"ffset5", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16828 }, { "id":"ffset6", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16830 }, { "id":"ffset7", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will if the reset input is not active at the time set the flip flop state to 1 if held for the specified delay time.", "address":16832 }, { "id":"ffreset1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16876 }, { "id":"ffreset2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16878 }, { "id":"ffreset3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16880 }, { "id":"ffreset4", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16882 }, { "id":"ffreset5", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16884 }, { "id":"ffreset6", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16886 }, { "id":"ffreset7", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the flip flop state to 0 if held for the specified delay time.", "address":16888 }, { "id":"fftoggle1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16844 }, { "id":"fftoggle2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16846 }, { "id":"fftoggle3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16848 }, { "id":"fftoggle4", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16850 }, { "id":"fftoggle5", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16852 }, { "id":"fftoggle6", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16854 }, { "id":"fftoggle7", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will toggle the state of the flip flop if held for the specified delay time. Reactivating the toggle is blocked for the same delay time so if delay is 1 second, the button must hold for 1 second to toggle on and then be released for 1 second before it can be pushed again to toggle off.", "address":16856 }, { "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":16835 }, { "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":16836 }, { "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":16837 }, { "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":16838 }, { "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":16839 }, { "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":16840 }, { "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":16841 }, { "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":16891 }, { "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":16892 }, { "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":16893 }, { "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":16894 }, { "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":16895 }, { "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":16896 }, { "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":16897 }, { "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":16859 }, { "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":16860 }, { "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":16861 }, { "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":16862 }, { "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":16863 }, { "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":16864 }, { "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":16865 }, { "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":16867 }, { "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":16868 }, { "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":16869 }, { "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":16870 }, { "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":16871 }, { "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":16872 }, { "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":16873 }, { "id":"ffbootstate1", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16899 }, { "id":"ffbootstate2", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16900 }, { "id":"ffbootstate3", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16901 }, { "id":"ffbootstate4", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16902 }, { "id":"ffbootstate5", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16903 }, { "id":"ffbootstate6", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16904 }, { "id":"ffbootstate7", "compact":0, "type":1, "max":1, "descr":"This is the state the flip flop assumes when controller powers on.", "address":16905 }, { "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":12, "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":16908 }, { "id":"usererrorsource3", "type":12, "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":16910 }, { "id":"usererrorsource4", "type":12, "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":16912 }, { "id":"simplepwmdutyvar2", "type":9, "maxwidth":16, "compact":0, "address":22432 }, { "id":"simplepwmdutyvar3", "type":9, "maxwidth":16, "compact":0, "address":22436 }, { "id":"simplepwmdutyvar4", "type":9, "maxwidth":16, "compact":0, "address":22440 }, { "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":22473 }, { "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":22474 }, { "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":22475 }, { "id":"simplepwmdutypts2", "type":2, "describedby":"simplepwmdutyvar2", "array":16, "cols":"simplepwmdutyptcount2", "compact":0, "address":22512 }, { "id":"simplepwmdutypts3", "type":2, "describedby":"simplepwmdutyvar3", "array":16, "cols":"simplepwmdutyptcount3", "compact":0, "address":22544 }, { "id":"simplepwmdutypts4", "type":2, "describedby":"simplepwmdutyvar4", "array":16, "cols":"simplepwmdutyptcount4", "compact":0, "address":22576 }, { "id":"simplepwmduty2", "type":2, "unit":"%", "scale":0.003052, "digits":2, "array":16, "cols":"simplepwmdutyptcount2", "compact":0, "address":22640 }, { "id":"simplepwmduty3", "type":2, "unit":"%", "scale":0.003052, "digits":2, "array":16, "cols":"simplepwmdutyptcount3", "compact":0, "address":22672 }, { "id":"simplepwmduty4", "type":2, "unit":"%", "scale":0.003052, "digits":2, "array":16, "cols":"simplepwmdutyptcount4", "compact":0, "address":22704 }, { "id":"simplepwmfreqvar2", "type":9, "maxwidth":16, "compact":0, "address":22448 }, { "id":"simplepwmfreqvar3", "type":9, "maxwidth":16, "compact":0, "address":22452 }, { "id":"simplepwmfreqvar4", "type":9, "maxwidth":16, "compact":0, "address":22456 }, { "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":22477 }, { "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":22478 }, { "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":22479 }, { "id":"simplepwmfreqpts2", "type":2, "describedby":"simplepwmfreqvar2", "array":16, "cols":"simplepwmfreqptcount2", "compact":0, "address":22768 }, { "id":"simplepwmfreqpts3", "type":2, "describedby":"simplepwmfreqvar3", "array":16, "cols":"simplepwmfreqptcount3", "compact":0, "address":22800 }, { "id":"simplepwmfreqpts4", "type":2, "describedby":"simplepwmfreqvar4", "array":16, "cols":"simplepwmfreqptcount4", "compact":0, "address":22832 }, { "id":"simplepwmfreq2", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "max":"2000", "array":16, "cols":"simplepwmfreqptcount2", "compact":0, "address":22896 }, { "id":"simplepwmfreq3", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "max":"2000", "array":16, "cols":"simplepwmfreqptcount3", "compact":0, "address":22928 }, { "id":"simplepwmfreq4", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "max":"2000", "array":16, "cols":"simplepwmfreqptcount4", "compact":0, "address":22960 }, { "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":22461 }, { "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":22462 }, { "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":22463 }, { "id":"simplepwmenable2", "type":12, "options":"map_inputs", "compact":0, "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'", "address":22466 }, { "id":"simplepwmenable3", "type":12, "options":"map_inputs", "compact":0, "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'", "address":22468 }, { "id":"simplepwmenable4", "type":12, "options":"map_inputs", "compact":0, "descr":"This input can shut off the PWM output, if you wish to have the PWM output always running select 'Always on'", "address":22470 }, { "id":"gpin_invert1", "type":8, "address":"gpinlevel.1.1", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert2", "type":8, "address":"gpinlevel.2.2", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert3", "type":8, "address":"gpinlevel.3.3", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert4", "type":8, "address":"gpinlevel.4.4", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert5", "type":8, "address":"gpinlevel.5.5", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert6", "type":8, "address":"gpinlevel.6.6", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert7", "type":8, "address":"gpinlevel.7.7", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert8", "type":8, "address":"gpinlevel.8.8", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert9", "type":8, "address":"gpinlevel.9.9", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert10", "type":8, "address":"gpinlevel.10.10", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert11", "type":8, "address":"gpinlevel.11.11", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert12", "type":8, "address":"gpinlevel.12.12", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert13", "type":8, "address":"gpinlevel.13.13", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert14", "type":8, "address":"gpinlevel.14.14", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert15", "type":8, "address":"gpinlevel.15.15", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert16", "type":8, "address":"gpinlevel.16.16", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert17", "type":8, "address":"gpinlevel.17.17", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert18", "type":8, "address":"gpinlevel.18.18", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert19", "type":8, "address":"gpinlevel.19.19", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert20", "type":8, "address":"gpinlevel.20.20", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert21", "type":8, "address":"gpinlevel.21.21", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert22", "type":8, "address":"gpinlevel.22.22", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert23", "type":8, "address":"gpinlevel.23.23", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert24", "type":8, "address":"gpinlevel.24.24", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert25", "type":8, "address":"gpinlevel.25.25", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert26", "type":8, "address":"gpinlevel.26.26", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert27", "type":8, "address":"gpinlevel.27.27", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert28", "type":8, "address":"gpinlevel.28.28", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert29", "type":8, "address":"gpinlevel.29.29", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert30", "type":8, "address":"gpinlevel.30.30", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." }, { "id":"gpin_invert31", "type":8, "address":"gpinlevel.31.31", "options":[ "Active low", "Active high" ], "compact":0, "descr":"Active low means the input is activated by grounding it, or letting it float if a pull-down is enabled. Active high means the input is active when floating or applying a voltage to it.\r\n\r\nA digital input with a pull down activated needs about 6 volts to activate a high state and registers a low state below about 2 volts input, but analog inputs and digital inputs with no pull down register a high state when the voltage exceeds about 3 volts and a low state below about 1 volt.\r\nNote that the ECU must be powered off and back on to apply changes to this parameter." } ] }, { "page":1, "size":24576, "data":[ { "id":"comments", "type":7, "array":8000, "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":8005 }, { "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":8581 }, { "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":8631 }, { "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":8681 }, { "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":8731 }, { "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":8781 }, { "id":"customformula1", "type":7, "array":128, "compressed":1, "onchange":[ [ "compileexpression", 2, "customformula1", "customformula1compiled" ] ], "address":8785 }, { "id":"customformula2", "type":7, "array":128, "compressed":1, "onchange":[ [ "compileexpression", 2, "customformula2", "customformula2compiled" ] ], "address":8913 }, { "id":"customformula3", "type":7, "array":128, "compressed":1, "onchange":[ [ "compileexpression", 2, "customformula3", "customformula3compiled" ] ], "address":9041 }, { "id":"customformula4", "type":7, "array":128, "compressed":1, "onchange":[ [ "compileexpression", 2, "customformula4", "customformula4compiled" ] ], "address":9169 }, { "id":"customformula1compiled", "type":3, "array":20, "address":9300 }, { "id":"customformula2compiled", "type":3, "array":20, "address":9380 }, { "id":"customformula3compiled", "type":3, "array":20, "address":9460 }, { "id":"customformula4compiled", "type":3, "array":20, "address":9540 }, { "id":"canseqoptions1", "type":1, "compact":0, "address":22988 }, { "id":"canseq_can2_1", "type":8, "address":"canseqoptions1.0.0", "compact":4, "options":[ "CAN 1", "CAN 2" ] }, { "id":"canseqid1", "type":3, "compact":0, "hex":1, "address":22940 }, { "id":"canseqselect1", "type":12, "options":"map_inputs", "compact":0, "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.", "address":22956 }, { "id":"canseqenable1", "type":12, "options":"map_inputs", "compact":0, "descr":"This condition enables transmission of the sequence", "address":22964 }, { "id":"canseqlength1", "type":1, "compact":0, "min":1, "max":16, "descr":"Number of items in the sequence.", "address":22972 }, { "id":"canseqdlc1", "type":1, "compact":0, "max":8, "descr":"Number of data bytes per sent frame", "address":22980 }, { "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":22976 }, { "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":22984 }, { "id":"canseq1", "type":1, "array":128, "rows":"canseqlength1", "cols":8, "address":21916 }, { "id":"canseq1alt", "type":1, "array":128, "rows":"canseqlength1", "cols":8, "address":22044 }, { "id":"canseq2", "type":1, "array":128, "rows":"canseqlength2", "cols":8, "address":22172 }, { "id":"canseq2alt", "type":1, "array":128, "rows":"canseqlength2", "cols":8, "address":22300 }, { "id":"canseq3", "type":1, "array":128, "rows":"canseqlength3", "cols":8, "address":22428 }, { "id":"canseq3alt", "type":1, "array":128, "rows":"canseqlength3", "cols":8, "address":22556 }, { "id":"canseq4", "type":1, "array":128, "rows":"canseqlength4", "cols":8, "address":22684 }, { "id":"canseq4alt", "type":1, "array":128, "rows":"canseqlength4", "cols":8, "address":22812 }, { "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":23728 }, { "id":"canscanendaddr", "min":1, "max":536870911, "hex":1, "type":3, "descr":"When a CAN scan reaches this ID, the scan is terminated.", "address":23732 }, { "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":23738 }, { "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":23739 }, { "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":23740 }, { "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":23748 }, { "id":"canscanoptions", "type":2, "address":23736 }, { "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":23756 }, { "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.20.20", "options":"enum_enabled" }, { "id":"can2rxenable", "type":8, "address":"bits0.21.21", "options":"enum_enabled" }, { "id":"customcan2enable", "type":8, "address":"bits0.22.22", "options":"enum_enabled" }, { "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":9620 }, { "id":"cantxinterval", "type":8, "options":"enum_cantxfreq", "array":32, "rows":"cantxcount", "descr":"Transmission rates of the different CAN groups, by CAN ID.", "address":10132 }, { "id":"cantxaddress", "hex":1, "type":3, "array":32, "rows":"cantxcount", "address":10164 }, { "id":"canrxdescr", "type":8, "array":32, "rows":"canrxcount", "options":"map_datatypes", "address":10420 }, { "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":10452 }, { "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":11028 }, { "id":"canrxaddr", "hex":1, "type":3, "array":32, "rows":"canrxcount", "address":10292 }, { "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":10484 }, { "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":10740 }, { "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":10996 }, { "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":10868 }, { "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":11092 }, { "id":"customcanaddr", "hex":1, "type":3, "array":32, "rows":"customcancount", "address":12116 }, { "id":"customcandata", "type":9, "array":128, "rows":"customcancount", "cols":4, "verbose":1, "address":12244 }, { "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":12884 }, { "id":"customcaninterval", "type":8, "array":32, "rows":"customcancount", "options":"enum_ccantxfreq", "address":12916 }, { "id":"customcanformat", "type":8, "array":128, "rows":"customcancount", "cols":4, "options":"map_datatypes", "address":12756 }, { "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":12948 }, { "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":13972 }, { "id":"customcantxconds", "type":12, "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":15412 }, { "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":15476 }, { "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":15380 }, { "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":15124 }, { "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":14996 }, { "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":15508 }, { "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":15636 }, { "id":"can2txformat", "maxwidth":2, "type":9, "array":128, "verbose":1, "rows":"can2txcount", "cols":4, "address":15768 }, { "id":"can2txinterval", "type":8, "options":"enum_cantxfreq", "array":32, "rows":"can2txcount", "address":16280 }, { "id":"can2txaddress", "hex":1, "type":3, "array":32, "rows":"can2txcount", "address":16312 }, { "id":"can2rxdescr", "type":8, "array":32, "rows":"can2rxcount", "options":"map_datatypes", "address":16572 }, { "id":"can2rxoffset", "type":1, "array":32, "rows":"can2rxcount", "max":7, "address":16604 }, { "id":"can2rxaddr", "hex":1, "type":3, "array":32, "rows":"can2rxcount", "address":16444 }, { "id":"can2rxrange", "type":3, "sign":1, "array":64, "rows":"can2rxcount", "cols":2, "address":16636 }, { "id":"can2rxoutput", "type":2, "array":64, "rows":"can2rxcount", "cols":2, "address":16892 }, { "id":"can2rxtimeout", "type":1, "array":32, "rows":"can2rxcount", "unit":"sec", "digits":1, "scale":0.100000, "address":17148 }, { "id":"can2rxdefault", "type":2, "array":32, "rows":"can2rxcount", "address":17020 }, { "id":"can2rxname", "type":7, "width":32, "array":32, "rows":"can2rxcount", "address":17244 }, { "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":17180 }, { "id":"customcan2addr", "hex":1, "type":3, "array":32, "rows":"customcan2count", "address":18268 }, { "id":"customcan2data", "type":9, "array":128, "rows":"customcan2count", "cols":4, "verbose":1, "address":18396 }, { "id":"customcan2length", "type":1, "array":32, "rows":"customcan2count", "max":64, "address":19036 }, { "id":"customcan2interval", "type":8, "array":32, "rows":"customcan2count", "options":"enum_ccantxfreq", "address":19068 }, { "id":"customcan2format", "type":8, "array":128, "rows":"customcan2count", "cols":4, "options":"map_datatypes", "address":18908 }, { "id":"customcan2range", "type":3, "sign":1, "array":256, "rows":"customcan2count", "cols":8, "address":19100 }, { "id":"customcan2output", "type":3, "sign":1, "array":256, "rows":"customcan2count", "cols":8, "address":20124 }, { "id":"customcan2txbytes", "type":1, "array":32, "rows":"customcan2count", "min":1, "max":8, "address":21532 }, { "id":"customcan2filler", "type":1, "array":256, "rows":"customcan2count", "cols":8, "address":21276 }, { "id":"customcan2offsets", "type":1, "array":128, "rows":"customcan2count", "cols":4, "max":63, "address":21148 }, { "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":21660 }, { "id":"customcan2txconds", "type":12, "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":21564 }, { "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":21788 }, { "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":10932 }, { "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":17084 }, { "id":"customcancount", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the custom CAN tables.", "address":15765 }, { "id":"customcan2count", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the custom CAN tables.", "address":16441 }, { "id":"canrxcount", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the CAN receive tables.", "address":15764 }, { "id":"can2rxcount", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the CAN receive tables.", "address":16440 }, { "id":"cantxcount", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the CAN broadcast tables.", "address":15766 }, { "id":"can2txcount", "type":1, "max":32, "min":1, "descr":"This parameter specifies how many rows to display in the CAN broadcast tables.", "address":16442 }, { "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":23012 }, { "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":23016 }, { "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":22992 }, { "id":"customobdcount", "type":1, "min":1, "max":32, "descr":"Custom OBD slots used.", "address":23020 }, { "id":"customobdpid", "type":1, "array":32, "rows":"customobdcount", "descr":"Specify a value of 0 for all entries that are not to be used.", "address":23021 }, { "id":"customobddata", "type":9, "array":32, "rows":"customobdcount", "verbose":1, "address":23056 }, { "id":"customobdformat", "type":8, "array":32, "rows":"customobdcount", "options":"map_bedatatypes", "address":23184 }, { "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":23216 }, { "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":23472 }, { "id":"blinkkeypadoptions", "type":1, "address":23757 }, { "id":"blinkkeypadenable", "type":8, "address":"blinkkeypadoptions.0.1", "options":[ "Disabled", "CAN 1", "CAN 2" ] }, { "id":"blinkkeypadsize1", "type":1, "max":15, "compact":0, "address":23758 }, { "id":"blinkkeypad1buttonmodes", "type":8, "array":15, "rows":"blinkkeypadsize1", "options":"enum_keypadmodes", "address":23762 }, { "id":"blinkkeypad1buttonauxinputs", "type":12, "array":30, "cols":2, "rows":"blinkkeypadsize1", "options":"map_inputs", "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition", "address":23778 }, { "id":"blinkkeypad1lightstates", "type":8, "array":30, "cols":2, "rows":"blinkkeypadsize1", "options":"enum_keypadledcolour", "address":23838 }, { "id":"blinkkeypad2buttonmodes", "type":8, "array":15, "rows":"blinkkeypadsize2", "options":"enum_keypadmodes", "address":23868 }, { "id":"blinkkeypad2buttonauxinputs", "type":12, "array":30, "cols":2, "rows":"blinkkeypadsize2", "options":"map_inputs", "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition", "address":23884 }, { "id":"blinkkeypad2lightstates", "type":8, "array":30, "cols":2, "rows":"blinkkeypadsize2", "options":"enum_keypadledcolour", "address":23944 }, { "id":"blinkkeypad3buttonmodes", "type":8, "array":15, "rows":"blinkkeypadsize3", "options":"enum_keypadmodes", "address":23974 }, { "id":"blinkkeypad3buttonauxinputs", "type":12, "array":30, "cols":2, "rows":"blinkkeypadsize3", "options":"map_inputs", "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition", "address":23990 }, { "id":"blinkkeypad3lightstates", "type":8, "array":30, "cols":2, "rows":"blinkkeypadsize3", "options":"enum_keypadledcolour", "address":24050 }, { "id":"blinkkeypad4buttonmodes", "type":8, "array":15, "rows":"blinkkeypadsize4", "options":"enum_keypadmodes", "address":24080 }, { "id":"blinkkeypad4buttonauxinputs", "type":12, "array":30, "cols":2, "rows":"blinkkeypadsize4", "options":"map_inputs", "descr":"The auxiliary inputs allow one button to turn on or off multiple channels, as well as the ability to block channels from activating on a condition", "address":24096 }, { "id":"blinkkeypad4lightstates", "type":8, "array":30, "cols":2, "rows":"blinkkeypadsize4", "options":"enum_keypadledcolour", "address":24156 }, { "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":8037 }, { "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":8069 }, { "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":8101 }, { "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":8133 }, { "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":8165 }, { "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":8197 }, { "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":8229 }, { "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":8261 }, { "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":8293 }, { "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":8325 }, { "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":8357 }, { "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":8389 }, { "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":8421 }, { "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":8453 }, { "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":8485 }, { "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":8517 }, { "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":8549 }, { "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":8782 }, { "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":8783 }, { "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":8784 }, { "id":"canseqoptions2", "type":1, "compact":0, "address":22989 }, { "id":"canseqoptions3", "type":1, "compact":0, "address":22990 }, { "id":"canseqoptions4", "type":1, "compact":0, "address":22991 }, { "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":"canseqid2", "type":3, "compact":0, "hex":1, "address":22944 }, { "id":"canseqid3", "type":3, "compact":0, "hex":1, "address":22948 }, { "id":"canseqid4", "type":3, "compact":0, "hex":1, "address":22952 }, { "id":"canseqselect2", "type":12, "options":"map_inputs", "compact":0, "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.", "address":22958 }, { "id":"canseqselect3", "type":12, "options":"map_inputs", "compact":0, "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.", "address":22960 }, { "id":"canseqselect4", "type":12, "options":"map_inputs", "compact":0, "descr":"If true, this condition selects the alternate sequence. Switching between sequences is only done when the sequence is starting over from the beginning.", "address":22962 }, { "id":"canseqenable2", "type":12, "options":"map_inputs", "compact":0, "descr":"This condition enables transmission of the sequence", "address":22966 }, { "id":"canseqenable3", "type":12, "options":"map_inputs", "compact":0, "descr":"This condition enables transmission of the sequence", "address":22968 }, { "id":"canseqenable4", "type":12, "options":"map_inputs", "compact":0, "descr":"This condition enables transmission of the sequence", "address":22970 }, { "id":"canseqlength2", "type":1, "compact":0, "min":1, "max":16, "descr":"Number of items in the sequence.", "address":22973 }, { "id":"canseqlength3", "type":1, "compact":0, "min":1, "max":16, "descr":"Number of items in the sequence.", "address":22974 }, { "id":"canseqlength4", "type":1, "compact":0, "min":1, "max":16, "descr":"Number of items in the sequence.", "address":22975 }, { "id":"canseqdlc2", "type":1, "compact":0, "max":8, "descr":"Number of data bytes per sent frame", "address":22981 }, { "id":"canseqdlc3", "type":1, "compact":0, "max":8, "descr":"Number of data bytes per sent frame", "address":22982 }, { "id":"canseqdlc4", "type":1, "compact":0, "max":8, "descr":"Number of data bytes per sent frame", "address":22983 }, { "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":22977 }, { "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":22978 }, { "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":22979 }, { "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":22985 }, { "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":22986 }, { "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":22987 }, { "id":"blinkkeypadsize2", "type":1, "max":15, "compact":0, "address":23759 }, { "id":"blinkkeypadsize3", "type":1, "max":15, "compact":0, "address":23760 }, { "id":"blinkkeypadsize4", "type":1, "max":15, "compact":0, "address":23761 } ] }, { "page":2, "size":24576, "data":[ { "id":"oilpsrc", "type":9, "maxwidth":2, "address":820 }, { "id":"oilpvoltages", "type":2, "array":2, "describedby":"oilpsrc", "address":832 }, { "id":"oilpvalidrange", "type":2, "array":2, "describedby":"oilpsrc", "address":836 }, { "id":"oilpvalues", "type":2, "array":2, "unit":"mbar", "address":828 }, { "id":"oilpdefault", "type":2, "unit":"mbar", "address":840 }, { "id":"opspeedbins", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":842 }, { "id":"opyaxsrc", "type":9, "maxwidth":2, "descr":"Variable picker for Y axis of minimum oil pressure function. Normally oil temperature.", "address":824 }, { "id":"opyaxis", "type":2, "array":8, "describedby":"opyaxsrc", "address":858 }, { "id":"opminvalue", "type":2, "unit":"mbar", "input":"oilpress", "array":64, "rows":8, "cols":8, "address":874 }, { "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":1002 }, { "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":1004 }, { "id":"oiltempsrc", "type":9, "maxwidth":2, "descr":"Variable picker for oil temperature input. Typically one of the analog inputs.", "address":1008 }, { "id":"oiltempbpcount", "type":1, "min":1, "max":32, "descr":"Specifies how many data points to use for the oil temperature sensor transfer function.", "address":1012 }, { "id":"oiltempvoltages", "type":2, "array":32, "describedby":"oiltempsrc", "cols":"oiltempbpcount", "descr":"The input breakpoints of the oil temperature sensor transfer function.", "address":1078 }, { "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":1142 }, { "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":1014 }, { "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":1146 }, { "id":"transtempsrc", "type":9, "maxwidth":2, "address":532 }, { "id":"transtempbpcount", "type":1, "min":1, "max":32, "address":536 }, { "id":"transtempvoltages", "type":2, "array":32, "describedby":"transtempsrc", "cols":"transtempbpcount", "address":602 }, { "id":"transtempvalidrange", "type":2, "array":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "address":666 }, { "id":"transtempvalues", "type":2, "array":32, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "cols":"transtempbpcount", "address":538 }, { "id":"transtempdefault", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "address":670 }, { "id":"fueltempsrc", "type":9, "maxwidth":2, "address":672 }, { "id":"fueltempbpcount", "type":1, "min":1, "max":32, "address":676 }, { "id":"fueltempvoltages", "type":2, "array":32, "describedby":"fueltempsrc", "cols":"fueltempbpcount", "address":742 }, { "id":"fueltempvalidrange", "type":2, "array":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "address":806 }, { "id":"fueltempvalues", "type":2, "array":32, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "cols":"fueltempbpcount", "address":678 }, { "id":"fueltempdefault", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "address":810 }, { "id":"engineenableinput", "type":12, "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\nWhen this input is off, the ECU will not operate fuel injectors or lift pump output.", "address":2684 }, { "id":"bcd1src", "type":12, "options":"map_inputs", "array":4, "rows":4, "descr":"The BCD function combines the values of more than one logic function or digital input to create a decimal value. The decimal value is then used as an input to some other function such as cal pot or gear select.", "address":812 }, { "id":"cruiseoptions", "type":1, "address":2700 }, { "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":2702 }, { "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":2701 }, { "id":"cruiseKp", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":2704 }, { "id":"cruiseKi", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":2706 }, { "id":"cruiseKd", "type":2, "sign":1, "scale":0.000244, "digits":4, "address":2708 }, { "id":"cruiseImin", "type":2, "sign":1, "address":2710 }, { "id":"cruiseImax", "type":2, "sign":1, "descr":"Unlike most other control loops in the system, the cruise control provides no feed-forward mechanism,\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":2712 }, { "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":2714 }, { "id":"cruisedefaultspeed", "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":"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.\nIf using engine speed for cruise control reference, there is a tenfold gain, as in, a value of 200 means 2000RPM", "address":2724 }, { "id":"cruiseserviceinterval", "type":1, "unit":"ms", "descr":"The interval at which the cruise control loop runs.", "address":2703 }, { "id":"cruisestep", "type":1, "unit":"km\/h", "digits":1, "scale":0.100000, "min":0.100000, "max":5, "variations":[ [ "cruise_enginespeedbased", "=", "Disabled" ], { "unit":"km\/h", "digits":1, "scale":0.100000, "min":0.100000, "max":5, "endif":true }, [ "cruise_enginespeedbased", "!=", "Disabled" ], { "unit":"RPM", "digits":0, "min":1, "max":50, "scale":1 } ], "descr":"This setting specifies the step increase\/decrease in speed when using the accel\/decel buttons during cruise control operation.\nWhen using engine speed for reference, there is a tenfold gain, so a value of 1 means 10RPM.", "address":2716 }, { "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":2720 }, { "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":2718 }, { "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":2726 }, { "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.\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.\nTypical values are in the range of 50-90%.", "address":2722 }, { "id":"cruisesource", "type":9, "maxwidth":2, "address":2688 }, { "id":"brakeinput", "type":12, "options":"map_inputs", "descr":"The brake pedal status input is used to disarm the cruise control.", "address":6596 }, { "id":"cruisebuttonmap", "type":2, "describedby":"cruisesource", "array":4, "cols":4, "address":2692 }, { "id":"countresetinput0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.", "address":2746 }, { "id":"upcountinput0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.", "address":2730 }, { "id":"downcountinput0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2738 }, { "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":2758 }, { "id":"downcountinput0", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2738 }, { "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":2762 }, { "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":2754 }, { "id":"counterconf", "type":1, "address":2728 }, { "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":2766 }, { "id":"latchmode1", "compact":4, "type":8, "address":"latchconfig.0.1", "options":[ "Set while active", "Leading edge", "Trailing edge", "Multiplex" ], "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input." }, { "id":"gplatchinput1", "compact":0, "type":9, "maxwidth":2, "descr":"This selects the input from where the value for the latch is taken when the set input activates it.", "address":2768 }, { "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":2784 }, { "id":"gplatchset1", "compact":0, "type":12, "options":"map_inputs", "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.", "address":2800 }, { "id":"gplatchreset1", "compact":0, "type":12, "options":"map_inputs", "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.", "address":2808 }, { "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":2816 }, { "id":"egtsrc1", "type":9, "maxwidth":2, "compact":0, "address":2864 }, { "id":"egtbpcount1", "type":1, "min":1, "compact":0, "max":16, "address":2896 }, { "id":"egtinput1", "type":2, "array":16, "cols":"egtbpcount1", "describedby":"egtsrc1", "address":2904 }, { "id":"egtval1", "type":2, "array":16, "cols":"egtbpcount1", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3160 }, { "id":"egtinput2", "type":2, "array":16, "cols":"egtbpcount2", "describedby":"egtsrc2", "address":2936 }, { "id":"egtval2", "type":2, "array":16, "cols":"egtbpcount2", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3192 }, { "id":"egtinput3", "type":2, "array":16, "cols":"egtbpcount3", "describedby":"egtsrc3", "address":2968 }, { "id":"egtval3", "type":2, "array":16, "cols":"egtbpcount3", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3224 }, { "id":"egtinput4", "type":2, "array":16, "cols":"egtbpcount4", "describedby":"egtsrc4", "address":3000 }, { "id":"egtval4", "type":2, "array":16, "cols":"egtbpcount4", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3256 }, { "id":"egtinput5", "type":2, "array":16, "cols":"egtbpcount5", "describedby":"egtsrc5", "address":3032 }, { "id":"egtval5", "type":2, "array":16, "cols":"egtbpcount5", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3288 }, { "id":"egtinput6", "type":2, "array":16, "cols":"egtbpcount6", "describedby":"egtsrc6", "address":3064 }, { "id":"egtval6", "type":2, "array":16, "cols":"egtbpcount6", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3320 }, { "id":"egtinput7", "type":2, "array":16, "cols":"egtbpcount7", "describedby":"egtsrc7", "address":3096 }, { "id":"egtval7", "type":2, "array":16, "cols":"egtbpcount7", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3352 }, { "id":"egtinput8", "type":2, "array":16, "cols":"egtbpcount8", "describedby":"egtsrc8", "address":3128 }, { "id":"egtval8", "type":2, "array":16, "cols":"egtbpcount8", "unit":"°C", "scale":0.100000, "digits":1, "offset":-2731, "address":3384 }, { "id":"din8function", "type":8, "reset":1, "options":[ "General purpose digital input", "NMEA GPS input", "Generic numeric serial data" ], "descr":"Note that this input is not present on controllers with a serial number below 200.\r\nGeneral purpose digital input mode allows digital input 8 to be used as a standard logic input.\r\nNMEA GPS needs no explanation.\r\nGeneric numeric serial data expects a number in ASCII format with or without decimal point followed by a carriage return or line feed. An example of this is many wide band lambda gauges with a serial output.", "address":3416 }, { "id":"din8baud", "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":3417 }, { "id":"timeropts1", "compact":0, "type":1, "address":3418 }, { "id":"timerreset1", "compact":0, "type":12, "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":3430 }, { "id":"timeredgereset1", "compact":0, "type":12, "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":3438 }, { "id":"timerenable1", "compact":0, "type":12, "options":"map_inputs", "descr":"When this input is active, the timer counts up.", "address":3422 }, { "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":3448 }, { "id":"customlookupcount1", "type":1, "compact":0, "min":1, "max":32, "address":3464 }, { "id":"customlookupopts1", "type":1, "compact":0, "address":3468 }, { "id":"customlookupdecimal1", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":3472 }, { "id":"customlookupsigned1", "type":8, "address":"customlookupopts1.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"customlookupsigned2", "type":8, "address":"customlookupopts2.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"customlookupsigned3", "type":8, "address":"customlookupopts3.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"customlookupsigned4", "type":8, "address":"customlookupopts4.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"customlookup1axis", "type":2, "describedby":"customlookupsrc1", "array":32, "cols":"customlookupcount1", "address":3732 }, { "id":"customlookup2axis", "type":2, "describedby":"customlookupsrc2", "array":32, "cols":"customlookupcount2", "address":3796 }, { "id":"customlookup3axis", "type":2, "describedby":"customlookupsrc3", "array":32, "cols":"customlookupcount3", "address":3860 }, { "id":"customlookup4axis", "type":2, "describedby":"customlookupsrc4", "array":32, "cols":"customlookupcount4", "address":3924 }, { "id":"customlookup1", "type":2, "array":32, "cols":"customlookupcount1", "variations":[ [ "customlookupsigned1", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned1", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal1", "=", "0" ], { "digits":0, "scale":1 }, [ "customlookupdecimal1", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal1", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal1", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":3476, "sign":0, "digits":0, "scale":1 }, { "id":"customlookup2", "type":2, "array":32, "cols":"customlookupcount2", "variations":[ [ "customlookupsigned2", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned2", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal2", "=", "0" ], { "digits":0, "scale":1 }, [ "customlookupdecimal2", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal2", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal2", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":3540, "sign":0, "digits":0, "scale":1 }, { "id":"customlookup3", "type":2, "array":32, "cols":"customlookupcount3", "variations":[ [ "customlookupsigned3", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned3", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal3", "=", "0" ], { "digits":0, "scale":1 }, [ "customlookupdecimal3", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal3", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal3", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":3604, "sign":0, "digits":0, "scale":1 }, { "id":"customlookup4", "type":2, "array":32, "cols":"customlookupcount4", "variations":[ [ "customlookupsigned4", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned4", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal4", "=", "0" ], { "digits":0, "scale":1 }, [ "customlookupdecimal4", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal4", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal4", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":3668, "sign":0, "digits":0, "scale":1 }, { "id":"custom2dopts1", "type":1, "compact":0, "address":4028 }, { "id":"custom2ddecimal1", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":4032 }, { "id":"custom2dsigned1", "type":8, "address":"custom2dopts1.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"custom2dsigned2", "type":8, "address":"custom2dopts2.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"custom2dsigned3", "type":8, "address":"custom2dopts3.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"custom2dsigned4", "type":8, "address":"custom2dopts4.7.7", "options":[ "Unsigned", "Signed" ], "descr":"If signed, negative numbers are possible. If negative numbers are not necessary, then the function should be unsigned.\r\nChanging between signed and unsigned may require reconfiguring every var picker entry that is using the variable for any purpose." }, { "id":"custom2dxsrc1", "type":9, "compact":0, "maxwidth":2, "address":3988 }, { "id":"custom2dysrc1", "type":9, "compact":0, "maxwidth":2, "address":4004 }, { "id":"custom2dxcount1", "type":1, "compact":0, "min":1, "max":32, "address":4020 }, { "id":"custom2dycount1", "type":1, "compact":0, "min":1, "max":32, "address":4024 }, { "id":"custom2dxaxis1", "type":2, "describedby":"custom2dxsrc1", "array":32, "cols":"custom2dxcount1", "address":4036 }, { "id":"custom2dyaxis1", "type":2, "describedby":"custom2dysrc1", "array":32, "cols":"custom2dycount1", "address":4100 }, { "id":"custom2dxaxis2", "type":2, "describedby":"custom2dxsrc2", "array":32, "cols":"custom2dxcount2", "address":4164 }, { "id":"custom2dyaxis2", "type":2, "describedby":"custom2dysrc2", "array":32, "cols":"custom2dycount2", "address":4228 }, { "id":"custom2dxaxis3", "type":2, "describedby":"custom2dxsrc3", "array":32, "cols":"custom2dxcount3", "address":4292 }, { "id":"custom2dyaxis3", "type":2, "describedby":"custom2dysrc3", "array":32, "cols":"custom2dycount3", "address":4356 }, { "id":"custom2dxaxis4", "type":2, "describedby":"custom2dxsrc4", "array":32, "cols":"custom2dxcount4", "address":4420 }, { "id":"custom2dyaxis4", "type":2, "describedby":"custom2dysrc4", "array":32, "cols":"custom2dycount4", "address":4484 }, { "id":"custom2dtable1", "type":2, "array":256, "cols":"custom2dxcount1", "rows":"custom2dycount1", "variations":[ [ "custom2dsigned1", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned1", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal1", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal1", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal1", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal1", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":4548, "sign":0, "digits":0, "scale":1 }, { "id":"custom2dtable2", "type":2, "array":256, "cols":"custom2dxcount2", "rows":"custom2dycount2", "variations":[ [ "custom2dsigned2", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned2", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal2", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal2", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal2", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal2", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":5060, "sign":0, "digits":0, "scale":1 }, { "id":"custom2dtable3", "type":2, "array":256, "cols":"custom2dxcount3", "rows":"custom2dycount3", "variations":[ [ "custom2dsigned3", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned3", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal3", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal3", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal3", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal3", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":5572, "sign":0, "digits":0, "scale":1 }, { "id":"custom2dtable4", "type":2, "array":256, "cols":"custom2dxcount4", "rows":"custom2dycount4", "variations":[ [ "custom2dsigned4", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned4", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal4", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal4", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal4", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal4", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":6084, "sign":0, "digits":0, "scale":1 }, { "id":"aoutsrc", "type":9, "maxwidth":2, "descr":"Variable to send out on analog output. If set to const_zero then the analog output is disabled and fixed to 0 volts. Set to const_zero if not using the analog output.", "address":6600 }, { "id":"aoutbpcount", "type":1, "min":1, "max":16, "descr":"Specifies how many data points to use for the analog output calibration.", "address":6604 }, { "id":"aoutpoints", "type":2, "array":16, "describedby":"aoutsrc", "cols":"aoutbpcount", "descr":"The input breakpoints of the analog output transfer function.", "address":6606 }, { "id":"aoutfunction", "type":2, "array":16, "unit":"V", "scale":0.005313, "digits":3, "cols":"aoutbpcount", "max":5.100000, "descr":"The output values of the analog output transfer function.", "address":6638 }, { "id":"startrequest", "type":12, "options":"map_inputs", "descr":"If using the ECU to control the starter, this parameter specifies the input that signals starting should happen. Usually either a switch input or a CAN message", "address":6670 }, { "id":"startoptions", "type":1, "address":6674 }, { "id":"start_waitglow", "type":8, "address":"startoptions.0.0", "options":"enum_enabled", "descr":"If this setting is enabled, the starter control strategy will not energise the starter until glow pre-heating is complete." }, { "id":"glow_waitstart", "type":8, "address":"startoptions.1.1", "options":"enum_enabled", "descr":"If this setting is enabled, the glow plug control strategy will not start preheating until starting is requested." }, { "id":"starttimeout", "type":1, "unit":"seconds", "digits":1, "scale":0.100000, "descr":"If the engine has not started within this time after the starter is energised, starting is cancelled.", "address":6672 }, { "id":"startrpmtimeout", "type":1, "unit":"seconds", "digits":1, "scale":0.100000, "descr":"If the crank position sensor does not pick up any signal within this time after the starter is energised, it is assumed the starter has failed to engage and starting is cancelled.", "address":6673 }, { "id":"torqueoptions", "type":1, "address":6675 }, { "id":"torquemodel_enable", "type":8, "address":"torqueoptions.0.0", "options":"enum_enabled", "descr":"This option enables the processing of the torque map and torque based fuel limits." }, { "id":"torquemodel_twomaps", "type":8, "address":"torqueoptions.1.1", "options":"enum_enabled", "descr":"If this option is enabled, the reverse mapping from torque limit to fuel limit is picked from a separate reverse map instead of from the main torque map." }, { "id":"torquelimitrequestsrc", "maxwidth":2, "type":9, "descr":"The torque request limit also affects the boost control as long as boost control is set to use the fuelrequestlimited variable for its input and thus is better suited for long-term limits like traction control.\r\nWhen the source is zero there is no limit imposed.", "address":6676 }, { "id":"torquelimitsrc", "maxwidth":2, "type":9, "descr":"The torque limit will maintain an unchanged boost target so it is more suitable for short term limits such as imposed during transmission shifts.\r\nWhen the source is zero there is no limit imposed.", "address":6680 }, { "id":"torquemap", "type":2, "array":512, "rows":"torquerpmbincount", "cols":"torquefuelbincount", "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"It is important that along the fuel axis this map is a reversible function. The torque values are required to increase with increases in fuel for correct operation of the torque model.", "address":6684 }, { "id":"torquerpmbins", "type":2, "input":"enginespeed", "unit":"RPM", "array":32, "cols":"torquerpmbincount", "address":7708 }, { "id":"torquefuelbins", "type":2, "input":"mainfuelqty", "unit":"mm3", "min":0, "max":650, "scale":0.010000, "digits":2, "array":32, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "cols":"torquefuelbincount", "address":7772 }, { "id":"torquerpmbincount", "type":1, "min":1, "max":32, "descr":"The product of this value and the torque fuel breakpoint count must be less than or equal to 512.", "address":7836 }, { "id":"torquefuelbincount", "type":1, "min":1, "max":32, "descr":"The product of this value and the torque engine speed breakpoint count must be less than or equal to 512.", "address":7837 }, { "id":"torquelimitrequestenable", "type":12, "options":"map_inputs", "descr":"A condition to enable the torque request limit, may not be necessary in all applications.", "address":7838 }, { "id":"torquelimitenable", "type":12, "options":"map_inputs", "descr":"A condition to enable the torque limit, may not be necessary in all applications.", "address":7840 }, { "id":"torquemin", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Lower boundary of computed torque values by torque management strategy", "address":7842 }, { "id":"torquemax", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Upper boundary of computed torque values by torque management strategy", "address":7844 }, { "id":"torquebincount", "type":1, "max":32, "min":1, "address":7846 }, { "id":"torquebins", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "array":32, "cols":"torquebincount", "address":7848 }, { "id":"fuelfromtorquemap", "type":2, "unit":"mm3", "min":0, "max":650, "scale":0.010000, "digits":2, "array":512, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "rows":"torquerpmbincount", "cols":"torquebincount", "descr":"This map, if enabled, is used to translate from torque limit to fuel limit, in case an asymmetrical relationship between reported torque and torque limits is desired.", "address":7912 }, { "id":"torqueectmultiplier", "array":16, "type":2, "scale":0.000977, "digits":3, "descr":"Torque compensation as a function of coolant temperature. A value of 1 means no compensation, a lower value indicates reduced engine efficiency", "address":8936 }, { "id":"crankingfuel", "type":2, "unit":"mm3", "min":0, "max":650, "scale":0.010000, "digits":2, "array":64, "rows":4, "cols":16, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":8968 }, { "id":"crankingtiming", "type":2, "unit":"°BTDC", "array":64, "rows":4, "cols":16, "scale":0.010986, "digits":1, "sign":1, "max":50, "min":-50, "address":9096 }, { "id":"crankingpilot", "type":2, "unit":"mm3", "min":0, "max":650, "scale":0.010000, "digits":2, "array":64, "rows":4, "cols":16, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":9224 }, { "id":"crankingpilottiming", "type":2, "unit":"°BTDC", "array":64, "rows":4, "cols":16, "scale":0.010986, "digits":1, "sign":1, "max":50, "min":-50, "address":9352 }, { "id":"crankingrpmbins", "type":2, "array":4, "unit":"RPM", "input":"enginespeed", "address":9480 }, { "id":"airtempfunction", "type":2, "array":16, "digits":3, "scale":0.000977, "descr":"This function multiplies the fuel limit based on air temperature to correct for air density.", "address":9488 }, { "id":"fanpwmfreq", "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 for the variable speed cooling fan.", "address":9526 }, { "id":"fanoffduty", "type":1, "unit":"%", "scale":0.390625, "descr":"PWM duty cycle of variable speed cooling fan when the fan should be stopped. When the engine is not running the fan will not run.", "address":9520 }, { "id":"fanmaxduty", "type":1, "unit":"%", "scale":0.390625, "descr":"PWM duty cycle of variable speed cooling fan when the fan is running at maximum speed.", "address":9521 }, { "id":"fanstarttemp", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "descr":"Below this temperature the fan will be stopped.", "address":9522 }, { "id":"fanmaxtemp", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "descr":"Above this temperature the fan will run at maximum speed.", "address":9524 }, { "id":"airconinput", "type":12, "options":"map_inputs", "descr":"This input will force the fan to run at a minimum of the specified speed, typically assigned to air conditioning switch.", "address":9528 }, { "id":"fanacspeed", "type":1, "unit":"%", "scale":0.390625, "descr":"The speed at which the fan will run at minimum when the air conditioning input is active. Note that this specifies a speed and not PWM duty cycle.", "address":9530 }, { "id":"gptimingmod1enable", "type":12, "options":"map_inputs", "address":9532 }, { "id":"gptimingmod1src", "type":9, "maxwidth":2, "address":9536 }, { "id":"gptimingmod1ptcount", "type":1, "max":16, "min":1, "address":9534 }, { "id":"gptimingmod1pts", "type":2, "array":16, "cols":"gptimingmod1ptcount", "describedby":"gptimingmod1src", "address":9540 }, { "id":"gptimingmod1function", "type":2, "array":16, "cols":"gptimingmod1ptcount", "unit":"°", "scale":0.010986, "digits":1, "sign":1, "max":60, "min":-60, "address":9572 }, { "id":"gptimingmod2enable", "type":12, "options":"map_inputs", "address":9604 }, { "id":"gptimingmod2src", "type":9, "maxwidth":2, "address":9608 }, { "id":"gptimingmod2ptcount", "type":1, "max":16, "min":1, "address":9606 }, { "id":"gptimingmod2pts", "type":2, "array":16, "cols":"gptimingmod2ptcount", "describedby":"gptimingmod2src", "address":9612 }, { "id":"gptimingmod2function", "type":2, "array":16, "cols":"gptimingmod2ptcount", "unit":"°", "scale":0.010986, "digits":1, "sign":1, "max":60, "min":-60, "address":9644 }, { "id":"gpfuellimit1enable", "type":12, "options":"map_inputs", "address":9676 }, { "id":"gpfuellimit1src", "type":9, "maxwidth":2, "address":9680 }, { "id":"gpfuellimit1ptcount", "type":1, "max":16, "min":1, "address":9678 }, { "id":"gpfuellimit1pts", "array":16, "type":2, "cols":"gpfuellimit1ptcount", "describedby":"gpfuellimit1src", "address":9684 }, { "id":"gpfuellimit1function", "type":2, "array":16, "cols":"gpfuellimit1ptcount", "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":9716, "max":650 }, { "id":"gpfuellimit2enable", "type":12, "options":"map_inputs", "address":9748 }, { "id":"gpfuellimit2src", "type":9, "maxwidth":2, "address":9752 }, { "id":"gpfuellimit2ptcount", "type":1, "max":16, "min":1, "address":9750 }, { "id":"gpfuellimit2pts", "type":2, "array":16, "cols":"gpfuellimit2ptcount", "describedby":"gpfuellimit2src", "address":9756 }, { "id":"gpfuellimit2function", "type":2, "array":16, "cols":"gpfuellimit2ptcount", "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":9788, "max":650 }, { "id":"h2oopts", "type":1, "address":9820 }, { "id":"h2o_enable", "type":8, "address":"h2oopts.0.0", "options":"enum_enabled" }, { "id":"h2o_cruise", "type":8, "address":"h2oopts.1.1", "options":"enum_enabled", "descr":"If the water injection control is on\/off type and used only for power boost, disable this option.\nIf the control is PWM and water injection is desired during part throttle when cruise control is active, enable this option." }, { "id":"h2oinput", "type":12, "options":"map_inputs", "address":9822 }, { "id":"h2ominrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":9824 }, { "id":"h2omaxrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":9826 }, { "id":"h2ominmap", "type":2, "unit":"mbar", "input":"map", "address":9828 }, { "id":"h2omintps", "type":2, "unit":"%", "input":"pedalposition", "digits":1, "scale":0.097656, "descr":"Hysteresis is 1.0%, so if minimum position to enable is 90%, the control will disable if the value falls below 89%", "address":9830 }, { "id":"h2ominect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":9832 }, { "id":"h2omaxect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":9834 }, { "id":"h2opwmfreq", "min":1, "max":200, "type":2, "scale":250000, "inverse":1, "unit":"Hz", "descr":"For solenoid control, small values such as 10-30Hz make sense. For pump control using an external solid state relay, values between 100-200Hz make sense.", "address":10064 }, { "id":"h2oloadsrc", "type":9, "maxwidth":2, "descr":"The load source used for mapping water injection PWM control against engine speed, values that make the most sense are map, fuelrequest or app.", "address":10060 }, { "id":"h2oloadbins", "type":2, "describedby":"h2oloadsrc", "array":8, "address":10044 }, { "id":"h2orpmbins", "type":2, "unit":"RPM", "array":8, "input":"enginespeed", "address":10028 }, { "id":"h2opwmmap", "type":1, "unit":"%", "scale":0.392157, "digits":1, "array":64, "rows":8, "cols":8, "descr":"It is not guaranteed that a 0% duty cycle will keep the output fully de-energised so if triggering a pump, it is advised that a secondary relay is used to prevent it from pumping small quantities occasionally when engine is at idle.", "address":9964 }, { "id":"h2otimingmap", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "max":60, "min":-60, "array":64, "rows":8, "cols":8, "address":9836 }, { "id":"n2oopts", "type":1, "address":10066 }, { "id":"n2o_enable", "type":8, "address":"n2oopts.0.0", "options":"enum_enabled" }, { "id":"n2o_stage1before2", "type":8, "address":"n2oopts.1.1", "options":[ "Independent of stage 1", "Requires stage 1" ], "descr":"If set to 'Requires stage 1' then N2O stage 2 will not activate unless stage 1 is active." }, { "id":"n2oinput", "type":12, "options":"map_inputs", "address":10068 }, { "id":"n2ominrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":10070 }, { "id":"n2omaxrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":10072 }, { "id":"n2ominmap", "type":2, "unit":"mbar", "input":"map", "address":10074 }, { "id":"n2omintps", "type":2, "unit":"%", "input":"pedalposition", "digits":1, "scale":0.097656, "descr":"Hysteresis is 1.0%, so if minimum position to enable is 90%, the control will disable if the value falls below 89%. This is actual accelerator pedal position, not triggerable by cruise control.", "address":10076 }, { "id":"n2ominect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":10078 }, { "id":"n2omaxect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":10080 }, { "id":"n2opwmfreq", "min":1, "max":200, "type":2, "scale":250000, "inverse":1, "unit":"Hz", "descr":"For most nitrous solenoids, values between 10-20Hz work.", "address":10440 }, { "id":"n2oloadsrc", "type":9, "maxwidth":2, "descr":"The load source used for mapping N2O against engine speed, values that make the most sense are map, fuelrequest or app.", "address":10436 }, { "id":"n2oloadbins", "type":2, "describedby":"n2oloadsrc", "array":8, "address":10418 }, { "id":"n2orpmbins", "type":2, "unit":"RPM", "array":8, "input":"enginespeed", "address":10402 }, { "id":"n2opwmmap", "type":1, "unit":"%", "scale":0.392157, "digits":1, "array":64, "rows":8, "cols":8, "address":10210 }, { "id":"n2otimingmap", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "max":60, "min":-60, "array":64, "rows":8, "cols":8, "address":10082 }, { "id":"n2olimitmap", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "array":64, "rows":8, "cols":8, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"These values are added to the fuel limit when N2O is active. Fuel quantity will not exceed fuel request however.", "address":10274, "max":650 }, { "id":"n2os2input", "type":12, "options":"map_inputs", "address":10442 }, { "id":"n2os2minrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":10444 }, { "id":"n2os2maxrpm", "type":2, "unit":"RPM", "input":"enginespeed", "address":10446 }, { "id":"n2os2minmap", "type":2, "unit":"mbar", "input":"map", "address":10448 }, { "id":"n2os2mintps", "type":2, "unit":"%", "input":"pedalposition", "digits":1, "scale":0.097656, "descr":"Hysteresis is 1.0%, so if minimum position to enable is 90%, the control will disable if the value falls below 89%. This is actual accelerator pedal position, not triggerable by cruise control.", "address":10450 }, { "id":"n2os2minect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":10452 }, { "id":"n2os2maxect", "type":2, "unit":"°C", "digits":1, "input":"coolanttemp", "scale":0.100000, "offset":-2731, "descr":"Hysteresis is 1.0°C", "address":10454 }, { "id":"n2os2pwmfreq", "min":1, "max":200, "type":2, "scale":250000, "inverse":1, "unit":"Hz", "descr":"For most nitrous solenoids, values between 10-20Hz work.", "address":10776 }, { "id":"n2os2pwmmap", "type":1, "unit":"%", "scale":0.392157, "digits":1, "array":64, "rows":8, "cols":8, "address":10584 }, { "id":"n2os2timingmap", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "max":60, "min":-60, "array":64, "rows":8, "cols":8, "address":10456 }, { "id":"n2os2limitmap", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "array":64, "rows":8, "cols":8, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"These values are added to the fuel limit when N2O is active. Fuel quantity will not exceed fuel request however.", "address":10648, "max":650 }, { "id":"harshindex_enable", "type":8, "address":"bits0.8.8", "options":"enum_enabled" }, { "id":"harshindexinterval", "type":1, "unit":"ms", "min":1, "descr":"This specifies the interval at which the smoothness index will be computed. The smoothness index is computed from the engine speed over the last 32 invocations of the smoothness index program, so effectively the interval decides over how long of a period the index is taken as well as the highest oscillation frequency that can be detected.", "address":10778 }, { "id":"harshindextolerance", "type":1, "unit":"RPM", "min":1, "descr":"The engine speed is allowed to deviate by this amount above or below the average over the sample period without being considered harsh", "address":10779 }, { "id":"harshindexmaxrpm", "type":2, "unit":"RPM", "max":10000, "address":10780 }, { "id":"harshreductiondecay", "type":2, "scale":0.010000, "digits":2, "unit":"mm3\/cycle", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"If harshness fuel reduction is activated momentarily, it will decay by this amount each computation cycle.", "address":10782, "max":650 }, { "id":"harshnesscyclebins", "type":2, "array":8, "max":100, "input":"harshcycles", "address":10912 }, { "id":"harshnessseverbins", "type":2, "array":8, "unit":"RPM", "input":"harshseverity", "address":10928 }, { "id":"harshnessmap", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "max":650, "array":64, "rows":8, "cols":8, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"This map specifies the amount of fuel the injection quantity is reduced by if the harshness strategy activates, depending on harshness severity and oscillation cycle count.", "address":10784 }, { "id":"harshnessrpmbins", "type":2, "input":"enginespeed", "unit":"RPM", "array":8, "address":10944 }, { "id":"harshnesspedalbins", "type":2, "scale":0.097656, "input":"effectiveapp", "digits":1, "unit":"%", "array":8, "address":10960 }, { "id":"harshnessauth", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "array":64, "rows":8, "cols":8, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"This map specifies the maximum fuel the harshness strategy is permitted to remove depending on accelerator pedal input and engine speed", "address":10976, "max":650 }, { "id":"lambdasource", "type":9, "maxwidth":2, "address":11108 }, { "id":"lambdaptcount", "type":1, "min":1, "max":32, "address":11104 }, { "id":"lambdavoltages", "type":2, "array":32, "cols":"lambdaptcount", "describedby":"lambdasource", "address":11112 }, { "id":"lambdavalues", "type":2, "array":32, "cols":"lambdaptcount", "scale":0.001000, "digits":3, "address":11176 }, { "id":"lambdavrange", "type":2, "array":2, "describedby":"lambdasource", "address":11240 }, { "id":"lambda2source", "type":9, "maxwidth":2, "address":11248 }, { "id":"lambda2ptcount", "type":1, "min":1, "max":32, "address":11244 }, { "id":"lambda2voltages", "type":2, "array":32, "cols":"lambda2ptcount", "describedby":"lambda2source", "address":11252 }, { "id":"lambda2values", "type":2, "array":32, "cols":"lambda2ptcount", "scale":0.001000, "digits":3, "address":11316 }, { "id":"lambda2vrange", "type":2, "array":2, "describedby":"lambda2source", "address":11380 }, { "id":"faultlevel0", "type":8, "compact":0, "options":"enum_faultlevels", "address":11384 }, { "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":11448 }, { "id":"faultfuellimits", "type":2, "array":6, "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "descr":"Ineffective if set to zero. Otherwise these values limit the maximum fuel requested if a fault is registered.\r\nIf multiple faults are registered the lowest limit has precedence.", "address":11460, "max":650 }, { "id":"oillevelsrc", "type":9, "maxwidth":2, "address":11476 }, { "id":"oillevelbpcount", "type":1, "min":2, "max":8, "address":11480 }, { "id":"oillevelpoints", "type":2, "array":8, "cols":"oillevelbpcount", "describedby":"oillevelsrc", "address":11482 }, { "id":"oillevelfunction", "type":1, "array":8, "cols":"oillevelbpcount", "unit":"mm", "address":11498 }, { "id":"oillevelinputrange", "type":2, "array":2, "describedby":"oillevelsrc", "address":11506 }, { "id":"oilleveldefault", "type":1, "unit":"mm", "address":11510 }, { "id":"oilqualitysrc", "type":9, "maxwidth":2, "address":11512 }, { "id":"oilqualitybpcount", "type":1, "min":2, "max":8, "address":11516 }, { "id":"oilqualitypoints", "type":2, "array":8, "cols":"oilqualitybpcount", "describedby":"oilqualitysrc", "address":11518 }, { "id":"oilqualityfunction", "type":1, "array":8, "cols":"oilqualitybpcount", "unit":"%", "address":11534 }, { "id":"oilqualityinputrange", "type":2, "array":2, "describedby":"oillevelsrc", "address":11542 }, { "id":"oilqualitydefault", "type":1, "unit":"%", "address":11546 }, { "id":"driverinputselect", "type":3, "descr":"Normally the accelerator pedal is connected to analog inputs 0 and 1. If this parameter is given the value of 1234567890 then the engine torque request is taken from an alternative source.", "address":11548 }, { "id":"driverinputsrc", "type":9, "maxwidth":2, "descr":"If not using a standard analog accelerator, this setting specifies where the accelerator command is taken from.", "address":11552 }, { "id":"driversecinputsrc", "type":9, "maxwidth":2, "address":11556 }, { "id":"mafptcount", "type":1, "min":1, "max":128, "address":5 }, { "id":"mafbreakpts", "type":2, "describedby":"maf1source", "array":128, "cols":"mafptcount", "address":6 }, { "id":"mafcurve", "type":2, "unit":"g\/s", "scale":0.020000, "digits":2, "array":128, "cols":"mafptcount", "address":262 }, { "id":"maf1source", "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":520 }, { "id":"maf2source", "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":524 }, { "id":"mafrange", "type":2, "describedby":"maf1source", "array":2, "address":528 }, { "id":"startallowvar", "type":9, "maxwidth":2, "descr":"Points to a variable that indicates it is safe to start, shifter in P or N position or clutch depressed as desired.", "address":11560 }, { "id":"startallowpositions", "type":2, "describedby":"startallowvar", "array":2, "descr":"These two shifter positions will allow the starter to engage, any other values will not. If only one value is valid for starting, repeat that value for both fields.", "address":11564 }, { "id":"transbraketrigger", "type":12, "options":"map_inputs", "descr":"This input activates the transbrake. If the enable condition is not active when this button is pressed then the transbrake will not get activated and you must release the button and press it again once the condition is active. Once the transbrake is active, the activation condition will not release the transbrake, only the transbrake button can release the transbrake.", "address":11568 }, { "id":"transbrakecondition", "type":12, "options":"map_inputs", "descr":"This is a condition to allow use of the transbrake, normally a logic condition that checks that the wheels are stationary and so on.", "address":11570 }, { "id":"transbrakebumptrigger", "type":12, "options":"map_inputs", "descr":"This input triggers the release of the trans brake for a predetermined duration before it is applied again, in order to let the car move forward a tiny bit.", "address":11572 }, { "id":"transbrakebumptime", "type":2, "unit":"ms", "descr":"This is how long the transbrake solenoid is released when the bump function activates.", "address":11574 }, { "id":"transbrakebumpholdoff", "type":2, "unit":"ms", "descr":"This is the period from activation of the bump function until reactivation can occur. If the bump button is still being held when the reactivation period has passed then the bump function is continuously reactivated until the button is released.\r\nNote that the timer is activated when the bump starts and not when it ends, so to have an effective hold off period then the reactivation delay must be greater than the bump duration.", "address":11576 }, { "id":"secinjoptions", "type":1, "address":13831 }, { "id":"secinjdclimit", "type":1, "unit":"%", "scale":0.390625, "digits":1, "descr":"The extra injector pulse width will be shortened if the duty cycle reaches the limit", "address":13834 }, { "id":"secinj_enable", "type":8, "options":"enum_enabled", "address":"secinjoptions.0.0" }, { "id":"secinj_pwmode", "type":8, "options":[ "Time", "Crank angle" ], "address":"secinjoptions.1.1" }, { "id":"secinjpwmap", "type":2, "scale":1, "unit":"µs", "digits":0, "array":512, "rows":"secinjpwyaxiscount", "cols":"secinjxaxiscount", "variations":[ [ "secinj_pwmode", "=", "Crank angle" ], { "unit":"°", "digits":2, "scale":0.010986, "endif":true }, [ "secinj_pwmode", "=", "Time" ], { "unit":"µs", "digits":0, "scale":1 } ], "address":11578 }, { "id":"secinjtimingmap", "type":2, "scale":0.010986, "unit":"°", "digits":1, "sign":1, "array":512, "rows":"secinjtimingyaxiscount", "cols":"secinjxaxiscount", "address":12602 }, { "id":"secinjpwyvar", "type":9, "maxwidth":2, "address":13824 }, { "id":"secinjtimingyvar", "type":9, "maxwidth":2, "address":13820 }, { "id":"secinjxaxis", "type":2, "array":32, "unit":"RPM", "cols":"secinjxaxiscount", "input":"enginespeed", "address":13754 }, { "id":"secinjpwyaxis", "type":2, "array":32, "describedby":"secinjpwyvar", "cols":"secinjpwyaxiscount", "address":13626 }, { "id":"secinjtimingyaxis", "type":2, "array":32, "describedby":"secinjtimingyvar", "cols":"secinjtimingyaxiscount", "address":13690 }, { "id":"secinjxaxiscount", "type":1, "min":1, "max":32, "descr":"The product of this and either of the Y axis breakpoint counts must be less than or equal to 512", "address":13828 }, { "id":"secinjpwyaxiscount", "type":1, "min":1, "max":32, "descr":"The product of this and the X axis breakpoint count must be less than or equal to 512", "address":13829 }, { "id":"secinjtimingyaxiscount", "type":1, "min":1, "max":32, "descr":"The product of this and the X axis breakpoint count must be less than or equal to 512", "address":13830 }, { "id":"secinjenableinput", "type":12, "options":"map_inputs", "address":13832 }, { "id":"secinjmod1mode", "type":8, "options":[ "Disabled", "Pulse width multiplier", "Pulse width adder", "Timing adder" ], "address":14235 }, { "id":"secinjmod2mode", "type":8, "options":[ "Disabled", "Pulse width multiplier", "Pulse width adder", "Timing adder" ], "address":14236 }, { "id":"secinjmod3mode", "type":8, "options":[ "Disabled", "Pulse width multiplier", "Pulse width adder", "Timing adder" ], "address":14237 }, { "id":"secinjmod1var", "type":9, "maxwidth":2, "address":13836 }, { "id":"secinjmod2var", "type":9, "maxwidth":2, "address":13840 }, { "id":"secinjmod3var", "type":9, "maxwidth":2, "address":13844 }, { "id":"secinjmod1bpcount", "type":1, "max":32, "address":14232 }, { "id":"secinjmod2bpcount", "type":1, "max":32, "address":14233 }, { "id":"secinjmod3bpcount", "type":1, "max":32, "address":14234 }, { "id":"secinjmod1axis", "type":2, "array":32, "cols":"secinjmod1bpcount", "describedby":"secinjmod1var", "address":13848 }, { "id":"secinjmod2axis", "type":2, "array":32, "cols":"secinjmod2bpcount", "describedby":"secinjmod2var", "address":13912 }, { "id":"secinjmod3axis", "type":2, "array":32, "cols":"secinjmod3bpcount", "describedby":"secinjmod3var", "address":13976 }, { "id":"secinjmod1curve", "type":2, "array":32, "cols":"secinjmod1bpcount", "variations":[ [ "secinjmod1mode", "=", "Pulse width multiplier" ], { "unit":null, "digits":3, "scale":0.000977, "sign":0, "endif":true }, [ "secinjmod1mode", "=", "Pulse width adder" ], { "unit":"µs", "digits":0, "scale":1, "sign":1, "endif":true }, [ "secinjmod1mode", "=", "Timing adder" ], { "unit":"°", "digits":1, "sign":1, "scale":0.010986 } ], "address":14040 }, { "id":"secinjmod2curve", "type":2, "array":32, "cols":"secinjmod2bpcount", "variations":[ [ "secinjmod2mode", "=", "Pulse width multiplier" ], { "unit":null, "digits":3, "scale":0.000977, "sign":0, "endif":true }, [ "secinjmod2mode", "=", "Pulse width adder" ], { "unit":"µs", "digits":0, "scale":1, "sign":1, "endif":true }, [ "secinjmod2mode", "=", "Timing adder" ], { "unit":"°", "digits":1, "sign":1, "scale":0.010986 } ], "address":14104 }, { "id":"secinjmod3curve", "type":2, "array":32, "cols":"secinjmod3bpcount", "variations":[ [ "secinjmod3mode", "=", "Pulse width multiplier" ], { "unit":null, "digits":3, "scale":0.000977, "sign":0, "endif":true }, [ "secinjmod3mode", "=", "Pulse width adder" ], { "unit":"µs", "digits":0, "scale":1, "sign":1, "endif":true }, [ "secinjmod3mode", "=", "Timing adder" ], { "unit":"°", "digits":1, "sign":1, "scale":0.010986 } ], "address":14168 }, { "id":"forcerailcontrolinput", "type":12, "options":"map_inputs", "descr":"This condition forces rail pressure control to run regardless of whether engine is running or not\r\nKEEP THIS ALWAYS OFF UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING OR YOU WILL 100% DAMAGE YOUR COMMON RAIL PUMP AND OTHER COMPONENTS.", "address":14238 }, { "id":"railcrankingtimebins", "type":2, "unit":"s", "scale":0.001000, "digits":2, "array":8, "address":14240 }, { "id":"railcrankingramp", "type":2, "unit":"bar", "scale":0.100000, "array":8, "address":14256 }, { "id":"countresetinput1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.", "address":2748 }, { "id":"countresetinput2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.", "address":2750 }, { "id":"countresetinput3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will reset the counter to the configured reset value and prevent any change of value until the reset input releases.", "address":2752 }, { "id":"upcountinput1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.", "address":2732 }, { "id":"upcountinput2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.", "address":2734 }, { "id":"upcountinput3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will increment the counter value. If the counter is already at the maximum value no action is taken unless overflow is enabled, in which case the counter assumes a value of zero.", "address":2736 }, { "id":"downcountinput1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2740 }, { "id":"downcountinput2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2742 }, { "id":"downcountinput3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2744 }, { "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":2759 }, { "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":2760 }, { "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":2761 }, { "id":"downcountinput1", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2740 }, { "id":"downcountinput2", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2742 }, { "id":"downcountinput3", "compact":0, "type":12, "options":"map_inputs", "descr":"This input will decrement the counter value. If the counter is already at zero no action is taken unless underflow is enabled, in which case the counter assumes the maximum value.", "address":2744 }, { "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":2763 }, { "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":2764 }, { "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":2765 }, { "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":2755 }, { "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":2756 }, { "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":2757 }, { "id":"countmode1", "compact":0, "type":8, "options":[ "No overflows", "Overflow enabled", "Underflow enabled", "Overflow and underflow" ], "address":"counterconf.2.3" }, { "id":"countmode2", "compact":0, "type":8, "options":[ "No overflows", "Overflow enabled", "Underflow enabled", "Overflow and underflow" ], "address":"counterconf.4.5" }, { "id":"countmode3", "compact":0, "type":8, "options":[ "No overflows", "Overflow enabled", "Underflow enabled", "Overflow and underflow" ], "address":"counterconf.6.7" }, { "id":"latchmode2", "compact":0, "type":8, "address":"latchconfig.2.3", "options":[ "Set while active", "Leading edge", "Trailing edge", "Multiplex" ], "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input." }, { "id":"latchmode3", "compact":0, "type":8, "address":"latchconfig.4.5", "options":[ "Set while active", "Leading edge", "Trailing edge", "Multiplex" ], "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input." }, { "id":"latchmode4", "compact":0, "type":8, "address":"latchconfig.6.7", "options":[ "Set while active", "Leading edge", "Trailing edge", "Multiplex" ], "descr":"This option sets the behaviour of the latch set input.\n'Set while active' means that the latch value is continually updated while the set input is active.\n'Leading edge' means the latch value is updated once when the set input activates.\n'Trailing edge means the latch value is updated when the set input deactivates.\n'Multiplex' means the primary value source is used when the set input is active but the alternate source is used if the set input is inactive. The reset input still activates the reset value but as soon as reset releases the value is picked based on the state of the set input." }, { "id":"gplatchinput2", "compact":0, "type":9, "maxwidth":2, "descr":"This selects the input from where the value for the latch is taken when the set input activates it.", "address":2772 }, { "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":2776 }, { "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":2780 }, { "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":2788 }, { "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":2792 }, { "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":2796 }, { "id":"gplatchset2", "compact":0, "type":12, "options":"map_inputs", "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.", "address":2802 }, { "id":"gplatchset3", "compact":0, "type":12, "options":"map_inputs", "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.", "address":2804 }, { "id":"gplatchset4", "compact":0, "type":12, "options":"map_inputs", "descr":"When the selected logic input is active, the latch takes the value of the input. If the latch is configured as edge sensitive the the value transfer happens when the input is activated or deactivated. If the latch is not edge sensitive the value transfer happens continually while the input is active.", "address":2806 }, { "id":"gplatchreset2", "compact":0, "type":12, "options":"map_inputs", "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.", "address":2810 }, { "id":"gplatchreset3", "compact":0, "type":12, "options":"map_inputs", "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.", "address":2812 }, { "id":"gplatchreset4", "compact":0, "type":12, "options":"map_inputs", "descr":"If the selected logic input is active, the latch takes the default value and the set input is disabled meanwhile.", "address":2814 }, { "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":2818 }, { "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":2820 }, { "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":2822 }, { "id":"egtsrc2", "type":9, "maxwidth":2, "compact":0, "address":2868 }, { "id":"egtsrc3", "type":9, "maxwidth":2, "compact":0, "address":2872 }, { "id":"egtsrc4", "type":9, "maxwidth":2, "compact":0, "address":2876 }, { "id":"egtsrc5", "type":9, "maxwidth":2, "compact":0, "address":2880 }, { "id":"egtsrc6", "type":9, "maxwidth":2, "compact":0, "address":2884 }, { "id":"egtsrc7", "type":9, "maxwidth":2, "compact":0, "address":2888 }, { "id":"egtsrc8", "type":9, "maxwidth":2, "compact":0, "address":2892 }, { "id":"egtbpcount2", "type":1, "min":1, "compact":0, "max":16, "address":2897 }, { "id":"egtbpcount3", "type":1, "min":1, "compact":0, "max":16, "address":2898 }, { "id":"egtbpcount4", "type":1, "min":1, "compact":0, "max":16, "address":2899 }, { "id":"egtbpcount5", "type":1, "min":1, "compact":0, "max":16, "address":2900 }, { "id":"egtbpcount6", "type":1, "min":1, "compact":0, "max":16, "address":2901 }, { "id":"egtbpcount7", "type":1, "min":1, "compact":0, "max":16, "address":2902 }, { "id":"egtbpcount8", "type":1, "min":1, "compact":0, "max":16, "address":2903 }, { "id":"timeropts2", "compact":0, "type":1, "address":3419 }, { "id":"timeropts3", "compact":0, "type":1, "address":3420 }, { "id":"timeropts4", "compact":0, "type":1, "address":3421 }, { "id":"timerreset2", "compact":0, "type":12, "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":3432 }, { "id":"timerreset3", "compact":0, "type":12, "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":3434 }, { "id":"timerreset4", "compact":0, "type":12, "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":3436 }, { "id":"timeredgereset2", "compact":0, "type":12, "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":3440 }, { "id":"timeredgereset3", "compact":0, "type":12, "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":3442 }, { "id":"timeredgereset4", "compact":0, "type":12, "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":3444 }, { "id":"timerenable2", "compact":0, "type":12, "options":"map_inputs", "descr":"When this input is active, the timer counts up.", "address":3424 }, { "id":"timerenable3", "compact":0, "type":12, "options":"map_inputs", "descr":"When this input is active, the timer counts up.", "address":3426 }, { "id":"timerenable4", "compact":0, "type":12, "options":"map_inputs", "descr":"When this input is active, the timer counts up.", "address":3428 }, { "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":3452 }, { "id":"customlookupsrc3", "type":9, "compact":0, "maxwidth":2, "address":3456 }, { "id":"customlookupsrc4", "type":9, "compact":0, "maxwidth":2, "address":3460 }, { "id":"customlookupcount2", "type":1, "compact":0, "min":1, "max":32, "address":3465 }, { "id":"customlookupcount3", "type":1, "compact":0, "min":1, "max":32, "address":3466 }, { "id":"customlookupcount4", "type":1, "compact":0, "min":1, "max":32, "address":3467 }, { "id":"customlookupopts2", "type":1, "compact":0, "address":3469 }, { "id":"customlookupopts3", "type":1, "compact":0, "address":3470 }, { "id":"customlookupopts4", "type":1, "compact":0, "address":3471 }, { "id":"customlookupdecimal2", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":3473 }, { "id":"customlookupdecimal3", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":3474 }, { "id":"customlookupdecimal4", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":3475 }, { "id":"custom2dopts2", "type":1, "compact":0, "address":4029 }, { "id":"custom2dopts3", "type":1, "compact":0, "address":4030 }, { "id":"custom2dopts4", "type":1, "compact":0, "address":4031 }, { "id":"custom2ddecimal2", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":4033 }, { "id":"custom2ddecimal3", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":4034 }, { "id":"custom2ddecimal4", "type":8, "compact":0, "options":[ 0, 1, 2, 3 ], "descr":"Changing the number of decimal points does not change the function's precision, it just changes the scaling. Unsigned with 0 digits after the decimal point it will support numbers ranging from 0 to 65535, whereas with 2 digits after the decimal point for example the range becomes 0 to 655.35", "address":4035 }, { "id":"custom2dxsrc2", "type":9, "compact":0, "maxwidth":2, "address":3992 }, { "id":"custom2dxsrc3", "type":9, "compact":0, "maxwidth":2, "address":3996 }, { "id":"custom2dxsrc4", "type":9, "compact":0, "maxwidth":2, "address":4000 }, { "id":"custom2dysrc2", "type":9, "compact":0, "maxwidth":2, "address":4008 }, { "id":"custom2dysrc3", "type":9, "compact":0, "maxwidth":2, "address":4012 }, { "id":"custom2dysrc4", "type":9, "compact":0, "maxwidth":2, "address":4016 }, { "id":"custom2dxcount2", "type":1, "compact":0, "min":1, "max":32, "address":4021 }, { "id":"custom2dxcount3", "type":1, "compact":0, "min":1, "max":32, "address":4022 }, { "id":"custom2dxcount4", "type":1, "compact":0, "min":1, "max":32, "address":4023 }, { "id":"custom2dycount2", "type":1, "compact":0, "min":1, "max":32, "address":4025 }, { "id":"custom2dycount3", "type":1, "compact":0, "min":1, "max":32, "address":4026 }, { "id":"custom2dycount4", "type":1, "compact":0, "min":1, "max":32, "address":4027 }, { "id":"faultlevel1", "type":8, "compact":0, "options":"enum_faultlevels", "address":11385 }, { "id":"faultlevel2", "type":8, "compact":0, "options":"enum_faultlevels", "address":11386 }, { "id":"faultlevel3", "type":8, "compact":0, "options":"enum_faultlevels", "address":11387 }, { "id":"faultlevel4", "type":8, "compact":0, "options":"enum_faultlevels", "address":11388 }, { "id":"faultlevel5", "type":8, "compact":0, "options":"enum_faultlevels", "address":11389 }, { "id":"faultlevel6", "type":8, "compact":0, "options":"enum_faultlevels", "address":11390 }, { "id":"faultlevel7", "type":8, "compact":0, "options":"enum_faultlevels", "address":11391 }, { "id":"faultlevel8", "type":8, "compact":0, "options":"enum_faultlevels", "address":11392 }, { "id":"faultlevel9", "type":8, "compact":0, "options":"enum_faultlevels", "address":11393 }, { "id":"faultlevel10", "type":8, "compact":0, "options":"enum_faultlevels", "address":11394 }, { "id":"faultlevel11", "type":8, "compact":0, "options":"enum_faultlevels", "address":11395 }, { "id":"faultlevel12", "type":8, "compact":0, "options":"enum_faultlevels", "address":11396 }, { "id":"faultlevel13", "type":8, "compact":0, "options":"enum_faultlevels", "address":11397 }, { "id":"faultlevel14", "type":8, "compact":0, "options":"enum_faultlevels", "address":11398 }, { "id":"faultlevel15", "type":8, "compact":0, "options":"enum_faultlevels", "address":11399 }, { "id":"faultlevel16", "type":8, "compact":0, "options":"enum_faultlevels", "address":11400 }, { "id":"faultlevel17", "type":8, "compact":0, "options":"enum_faultlevels", "address":11401 }, { "id":"faultlevel18", "type":8, "compact":0, "options":"enum_faultlevels", "address":11402 }, { "id":"faultlevel19", "type":8, "compact":0, "options":"enum_faultlevels", "address":11403 }, { "id":"faultlevel20", "type":8, "compact":0, "options":"enum_faultlevels", "address":11404 }, { "id":"faultlevel21", "type":8, "compact":0, "options":"enum_faultlevels", "address":11405 }, { "id":"faultlevel22", "type":8, "compact":0, "options":"enum_faultlevels", "address":11406 }, { "id":"faultlevel23", "type":8, "compact":0, "options":"enum_faultlevels", "address":11407 }, { "id":"faultlevel24", "type":8, "compact":0, "options":"enum_faultlevels", "address":11408 }, { "id":"faultlevel25", "type":8, "compact":0, "options":"enum_faultlevels", "address":11409 }, { "id":"faultlevel26", "type":8, "compact":0, "options":"enum_faultlevels", "address":11410 }, { "id":"faultlevel27", "type":8, "compact":0, "options":"enum_faultlevels", "address":11411 }, { "id":"faultlevel28", "type":8, "compact":0, "options":"enum_faultlevels", "address":11412 }, { "id":"faultlevel29", "type":8, "compact":0, "options":"enum_faultlevels", "address":11413 }, { "id":"faultlevel30", "type":8, "compact":0, "options":"enum_faultlevels", "address":11414 }, { "id":"faultlevel31", "type":8, "compact":0, "options":"enum_faultlevels", "address":11415 }, { "id":"faultlevel32", "type":8, "compact":0, "options":"enum_faultlevels", "address":11416 }, { "id":"faultlevel33", "type":8, "compact":0, "options":"enum_faultlevels", "address":11417 }, { "id":"faultlevel34", "type":8, "compact":0, "options":"enum_faultlevels", "address":11418 }, { "id":"faultlevel35", "type":8, "compact":0, "options":"enum_faultlevels", "address":11419 }, { "id":"faultlevel36", "type":8, "compact":0, "options":"enum_faultlevels", "address":11420 }, { "id":"faultlevel37", "type":8, "compact":0, "options":"enum_faultlevels", "address":11421 }, { "id":"faultlevel38", "type":8, "compact":0, "options":"enum_faultlevels", "address":11422 }, { "id":"faultlevel39", "type":8, "compact":0, "options":"enum_faultlevels", "address":11423 }, { "id":"faultlevel40", "type":8, "compact":0, "options":"enum_faultlevels", "address":11424 }, { "id":"faultlevel41", "type":8, "compact":0, "options":"enum_faultlevels", "address":11425 }, { "id":"faultlevel42", "type":8, "compact":0, "options":"enum_faultlevels", "address":11426 }, { "id":"faultlevel43", "type":8, "compact":0, "options":"enum_faultlevels", "address":11427 }, { "id":"faultlevel44", "type":8, "compact":0, "options":"enum_faultlevels", "address":11428 }, { "id":"faultlevel45", "type":8, "compact":0, "options":"enum_faultlevels", "address":11429 }, { "id":"faultlevel46", "type":8, "compact":0, "options":"enum_faultlevels", "address":11430 }, { "id":"faultlevel47", "type":8, "compact":0, "options":"enum_faultlevels", "address":11431 }, { "id":"faultlevel48", "type":8, "compact":0, "options":"enum_faultlevels", "address":11432 }, { "id":"faultlevel49", "type":8, "compact":0, "options":"enum_faultlevels", "address":11433 }, { "id":"faultlevel50", "type":8, "compact":0, "options":"enum_faultlevels", "address":11434 }, { "id":"faultlevel51", "type":8, "compact":0, "options":"enum_faultlevels", "address":11435 }, { "id":"faultlevel52", "type":8, "compact":0, "options":"enum_faultlevels", "address":11436 }, { "id":"faultlevel53", "type":8, "compact":0, "options":"enum_faultlevels", "address":11437 }, { "id":"faultlevel54", "type":8, "compact":0, "options":"enum_faultlevels", "address":11438 }, { "id":"faultlevel55", "type":8, "compact":0, "options":"enum_faultlevels", "address":11439 }, { "id":"faultlevel56", "type":8, "compact":0, "options":"enum_faultlevels", "address":11440 }, { "id":"faultlevel57", "type":8, "compact":0, "options":"enum_faultlevels", "address":11441 }, { "id":"faultlevel58", "type":8, "compact":0, "options":"enum_faultlevels", "address":11442 }, { "id":"faultlevel59", "type":8, "compact":0, "options":"enum_faultlevels", "address":11443 }, { "id":"faultlevel60", "type":8, "compact":0, "options":"enum_faultlevels", "address":11444 }, { "id":"faultlevel61", "type":8, "compact":0, "options":"enum_faultlevels", "address":11445 }, { "id":"faultlevel62", "type":8, "compact":0, "options":"enum_faultlevels", "address":11446 }, { "id":"faultlevel63", "type":8, "compact":0, "options":"enum_faultlevels", "address":11447 } ] }, { "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", "Assign a function to this variable to be called 1000 times per second. The exact frequency is not guaranteed.\r\nCallback provides no arguments and expects no return value." ], [ 1, "callback_500hz", "Assign a function to this variable to be called 500 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 2, "callback_250hz", "Assign a function to this variable to be called 250 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 3, "callback_200hz", "Assign a function to this variable to be called 200 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 4, "callback_100hz", "Assign a function to this variable to be called 100 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 5, "callback_50hz", "Assign a function to this variable to be called 50 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 6, "callback_25hz", "Assign a function to this variable to be called 25 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 7, "callback_20hz", "Assign a function to this variable to be called 20 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 8, "callback_10hz", "Assign a function to this variable to be called 10 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 9, "callback_5hz", "Assign a function to this variable to be called 5 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 10, "callback_2hz", "Assign a function to this variable to be called 2 times per second.\r\nCallback provides no arguments and expects no return value." ], [ 11, "callback_1hz", "Assign a function to this variable to be called once every second.\r\nCallback provides no arguments and expects no return value." ], [ 12, "callback_can1rx", "Assign a function to this variable to be called every time CAN interface 1 receives a frame.\r\nCallback provides three arguments: uint32 CANID, uint8 DLC, uint8 data[]\r\nNo return value is expected.\r\nThe third argument's data type can be different, for example 8 bytes can be interpreted as two uint32 values instead, but it has to be a buffer type." ], [ 13, "callback_can2rx", "Assign a function to this variable to be called every time CAN interface 2 receives a frame.\r\nCallback provides three arguments: uint32 CANID, uint8 DLC, uint8 data[]\r\nNo return value is expected.\r\nThe third argument's data type can be different, for example 8 bytes can be interpreted as two uint32 values instead, but it has to be a buffer type." ], [ 14, "callback_uart0rx", "Assign a function to this variable to be called every time there is data available (one or up to 64 bytes buffered) on UART 0 (pins internal to ECU only)\r\nCallback provides two arguments: uint8 length, uint8 data[]\r\nNo return value is expected." ], [ 15, "callback_uart3rx", "Assign a function to this variable to be called every time there is data available (one or up to 64 bytes buffered) on UART 3 (Digital in 8 or LIN interface)\r\nCallback provides two arguments: uint8 length, uint8 data[]\r\nNo return value is expected." ], [ 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", "A callback function to override the engine speed output on the tachometer output." ], [ 49, "callback_percylinder", "Assign a function to this variable to be called once for every cylinder that fires, so for a 6 cylinder 4 stroke engine this function gets called 6 times in 720 degrees of crankshaft rotation.\r\nCallback provides no arguments and expects no return value." ], [ 50, "callback_percycle", "Assign a function to this variable to be called once every engine cycle, that is once every 720 degrees of crank rotation, or 360 degrees on a two stroke.\r\nCallback provides no arguments and expects no return value." ], [ 51, "cylcutmask", "Write a mask to this register to cut off selected cylinders. A value of 0 enables all cylinders, but each set bit shuts off the corresponding cylinder" ] ], "programmemory":2048, "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":6, "size":24576, "data":[ { "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":6150 }, { "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":6662 }, { "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":7174 }, { "id":"altinjanglemap", "type":2, "unit":"°BTDC", "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "scale":0.010986, "digits":1, "sign":1, "max":90, "min":-50, "address":2054 }, { "id":"altpilotinjanglemap", "type":2, "unit":"°BTDC", "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "scale":0.010986, "digits":1, "sign":1, "max":90, "min":-50, "address":5126 }, { "id":"altrailpressuremap", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "address":3078 }, { "id":"altfuelrequestmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"appbincount", "cols":"rpmbincount", "digits":2, "descr":"This is the alternate primary fuel map, used if calibration pot settings command alternate map rather than standard.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":6 }, { "id":"altpilotinjmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"fuelvolbincount", "cols":"rpmbincount", "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":4102 }, { "id":"altfuellimitmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"mapbincount", "cols":"rpmbincount", "digits":2, "descr":"This map specifies the maximum injected fuel quantity as a function of charge air pressure and engine speed. Subject to modifiers.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":1030 }, { "id":"fuellimitrailpmap", "unit":"mm3", "min":0, "max":650, "type":2, "scale":0.010000, "array":512, "rows":"railpbincount", "cols":"rpmbincount", "digits":2, "descr":"This map specifies the maximum injected fuel quantity as a function of rail pressure and engine speed. This is to prevent excessive injector pulse widths from being used when rail pressure is below target.\r\n\r\nSee the railpfuellimit realtime variable for the output of this map. The fuellimit variable will take the same value if the railpfuellimit is lower than other limits.", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":7686 }, { "id":"injectormodel", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":8710, "digits":0, "scale":1 }, { "id":"injectormodel2", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":9734, "digits":0, "scale":1 }, { "id":"injectormodel3", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":10758, "digits":0, "scale":1 }, { "id":"injectormodel4", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":11782, "digits":0, "scale":1 }, { "id":"injectormodel5", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":12806, "digits":0, "scale":1 }, { "id":"injectormodel6", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":13830, "digits":0, "scale":1 }, { "id":"injectormodel7", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":14854, "digits":0, "scale":1 }, { "id":"injectormodel8", "unit":"µs", "type":2, "array":512, "rows":"fuelvolbincount", "cols":"railpbincount", "descr":"This map translates injection quantity to pulse width, as a function of rail pressure in case of common rail or engine speed in the case of unit injection or injection pump control.", "variations":[ [ "controlmode", "=", "Common rail" ], { "unit":"µs", "digits":0, "scale":1 }, [ "controlmode", "!=", "Common rail" ], { "unit":"°", "digits":2, "scale":0.010986 }, [ "separatefuelvolbins", "=", "Enabled" ], { "rows":"injmodelfuelvolbincount" }, [ "separatefuelvolbins", "!=", "Enabled" ], { "rows":"fuelvolbincount" } ], "address":15878, "digits":0, "scale":1 }, { "id":"injmodelfuelvolbins", "type":2, "array":32, "cols":"injmodelfuelvolbincount", "input":"mainfuelqty", "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "max":650, "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "max":1300, "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "max":1950, "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "max":2600, "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "max":3250, "scale":0.050000, "endif":true } ], "address":16902, "max":650 }, { "id":"injmodelfuelvolbincount", "type":1, "min":1, "max":32, "descr":"The product of this number and the rail pressure breakpoint count (railpbincount) must be less than or equal to 512.", "address":16966 }, { "id":"trimrpmpts1", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17096 }, { "id":"trimrpmpts2", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17112 }, { "id":"trimrpmpts3", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17128 }, { "id":"trimrpmpts4", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17144 }, { "id":"trimrpmpts5", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17160 }, { "id":"trimrpmpts6", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17176 }, { "id":"trimrpmpts7", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17192 }, { "id":"trimrpmpts8", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17208 }, { "id":"trimrpmpts9", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17224 }, { "id":"trimrpmpts10", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17240 }, { "id":"trimrpmpts11", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17256 }, { "id":"trimrpmpts12", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17272 }, { "id":"trimrpmpts13", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17288 }, { "id":"trimrpmpts14", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17304 }, { "id":"trimrpmpts15", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17320 }, { "id":"trimrpmpts16", "type":2, "unit":"RPM", "input":"enginespeed", "array":8, "address":17336 }, { "id":"maintimingtrimsrc", "type":9, "maxwidth":2, "array":16, "cols":1, "rows":"cylcount", "address":16968 }, { "id":"mainvoltrimsrc", "type":9, "maxwidth":2, "array":16, "cols":1, "rows":"cylcount", "address":17032 }, { "id":"maintimingtrimpts1", "type":2, "array":8, "describedby":"maintimingtrimsrc[0", "address":17352 }, { "id":"maintimingtrimpts2", "type":2, "array":8, "describedby":"maintimingtrimsrc[1", "address":17368 }, { "id":"maintimingtrimpts3", "type":2, "array":8, "describedby":"maintimingtrimsrc[2", "address":17384 }, { "id":"maintimingtrimpts4", "type":2, "array":8, "describedby":"maintimingtrimsrc[3", "address":17400 }, { "id":"maintimingtrimpts5", "type":2, "array":8, "describedby":"maintimingtrimsrc[4", "address":17416 }, { "id":"maintimingtrimpts6", "type":2, "array":8, "describedby":"maintimingtrimsrc[5", "address":17432 }, { "id":"maintimingtrimpts7", "type":2, "array":8, "describedby":"maintimingtrimsrc[6", "address":17448 }, { "id":"maintimingtrimpts8", "type":2, "array":8, "describedby":"maintimingtrimsrc[7", "address":17464 }, { "id":"maintimingtrimpts9", "type":2, "array":8, "describedby":"maintimingtrimsrc[8", "address":17480 }, { "id":"maintimingtrimpts10", "type":2, "array":8, "describedby":"maintimingtrimsrc[9", "address":17496 }, { "id":"maintimingtrimpts11", "type":2, "array":8, "describedby":"maintimingtrimsrc[10", "address":17512 }, { "id":"maintimingtrimpts12", "type":2, "array":8, "describedby":"maintimingtrimsrc[11", "address":17528 }, { "id":"maintimingtrimpts13", "type":2, "array":8, "describedby":"maintimingtrimsrc[12", "address":17544 }, { "id":"maintimingtrimpts14", "type":2, "array":8, "describedby":"maintimingtrimsrc[13", "address":17560 }, { "id":"maintimingtrimpts15", "type":2, "array":8, "describedby":"maintimingtrimsrc[14", "address":17576 }, { "id":"maintimingtrimpts16", "type":2, "array":8, "describedby":"maintimingtrimsrc[15", "address":17592 }, { "id":"mainvoltrimpts1", "type":2, "array":8, "describedby":"mainvoltrimsrc[0", "address":17608 }, { "id":"mainvoltrimpts2", "type":2, "array":8, "describedby":"mainvoltrimsrc[1", "address":17624 }, { "id":"mainvoltrimpts3", "type":2, "array":8, "describedby":"mainvoltrimsrc[2", "address":17640 }, { "id":"mainvoltrimpts4", "type":2, "array":8, "describedby":"mainvoltrimsrc[3", "address":17656 }, { "id":"mainvoltrimpts5", "type":2, "array":8, "describedby":"mainvoltrimsrc[4", "address":17672 }, { "id":"mainvoltrimpts6", "type":2, "array":8, "describedby":"mainvoltrimsrc[5", "address":17688 }, { "id":"mainvoltrimpts7", "type":2, "array":8, "describedby":"mainvoltrimsrc[6", "address":17704 }, { "id":"mainvoltrimpts8", "type":2, "array":8, "describedby":"mainvoltrimsrc[7", "address":17720 }, { "id":"mainvoltrimpts9", "type":2, "array":8, "describedby":"mainvoltrimsrc[8", "address":17736 }, { "id":"mainvoltrimpts10", "type":2, "array":8, "describedby":"mainvoltrimsrc[9", "address":17752 }, { "id":"mainvoltrimpts11", "type":2, "array":8, "describedby":"mainvoltrimsrc[10", "address":17768 }, { "id":"mainvoltrimpts12", "type":2, "array":8, "describedby":"mainvoltrimsrc[11", "address":17784 }, { "id":"mainvoltrimpts13", "type":2, "array":8, "describedby":"mainvoltrimsrc[12", "address":17800 }, { "id":"mainvoltrimpts14", "type":2, "array":8, "describedby":"mainvoltrimsrc[13", "address":17816 }, { "id":"mainvoltrimpts15", "type":2, "array":8, "describedby":"mainvoltrimsrc[14", "address":17832 }, { "id":"mainvoltrimpts16", "type":2, "array":8, "describedby":"mainvoltrimsrc[15", "address":17848 }, { "id":"maintimingtrim1", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":17864 }, { "id":"maintimingtrim2", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":17992 }, { "id":"maintimingtrim3", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18120 }, { "id":"maintimingtrim4", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18248 }, { "id":"maintimingtrim5", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18376 }, { "id":"maintimingtrim6", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18504 }, { "id":"maintimingtrim7", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18632 }, { "id":"maintimingtrim8", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18760 }, { "id":"maintimingtrim9", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":18888 }, { "id":"maintimingtrim10", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19016 }, { "id":"maintimingtrim11", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19144 }, { "id":"maintimingtrim12", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19272 }, { "id":"maintimingtrim13", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19400 }, { "id":"maintimingtrim14", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19528 }, { "id":"maintimingtrim15", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19656 }, { "id":"maintimingtrim16", "type":2, "array":64, "rows":8, "cols":8, "scale":0.010986, "digits":1, "min":-40, "max":40, "unit":"°", "sign":1, "address":19784 }, { "id":"mainqtytrim1", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":19912 }, { "id":"mainqtytrim2", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20040 }, { "id":"mainqtytrim3", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20168 }, { "id":"mainqtytrim4", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20296 }, { "id":"mainqtytrim5", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20424 }, { "id":"mainqtytrim6", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20552 }, { "id":"mainqtytrim7", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20680 }, { "id":"mainqtytrim8", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20808 }, { "id":"mainqtytrim9", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":20936 }, { "id":"mainqtytrim10", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21064 }, { "id":"mainqtytrim11", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21192 }, { "id":"mainqtytrim12", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21320 }, { "id":"mainqtytrim13", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21448 }, { "id":"mainqtytrim14", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21576 }, { "id":"mainqtytrim15", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21704 }, { "id":"mainqtytrim16", "type":2, "array":64, "rows":8, "cols":8, "scale":0.000977, "digits":3, "max":1.500000, "address":21832 } ] }, { "page":31, "notflash":1, "size":1024, "data":[ { "id":"n2os1runtime", "readonly":1, "type":3, "unit":"s", "scale":0.001000, "digits":1, "address":28 }, { "id":"n2os2runtime", "readonly":1, "type":3, "unit":"s", "scale":0.001000, "digits":1, "address":32 }, { "id":"nverror0", "readonly":1, "type":3, "address":8 }, { "id":"nverror1", "readonly":1, "type":3, "address":12 }, { "id":"nverror2", "readonly":1, "type":3, "address":16 }, { "id":"nverror3", "readonly":1, "type":3, "address":20 }, { "id":"nvinjectorfaults", "readonly":1, "type":3, "address":24 }, { "id":"usernvdata", "type":1, "array":512, "address":36 } ] } ], "datastream":{ "streamlength":1536, "variables":[ { "id":"time", "address":"uptime", "scale":0.001000, "digits":3, "unit":"s", "type":3, "descr":"Time since controller powered on" }, { "id":"analog0", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":354 }, { "id":"mainpw1", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":88 }, { "id":"pilotpw1", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":120 }, { "id":"postpw1", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":152 }, { "id":"pwheadroom", "unit":"µs", "type":2, "descr":"Main injection headroom allowed by injection angle restrictions. Main injection pulse width can not be greater than this.", "address":936 }, { "id":"mainangle1", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":248 }, { "id":"pilotangle1", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":216 }, { "id":"postangle1", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":280 }, { "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":388 }, { "id":"map", "unit":"mbar", "type":2, "descr":"Inlet manifold absolute pressure.", "address":386 }, { "id":"coolanttemp", "unit":"°C", "type":2, "scale":0.100000, "digits":1, "offset":-2731, "descr":"Engine coolant temperature", "address":390 }, { "id":"airtemp", "unit":"°C", "type":2, "scale":0.100000, "digits":1, "offset":-2731, "descr":"Charge air temperature", "address":396 }, { "id":"error0", "type":2, "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":432 }, { "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":434 }, { "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":436 }, { "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":440 }, { "id":"enginespeed", "unit":"RPM", "type":2, "descr":"Engine rotational speed.", "address":392 }, { "id":"smoothrpm", "unit":"RPM", "type":2, "descr":"Engine rotational speed with low pass filter.", "address":896 }, { "id":"idleP", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Idle control loop P output", "address":412 }, { "id":"idlePD", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Idle control loop PD map output", "address":418 }, { "id":"idleI", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Idle control loop I output", "address":414 }, { "id":"idleD", "type":2, "sign":1, "digits":2, "scale":0.010000, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Idle control loop D output", "address":416 }, { "id":"roadspeed", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed of driven wheels.", "address":420 }, { "id":"wheelspeed_fl", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed of front left wheel", "address":424 }, { "id":"wheelspeed_fr", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed of front right wheel", "address":426 }, { "id":"wheelspeed_rl", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed of rear left wheel", "address":428 }, { "id":"wheelspeed_rr", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed of rear right wheel", "address":430 }, { "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", "address":72 }, { "id":"tripodometer", "type":3, "unit":"km", "scale":0.001000, "digits":3, "descr":"Distance driven since odometer reset.", "address":76 }, { "id":"hourcounter", "type":3, "unit":"h", "scale":0.000278, "digits":2, "descr":"Accumulated hours of engine run time", "address":80 }, { "id":"triphourcounter", "type":3, "unit":"h", "scale":0.000278, "digits":2, "descr":"Accumulated hours of engine run time since odometer reset.", "address":84 }, { "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":422 }, { "id":"flags0", "type":3, "descr":"Bit mask of flags that indicate states of software strategies.", "address":60 }, { "id":"flags1", "type":1, "descr":"Bit mask of flags that indicate states of software strategies.", "address":1122 }, { "id":"flags2", "type":2, "descr":"Bit mask of flags that indicate states of software strategies.", "address":352 }, { "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_active", "type":0, "address":"flags1.0", "descr":"Flag that indicates that engine speed is currently being limited by inhibiting fuel injection." }, { "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":"cruise_overspeed", "type":0, "address":"outputs.31", "descr":"Bit that indicates cruise control is in overspeed mode, can be used to trigger an exhaust brake or a transmission downshift to help maintain the correct speed" }, { "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":458 }, { "id":"boostduty", "unit":"%", "scale":0.003052, "digits":1, "type":2, "descr":"Primary turbocharger solenoid output duty cycle", "address":402 }, { "id":"boostbaseduty", "unit":"%", "scale":0.003052, "digits":1, "type":2, "descr":"Turbocharger control loop base effort", "address":468 }, { "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":714 }, { "id":"boosttarget", "type":2, "sign":1, "describedby":"boostpressuresource", "descr":"Target pressure for turbocharger control loop", "address":400 }, { "id":"boostp2limit", "type":2, "describedby":"boostparam2picker", "descr":"Target value for turbocharger parameter 2 control loop", "address":910 }, { "id":"boostp3limit", "type":2, "describedby":"boostparam3picker", "descr":"Target value for turbocharger parameter 3 control loop", "address":912 }, { "id":"boostP", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop proportional effect", "address":460 }, { "id":"boostPD", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop proportional\/derivative map component", "address":462 }, { "id":"boostI", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop integral effect", "address":464 }, { "id":"boostD", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop derivative effect", "address":466 }, { "id":"boostp2P", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 2 proportional effect", "address":924 }, { "id":"boostp2I", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 2 integral effect", "address":926 }, { "id":"boostp2D", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 2 derivative effect", "address":928 }, { "id":"boostp3P", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 3 proportional effect", "address":930 }, { "id":"boostp3I", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 3 integral effect", "address":932 }, { "id":"boostp3D", "type":2, "unit":"%", "scale":0.003052, "digits":1, "sign":1, "descr":"Turbocharger control loop parameter 3 derivative effect", "address":934 }, { "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":918 }, { "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":920 }, { "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":922 }, { "id":"debugval0", "compact":8, "type":3, "devonly":1, "ignore":1 }, { "id":"fuelrequest", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel volume injected per cylinder per cycle as requested by accelerator pedal or cruise control via fuel request map.", "address":454 }, { "id":"fuelrequestlimited", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel request after torque limits have been applied.", "address":852 }, { "id":"torquefuelrequestlimit", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel request limit currently imposed by torque management strategy.", "address":854 }, { "id":"torquefuellimit", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel limit currently imposed by torque management strategy.", "address":866 }, { "id":"idlefuelrequest", "scale":0.010000, "unit":"mm3", "digits":2, "type":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel quantity requested by idle control loop. Takes precedence over main fuelrequest if idlefuelrequest is of greater value.", "address":456 }, { "id":"totalfuelqty", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Combined fuel volume injected per cylinder per cycle in pilot and main injection. Post injection not counted.", "address":444 }, { "id":"mainfuelqty", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel volume injected per cylinder per cycle.", "address":448 }, { "id":"postfuelqty", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel volume injected per cylinder per cycle.", "address":450 }, { "id":"fuellimit", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Maximum injected fuel volume permitted by current conditions. If pilot injection is active, the pilot volume takes away from permissible main injection volume.", "address":452 }, { "id":"railpfuellimit", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Maximum injected fuel volume permitted by rail pressure limit map.", "address":1034 }, { "id":"airdenfuellimit", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Maximum injected fuel volume permitted by air pressure and temperature based limit maps.", "address":1036 }, { "id":"pilotfuelqty", "type":2, "scale":0.010000, "digits":2, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel volume injected per cylinder per cycle.", "address":446 }, { "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":1115 }, { "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":490 }, { "id":"runtime", "type":3, "unit":"s", "scale":0.001000, "digits":3, "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":484 }, { "id":"rawenginespeed", "type":2, "unit":"RPM", "descr":"Engine speed calculated from inter tooth duration during crank trigger processing.", "address":394 }, { "id":"synclosscount", "type":2, "descr":"Counter incremented every time the crank trigger decoder determines there is an error and resets the sync state.", "address":470 }, { "id":"synclossreason", "type":2, "descr":"Debugging information to help diagnose sync loss issues", "address":472 }, { "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":1114 }, { "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":"synctooth", "type":1, "descr":"Position in crank trigger tooth table when sync was achieved.", "address":1117 }, { "id":"syncrepeat", "type":1, "descr":"Value of tooth repeat counter when sync was achieved.", "address":1118 }, { "id":"camtooth", "type":1, "descr":"Position in crank trigger tooth table when cam sync was registered.", "address":1119 }, { "id":"camrepeat", "type":1, "descr":"Value of tooth repeat counter when cam sync was registered.", "address":1120 }, { "id":"outputs", "type":3, "descr":"A bit mask of general purpose logic states.", "address":20 }, { "id":"revlimit", "type":2, "unit":"RPM", "descr":"The current value of the fuel cut rev limiter.", "address":486 }, { "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":"din6interval", "type":3, "unit":"µs", "descr":"The interval between two impulses on digital input 5.", "address":48 }, { "id":"din7interval", "type":3, "unit":"µs", "descr":"The interval between two impulses on digital input 5.", "address":52 }, { "id":"gear", "type":1, "descr":"Current gear as determined from the ratio between engine speed and wheel speed.", "address":1121 }, { "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":488 }, { "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":1112 }, { "id":"canrx2", "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":1113 }, { "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":1129 }, { "id":"canerrcount2", "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":1130 }, { "id":"cansrc0", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":492 }, { "id":"can2src0", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":556 }, { "id":"pwm0duty", "type":2, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PWM output duty cycle.", "address":620 }, { "id":"pwm1duty", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 1 output duty cycle.", "address":630 }, { "id":"pwm1sp", "type":2, "describedby":"pwm1var", "descr":"General purpose PID loop 1 setpoint.", "address":628 }, { "id":"pwm2sp", "type":2, "describedby":"pwm2var", "descr":"General purpose PID loop 2 setpoint.", "address":638 }, { "id":"pwm1P", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 1 proportional effect.", "address":622 }, { "id":"pwm1I", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 1 integral effect.", "address":624 }, { "id":"pwm1D", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 1 differential effect.", "address":626 }, { "id":"pwm2duty", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 2 output duty cycle.", "address":640 }, { "id":"pwm2P", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 2 proportional effect.", "address":632 }, { "id":"pwm2I", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 2 integral effect.", "address":634 }, { "id":"pwm2D", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"General purpose PID loop 2 differential effect.", "address":636 }, { "id":"idletargetspeed", "type":2, "unit":"RPM", "descr":"Idle speed setpoint targeted by idle control loops.", "address":642 }, { "id":"idleerror", "type":2, "unit":"RPM", "sign":1, "descr":"Distance between engine speed and idle speed setpoint.", "address":476 }, { "id":"calpot1", "type":1, "offset":1, "compact":0, "descr":"Position of calibration pot. Used by driver to select different calibrations.", "address":1125 }, { "id":"logrecs", "type":1, "descr":"Counter that counts up every time the controller writes a complete record to the internal data logging memory. When logging this will count up at the configured logging rate and roll over after 255 to start from 0 again.", "address":1124 }, { "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":644 }, { "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":646 }, { "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":648 }, { "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":650 }, { "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":1116 }, { "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":652 }, { "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":1123 }, { "id":"emap", "type":2, "unit":"mbar", "descr":"Exhaust manifold pressure in units of absolute pressure, if such sensor is fitted.", "address":684 }, { "id":"ratio_map_emap", "type":2, "scale":0.000977, "digits":3, "descr":"The ratio between intake manifold pressure and exhaust manifold pressure.", "address":686 }, { "id":"barometer", "type":2, "unit":"mbar", "descr":"Atmospheric pressure, from internal sensor in ECU or external sensor depending on configuration.", "address":398 }, { "id":"ratio_map_baro", "type":2, "scale":0.000977, "digits":3, "descr":"The ratio between intake manifold pressure and atmospheric pressure.", "address":688 }, { "id":"turbospeed", "type":2, "unit":"RPM", "scale":10, "descr":"Turbocharger compressor speed, if such sensor is fitted.", "address":690 }, { "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":"din6", "address":"gpin.19", "descr":"State of digital input 6. Active low so a value of 1 indicates input voltage is low." }, { "id":"din7", "address":"gpin.20", "descr":"State of digital input 7. Active low so a value of 1 indicates input voltage is low." }, { "id":"din8", "address":"gpin.21", "descr":"State of digital input 8. Active low so a value of 1 indicates input voltage is low." }, { "id":"ignsw", "address":"gpin.22", "descr":"State of ignition switch input on controllers with serial number 200 and up." }, { "id":"fuelflow", "type":2, "unit":"cc\/min", "scale":0.327680, "digits":1, "descr":"If the injectors are correctly characterised, this is the total fuel flow rate dispensed into the engine.", "address":700 }, { "id":"railpressure", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "descr":"Fuel rail pressure.", "address":692 }, { "id":"filteredrailp", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "descr":"Fuel rail pressure with low pass filter used for injector model.", "address":694 }, { "id":"railpressuretarget", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "descr":"Fuel rail pressure target for rail pressure control loop.", "address":696 }, { "id":"railpresserror", "type":2, "unit":"bar", "digits":1, "scale":0.100000, "sign":1, "descr":"Difference between measured rail pressure and target rail pressure.", "address":698 }, { "id":"railpsecduty", "type":2, "unit":"%", "scale":0.003052, "digits":2, "descr":"If a secondary rail pressure control device is present, this value is the duty cycle at which it is driven", "address":828 }, { "id":"railpseciqeffect", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":2, "descr":"The effect of the injection quantity map on the secondary rail pressure control duty cycle.", "address":830 }, { "id":"railpsecerroreffect", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":2, "descr":"The effect of the rail pressure error map on the secondary rail pressure control duty cycle.", "address":832 }, { "id":"railpsectargeteffect", "type":2, "sign":1, "unit":"%", "scale":0.003052, "digits":2, "descr":"The effect of the rail pressure target map on the secondary rail pressure control duty cycle.", "address":834 }, { "id":"railctlcmd", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":2, "descr":"Effort requested by rail pressure control loop. This is the PWM duty cycle before linearisation function, voltage compensation and duty limit.", "address":814 }, { "id":"railctlduty", "type":2, "unit":"%", "max":100, "scale":0.003052, "digits":2, "descr":"Rail pressure control output PWM duty cycle.", "address":816 }, { "id":"railpqtyduty", "type":2, "unit":"%", "sign":1, "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":818 }, { "id":"railpbaseduty", "type":2, "unit":"%", "sign":1, "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":820 }, { "id":"railP", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"Rail pressure control proportional effect.", "address":822 }, { "id":"railI", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"Rail pressure control integral effect.", "address":824 }, { "id":"railD", "type":2, "sign":1, "unit":"%", "digits":2, "scale":0.003052, "descr":"Rail pressure control derivative effect.", "address":826 }, { "id":"railpmod", "type":2, "sign":1, "unit":"bar", "scale":0.100000, "digits":1, "descr":"General purpose rail pressure trim applied to railpressuretarget", "address":1098 }, { "id":"can1rxerr", "type":3, "descr":"Bit mask indicating CAN receivers that have exceeded their configured timeout value.", "address":704 }, { "id":"can2rxerr", "type":3, "descr":"Bit mask indicating CAN receivers that have exceeded their configured timeout value.", "address":708 }, { "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":712 }, { "id":"boostgptrim1", "describedby":"boostpressuresource", "type":2, "sign":1, "compact":0, "descr":"General purpose pressure target trims for turbocharger boost control.", "address":406 }, { "id":"boostdot", "type":2, "sign":1, "describedby":"boostpressuresource", "descr":"Derivative of boost pressure since last boost control loop update.", "address":404 }, { "id":"boostp2error", "type":2, "sign":1, "describedby":"boostparam2picker", "descr":"The difference between measured value and setpoint for the turbocharger control parameter 2. A positive number indicates measured pressure exceeds setpoint and vice versa.", "address":914 }, { "id":"boostp3error", "type":2, "sign":1, "describedby":"boostparam3picker", "descr":"The difference between measured value and setpoint for the turbocharger control parameter 3. A positive number indicates measured pressure exceeds setpoint and vice versa.", "address":916 }, { "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":716 }, { "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":1110 }, { "id":"app", "type":2, "unit":"%", "digits":1, "scale":0.097752, "descr":"Accelerator pedal position. Only when electronic throttle control is used.", "address":720 }, { "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":722 }, { "id":"din1freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 1 if configured as a frequency input.", "address":724 }, { "id":"din3freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 3 if configured as a frequency input.", "address":726 }, { "id":"din4freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 4 if configured as a frequency input.", "address":728 }, { "id":"din5freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 4 if configured as a frequency input.", "address":730 }, { "id":"din6freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 6 if configured as a frequency input.", "address":732 }, { "id":"din7freq", "type":2, "unit":"Hz", "descr":"Frequency of input signal on digital input 7 if configured as a frequency input.", "address":734 }, { "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":736 }, { "id":"oilpress", "type":2, "unit":"mbar", "descr":"Engine oil pressure", "address":752 }, { "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":754 }, { "id":"transtemp", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "descr":"Transmission temperature, if such sensor is fitted.", "address":756 }, { "id":"fueltemp", "type":2, "unit":"°C", "offset":-2731, "scale":0.100000, "digits":1, "descr":"Fuel temperature, if such sensor is fitted.", "address":758 }, { "id":"canscanaddr", "type":3, "hex":1, "descr":"The CAN ID last transmitted to during a CAN scan", "address":56 }, { "id":"canscan_running", "address":"flags0.17", "descr":"A flag that indicates a CAN scan is in progress" }, { "id":"cantx1", "type":1, "descr":"Counter that counts up whenever the controller transmits a frame onto the CAN network. Rolls over after 255 and starts over from 0.", "address":1131 }, { "id":"cantx2", "type":1, "descr":"Counter that counts up whenever the controller transmits a frame onto the CAN network. Rolls over after 255 and starts over from 0.", "address":1132 }, { "id":"bcd1", "type":1, "descr":"Binary coded decimal input. Combines two or more digital inputs or logic values to create a single variable.", "address":1133 }, { "id":"cruisespeed", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Cruise control speed setpoint.", "address":760 }, { "id":"cruiseP", "type":2, "sign":1, "descr":"Cruise control P output", "address":766 }, { "id":"cruiseI", "type":2, "sign":1, "descr":"Cruise control I output", "address":768 }, { "id":"cruiseD", "type":2, "sign":1, "descr":"Cruise control D output", "address":770 }, { "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":764 }, { "id":"cruiseapp", "type":2, "scale":0.097656, "digits":1, "unit":"%", "descr":"Throttle input from cruise control", "address":762 }, { "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":1134 }, { "id":"flipflops", "type":1, "descr":"Variable keeping the state of all flip flop logic functions.", "address":1135 }, { "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":1136 }, { "id":"gplatch1", "compact":0, "type":2, "describedby":"gplatchinput1", "descr":"Value of general purpose latch function", "address":772 }, { "id":"gptimer1", "compact":0, "type":2, "unit":"s", "scale":0.010000, "digits":2, "descr":"Value of general purpose timer function", "address":786 }, { "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":68 }, { "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":64 }, { "id":"gpsspeed", "type":2, "unit":"km\/h", "digits":1, "scale":0.100000, "descr":"Speed over ground as received from GPS.", "address":782 }, { "id":"gpssats", "type":1, "descr":"Number of satellites in use by GPS receiver", "address":1140 }, { "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":1141 }, { "id":"gpsheading", "type":2, "unit":"°", "scale":0.010000, "digits":2, "descr":"GPS heading", "address":780 }, { "id":"gpsalt", "type":2, "unit":"m", "scale":0.100000, "digits":1, "offset":-1000, "descr":"GPS altitude in metres above sea level", "address":784 }, { "id":"gpsflags", "type":1, "descr":"Status flags associated with GPS", "address":1142 }, { "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":"injcuts", "type":2, "descr":"A bit mask that shows any injector outputs disabled by cylinder cut testing", "address":474 }, { "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":794 }, { "id":"customtransfer1", "type":2, "sign":0, "descr":"Output of custom transfer function 1", "variations":[ [ "customlookupsigned1", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned1", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal1", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "customlookupdecimal1", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal1", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal1", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":796, "digits":0, "scale":1 }, { "id":"customtransfer2", "type":2, "sign":0, "descr":"Output of custom transfer function 2", "variations":[ [ "customlookupsigned2", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned2", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal2", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "customlookupdecimal2", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal2", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal2", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":798, "digits":0, "scale":1 }, { "id":"customtransfer3", "type":2, "sign":0, "descr":"Output of custom transfer function 3", "variations":[ [ "customlookupsigned3", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned3", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal3", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "customlookupdecimal3", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal3", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal3", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":800, "digits":0, "scale":1 }, { "id":"customtransfer4", "type":2, "sign":0, "descr":"Output of custom transfer function 4", "variations":[ [ "customlookupsigned4", "=", "Signed" ], { "sign":1 }, [ "customlookupsigned4", "=", "Unsigned" ], { "sign":0 }, [ "customlookupdecimal4", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "customlookupdecimal4", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "customlookupdecimal4", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "customlookupdecimal4", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":802, "digits":0, "scale":1 }, { "id":"customtable1", "type":2, "sign":0, "descr":"Output of custom table 1", "variations":[ [ "custom2dsigned1", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned1", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal1", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal1", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal1", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal1", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":804, "digits":0, "scale":1 }, { "id":"customtable2", "type":2, "sign":0, "descr":"Output of custom table 2", "variations":[ [ "custom2dsigned2", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned2", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal2", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal2", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal2", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal2", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":806, "digits":0, "scale":1 }, { "id":"customtable3", "type":2, "sign":0, "descr":"Output of custom table 3", "variations":[ [ "custom2dsigned3", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned3", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal3", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal3", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal3", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal3", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":808, "digits":0, "scale":1 }, { "id":"customtable4", "type":2, "sign":0, "descr":"Output of custom table 4", "variations":[ [ "custom2dsigned4", "=", "Signed" ], { "sign":1 }, [ "custom2dsigned4", "=", "Unsigned" ], { "sign":0 }, [ "custom2ddecimal4", "=", "0" ], { "digits":0, "scale":1, "endif":true }, [ "custom2ddecimal4", "=", "1" ], { "digits":1, "scale":0.100000 }, [ "custom2ddecimal4", "=", "2" ], { "digits":2, "scale":0.010000 }, [ "custom2ddecimal4", "=", "3" ], { "digits":3, "scale":0.001000 } ], "address":810, "digits":0, "scale":1 }, { "id":"glow_heating", "type":0, "address":"outputs.4", "descr":"State of glow plug relay output." }, { "id":"glow_light", "type":0, "address":"outputs.8", "descr":"Indicator that glow plugs are preheating. Will flash slowly if starting has been requested and is pending the glow plugs finishing heating. Flashes rapidly to indicate any glow plugs have a problem if using a smart glow relay." }, { "id":"aout", "type":2, "unit":"V", "scale":0.005313, "digits":3, "descr":"Analog output voltage", "address":812 }, { "id":"start_requested", "address":"flags0.2", "descr":"Flag indicating that the starter control has registered a request to engage starter and may have engaged starter or is waiting for pre-heating to complete." }, { "id":"starter_engaged", "address":"outputs.7", "descr":"Flag indicating that the starter control is engaging the engine starter output." }, { "id":"torquereserve", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque available by current inlet manifold air density (fuel limit).", "address":868 }, { "id":"torqueflags", "type":1, "descr":"Flags indicating operation of torque model", "address":1144 }, { "id":"tq_rqlimited", "address":"torqueflags.0", "descr":"Boolean indicator that engine torque request is limited by the torque management strategy." }, { "id":"tq_limited", "address":"torqueflags.1", "descr":"Boolean indicator that engine torque is limited by the torque management strategy." }, { "id":"torquerequest", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque request computed from fuel request.", "address":856 }, { "id":"torquerequestlimit", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque request limit received from request limit source if the limit is enabled, otherwise zero.", "address":858 }, { "id":"torquerequestlimited", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque request after limits have been applied, same as torque request if no limit is active.", "address":860 }, { "id":"torqueidlerequest", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque produced by idle control. Not used by any ECU strategy but may be needed externally.", "address":862 }, { "id":"torqueactual", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque produced by engine at current fuel quantity as computed by torque model.", "address":870 }, { "id":"torquelimit", "type":2, "unit":"Nm", "scale":0.200000, "digits":1, "offset":-1940, "descr":"Torque limit received from limit source if the limit is enabled, otherwise zero.", "address":864 }, { "id":"torquetempcomp", "type":2, "scale":0.000977, "digits":3, "descr":"Torque compensation as a function of coolant temperature. A value of 1 means no compensation, a lower value indicates reduced engine efficiency", "address":872 }, { "id":"risetime1", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":836 }, { "id":"airtempcorr", "type":2, "digits":3, "scale":0.000977, "descr":"Fuel limit multiplier applied by air temperature correction", "address":874 }, { "id":"fanspeed", "type":1, "unit":"%", "scale":0.390625, "descr":"Power desired of variable speed cooling fan", "address":1145 }, { "id":"fanpwmduty", "type":1, "unit":"%", "scale":0.390625, "descr":"PWM duty cycle of variable speed cooling fan", "address":1146 }, { "id":"steppos", "type":2, "unit":"steps", "descr":"Current position of stepper motor", "address":876 }, { "id":"steptarget", "type":2, "unit":"steps", "descr":"Position where stepper motor is heading", "address":878 }, { "id":"scvpw", "type":2, "unit":"ms", "digits":3, "scale":0.001000, "descr":"If controlling synchronous suction control valves for rail pressure control, this is the pulse width.", "address":880 }, { "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 rail pressure control.", "sign":1, "address":882 }, { "id":"gplimit1", "type":2, "unit":"mm3", "digits":2, "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"If non-zero, this variable indicates a general purpose user defined fuel limit is active.", "address":884 }, { "id":"gplimit2", "type":2, "unit":"mm3", "digits":2, "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"If non-zero, this variable indicates a general purpose user defined fuel limit is active.", "address":886 }, { "id":"gptimingmod1", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "descr":"If non-zero, this variable indicates a general purpose user defined modifier on the main injection timing is active.", "address":888 }, { "id":"gptimingmod2", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "descr":"If non-zero, this variable indicates a general purpose user defined modifier on the main injection timing is active.", "address":890 }, { "id":"h2o_active", "type":0, "address":"outputs.28", "descr":"A value of 1 indicates water injection is activated" }, { "id":"h2otimingmod", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "descr":"If non-zero, this variable indicates a modifier applied to the main injection timing when water injection is active.", "address":898 }, { "id":"h2opwmduty", "type":1, "unit":"%", "scale":0.392157, "digits":1, "descr":"Duty cycle of water injection PWM control", "address":1147 }, { "id":"n2otimingmod", "type":2, "unit":"°", "scale":0.010986, "digits":1, "sign":1, "descr":"If non-zero, this variable indicates a modifier applied to the main injection timing when one or more nitrous systems are active.", "address":900 }, { "id":"n2opwmduty", "type":1, "unit":"%", "scale":0.392157, "digits":1, "descr":"Duty cycle of nitrous solenoid PWM control", "address":1148 }, { "id":"n2os2pwmduty", "type":1, "unit":"%", "scale":0.392157, "digits":1, "descr":"Duty cycle of nitrous solenoid stage 2 PWM control", "address":1149 }, { "id":"n2o_active", "type":0, "address":"outputs.29", "descr":"A value of 1 indicates nitrous oxide output is active" }, { "id":"n2os2_active", "type":0, "address":"outputs.30", "descr":"A value of 1 indicates nitrous oxide output 2 is active" }, { "id":"n2olimitadder", "type":2, "unit":"mm3", "digits":2, "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"When one or more N2O systems are active, this value is added to the fuel limit. Injected quantity never exceeds fuel request however.", "address":902 }, { "id":"harshfuelreduction", "type":2, "unit":"mm3", "digits":2, "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Quantity subtracted from fuel request by harshness control strategy.", "address":894 }, { "id":"harshcycles", "type":1, "descr":"Number of oscillations detected within the harshness processing period.", "address":1150 }, { "id":"harshseverity", "type":2, "unit":"RPM", "descr":"Severity of oscillations currently detected by harshness control strategy.", "address":892 }, { "id":"lambda", "type":2, "digits":3, "scale":0.001000, "descr":"Primary lambda sensor value.", "address":904 }, { "id":"lambda2", "type":2, "digits":3, "scale":0.001000, "descr":"Secondary lambda sensor value.", "address":906 }, { "id":"lambda1_ready", "address":"flags0.9", "descr":"This variable indicates that the lambda sensor check strategy has determined the lambda information to be valid." }, { "id":"lambda2_ready", "address":"flags0.10", "descr":"This variable indicates that the lambda sensor check strategy has determined the lambda information to be valid." }, { "id":"faultmask", "type":1, "descr":"Bit mask of activated fault handling modes", "address":1151 }, { "id":"glowdiag", "type":2, "descr":"Bit mask of faults detected with Mercedes Benz PWM communication glow plug controller.\r\nBits 0 through 7 indicate faults on glow plugs 1 through 8. Bit 15 indicates fault in communication with glow plug controller.", "address":908 }, { "id":"balancectl_active", "address":"flags0.6", "descr":"Flag indicating that the cylinder balance control is active" }, { "id":"balancetrim1", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":938 }, { "id":"oilpansensor1", "compact":0, "unit":"µs", "scale":2, "type":2, "descr":"Output of oil level\/temperature\/quality sensor", "address":1038 }, { "id":"oillevel", "type":1, "unit":"mm", "descr":"If the engine is fitted with an oil level sensor, this variable displays the output of it", "address":1152 }, { "id":"oilquality", "type":1, "unit":"%", "descr":"If the engine is fitted with an oil quality\/opacity sensor, this variable displays the output of it", "address":1153 }, { "id":"maf", "type":2, "unit":"g\/s", "scale":0.020000, "digits":2, "descr":"Combined mass air flow of both mass air flow sensors. If one MAF sensor is faulted then the working sensor's output is doubled in this variable.", "address":1044 }, { "id":"maf1", "type":2, "unit":"g\/s", "scale":0.020000, "digits":2, "descr":"Air flow indicated by the first mass air flow sensor.", "address":1046 }, { "id":"maf2", "type":2, "unit":"g\/s", "scale":0.020000, "digits":2, "descr":"Air flow indicated by the second mass air flow sensor.", "address":1048 }, { "id":"cylairmass", "type":2, "unit":"g", "scale":0.000249, "digits":3, "descr":"Charge air mass per cylinder per cycle as determined by the combination of both mass air flow sensors. If one MAF sensor is faulted then the working sensor's output is doubled in this variable.", "address":1050 }, { "id":"cylairmass_maf1", "type":2, "unit":"g", "scale":0.000249, "digits":3, "descr":"Charge air mass per cylinder per cycle according to the first mass air flow sensor.", "address":1052 }, { "id":"cylairmass_maf2", "type":2, "unit":"g", "scale":0.000249, "digits":3, "descr":"Charge air mass per cylinder per cycle according to the second mass air flow sensor.", "address":1054 }, { "id":"needsburn", "type":1, "descr":"A boolean indicator that the ECU has unsaved configuration changes in volatile memory.", "address":1111 }, { "id":"remotebits", "type":1, "descr":"Bits that can be toggled by OBD2 commands or from Calibrator", "address":1154 }, { "id":"remotebit0", "type":0, "address":"remotebits.0" }, { "id":"remotebit1", "type":0, "address":"remotebits.1" }, { "id":"remotebit2", "type":0, "address":"remotebits.2" }, { "id":"remotebit3", "type":0, "address":"remotebits.3" }, { "id":"remotebit4", "type":0, "address":"remotebits.4" }, { "id":"remotebit5", "type":0, "address":"remotebits.5" }, { "id":"remotebit6", "type":0, "address":"remotebits.6" }, { "id":"remotebit7", "type":0, "address":"remotebits.7" }, { "id":"userpgmstatus", "type":1, "descr":"If non-zero, this indicates that a user generated program is running on the ECU.", "address":1155 }, { "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":1156 }, { "id":"userflags", "type":2, "descr":"Flags used for outputs from custom strategies into ECU functions.", "address":1056 }, { "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":1058 }, { "id":"userpgmvalues", "type":3, "array":64, "hidden":1, "address":1160 }, { "id":"injectorfaults", "type":1, "descr":"A bit mask showing injector outputs on which a short circuit has been detected. A short circuit is flagged if the current rise time for a particular injector is in the range of 1 to 4 microseconds, indicating the inductance in the circuit is abnormally low. Once such fault is detected, that injector output is disabled until the ECU is powered off.", "address":1157 }, { "id":"simplepwmdc1", "type":2, "unit":"%", "scale":0.003052, "digits":2, "descr":"Simple PWM function duty cycle", "compact":0, "address":1066 }, { "id":"simplepwmf1", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "descr":"Simple PWM function frequency", "compact":0, "address":1074 }, { "id":"gprevlimit", "type":2, "unit":"RPM", "descr":"General purpose hard rev limit value.", "address":1082 }, { "id":"slavestatus", "type":1, "descr":"Status indicator for communications with slave controller when operating in cluster mode. 0 means no communication, 1 means communication OK but slave has a fault preventing it from running, 2 means slave is OK but not running the engine, 3 means the slave is running the engine.", "address":1158 }, { "id":"slaverpm", "type":2, "unit":"RPM", "descr":"If operating in cluster mode, engine speed as seen by slave controller, for diagnostic purposes", "address":1084 }, { "id":"slavecommcount", "type":1, "descr":"If operating in cluster mode, on the master this value will increment every time the slave sends back a status message. On the slave this value will increment every time a fuel quantity command is received from the master.", "address":1159 }, { "id":"governortarget", "type":2, "unit":"RPM", "descr":"If the high speed governor is active, this value will show the speed it is regulating to", "address":1086 }, { "id":"governorerror", "type":2, "unit":"RPM", "sign":1, "descr":"If the high speed governor is active, this value shows how far off the desired value the engine is operating. Positive values if the engine speed is excessive, negative if engine speed is too low", "address":1088 }, { "id":"govfuelreq", "type":2, "unit":"mm3", "scale":0.010000, "digits":2, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "descr":"Fuel request after it has gone through the high speed govenor", "address":1090 }, { "id":"governorP", "type":2, "sign":1, "unit":"mm3", "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "digits":2, "address":1094 }, { "id":"governorI", "type":2, "unit":"mm3", "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "digits":2, "address":1092 }, { "id":"governorD", "type":2, "sign":1, "unit":"mm3", "scale":0.010000, "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.010000, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.020000, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.030000, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.040000, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.050000, "endif":true } ], "digits":2, "address":1096 }, { "id":"controllersn", "type":2, "descr":"Controller serial number", "address":1100 }, { "id":"extrapw1", "type":2, "compact":0, "unit":"µs", "address":184 }, { "id":"extraangle1", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":312 }, { "id":"deltarpm", "type":2, "sign":1, "unit":"RPM\/sec", "scale":20, "descr":"Engine speed rate of change.", "address":482 }, { "id":"mainvoltrim1", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":970 }, { "id":"mainangletrim1", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1002 }, { "id":"keypadstate1", "compact":0, "type":2, "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive", "address":1102 }, { "id":"keypad1.1", "compact":15, "type":0, "address":"keypadstate1.1+", "descr":"State of keypad button channel" }, { "id":"keypad2.1", "compact":15, "type":0, "address":"keypadstate2.1+", "descr":"State of keypad button channel" }, { "id":"keypad3.1", "compact":15, "type":0, "address":"keypadstate3.1+", "descr":"State of keypad button channel" }, { "id":"keypad4.1", "compact":15, "type":0, "address":"keypadstate4.1+", "descr":"State of keypad button channel" }, { "id":"analog1", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":356 }, { "id":"analog2", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":358 }, { "id":"analog3", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":360 }, { "id":"analog4", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":362 }, { "id":"analog5", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":364 }, { "id":"analog6", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":366 }, { "id":"analog7", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":368 }, { "id":"analog8", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":370 }, { "id":"analog9", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":372 }, { "id":"analog10", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":374 }, { "id":"analog11", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":376 }, { "id":"analog12", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":378 }, { "id":"analog13", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":380 }, { "id":"analog14", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":382 }, { "id":"analog15", "scale":0.001221, "unit":"V", "type":2, "digits":3, "compact":0, "descr":"Analog input voltage", "address":384 }, { "id":"mainpw2", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":90 }, { "id":"mainpw3", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":92 }, { "id":"mainpw4", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":94 }, { "id":"mainpw5", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":96 }, { "id":"mainpw6", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":98 }, { "id":"mainpw7", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":100 }, { "id":"mainpw8", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":102 }, { "id":"mainpw9", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":104 }, { "id":"mainpw10", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":106 }, { "id":"mainpw11", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":108 }, { "id":"mainpw12", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":110 }, { "id":"mainpw13", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":112 }, { "id":"mainpw14", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":114 }, { "id":"mainpw15", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":116 }, { "id":"mainpw16", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":118 }, { "id":"pilotpw2", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":122 }, { "id":"pilotpw3", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":124 }, { "id":"pilotpw4", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":126 }, { "id":"pilotpw5", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":128 }, { "id":"pilotpw6", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":130 }, { "id":"pilotpw7", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":132 }, { "id":"pilotpw8", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":134 }, { "id":"pilotpw9", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":136 }, { "id":"pilotpw10", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":138 }, { "id":"pilotpw11", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":140 }, { "id":"pilotpw12", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":142 }, { "id":"pilotpw13", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":144 }, { "id":"pilotpw14", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":146 }, { "id":"pilotpw15", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":148 }, { "id":"pilotpw16", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":150 }, { "id":"postpw2", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":154 }, { "id":"postpw3", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":156 }, { "id":"postpw4", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":158 }, { "id":"postpw5", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":160 }, { "id":"postpw6", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":162 }, { "id":"postpw7", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":164 }, { "id":"postpw8", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":166 }, { "id":"postpw9", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":168 }, { "id":"postpw10", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":170 }, { "id":"postpw11", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":172 }, { "id":"postpw12", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":174 }, { "id":"postpw13", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":176 }, { "id":"postpw14", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":178 }, { "id":"postpw15", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":180 }, { "id":"postpw16", "unit":"µs", "type":2, "descr":"Fuel injector pulse width", "compact":0, "address":182 }, { "id":"mainangle2", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":250 }, { "id":"mainangle3", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":252 }, { "id":"mainangle4", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":254 }, { "id":"mainangle5", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":256 }, { "id":"mainangle6", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":258 }, { "id":"mainangle7", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":260 }, { "id":"mainangle8", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":262 }, { "id":"mainangle9", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":264 }, { "id":"mainangle10", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":266 }, { "id":"mainangle11", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":268 }, { "id":"mainangle12", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":270 }, { "id":"mainangle13", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":272 }, { "id":"mainangle14", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":274 }, { "id":"mainangle15", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":276 }, { "id":"mainangle16", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of main injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":278 }, { "id":"pilotangle2", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":218 }, { "id":"pilotangle3", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":220 }, { "id":"pilotangle4", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":222 }, { "id":"pilotangle5", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":224 }, { "id":"pilotangle6", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":226 }, { "id":"pilotangle7", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":228 }, { "id":"pilotangle8", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":230 }, { "id":"pilotangle9", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":232 }, { "id":"pilotangle10", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":234 }, { "id":"pilotangle11", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":236 }, { "id":"pilotangle12", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":238 }, { "id":"pilotangle13", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":240 }, { "id":"pilotangle14", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":242 }, { "id":"pilotangle15", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":244 }, { "id":"pilotangle16", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of pilot injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":246 }, { "id":"postangle2", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":282 }, { "id":"postangle3", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":284 }, { "id":"postangle4", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":286 }, { "id":"postangle5", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":288 }, { "id":"postangle6", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":290 }, { "id":"postangle7", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":292 }, { "id":"postangle8", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":294 }, { "id":"postangle9", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":296 }, { "id":"postangle10", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":298 }, { "id":"postangle11", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":300 }, { "id":"postangle12", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":302 }, { "id":"postangle13", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":304 }, { "id":"postangle14", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":306 }, { "id":"postangle15", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":308 }, { "id":"postangle16", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of post injection. Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":310 }, { "id":"cansrc1", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":494 }, { "id":"cansrc2", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":496 }, { "id":"cansrc3", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":498 }, { "id":"cansrc4", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":500 }, { "id":"cansrc5", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":502 }, { "id":"cansrc6", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":504 }, { "id":"cansrc7", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":506 }, { "id":"cansrc8", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":508 }, { "id":"cansrc9", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":510 }, { "id":"cansrc10", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":512 }, { "id":"cansrc11", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":514 }, { "id":"cansrc12", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":516 }, { "id":"cansrc13", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":518 }, { "id":"cansrc14", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":520 }, { "id":"cansrc15", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":522 }, { "id":"cansrc16", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":524 }, { "id":"cansrc17", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":526 }, { "id":"cansrc18", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":528 }, { "id":"cansrc19", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":530 }, { "id":"cansrc20", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":532 }, { "id":"cansrc21", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":534 }, { "id":"cansrc22", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":536 }, { "id":"cansrc23", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":538 }, { "id":"cansrc24", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":540 }, { "id":"cansrc25", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":542 }, { "id":"cansrc26", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":544 }, { "id":"cansrc27", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":546 }, { "id":"cansrc28", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":548 }, { "id":"cansrc29", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":550 }, { "id":"cansrc30", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":552 }, { "id":"cansrc31", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":554 }, { "id":"can2src1", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":558 }, { "id":"can2src2", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":560 }, { "id":"can2src3", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":562 }, { "id":"can2src4", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":564 }, { "id":"can2src5", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":566 }, { "id":"can2src6", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":568 }, { "id":"can2src7", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":570 }, { "id":"can2src8", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":572 }, { "id":"can2src9", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":574 }, { "id":"can2src10", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":576 }, { "id":"can2src11", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":578 }, { "id":"can2src12", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":580 }, { "id":"can2src13", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":582 }, { "id":"can2src14", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":584 }, { "id":"can2src15", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":586 }, { "id":"can2src16", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":588 }, { "id":"can2src17", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":590 }, { "id":"can2src18", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":592 }, { "id":"can2src19", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":594 }, { "id":"can2src20", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":596 }, { "id":"can2src21", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":598 }, { "id":"can2src22", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":600 }, { "id":"can2src23", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":602 }, { "id":"can2src24", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":604 }, { "id":"can2src25", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":606 }, { "id":"can2src26", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":608 }, { "id":"can2src27", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":610 }, { "id":"can2src28", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":612 }, { "id":"can2src29", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":614 }, { "id":"can2src30", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":616 }, { "id":"can2src31", "type":2, "compact":0, "descr":"General purpose CAN receive values.", "address":618 }, { "id":"calpot2", "type":1, "offset":1, "compact":0, "descr":"Position of calibration pot. Used by driver to select different calibrations.", "address":1126 }, { "id":"calpot3", "type":1, "offset":1, "compact":0, "descr":"Position of calibration pot. Used by driver to select different calibrations.", "address":1127 }, { "id":"calpot4", "type":1, "offset":1, "compact":0, "descr":"Position of calibration pot. Used by driver to select different calibrations.", "address":1128 }, { "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":654 }, { "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":656 }, { "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":658 }, { "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":660 }, { "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":662 }, { "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":664 }, { "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":666 }, { "id":"cylcontrib9", "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":668 }, { "id":"cylcontrib10", "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":670 }, { "id":"cylcontrib11", "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":672 }, { "id":"cylcontrib12", "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":674 }, { "id":"cylcontrib13", "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":676 }, { "id":"cylcontrib14", "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":678 }, { "id":"cylcontrib15", "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":680 }, { "id":"cylcontrib16", "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":682 }, { "id":"boostgptrim2", "describedby":"boostpressuresource", "type":2, "sign":1, "compact":0, "descr":"General purpose pressure target trims for turbocharger boost control.", "address":408 }, { "id":"boostgptrim3", "describedby":"boostpressuresource", "type":2, "sign":1, "compact":0, "descr":"General purpose pressure target trims for turbocharger boost control.", "address":410 }, { "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":738 }, { "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":740 }, { "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":742 }, { "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":744 }, { "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":746 }, { "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":748 }, { "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":750 }, { "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":1137 }, { "id":"count3", "type":1, "descr":"Value of general purpose counter function", "compact":0, "address":1138 }, { "id":"count4", "type":1, "descr":"Value of general purpose counter function", "compact":0, "address":1139 }, { "id":"gplatch2", "compact":0, "type":2, "describedby":"gplatchinput2", "descr":"Value of general purpose latch function", "address":774 }, { "id":"gplatch3", "compact":0, "type":2, "describedby":"gplatchinput3", "descr":"Value of general purpose latch function", "address":776 }, { "id":"gplatch4", "compact":0, "type":2, "describedby":"gplatchinput4", "descr":"Value of general purpose latch function", "address":778 }, { "id":"gptimer2", "compact":0, "type":2, "unit":"s", "scale":0.010000, "digits":2, "descr":"Value of general purpose timer function", "address":788 }, { "id":"gptimer3", "compact":0, "type":2, "unit":"s", "scale":0.010000, "digits":2, "descr":"Value of general purpose timer function", "address":790 }, { "id":"gptimer4", "compact":0, "type":2, "unit":"s", "scale":0.010000, "digits":2, "descr":"Value of general purpose timer function", "address":792 }, { "id":"risetime2", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":838 }, { "id":"risetime3", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":840 }, { "id":"risetime4", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":842 }, { "id":"risetime5", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":844 }, { "id":"risetime6", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":846 }, { "id":"risetime7", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":848 }, { "id":"risetime8", "type":2, "unit":"µs", "compact":0, "descr":"Time between injector opening and current rising to the desired peak value", "address":850 }, { "id":"balancetrim2", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":940 }, { "id":"balancetrim3", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":942 }, { "id":"balancetrim4", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":944 }, { "id":"balancetrim5", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":946 }, { "id":"balancetrim6", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":948 }, { "id":"balancetrim7", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":950 }, { "id":"balancetrim8", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":952 }, { "id":"balancetrim9", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":954 }, { "id":"balancetrim10", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":956 }, { "id":"balancetrim11", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":958 }, { "id":"balancetrim12", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":960 }, { "id":"balancetrim13", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":962 }, { "id":"balancetrim14", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":964 }, { "id":"balancetrim15", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":966 }, { "id":"balancetrim16", "compact":0, "type":2, "sign":1, "digits":2, "scale":0.000625, "unit":"mm3", "variations":[ [ "fuelqtyrange", "=", "650 mm3" ], { "scale":0.000625, "endif":true }, [ "fuelqtyrange", "=", "1300 mm3" ], { "scale":0.001250, "endif":true }, [ "fuelqtyrange", "=", "1950 mm3" ], { "scale":0.001875, "endif":true }, [ "fuelqtyrange", "=", "2600 mm3" ], { "scale":0.002500, "endif":true }, [ "fuelqtyrange", "=", "3250 mm3" ], { "scale":0.003125, "endif":true } ], "descr":"Idle per-cylinder trim value", "address":968 }, { "id":"oilpansensor2", "compact":0, "unit":"µs", "scale":2, "type":2, "descr":"Output of oil level\/temperature\/quality sensor", "address":1040 }, { "id":"oilpansensor3", "compact":0, "unit":"µs", "scale":2, "type":2, "descr":"Output of oil level\/temperature\/quality sensor", "address":1042 }, { "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":1060 }, { "id":"uservar3", "type":2, "sign":1, "compact":0, "descr":"Output of user defined math expression", "address":1062 }, { "id":"uservar4", "type":2, "sign":1, "compact":0, "descr":"Output of user defined math expression", "address":1064 }, { "id":"simplepwmdc2", "type":2, "unit":"%", "scale":0.003052, "digits":2, "descr":"Simple PWM function duty cycle", "compact":0, "address":1068 }, { "id":"simplepwmdc3", "type":2, "unit":"%", "scale":0.003052, "digits":2, "descr":"Simple PWM function duty cycle", "compact":0, "address":1070 }, { "id":"simplepwmdc4", "type":2, "unit":"%", "scale":0.003052, "digits":2, "descr":"Simple PWM function duty cycle", "compact":0, "address":1072 }, { "id":"simplepwmf2", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "descr":"Simple PWM function frequency", "compact":0, "address":1076 }, { "id":"simplepwmf3", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "descr":"Simple PWM function frequency", "compact":0, "address":1078 }, { "id":"simplepwmf4", "type":2, "unit":"Hz", "scale":500000, "inverse":1, "descr":"Simple PWM function frequency", "compact":0, "address":1080 }, { "id":"extrapw2", "type":2, "compact":0, "unit":"µs", "address":186 }, { "id":"extrapw3", "type":2, "compact":0, "unit":"µs", "address":188 }, { "id":"extrapw4", "type":2, "compact":0, "unit":"µs", "address":190 }, { "id":"extrapw5", "type":2, "compact":0, "unit":"µs", "address":192 }, { "id":"extrapw6", "type":2, "compact":0, "unit":"µs", "address":194 }, { "id":"extrapw7", "type":2, "compact":0, "unit":"µs", "address":196 }, { "id":"extrapw8", "type":2, "compact":0, "unit":"µs", "address":198 }, { "id":"extrapw9", "type":2, "compact":0, "unit":"µs", "address":200 }, { "id":"extrapw10", "type":2, "compact":0, "unit":"µs", "address":202 }, { "id":"extrapw11", "type":2, "compact":0, "unit":"µs", "address":204 }, { "id":"extrapw12", "type":2, "compact":0, "unit":"µs", "address":206 }, { "id":"extrapw13", "type":2, "compact":0, "unit":"µs", "address":208 }, { "id":"extrapw14", "type":2, "compact":0, "unit":"µs", "address":210 }, { "id":"extrapw15", "type":2, "compact":0, "unit":"µs", "address":212 }, { "id":"extrapw16", "type":2, "compact":0, "unit":"µs", "address":214 }, { "id":"extraangle2", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":314 }, { "id":"extraangle3", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":316 }, { "id":"extraangle4", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":318 }, { "id":"extraangle5", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":320 }, { "id":"extraangle6", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":322 }, { "id":"extraangle7", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":324 }, { "id":"extraangle8", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":326 }, { "id":"extraangle9", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":328 }, { "id":"extraangle10", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":330 }, { "id":"extraangle11", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":332 }, { "id":"extraangle12", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":334 }, { "id":"extraangle13", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":336 }, { "id":"extraangle14", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":338 }, { "id":"extraangle15", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":340 }, { "id":"extraangle16", "scale":0.010986, "unit":"°BTDC", "type":2, "digits":1, "descr":"Angle of the start of injection on extra injector Relative to each cylinder's TDC.", "compact":0, "sign":1, "address":342 }, { "id":"mainvoltrim2", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":972 }, { "id":"mainvoltrim3", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":974 }, { "id":"mainvoltrim4", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":976 }, { "id":"mainvoltrim5", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":978 }, { "id":"mainvoltrim6", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":980 }, { "id":"mainvoltrim7", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":982 }, { "id":"mainvoltrim8", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":984 }, { "id":"mainvoltrim9", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":986 }, { "id":"mainvoltrim10", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":988 }, { "id":"mainvoltrim11", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":990 }, { "id":"mainvoltrim12", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":992 }, { "id":"mainvoltrim13", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":994 }, { "id":"mainvoltrim14", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":996 }, { "id":"mainvoltrim15", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":998 }, { "id":"mainvoltrim16", "type":2, "scale":0.000977, "digits":3, "descr":"If individual cylinder tuning is enabled, this variable shows a main injection volume multiplier", "compact":0, "address":1000 }, { "id":"mainangletrim2", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1004 }, { "id":"mainangletrim3", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1006 }, { "id":"mainangletrim4", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1008 }, { "id":"mainangletrim5", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1010 }, { "id":"mainangletrim6", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1012 }, { "id":"mainangletrim7", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1014 }, { "id":"mainangletrim8", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1016 }, { "id":"mainangletrim9", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1018 }, { "id":"mainangletrim10", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1020 }, { "id":"mainangletrim11", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1022 }, { "id":"mainangletrim12", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1024 }, { "id":"mainangletrim13", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1026 }, { "id":"mainangletrim14", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1028 }, { "id":"mainangletrim15", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1030 }, { "id":"mainangletrim16", "type":2, "scale":0.010986, "unit":"°", "digits":1, "descr":"If individual cylinder tuning is enabled, this variable shows an adder applied to start of main injection.", "compact":0, "address":1032 }, { "id":"keypadstate2", "compact":0, "type":2, "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive", "address":1104 }, { "id":"keypadstate3", "compact":0, "type":2, "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive", "address":1106 }, { "id":"keypadstate4", "compact":0, "type":2, "descr":"CAN keypad button pressed state on bits 1-15, least significant bit indicates keypad is alive", "address":1108 }, { "id":"keypad1.2", "compact":0, "type":0, "address":"keypadstate1.2", "descr":"State of keypad button channel" }, { "id":"keypad1.3", "compact":0, "type":0, "address":"keypadstate1.3", "descr":"State of keypad button channel" }, { "id":"keypad1.4", "compact":0, "type":0, "address":"keypadstate1.4", "descr":"State of keypad button channel" }, { "id":"keypad1.5", "compact":0, "type":0, "address":"keypadstate1.5", "descr":"State of keypad button channel" }, { "id":"keypad1.6", "compact":0, "type":0, "address":"keypadstate1.6", "descr":"State of keypad button channel" }, { "id":"keypad1.7", "compact":0, "type":0, "address":"keypadstate1.7", "descr":"State of keypad button channel" }, { "id":"keypad1.8", "compact":0, "type":0, "address":"keypadstate1.8", "descr":"State of keypad button channel" }, { "id":"keypad1.9", "compact":0, "type":0, "address":"keypadstate1.9", "descr":"State of keypad button channel" }, { "id":"keypad1.10", "compact":0, "type":0, "address":"keypadstate1.10", "descr":"State of keypad button channel" }, { "id":"keypad1.11", "compact":0, "type":0, "address":"keypadstate1.11", "descr":"State of keypad button channel" }, { "id":"keypad1.12", "compact":0, "type":0, "address":"keypadstate1.12", "descr":"State of keypad button channel" }, { "id":"keypad1.13", "compact":0, "type":0, "address":"keypadstate1.13", "descr":"State of keypad button channel" }, { "id":"keypad1.14", "compact":0, "type":0, "address":"keypadstate1.14", "descr":"State of keypad button channel" }, { "id":"keypad1.15", "compact":0, "type":0, "address":"keypadstate1.15", "descr":"State of keypad button channel" }, { "id":"keypad2.2", "compact":0, "type":0, "address":"keypadstate2.2", "descr":"State of keypad button channel" }, { "id":"keypad2.3", "compact":0, "type":0, "address":"keypadstate2.3", "descr":"State of keypad button channel" }, { "id":"keypad2.4", "compact":0, "type":0, "address":"keypadstate2.4", "descr":"State of keypad button channel" }, { "id":"keypad2.5", "compact":0, "type":0, "address":"keypadstate2.5", "descr":"State of keypad button channel" }, { "id":"keypad2.6", "compact":0, "type":0, "address":"keypadstate2.6", "descr":"State of keypad button channel" }, { "id":"keypad2.7", "compact":0, "type":0, "address":"keypadstate2.7", "descr":"State of keypad button channel" }, { "id":"keypad2.8", "compact":0, "type":0, "address":"keypadstate2.8", "descr":"State of keypad button channel" }, { "id":"keypad2.9", "compact":0, "type":0, "address":"keypadstate2.9", "descr":"State of keypad button channel" }, { "id":"keypad2.10", "compact":0, "type":0, "address":"keypadstate2.10", "descr":"State of keypad button channel" }, { "id":"keypad2.11", "compact":0, "type":0, "address":"keypadstate2.11", "descr":"State of keypad button channel" }, { "id":"keypad2.12", "compact":0, "type":0, "address":"keypadstate2.12", "descr":"State of keypad button channel" }, { "id":"keypad2.13", "compact":0, "type":0, "address":"keypadstate2.13", "descr":"State of keypad button channel" }, { "id":"keypad2.14", "compact":0, "type":0, "address":"keypadstate2.14", "descr":"State of keypad button channel" }, { "id":"keypad2.15", "compact":0, "type":0, "address":"keypadstate2.15", "descr":"State of keypad button channel" }, { "id":"keypad3.2", "compact":0, "type":0, "address":"keypadstate3.2", "descr":"State of keypad button channel" }, { "id":"keypad3.3", "compact":0, "type":0, "address":"keypadstate3.3", "descr":"State of keypad button channel" }, { "id":"keypad3.4", "compact":0, "type":0, "address":"keypadstate3.4", "descr":"State of keypad button channel" }, { "id":"keypad3.5", "compact":0, "type":0, "address":"keypadstate3.5", "descr":"State of keypad button channel" }, { "id":"keypad3.6", "compact":0, "type":0, "address":"keypadstate3.6", "descr":"State of keypad button channel" }, { "id":"keypad3.7", "compact":0, "type":0, "address":"keypadstate3.7", "descr":"State of keypad button channel" }, { "id":"keypad3.8", "compact":0, "type":0, "address":"keypadstate3.8", "descr":"State of keypad button channel" }, { "id":"keypad3.9", "compact":0, "type":0, "address":"keypadstate3.9", "descr":"State of keypad button channel" }, { "id":"keypad3.10", "compact":0, "type":0, "address":"keypadstate3.10", "descr":"State of keypad button channel" }, { "id":"keypad3.11", "compact":0, "type":0, "address":"keypadstate3.11", "descr":"State of keypad button channel" }, { "id":"keypad3.12", "compact":0, "type":0, "address":"keypadstate3.12", "descr":"State of keypad button channel" }, { "id":"keypad3.13", "compact":0, "type":0, "address":"keypadstate3.13", "descr":"State of keypad button channel" }, { "id":"keypad3.14", "compact":0, "type":0, "address":"keypadstate3.14", "descr":"State of keypad button channel" }, { "id":"keypad3.15", "compact":0, "type":0, "address":"keypadstate3.15", "descr":"State of keypad button channel" }, { "id":"keypad4.2", "compact":0, "type":0, "address":"keypadstate4.2", "descr":"State of keypad button channel" }, { "id":"keypad4.3", "compact":0, "type":0, "address":"keypadstate4.3", "descr":"State of keypad button channel" }, { "id":"keypad4.4", "compact":0, "type":0, "address":"keypadstate4.4", "descr":"State of keypad button channel" }, { "id":"keypad4.5", "compact":0, "type":0, "address":"keypadstate4.5", "descr":"State of keypad button channel" }, { "id":"keypad4.6", "compact":0, "type":0, "address":"keypadstate4.6", "descr":"State of keypad button channel" }, { "id":"keypad4.7", "compact":0, "type":0, "address":"keypadstate4.7", "descr":"State of keypad button channel" }, { "id":"keypad4.8", "compact":0, "type":0, "address":"keypadstate4.8", "descr":"State of keypad button channel" }, { "id":"keypad4.9", "compact":0, "type":0, "address":"keypadstate4.9", "descr":"State of keypad button channel" }, { "id":"keypad4.10", "compact":0, "type":0, "address":"keypadstate4.10", "descr":"State of keypad button channel" }, { "id":"keypad4.11", "compact":0, "type":0, "address":"keypadstate4.11", "descr":"State of keypad button channel" }, { "id":"keypad4.12", "compact":0, "type":0, "address":"keypadstate4.12", "descr":"State of keypad button channel" }, { "id":"keypad4.13", "compact":0, "type":0, "address":"keypadstate4.13", "descr":"State of keypad button channel" }, { "id":"keypad4.14", "compact":0, "type":0, "address":"keypadstate4.14", "descr":"State of keypad button channel" }, { "id":"keypad4.15", "compact":0, "type":0, "address":"keypadstate4.15", "descr":"State of keypad button channel" } ] }, "remoteprocedures":{ "startlogging":{ "description":"Manually start internal controller logging", "cmd":"LT" }, "stoplogging":{ "description":"Halt internal data log", "cmd":"SL" }, "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 ] }, "injtest":{ "cmd":"IT", "args":[ 1, 2 ] }, "cutcyl":{ "cmd":"DO", "args":[ 2 ] }, "clearerrors":{ "cmd":"CE", "returns":[ 1 ] }, "remotebit":{ "cmd":"RB", "returns":[ 1 ], "args":[ 1, 1 ] }, "userprogramstate":{ "cmd":"UP", "args":[ 1 ] }, "initcan":{ "cmd":"CI" } }, "permanenterrorflags":{ "error0":"nverror0", "error1":"nverror1", "error2":"nverror2", "error3":"nverror3", "injectorfaults":"nvinjectorfaults" }, "errorlist":{ "error0":[ [ 0, "ECU internal 5V rail fault" ], [ 1, "5V sensor supply short circuit" ], [ 2, "Ignition switch off" ], [ 3, "Communication lost with master controller" ], [ 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" ] ], "error1":[ [ 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" ], [ 7, "Analog to digital converter fault" ] ], "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 rail pressure low" ], [ 24, "Fuel rail pressure high" ], [ 25, "Engine coolant temperature implausible" ], [ 26, "Lambda sensor 2 voltage out of range" ], [ 27, "Lambda sensor 2 lack of activity" ], [ 28, "Engine oil level sensor low input" ], [ 29, "Engine oil level sensor high input" ], [ 30, "Engine oil quality sensor low input" ], [ 31, "Engine oil quality sensor high input" ] ], "error3":[ [ 0, "Mass air flow sensor 1 low input" ], [ 1, "Mass air flow sensor 1 high input" ], [ 2, "Mass air flow sensor 2 low input" ], [ 3, "Mass air flow sensor 2 high input" ], [ 5, "Oil pressure sensor low value" ], [ 6, "Oil pressure sensor high value" ], [ 7, "Oil temperature sensor low value" ], [ 8, "Oil temperature sensor high value" ], [ 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, "Communications with slave controller lost" ], [ 22, "Fault reported by slave controller" ], [ 23, "Fuel temperature sensor low value" ], [ 24, "Fuel temperature sensor high value" ] ], "injectorfaults":[ [ 0, "Injector 1 short circuit" ], [ 1, "Injector 2 short circuit" ], [ 2, "Injector 3 short circuit" ], [ 3, "Injector 4 short circuit" ], [ 4, "Injector 5 short circuit" ], [ 5, "Injector 6 short circuit" ], [ 6, "Injector 7 short circuit" ], [ 7, "Injector 8 short circuit" ] ], "glowdiag":[ [ 0, "Glow plug 1 defective" ], [ 1, "Glow plug 2 defective" ], [ 2, "Glow plug 3 defective" ], [ 3, "Glow plug 4 defective" ], [ 4, "Glow plug 5 defective" ], [ 5, "Glow plug 6 defective" ], [ 6, "Glow plug 7 defective" ], [ 7, "Glow plug 8 defective" ], [ 15, "Glow plug controller defective" ] ] }, "scopechannels":[ [ 0, "crank" ], [ 1, "cam" ], [ 2, "cam 2" ], [ 3, "cam 3" ], [ 4, "cam 4" ], [ 5, "current limit" ], [ 10, "sync" ], [ 11, "SCV 1" ], [ 12, "SCV 2" ], [ 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" ], [ 48, "digital in 1" ], [ 49, "digital in 3" ], [ 50, "digital in 4" ], [ 51, "digital in 5" ], [ 52, "digital in 6" ], [ 53, "digital in 7" ], [ 16, "extra inj 1" ], [ 17, "extra inj 2" ], [ 18, "extra inj 3" ], [ 19, "extra inj 4" ], [ 20, "extra inj 5" ], [ 21, "extra inj 6" ], [ 22, "extra inj 7" ], [ 23, "extra inj 8" ], [ 62, "evtlogchan1", "evtlogchan2" ] ], "validation":[ { "description":"Fuel tables must not exceed 512 fields", "rule":"(conf.fuelpribincount * conffuelrpmbincount) < 513", "details":"Adjust fuel load breakpoint count and\/or fuel speed breakpoint count so their product is less than or equal to 512" } ], "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", "testinjcuts", 0 ], [ "dialog", { "title":"Cylinder disable test", "id":"outputdisabletester", "xsize":800, "ysize":400, "noresize":true, "bgcolor":"0x000000", "fgcolor":"0xFFFFFF", "onclose":[ "rpc", "cutcyl", [ 0 ] ] }, [ { "size":[ 50, 10 ], "position":[ 0, 0 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":0, "activecolour":"red", "falsetext":"Cylinder 1", "onclick":[ [ "declare", "testinjcuts", "xor(x, 1)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 50, 0 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":1, "activecolour":"red", "falsetext":"Cylinder 2", "onclick":[ [ "declare", "testinjcuts", "xor(x, 2)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 100, 0 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":2, "activecolour":"red", "falsetext":"Cylinder 3", "onclick":[ [ "declare", "testinjcuts", "xor(x, 4)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 150, 0 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":3, "activecolour":"red", "falsetext":"Cylinder 4", "onclick":[ [ "declare", "testinjcuts", "xor(x, 8)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 0, 10 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":4, "activecolour":"red", "falsetext":"Cylinder 5", "onclick":[ [ "declare", "testinjcuts", "xor(x, 16)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 50, 10 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":5, "activecolour":"red", "falsetext":"Cylinder 6", "onclick":[ [ "declare", "testinjcuts", "xor(x, 32)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 100, 10 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":6, "activecolour":"red", "falsetext":"Cylinder 7", "onclick":[ [ "declare", "testinjcuts", "xor(x, 64)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 150, 10 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":7, "activecolour":"red", "falsetext":"Cylinder 8", "onclick":[ [ "declare", "testinjcuts", "xor(x, 128)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 0, 20 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":8, "activecolour":"red", "falsetext":"Cylinder 9", "onclick":[ [ "declare", "testinjcuts", "xor(x, 256)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 50, 20 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":9, "activecolour":"red", "falsetext":"Cylinder 10", "onclick":[ [ "declare", "testinjcuts", "xor(x, 512)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 100, 20 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":10, "activecolour":"red", "falsetext":"Cylinder 11", "onclick":[ [ "declare", "testinjcuts", "xor(x, 1024)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 150, 20 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":11, "activecolour":"red", "falsetext":"Cylinder 12", "onclick":[ [ "declare", "testinjcuts", "xor(x, 2048)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 0, 30 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":12, "activecolour":"red", "falsetext":"Cylinder 13", "onclick":[ [ "declare", "testinjcuts", "xor(x, 4096)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 50, 30 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":13, "activecolour":"red", "falsetext":"Cylinder 14", "onclick":[ [ "declare", "testinjcuts", "xor(x, 8192)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 100, 30 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":14, "activecolour":"red", "falsetext":"Cylinder 15", "onclick":[ [ "declare", "testinjcuts", "xor(x, 16384)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "size":[ 50, 10 ], "position":[ 150, 30 ], "type":"indicator", "id":"injcuts", "condition":"b", "parameter":15, "activecolour":"red", "falsetext":"Cylinder 16", "onclick":[ [ "declare", "testinjcuts", "xor(x, 32768)" ], [ "rpc", "cutcyl", [ "testinjcuts" ] ] ] }, { "vars":[ "cylcontrib1", "cylcontrib2", "cylcontrib3", "cylcontrib4", "cylcontrib5", "cylcontrib6", "cylcontrib7", "cylcontrib8", "cylcontrib9", "cylcontrib10", "cylcontrib11", "cylcontrib12", "cylcontrib13", "cylcontrib14", "cylcontrib15", "cylcontrib16" ], "range":[ "-1000", "1000" ], "warn":"", "label":"Cylinder contribution", "horizontal":0, "border":0, "size":[ 200, 50 ], "position":[ 0, 50 ], "type":"bargraph" } ] ] ] }, "injtestdialog":{ "description":"Injector output test dialog", "script":[ "dialog", { "title":"Test injector outputs", "id":"outputtester", "xsize":800, "ysize":250, "noresize":true, "bgcolor":"0xCCCCCC", "fgcolor":"0x000000" }, [ { "size":[ 30, 40 ], "position":[ 0, 0 ], "type":"button", "caption":"Injector 1", "onclick":[ "rpc", "injtest", [ 0, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 30, 0 ], "type":"button", "caption":"Injector 2", "onclick":[ "rpc", "injtest", [ 1, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 60, 0 ], "type":"button", "caption":"Injector 3", "onclick":[ "rpc", "injtest", [ 2, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 90, 0 ], "type":"button", "caption":"Injector 4", "onclick":[ "rpc", "injtest", [ 3, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 0, 40 ], "type":"button", "caption":"Injector 5", "onclick":[ "rpc", "injtest", [ 4, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 30, 40 ], "type":"button", "caption":"Injector 6", "onclick":[ "rpc", "injtest", [ 5, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 60, 40 ], "type":"button", "caption":"Injector 7", "onclick":[ "rpc", "injtest", [ 6, "widgetval(injtestpw)" ] ] }, { "size":[ 30, 40 ], "position":[ 90, 40 ], "type":"button", "caption":"Injector 8", "onclick":[ "rpc", "injtest", [ 7, "widgetval(injtestpw)" ] ] }, { "vars":[ "risetime1", "risetime2", "risetime3", "risetime4", "risetime5", "risetime6", "risetime7", "risetime8" ], "range":[ "0", "200" ], "warn":"150", "label":"", "horizontal":0, "border":1, "bgcolor":"000000", "fgcolor":"FFFFFF", "size":[ 80, 80 ], "position":[ 120, 0 ], "type":"bargraph" }, { "size":[ 30, 16 ], "position":[ 0, 84 ], "type":"static", "caption":"Test pulse width" }, { "wid":"injtestpw", "size":[ 20, 16 ], "position":[ 30, 81 ], "type":"edit", "value":1000 }, { "size":[ 70, 16 ], "position":[ 50, 84 ], "type":"static", "caption":"µs (Minimum value 100, maximum 5000)" }, { "size":[ 50, 20 ], "position":[ 150, 80 ], "id":"error0", "condition":"bit", "parameter":"2", "truetext":"ignition OFF", "falsetext":"ignition on", "activecolour":"red", "type":"indicator" } ] ] }, "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":8, "activecolour":"green", "falsetext":"Output 9", "onclick":[ "rpc", "outputtest", [ 8, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 50, 40 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":9, "activecolour":"green", "falsetext":"Output 10", "onclick":[ "rpc", "outputtest", [ 9, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 100, 40 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":10, "activecolour":"green", "falsetext":"Output 11", "onclick":[ "rpc", "outputtest", [ 10, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 150, 40 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":11, "activecolour":"green", "falsetext":"Output 12", "onclick":[ "rpc", "outputtest", [ 11, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 0, 60 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":12, "activecolour":"green", "falsetext":"Output 13", "onclick":[ "rpc", "outputtest", [ 12, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 50, 60 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":13, "activecolour":"green", "falsetext":"Output 14", "onclick":[ "rpc", "outputtest", [ 13, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 100, 60 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":14, "activecolour":"green", "falsetext":"Output 15", "onclick":[ "rpc", "outputtest", [ 14, 2, [ "tmostate0" ] ] ] }, { "size":[ 50, 20 ], "position":[ 150, 60 ], "type":"indicator", "scriptvar":"tmostate0", "condition":"b", "parameter":15, "activecolour":"green", "falsetext":"Output 16", "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" } ] ] }, "appautocal":{ "description":"Accelerator pedal sensor auto calibration", "script":[ "appautocal", 1 ] } }, "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", "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", "boostctl2":"The auxiliary turbocharger control loops can be used to override the primary\r\ncontrol loop if other variables exceed their limits. For example this could be\r\na limit on turbocharger speed, a limit on compressor pressure ratio in a\r\ncompound system or a limit on air restrictor pressure drop in a rally\r\napplication.\r\n\r\nNormally the auxiliary control loops would have their integral maxed out at\r\n100% or somewhere above the output of the primary control loop, but if the\r\noutput of the second or third control loop becomes smaller than the output of\r\nthe primary control loop, the auxiliary value will limit the action of the\r\nturbocharger.\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", "cluster":"In the cluster mode, one controller works as the master and one (or more if\r\nnecessary) operates as a slave.\r\nThis enables control of a greater number of cylinders than the ECU can drive\r\ndirectly.\r\nIn this mode of operation, both the master and slave connect to crank position\r\nsensors, and cam position if applicable. They can be shared signals or\r\nindividual sensors reading the same trigger wheels.\r\nOther sensors are only needed on the master side, and the master handles\r\nall control strategies, but the slave needs to have the fuel system\r\nconfiguration section all set up as well as cylinder angle offsets.\r\nIn the injector output assignment, injector output 17 is the first output\r\non the slave.\r\nThe controllers must be joined via CAN bus 2, and CAN2 must be configured,\r\nsuggested data rate 1Mbps, and CAN receiving must be enabled.\r\nIt is permissible to connect and configure other input\/output functions on the\r\nslave and use general purpose CAN messaging for the necessary extra\r\ncommunication with the master.\r\nThe master transmits injection quantities and timing to the slave, but the\r\nslave needs to have the injector model (or models) set up to calculate the\r\nrequired pulse widths for each injector.\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 error levels. \r\nerror0 are fatal errors which will disable fuel injection.\r\nerror1 are non-maskable errors which will disable the accelerator pedal.\r\nerror2 and error3 are maskable errors which if not masked will enter limp-home mode and switch on the check-engine lamp.\r\n", "extrainjector":"The purpose of the extra injector outputs is to provide the ability to run\r\ninjectors other than the main diesel injectors precisely timed to crank angle.\r\nThis can be injectors providing suppplemental fuel like methanol into the\r\nintake manifold ports or it can be utilised to control dual-coil diesel\r\ninjectors with some added injector driver hardware. \r\n\r\nThe extra injectors can be assigned to any local output pins but not to\r\ninjector output pins.\r\nInjector numbers are assigned to cylinders according to the main injector output\r\nassignment.\r\nNot all of the extra injectors must be configured to an output, if sequential\r\noperation is not required it is perfectly fine to just configure one or more\r\noutput.\r\nThe same injector number can not be assigned to two or more outputs.\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":"On controllers with serial numbers below 200, the fuel injector drive circuit has a capacitor bank that works in a charge-discharge fashion, \r\nstoring up to 80 millijoules of energy at 100 volts to dump into the injector coil to accelerate current rise times. \r\nWhen the peak current limit is reached the circuit switches to hold current and uses battery voltage to keep the injector powered.\r\nOn these controllers, the \"high current\" phase of the injector current configuration has no effect.\r\n\r\nOn controllers with serial numbers from 200 and up, the fuel injector drive circuit has a constant voltage primary supply meaning the configured boost voltage is\r\nmaintained continuously and the capacitor bank is never depleted during normal operation. This achieves faster current rise times but necessitates a third current phase\r\nto have sufficient control over the initial opening of the injector as the peak current is reached so quickly.\r\nIn the new circuit, the peak current phase is ended when the set current is reached like before, but for a set duration from the start of the injection event the regulated\r\ncurrent limit can be set to a higher value. When that time passes the current limit drops down to the hold current.\r\nThe capacitor bank on this power supply maintains considerable charge for approximately 2 minutes after the ECU is powered off so if any work is to be done on injector wiring,\r\nit is not safe to do so until the capacitor bank has discharged, at a risk of personal injury and damage to the ECU and other electrical components of the vehicle.", "governor":"The way the governor works is you give it a target speed, depending on\r\naccelerator position as well as a secondary input if needed, and the lower\r\nspeed of these two functions will be the target speed.\r\nThe fuel request map works as usual to set the maximum torque based on\r\naccelerator position but the governor cuts in once the speed reaches the\r\ntarget to keep the engine from exceeding a set speed regardless of load.\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", "harsh":"The harshness index works by monitoring the engine speed over the last 32\r\ncycles that the harshness monitor has run. If the harshness monitor has a run\r\ninterval of 100 milliseconds for example the speed is monitored over a 3200ms rolling period, re-evaluated every 100 milliseconds.\r\nThe oscillation count evaluates how often the speed consecutively goes above\r\nand below the average speed during the period by an amount greater than configured as tolerable.\r\nThe oscillation severity takes the derivative of two consecutive samples and notes the greatest speed increase across two samples.\r\n\r\nCorrective action for excess oscillations is done by a reduction of injected fuel quantity by an amount configured in the harshness reaction map.\r\n\r\n", "indcyl":"The individual cylinder tuning allows tuning of individual cylinder fuel quantity for the main injection (pilot and post are excluded) as well as the injection start angle of the main injection event.\r\n\r\nThe trims are provided in form of timing offset (a value of 0 means no change to timing) and fuel multipliers (a value of 1 means no change to injection volume).\r\nEach cylinder gets its own engine speed breakpoints and its own variables for inputs to the timing and volume trims, allowing for full flexibility of choosing what inputs affect each cylinder individually.", "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", "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\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\n0: 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. Crank falling edges are counted between cam falling edge events. Count and window apply as above. \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 timing, with error varying between cylinders.\r\n\r\n" } }, "keyshortcuts":{ "F5":[ "edit", "fuelrequestmap" ], "F6":[ "edit", "injanglemap" ] }, "comments":"", "controller_serialno":"00010", "controller_definition":"32", "controller_fwversion":"32", "controller_signature":"DID1 v1.16", "controller_model":"DI", "gaugepanel":[ { "id":"supplyvoltage", "size":[ 15, 50 ], "position":[ 110, 50 ], "type":"gauge" }, { "id":"roadspeed", "size":[ 15, 50 ], "position":[ 110, 0 ], "type":"gauge" }, { "id":"railpressure", "size":[ 20, 50 ], "position":[ 0, 0 ], "type":"gauge" }, { "id":"railpressuretarget", "size":[ 20, 50 ], "position":[ 0, 50 ], "type":"gauge" }, { "id":"enginespeed", "size":[ 15, 50 ], "position":[ 20, 0 ], "type":"gauge" }, { "id":"effectiveapp", "size":[ 15, 50 ], "position":[ 20, 50 ], "type":"gauge" }, { "id":"map", "size":[ 15, 50 ], "position":[ 35, 0 ], "type":"gauge" }, { "id":"boosttarget", "size":[ 15, 50 ], "position":[ 35, 50 ], "type":"gauge" }, { "id":"coolanttemp", "size":[ 15, 50 ], "position":[ 50, 0 ], "type":"gauge" }, { "id":"airtemp", "size":[ 15, 50 ], "position":[ 50, 50 ], "type":"gauge" }, { "id":"fuelrequest", "size":[ 15, 50 ], "position":[ 65, 0 ], "type":"gauge" }, { "id":"fuellimit", "size":[ 15, 50 ], "position":[ 65, 50 ], "type":"gauge" }, { "id":"mainpw1", "size":[ 15, 50 ], "position":[ 80, 0 ], "type":"gauge" }, { "id":"pilotpw1", "size":[ 15, 50 ], "position":[ 80, 50 ], "type":"gauge" }, { "id":"mainangle1", "size":[ 15, 50 ], "position":[ 95, 0 ], "type":"gauge" }, { "id":"pilotangle1", "size":[ 15, 50 ], "position":[ 95, 50 ], "type":"gauge" }, { "id":"cel", "condition":"=", "parameter":"1", "truetext":"", "falsetext":"CEL", "activecolour":"amber", "size":[ 10, 30 ], "position":[ 190, 70 ], "type":"indicator" }, { "id":"glow_heating", "condition":"=", "parameter":"1", "truetext":"", "falsetext":"glow", "activecolour":"amber", "size":[ 10, 20 ], "position":[ 190, 0 ], "type":"indicator" }, { "id":"ignsw", "condition":"=", "parameter":"0", "truetext":"Ignition off", "falsetext":"Ignition on", "activecolour":"red", "size":[ 10, 20 ], "position":[ 190, 20 ], "type":"indicator" } ], "windowlayout":{ "tabs":[ ] } }