Improve table parsing

This commit is contained in:
Piotr Rogowski 2024-02-20 20:17:28 +01:00
parent 0296e88bf7
commit fa91e654b1
No known key found for this signature in database
GPG Key ID: 4A842D702D9C6F8F
5 changed files with 1079 additions and 966 deletions

View File

@ -686,9 +686,9 @@ class Table {
final String label; final String label;
final int page; final int page;
String? topicHelp; String? topicHelp;
List<String> xBins = []; TableBins xBins = TableBins(constant: '');
List<String> yBins = []; TableBins yBins = TableBins(constant: '');
List<String> zBins = []; TableBins zBins = TableBins(constant: '');
List<String> xyLabels = []; List<String> xyLabels = [];
double? gridHeight; double? gridHeight;
List<double> gridOrient = []; List<double> gridOrient = [];

View File

@ -64,11 +64,23 @@ class TableEditorParser {
case 'topicHelp': case 'topicHelp':
_currentTable!.topicHelp = result[1]; _currentTable!.topicHelp = result[1];
case 'xBins': case 'xBins':
_currentTable!.xBins = result.sublist(1); final parts = result.sublist(1);
_currentTable!.xBins = TableBins(
constant: parts[0],
channel: parts.length > 1 ? parts[1] : null,
);
case 'yBins': case 'yBins':
_currentTable!.yBins = result.sublist(1); final parts = result.sublist(1);
_currentTable!.yBins = TableBins(
constant: parts[0],
channel: parts.length > 1 ? parts[1] : null,
);
case 'zBins': case 'zBins':
_currentTable!.zBins = result.sublist(1); final parts = result.sublist(1);
_currentTable!.zBins = TableBins(
constant: parts[0],
channel: parts.length > 1 ? parts[1] : null,
);
case 'xyLabels': case 'xyLabels':
_currentTable!.xyLabels = result.sublist(1); _currentTable!.xyLabels = result.sublist(1);
case 'gridHeight': case 'gridHeight':

File diff suppressed because it is too large Load Diff

View File

@ -62660,17 +62660,18 @@
"label": "VE Table", "label": "VE Table",
"page": 2, "page": 2,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"rpmBins", "constant": "rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelLoadBins", "constant": "fuelLoadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"veTable" "constant": "veTable",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"Fuel Load:" "Fuel Load:"
@ -62692,17 +62693,18 @@
"label": "Fuel Table 2", "label": "Fuel Table 2",
"page": 11, "page": 11,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelRPM2Bins", "constant": "fuelRPM2Bins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelLoad2Bins", "constant": "fuelLoad2Bins",
"fuelLoad2" "channel": "fuelLoad2"
], },
"zBins": [ "zBins": {
"veTable2" "constant": "veTable2",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"Fuel Load:" "Fuel Load:"
@ -62724,17 +62726,18 @@
"label": "Ignition Advance Table", "label": "Ignition Advance Table",
"page": 3, "page": 3,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBins2", "constant": "rpmBins2",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"mapBins1", "constant": "mapBins1",
"ignLoad" "channel": "ignLoad"
], },
"zBins": [ "zBins": {
"advTable1" "constant": "advTable1",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"Ignition Load:" "Ignition Load:"
@ -62752,17 +62755,18 @@
"label": "Second Ignition Advance Table", "label": "Second Ignition Advance Table",
"page": 14, "page": 14,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBins3", "constant": "rpmBins3",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"mapBins2", "constant": "mapBins2",
"ignLoad2" "channel": "ignLoad2"
], },
"zBins": [ "zBins": {
"advTable2" "constant": "advTable2",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"Ignition Load:" "Ignition Load:"
@ -62780,17 +62784,18 @@
"label": "AFR Table", "label": "AFR Table",
"page": 5, "page": 5,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsAFR", "constant": "rpmBinsAFR",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsAFR", "constant": "loadBinsAFR",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"afrTable" "constant": "afrTable",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 1.0, "gridHeight": 1.0,
"gridOrient": [ "gridOrient": [
@ -62809,17 +62814,18 @@
"label": "Boost Duty / Target", "label": "Boost Duty / Target",
"page": 7, "page": 7,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsBoost", "constant": "rpmBinsBoost",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"tpsBinsBoost", "constant": "tpsBinsBoost",
"throttle" "channel": "throttle"
], },
"zBins": [ "zBins": {
"boostTable" "constant": "boostTable",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 3.0, "gridHeight": 3.0,
"gridOrient": [], "gridOrient": [],
@ -62834,17 +62840,18 @@
"label": "Base duty for closed loop", "label": "Base duty for closed loop",
"page": 7, "page": 7,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsDutyLookup", "constant": "rpmBinsDutyLookup",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsDutyLookup", "constant": "loadBinsDutyLookup",
"boostTarget" "channel": "boostTarget"
], },
"zBins": [ "zBins": {
"boostTableDutyLookup" "constant": "boostTableDutyLookup",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 3.0, "gridHeight": 3.0,
"gridOrient": [], "gridOrient": [],
@ -62859,17 +62866,18 @@
"label": "VVT control Table", "label": "VVT control Table",
"page": 7, "page": 7,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsVVT", "constant": "rpmBinsVVT",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsVVT", "constant": "loadBinsVVT",
"vvtLoad" "channel": "vvtLoad"
], },
"zBins": [ "zBins": {
"vvtTable" "constant": "vvtTable",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"VVT Load:" "VVT Load:"
@ -62887,17 +62895,18 @@
"label": "VVT2 control Table", "label": "VVT2 control Table",
"page": 12, "page": 12,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsVVT2", "constant": "rpmBinsVVT2",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsVVT2", "constant": "loadBinsVVT2",
"vvtLoad" "channel": "vvtLoad"
], },
"zBins": [ "zBins": {
"vvt2Table" "constant": "vvt2Table",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"VVT Load:" "VVT Load:"
@ -62915,17 +62924,18 @@
"label": "WMI control Table", "label": "WMI control Table",
"page": 12, "page": 12,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsWMI", "constant": "rpmBinsWMI",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"mapBinsWMI", "constant": "mapBinsWMI",
"map" "channel": "map"
], },
"zBins": [ "zBins": {
"wmiTable" "constant": "wmiTable",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"WMI Load:" "WMI Load:"
@ -62943,17 +62953,18 @@
"label": "Fuel Staging Table", "label": "Fuel Staging Table",
"page": 7, "page": 7,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsStaging", "constant": "rpmBinsStaging",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsStaging", "constant": "loadBinsStaging",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"stagingTable" "constant": "stagingTable",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 3.0, "gridHeight": 3.0,
"gridOrient": [], "gridOrient": [],
@ -62968,17 +62979,18 @@
"label": "Fuel trim Table 1", "label": "Fuel trim Table 1",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim1rpmBins", "constant": "fuelTrim1rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim1loadBins", "constant": "fuelTrim1loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim1Table" "constant": "fuelTrim1Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -62997,17 +63009,18 @@
"label": "Fuel trim Table 2", "label": "Fuel trim Table 2",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim2rpmBins", "constant": "fuelTrim2rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim2loadBins", "constant": "fuelTrim2loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim2Table" "constant": "fuelTrim2Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63026,17 +63039,18 @@
"label": "Fuel trim Table 3", "label": "Fuel trim Table 3",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim3rpmBins", "constant": "fuelTrim3rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim3loadBins", "constant": "fuelTrim3loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim3Table" "constant": "fuelTrim3Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63055,17 +63069,18 @@
"label": "Fuel trim Table 4", "label": "Fuel trim Table 4",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim4rpmBins", "constant": "fuelTrim4rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim4loadBins", "constant": "fuelTrim4loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim4Table" "constant": "fuelTrim4Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63084,17 +63099,18 @@
"label": "Fuel trim Table 5", "label": "Fuel trim Table 5",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim5rpmBins", "constant": "fuelTrim5rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim5loadBins", "constant": "fuelTrim5loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim5Table" "constant": "fuelTrim5Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63113,17 +63129,18 @@
"label": "Fuel trim Table 6", "label": "Fuel trim Table 6",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim6rpmBins", "constant": "fuelTrim6rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim6loadBins", "constant": "fuelTrim6loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim6Table" "constant": "fuelTrim6Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63142,17 +63159,18 @@
"label": "Fuel trim Table 7", "label": "Fuel trim Table 7",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim7rpmBins", "constant": "fuelTrim7rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim7loadBins", "constant": "fuelTrim7loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim7Table" "constant": "fuelTrim7Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63171,17 +63189,18 @@
"label": "Fuel trim Table 8", "label": "Fuel trim Table 8",
"page": 8, "page": 8,
"topicHelp": "http://speeduino.com/wiki/index.php/Tuning", "topicHelp": "http://speeduino.com/wiki/index.php/Tuning",
"xBins": [ "xBins": {
"fuelTrim8rpmBins", "constant": "fuelTrim8rpmBins",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"fuelTrim8loadBins", "constant": "fuelTrim8loadBins",
"fuelLoad" "channel": "fuelLoad"
], },
"zBins": [ "zBins": {
"fuelTrim8Table" "constant": "fuelTrim8Table",
], "channel": null
},
"xyLabels": [], "xyLabels": [],
"gridHeight": 2.0, "gridHeight": 2.0,
"gridOrient": [ "gridOrient": [
@ -63200,17 +63219,18 @@
"label": "Dwell map", "label": "Dwell map",
"page": 12, "page": 12,
"topicHelp": null, "topicHelp": null,
"xBins": [ "xBins": {
"rpmBinsDwell", "constant": "rpmBinsDwell",
"rpm" "channel": "rpm"
], },
"yBins": [ "yBins": {
"loadBinsDwell", "constant": "loadBinsDwell",
"ignLoad" "channel": "ignLoad"
], },
"zBins": [ "zBins": {
"dwellTable" "constant": "dwellTable",
], "channel": null
},
"xyLabels": [ "xyLabels": [
"RPM", "RPM",
"Load:" "Load:"

View File

@ -34,9 +34,12 @@ table = idleVeTableTbl, idleVeTable, "Idle VE"
expect(table.page).toEqual(1); expect(table.page).toEqual(1);
expect(table.topicHelp) expect(table.topicHelp)
.toEqual('http://speeduino.com/wiki/index.php/Tuning'); .toEqual('http://speeduino.com/wiki/index.php/Tuning');
expect(table.xBins).toEqual(['alsIgnRetardrpmBins', 'RPMValue']); expect(table.xBins.constant).toEqual('alsIgnRetardrpmBins');
expect(table.yBins).toEqual(['alsIgnRetardLoadBins', 'TPSValue']); expect(table.xBins.channel).toEqual('RPMValue');
expect(table.zBins).toEqual(['ALSTimingRetardTable']); expect(table.yBins.constant).toEqual('alsIgnRetardLoadBins');
expect(table.yBins.channel).toEqual('TPSValue');
expect(table.zBins.constant).toEqual('ALSTimingRetardTable');
expect(table.zBins.channel).toBeNull();
expect(table.xyLabels).toEqual(['RPM', 'Fuel Load:']); expect(table.xyLabels).toEqual(['RPM', 'Fuel Load:']);
expect(table.gridHeight).toEqual(4); expect(table.gridHeight).toEqual(4);
expect(table.gridOrient).toEqual([250, 0, 340]); expect(table.gridOrient).toEqual([250, 0, 340]);
@ -51,6 +54,17 @@ table = idleVeTableTbl, idleVeTable, "Idle VE"
expect(table.map).toEqual('idleVeTable'); expect(table.map).toEqual('idleVeTable');
expect(table.label).toEqual('Idle VE'); expect(table.label).toEqual('Idle VE');
expect(table.page).toEqual(0); expect(table.page).toEqual(0);
expect(table.topicHelp).toBeNull();
expect(table.xBins.constant).toEqual('idleVeRpmBins');
expect(table.xBins.channel).toEqual('RPMValue');
expect(table.yBins.constant).toEqual('idleVeLoadBins');
expect(table.yBins.channel).toEqual('veTableYAxis');
expect(table.zBins.constant).toEqual('idleVeTable');
expect(table.zBins.channel).toBeNull();
expect(table.xyLabels).toEqual([]);
expect(table.gridHeight).toBeNull();
expect(table.gridOrient).toEqual([250, 0, 340]);
expect(table.upDownLabels).toEqual(['(RICHER)', '(LEANER)']);
}); });
}); });