From bb690b46908ac08f2f7daa2e123955d2e2e881db Mon Sep 17 00:00:00 2001 From: vimsh Date: Sun, 11 May 2014 18:51:10 -0400 Subject: [PATCH] latest fixes, updates, and enhancements --- .classpath | 2 + MafScaling.jar | Bin 2411668 -> 2743949 bytes lib/jmathplot.jar | Bin 0 -> 249791 bytes log4j.properties | 5 +- resources/arrow.jpg | Bin 0 -> 930 bytes resources/chart.jpg | Bin 0 -> 1293 bytes resources/table.jpg | Bin 0 -> 1368 bytes .../vgi/mafscaling/BgColorFormatRenderer.java | 20 +- src/com/vgi/mafscaling/ClosedLoop.java | 415 ++---- .../mafscaling/ColumnsFiltersSelection.java | 1116 +++++++++++++++++ src/com/vgi/mafscaling/Config.java | 65 + src/com/vgi/mafscaling/ExcelAdapter.java | 46 +- src/com/vgi/mafscaling/IMafChartHolder.java | 20 +- src/com/vgi/mafscaling/LogStats.java | 974 ++++++++++++++ src/com/vgi/mafscaling/LogStatsFixedAxis.java | 708 +++++++++++ src/com/vgi/mafscaling/MafChartPanel.java | 33 +- src/com/vgi/mafscaling/MafCompare.java | 384 ++++++ src/com/vgi/mafscaling/MafScaling.java | 39 +- src/com/vgi/mafscaling/OpenLoop.java | 332 ++--- .../PrimaryOpenLoopFuelingTable.java | 66 +- src/com/vgi/mafscaling/Rescale.java | 832 ++++++++++++ src/com/vgi/mafscaling/TableCellListener.java | 171 +++ src/com/vgi/mafscaling/Utils.java | 159 ++- src/com/vgi/mafscaling/closed_loop.properties | 14 +- src/com/vgi/mafscaling/logstats.properties | 21 + src/com/vgi/mafscaling/open_loop.properties | 18 +- src/com/vgi/mafscaling/rescale.properties | 32 + 27 files changed, 4877 insertions(+), 595 deletions(-) create mode 100644 lib/jmathplot.jar create mode 100644 resources/arrow.jpg create mode 100644 resources/chart.jpg create mode 100644 resources/table.jpg create mode 100644 src/com/vgi/mafscaling/ColumnsFiltersSelection.java create mode 100644 src/com/vgi/mafscaling/LogStats.java create mode 100644 src/com/vgi/mafscaling/LogStatsFixedAxis.java create mode 100644 src/com/vgi/mafscaling/MafCompare.java create mode 100644 src/com/vgi/mafscaling/Rescale.java create mode 100644 src/com/vgi/mafscaling/TableCellListener.java create mode 100644 src/com/vgi/mafscaling/logstats.properties create mode 100644 src/com/vgi/mafscaling/rescale.properties diff --git a/.classpath b/.classpath index 20de1a4..10d54e9 100644 --- a/.classpath +++ b/.classpath @@ -1,11 +1,13 @@ + + diff --git a/MafScaling.jar b/MafScaling.jar index be84870717055d8cfdfb85e89cd1b8d5656ad340..13bf800aff3411fee4f1a30160505b6c1d1f8208 100644 GIT binary patch delta 492341 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�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 c|KjxU)t_E!wXQ>f>w~nl|CiG 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 delta 164786 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

Rr$ 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 pn-o4*)rCPmCYQaeb{p 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 b_L-9#a8E1h^liRx^PNAO$8LwCu#5i(@l^!= diff --git a/lib/jmathplot.jar b/lib/jmathplot.jar new file mode 100644 index 0000000000000000000000000000000000000000..d809cf17d1b40fb76429941b74ec44d97538aa7f GIT binary patch literal 249791 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¦wWYL^8gr#+l5XOBRo^XoTd5W|=6EWG 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

vi)pz>ZSW+ZP&$#mIw~sc6d0jw0rluM?^4AaL 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 v zRY=j$kxe)-kzJ`!#HexNLJno8jR!@8E`CrkPAY2R|V^&07y2J$~}^+4C1KUw!=a z`ODXD-+%o41@ado12e>1aG#<1OAzQUCSV+}u!H=?$W#u*%z`YeiiT`Lj)Clng~Cck zjT|CQ6Blkg$f;}`^g%SK=pvVxipfLOk07sseMX$en#l4Q++zrT-D2QjW&}navmk># z!|(iW)BkR_Px;UAL+$vR?ecaPkCVY2A1BU{ zdSIWe|3m%xo3;NLSk35#6LLSHlKTs@CRkz4`+|J*%w{d26A;{Qo8Zfc<5| literal 0 HcmV?d00001 diff --git a/resources/chart.jpg b/resources/chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13404812c41a5facb6a2b0240d5821313a21993e GIT binary patch literal 1293 zcmex= zRY=j$kxe)-kzJ`!#HexNLJno8jR!@8E`CrkPAY2R|V^&07y2J$~}^+4C1KUw!=a z`ODXD-+%o41@ado12e>1aG#<1OAzQUCSV+}u!H=?$W#u*%z`YeiiT`Lj)Clng~Cck zjT|CQ6Blkg$f;}`^g%SK=pvVxipfLOk07sseMX$en#l4Q++zrT-D2QjW&}navmk># z!(WO23{A{`LOz-wz5hdvy~*^x$m?6rJGbuM>mM1ZUz+O_eR}mmxupfGpZO{qS7t2W z5x&8Aoc)dTexc}>*TVw*>vLs(HE-C`S2<06e}TDSsJgXiQQ10AW?M`9srNrPzvuds zd#(P#ocj!0@3+_`&amgtUZ-=?RJn#a* zIfpJDmpYfM6r;2_XwtK3iaVTabE~&)*|s;nY~Ht*b+2~D>8)PwuNSyBZ0UWaypNvy z@=~)`yB5c)OPiK$-M+u>Lj9Ki488y4>n_aa-oyPspT+g@<44iwxBl4oaI5N;dajIP z5f7z$y4;wIP2P&+I8J{Pti`T4%YK2)q&yV|;HEI&FQ z-KTdYXT43N*;2_3J3fmFX{vjkIki8j%i^0OWB(b)>2}4_*RR~p|MR8(-_QRUuC4ke z)by>-b7jtS@5+qp=btV-A1&#&xKD1XUbt`M>G;}hci)%Gn#F9psF!-?<`3Eb3@nR* z(YEvt>kn@r`|^*_53i5j-@?}X;eE)5{|sHG(*GGmUx-`De*N{jOz2h6xoziF3^wIV z61x>*$l_IAwA=sQt^0pu#D8=D=zSX<_~YtB*}yHYcf5ad_I-P)W{8{y#d7f79gi|D(T`&Br2fzuQ&Mi97xR!)wu}@E;+C2c8sePyVN*`?st9 j#RD5_pkIFfXZYv7zG(8hS+~|)nVEZh``7RC|8D{S0lFXq literal 0 HcmV?d00001 diff --git a/resources/table.jpg b/resources/table.jpg new file mode 100644 index 0000000000000000000000000000000000000000..939cf7280148e09155ebca9e4a96a6786f72c094 GIT binary patch literal 1368 zcmex=}T+5Ri6|E+FFJVCMj-APxLK zz#z!MAju%f%&5e`B*@4t$oT&VgFMistiX@}1qKu_GBLBTvH_jM#SK)jRRHLGW@aX! zV_8{%-es%>$}_MCvI;30I#U-U>$dGXcJ4ZK_{h;?$4{I*b?NeztJkjIxOwa0 zqsLF4K70P+<*SdMK7aZ8?fZ|Pzd-(CWMGDP3+^*Ce+dHp#RQB47Iu)o7@5j}m|2j8 zRnd@5$T5&Tu~1masF6d&Y2w0-2RW6EgFc8R6KQ!#m{`Vr(cu+NC|SQA-3gL@3& zuUiZ}z=X*p$SlZU&+yy+_Ez{Z$CRH z5q|sG&0~p8M|JdKTb4YOaQtjCId{dq_mgUG@7;gqC^@HgZMv7o6VBBy zCe?Ijuq^nqSA}_h)n9}4{PN*~9S4JsB`b@D70;?!_t8sh?xgPtyYAl74*Om;ucfxv z#%05fNXy`s$%7D zw^`k#e_GSyC!gChJAU8%LxK0^t63PmSSB4Kv8dN0uu1&Nq$-0KTB#ZolJqoX zc3!MdeCp9Jx84W$N#<)k4V4PdUmjk!a{YlnFMo9Yw)uDA{?_jeTm4yMYa~CgAL8Xd zTCi^Jn(STcI~1>cUGe5j$2)=BoIYoGG7hRtbvDW1)_79a9q3v)>DF96ta6 literal 0 HcmV?d00001 diff --git a/src/com/vgi/mafscaling/BgColorFormatRenderer.java b/src/com/vgi/mafscaling/BgColorFormatRenderer.java index 9b9fb2d..f641ae3 100644 --- a/src/com/vgi/mafscaling/BgColorFormatRenderer.java +++ b/src/com/vgi/mafscaling/BgColorFormatRenderer.java @@ -1,3 +1,21 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; import java.awt.Color; @@ -7,7 +25,7 @@ public class BgColorFormatRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = -2283383526525346419L; - Color bgColor = getBackground(); + private Color bgColor = getBackground(); private Color[][] colors = null; /** diff --git a/src/com/vgi/mafscaling/ClosedLoop.java b/src/com/vgi/mafscaling/ClosedLoop.java index 4fdb310..10cee6c 100644 --- a/src/com/vgi/mafscaling/ClosedLoop.java +++ b/src/com/vgi/mafscaling/ClosedLoop.java @@ -52,20 +52,17 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JSpinner; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextPane; import javax.swing.ListSelectionModel; import javax.swing.ScrollPaneConstants; -import javax.swing.SpinnerNumberModel; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableColumnModel; @@ -99,34 +96,34 @@ public class ClosedLoop extends JTabbedPane implements ActionListener, IMafChart private static final long serialVersionUID = 2988105467764335997L; private static final Logger logger = Logger.getLogger(ClosedLoop.class); - private final static String SaveDataFileHeader = "[closed_loop run data]"; - private final static String MafTableName = "Current MAF Scaling"; - private final static String Afr1TableName = "AFR Average"; - private final static String Afr2TableName = "AFR Cell Hit Count"; - private final static String XAxisName = "MAF Sensor (Voltage)"; - private final static String Y1AxisName = "Mass Airflow (g/s)"; - private final static String Y2AxisName = "Total Correction (%)"; - private final static String dvdtAxisName = "dV / dt"; - private final static String iatAxisName = "IAT"; - private final static String trpmAxisName = "Trims / Rpm"; - private final static String mnmdAxisName = "Mean / Mode"; - private final static String mnmd2AxisName = "Trims / MafV"; - private final static String timeAxisName = "Time"; - private final static String rpmAxisName = "RPM"; + private static final String SaveDataFileHeader = "[closed_loop run data]"; + private static final String MafTableName = "Current MAF Scaling"; + private static final String Afr1TableName = "AFR Average"; + private static final String Afr2TableName = "AFR Cell Hit Count"; + private static final String XAxisName = "MAF Sensor (Voltage)"; + private static final String Y1AxisName = "Mass Airflow (g/s)"; + private static final String Y2AxisName = "Total Correction (%)"; + private static final String dvdtAxisName = "dV / dt"; + private static final String iatAxisName = "IAT"; + private static final String trpmAxisName = "Trims / Rpm"; + private static final String mnmdAxisName = "Mean / Mode"; + private static final String mnmd2AxisName = "Trims / MafV"; + private static final String timeAxisName = "Time"; + private static final String rpmAxisName = "RPM"; private static final String totalCorrectionDataName = "Total Correction"; private static final String currentDataName = "Current"; private static final String correctedDataName = "Corrected"; private static final String smoothedDataName = "Smoothed"; - private static final String mafCurveDataName = "Maf Curve"; + private static final String mafCurveDataName = "Smoothed Maf Curve"; private static final String currentSlopeDataName = "Current Maf Slope"; private static final String smoothedSlopeDataName = "Smoothed Maf Slope"; - private final static int MinimumDataSampleCount = 30; - private final static int ColumnWidth = 50; - private final static int ColumnCount = 9; - private int MafTableColumnCount = 50; - private int AfrTableColumnCount = 15; - private int AfrTableRowCount = 25; - private int LogDataRowCount = 200; + private static final int MinimumDataSampleCount = 30; + private static final int ColumnWidth = 50; + private static final int ColumnCount = 9; + private static final int MafTableColumnCount = 50; + private static final int AfrTableColumnCount = 15; + private static final int AfrTableRowCount = 25; + private static final int LogDataRowCount = 200; private int clValue = Config.getClOlStatusValue(); private double afrMin = Config.getAfrMinimumValue(); private double afrMax = Config.getAfrMaximumValue(); @@ -161,6 +158,7 @@ public class ClosedLoop extends JTabbedPane implements ActionListener, IMafChart private JCheckBox checkBoxSmoothedMaf = null; private JCheckBox checkBoxSmoothing = null; private JComboBox smoothComboBox = null; + private JButton btnCompareButton = null; private JButton btnSmoothButton = null; private JButton btnResetSmoothButton = null; private JButton btnPlusButton = null; @@ -186,12 +184,13 @@ public class ClosedLoop extends JTabbedPane implements ActionListener, IMafChart private final XYSeries currMafData = new XYSeries(currentDataName); private final XYSeries corrMafData = new XYSeries(correctedDataName); private final XYSeries smoothMafData = new XYSeries(smoothedDataName); - private PrimaryOpenLoopFuelingTable polfTable = null; + private MafCompare mafCompare = null; - public ClosedLoop(int tabPlacement, PrimaryOpenLoopFuelingTable table) { + public ClosedLoop(int tabPlacement, PrimaryOpenLoopFuelingTable table, MafCompare comparer) { super(tabPlacement); polfTable = table; + mafCompare = comparer; initialize(); } @@ -214,7 +213,7 @@ private void createDataTab() { gbl_dataPanel.columnWidths = new int[] {0, 0}; gbl_dataPanel.rowHeights = new int[] {0, 0, 0, 0}; gbl_dataPanel.columnWeights = new double[]{0.0, 0.0}; - gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0,0, 1.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 1.0}; dataPanel.setLayout(gbl_dataPanel); JPanel cntlPanel = new JPanel(); @@ -633,14 +632,16 @@ private void createGraghTab() { checkBoxSmoothedMaf.addActionListener(this); cntlPanel.add(checkBoxSmoothedMaf, gbc_checkBoxSmoothedMaf); - Component horizontalGlue = Box.createHorizontalGlue(); - GridBagConstraints gbc_horizontalGlue = new GridBagConstraints(); - gbc_horizontalGlue.weightx = 1.0; - gbc_horizontalGlue.fill = GridBagConstraints.HORIZONTAL; - gbc_horizontalGlue.insets = new Insets(0, 0, 3, 3); - gbc_horizontalGlue.gridx = 8; - gbc_horizontalGlue.gridy = 0; - cntlPanel.add(horizontalGlue, gbc_horizontalGlue); + btnCompareButton = new JButton("Compare"); + GridBagConstraints gbc_btnCompareButton = new GridBagConstraints(); + gbc_btnCompareButton.anchor = GridBagConstraints.CENTER; + gbc_btnCompareButton.insets = new Insets(0, 0, 3, 3); + gbc_btnCompareButton.weightx = 1.0; + gbc_btnCompareButton.gridx = 8; + gbc_btnCompareButton.gridy = 0; + btnCompareButton.setActionCommand("compare"); + btnCompareButton.addActionListener(this); + cntlPanel.add(btnCompareButton, gbc_btnCompareButton); checkBoxSmoothing = new JCheckBox("Smoothing:"); GridBagConstraints gbc_checkBoxSmoothing = new GridBagConstraints(); @@ -685,6 +686,7 @@ private void createGraghTab() { cntlPanel.add(btnResetSmoothButton, gbc_btnResetSmoothButton); JFreeChart chart = ChartFactory.createScatterPlot(null, null, null, null, PlotOrientation.VERTICAL, false, true, false); + chart.setBorderVisible(true); mafChartPanel = new MafChartPanel(chart, this); GridBagConstraints gbl_chartPanel = new GridBagConstraints(); @@ -718,6 +720,7 @@ private void createGraghTab() { lineRenderer.setSeriesShape(0, ShapeUtilities.createDiamond((float) 2.5)); lineRenderer.setSeriesShape(1, ShapeUtilities.createUpTriangle((float) 2.5)); lineRenderer.setSeriesShape(2, ShapeUtilities.createDownTriangle((float) 2.5)); + mafChartPanel.enablePointsDrag(0); lineRenderer.setLegendItemLabelGenerator( new StandardXYSeriesLabelGenerator() { @@ -878,9 +881,11 @@ public String generateLabel(XYDataset dataset, int series) { private void createUsageTab() { JTextPane usageTextArea = new JTextPane(); + usageTextArea.setMargin(new Insets(10, 10, 10, 10)); usageTextArea.setContentType("text/html"); usageTextArea.setText(usage()); usageTextArea.setEditable(false); + usageTextArea.setCaretPosition(0); JScrollPane textScrollPane = new JScrollPane(usageTextArea); textScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); @@ -916,6 +921,9 @@ else if ("save".equals(e.getActionCommand())) { else if ("go".equals(e.getActionCommand())) { calculateMafScaling(); } + else if ("compare".equals(e.getActionCommand())) { + mafCompare.setVisible(true); + } else if ("smooth".equals(e.getActionCommand())) { smoothCurve(); } @@ -1180,13 +1188,13 @@ private void calculateMafScaling() { catch (Exception e) { e.printStackTrace(); logger.error(e); - JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Error: " + e, "Error", JOptionPane.ERROR_MESSAGE); } finally { setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } } - + private void calculateCorrectedGS() { double time; double load; @@ -1325,14 +1333,23 @@ private void calculateCorrectedGS() { Utils.removeRow(size, afr2Table); Utils.colorTable(afr1Table); Utils.colorTable(afr2Table); + int firstCorrIndex = 0; + double firstCorr = 1; for (i = 0; i < correctionMeanArray.size(); ++i) { corr = 1; - if (temp.get(i) > MinimumDataSampleCount) + if (temp.get(i) > MinimumDataSampleCount) { corr = 1.0 + (correctionMeanArray.get(i) + correctionModeArray.get(i)) / 200.00; + if (firstCorrIndex == 0) { + firstCorrIndex = i; + firstCorr = corr; + } + } gsCorrected.add(i, gsArray.get(i) * corr); } + for (i = firstCorrIndex - 1; i > 0; --i) + gsCorrected.set(i, gsArray.get(i) * firstCorr); } - + private boolean getMafTableData(ArrayList voltArray, ArrayList gsArray) { String value; for (int i = 0; i < mafTable.getColumnCount(); ++i) { @@ -1505,6 +1522,9 @@ else if (checkBoxSmoothing.isSelected()) { paddingY = maxY * 0.05; plot.getDomainAxis(0).setRange(smoothMafData.getMinX() - paddingX, smoothMafData.getMaxX() + paddingX); plot.getRangeAxis(0).setRange(minY - paddingY, maxY + paddingY); + corrMafData.setDescription(mafCurveDataName); + currMafData.setDescription(currentSlopeDataName); + smoothMafData.setDescription(smoothedSlopeDataName); } else if ((checkBoxCurrentMaf.isSelected() && checkBoxCurrentMaf.isEnabled()) || (checkBoxCorrectedMaf.isSelected() && checkBoxCorrectedMaf.isEnabled()) || @@ -1540,7 +1560,7 @@ private void plotSmoothingLineSlopes() { setXYTable(mafSmoothingTable, voltArray, smoothGsArray); } - public void onMovePoint(int itemIndex, double valueY) { + public void onMovePoint(int itemIndex, double valueX, double valueY) { ArrayList xarr = voltArray; ArrayList yarr = smoothGsArray; XYSeries series = smoothMafData; @@ -1853,6 +1873,46 @@ private int getLogTableEmptyRow() { return 0; } + private boolean getColumnsFilters(String[] elements) { + boolean ret = true; + ArrayList columns = new ArrayList(Arrays.asList(elements)); + String logClOlStatusColName = Config.getClOlStatusColumnName(); + String logAfLearningColName = Config.getAfLearningColumnName(); + String logAfCorrectionColName = Config.getAfCorrectionColumnName(); + String logAfrColName = Config.getAfrColumnName(); + String logRpmColName = Config.getRpmColumnName(); + String logLoadColName = Config.getLoadColumnName(); + String logTimeColName = Config.getTimeColumnName(); + String logMafvColName = Config.getMafVoltageColumnName(); + String logIatColName = Config.getIatColumnName(); + logClOlStatusColIdx = columns.indexOf(logClOlStatusColName); + logAfLearningColIdx = columns.indexOf(logAfLearningColName); + logAfCorrectionColIdx = columns.indexOf(logAfCorrectionColName); + logAfrColIdx = columns.indexOf(logAfrColName); + logRpmColIdx = columns.indexOf(logRpmColName); + logLoadColIdx = columns.indexOf(logLoadColName); + logTimeColIdx = columns.indexOf(logTimeColName); + logMafvColIdx = columns.indexOf(logMafvColName); + logIatColIdx = columns.indexOf(logIatColName); + if (logClOlStatusColIdx == -1) { Config.setClOlStatusColumnName(Config.NO_NAME); ret = false; } + if (logAfLearningColIdx == -1) { Config.setAfLearningColumnName(Config.NO_NAME); ret = false; } + if (logAfCorrectionColIdx == -1) { Config.setAfCorrectionColumnName(Config.NO_NAME); ret = false; } + if (logAfrColIdx == -1) { Config.setAfrColumnName(Config.NO_NAME); ret = false; } + if (logRpmColIdx == -1) { Config.setRpmColumnName(Config.NO_NAME); ret = false; } + if (logLoadColIdx == -1) { Config.setLoadColumnName(Config.NO_NAME); ret = false; } + if (logTimeColIdx == -1) { Config.setTimeColumnName(Config.NO_NAME); ret = false; } + if (logMafvColIdx == -1) { Config.setMafVoltageColumnName(Config.NO_NAME); ret = false; } + if (logIatColIdx == -1) { Config.setIatColumnName(Config.NO_NAME); ret = false; } + clValue = Config.getClOlStatusValue(); + afrMin = Config.getAfrMinimumValue(); + afrMax = Config.getAfrMaximumValue(); + minLoad = Config.getLoadMinimumValue(); + maxDvDt = Config.getDvDtMaximumValue(); + maxMafV = Config.getMafVMaximumValue(); + maxIat = Config.getIatMaximumValue(); + return ret; + } + private void loadLogFile() { if (JFileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this)) return; @@ -1863,274 +1923,21 @@ private void loadLogFile() { String line = br.readLine(); if (line != null) { String [] elements = line.split(",", -1); + getColumnsFilters(elements); - ArrayList columns = new ArrayList(Arrays.asList(elements)); - String logClOlStatusColName = Config.getClOlStatusColumnName(); - String logAfLearningColName = Config.getAfLearningColumnName(); - String logAfCorrectionColName = Config.getAfCorrectionColumnName(); - String logAfrColName = Config.getAfrColumnName(); - String logRpmColName = Config.getRpmColumnName(); - String logLoadColName = Config.getLoadColumnName(); - String logTimeColName = Config.getTimeColumnName(); - String logMafvColName = Config.getMafVoltageColumnName(); - String logIatColName = Config.getIatColumnName(); - logClOlStatusColIdx = columns.indexOf(logClOlStatusColName); - logAfLearningColIdx = columns.indexOf(logAfLearningColName); - logAfCorrectionColIdx = columns.indexOf(logAfCorrectionColName); - logAfrColIdx = columns.indexOf(logAfrColName); - logRpmColIdx = columns.indexOf(logRpmColName); - logLoadColIdx = columns.indexOf(logLoadColName); - logTimeColIdx = columns.indexOf(logTimeColName); - logMafvColIdx = columns.indexOf(logMafvColName); - logIatColIdx = columns.indexOf(logIatColName); boolean resetColumns = false; - - if (logClOlStatusColIdx >= 0 || - logAfLearningColIdx >= 0 || - logAfCorrectionColIdx >= 0 || - logAfrColIdx >= 0 || - logRpmColIdx >= 0 || - logLoadColIdx >=0 || - logTimeColIdx >=0 || - logMafvColIdx >= 0 || - logIatColIdx >= 0 ) { + if (logClOlStatusColIdx >= 0 || logAfLearningColIdx >= 0 || logAfCorrectionColIdx >= 0 || logAfrColIdx >= 0 || + logRpmColIdx >= 0 || logLoadColIdx >=0 || logTimeColIdx >=0 || logMafvColIdx >= 0 || logIatColIdx >= 0 ) { if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null, "Would you like to reset column names or filter values?", "Columns/Filters Reset", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE)) resetColumns = true; } - - JTable table = new JTable() { - private static final long serialVersionUID = 2L; - public boolean isCellEditable(int row, int column) { return false; }; - }; - table.setColumnSelectionAllowed(false); - table.setCellSelectionEnabled(true); - table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - table.setBorder(new LineBorder(new Color(0, 0, 0))); - table.setTableHeader(null); - table.setModel(new DefaultTableModel(elements.length, 1)); - for (int i = 0; i < elements.length; ++i) - table.setValueAt(elements[i], i, 0); - JLabel spinnerLabel = new JLabel("CL/OL Status value for CL"); - JSpinner spinner = new JSpinner(new SpinnerNumberModel(clValue, -1, 10, 1)); - JLabel lblMin = new JLabel("AFR Filter - valid minimum"); - NumberFormat doubleFmt = NumberFormat.getNumberInstance(); - doubleFmt.setMaximumFractionDigits(2); - JFormattedTextField minTextField = new JFormattedTextField(doubleFmt); - minTextField.setValue(new Double(afrMin)); - minTextField.setColumns(10); - JLabel lblMax = new JLabel("AFR Filter - valid maximum"); - JFormattedTextField maxTextField = new JFormattedTextField(doubleFmt); - maxTextField.setValue(new Double(afrMax)); - maxTextField.setColumns(10); - lblMin.setVisible(false); - minTextField.setVisible(false); - lblMax.setVisible(false); - maxTextField.setVisible(false); - - JComponent[] inputs = new JComponent[] { new JScrollPane(table), spinnerLabel, spinner, lblMin, minTextField, lblMax, maxTextField }; - - if (logClOlStatusColIdx >= 0) - table.changeSelection(logClOlStatusColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logClOlStatusColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select CL/OL Status Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logClOlStatusColIdx = table.getSelectedRow(); - if (logClOlStatusColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid CL/OL Status Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - clValue = Integer.valueOf(spinner.getValue().toString()); - if (clValue == -1) { - JOptionPane.showMessageDialog(null, "Invalid CL/OL Status value for closed loop", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setClOlStatusColumnName(table.getValueAt(logClOlStatusColIdx, 0).toString()); - Config.setClOlStatusValue(clValue); - } - spinnerLabel.setVisible(false); - spinner.setVisible(false); - - lblMax.setVisible(true); - maxTextField.setVisible(true); - lblMin.setVisible(true); - minTextField.setVisible(true); - if (logAfrColIdx >= 0) - table.changeSelection(logAfrColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfrColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select AFR (Stock) Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfrColIdx = table.getSelectedRow(); - if (logAfrColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - if (!Pattern.matches(Utils.fpRegex, minTextField.getText())) { - JOptionPane.showMessageDialog(null, "Invalid AFR Filter minimum value", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - afrMin = Double.valueOf(minTextField.getText()); - if (!Pattern.matches(Utils.fpRegex, maxTextField.getText())) { - JOptionPane.showMessageDialog(null, "Invalid AFR Filter maximum value", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - afrMax = Double.valueOf(maxTextField.getText()); - Config.setAfrColumnName(table.getValueAt(logAfrColIdx, 0).toString()); - Config.setAfrMinimumValue(afrMin); - Config.setAfrMaximumValue(afrMax); - } - lblMax.setVisible(false); - maxTextField.setVisible(false); - lblMin.setVisible(false); - minTextField.setVisible(false); - - if (logAfLearningColIdx >= 0) - table.changeSelection(logAfLearningColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfLearningColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select AFR Learning (LTFT) Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfLearningColIdx = table.getSelectedRow(); - if (logAfLearningColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Learning (LTFT) Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setAfLearningColumnName(table.getValueAt(logAfLearningColIdx, 0).toString()); - } - - if (logAfCorrectionColIdx >= 0) - table.changeSelection(logAfCorrectionColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfCorrectionColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select AFR Correction (STFT) Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfCorrectionColIdx = table.getSelectedRow(); - if (logAfCorrectionColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Correction (STFT) Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setAfCorrectionColumnName(table.getValueAt(logAfCorrectionColIdx, 0).toString()); - } - - if (logRpmColIdx >= 0) - table.changeSelection(logRpmColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logRpmColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Engine Speed Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logRpmColIdx = table.getSelectedRow(); - if (logRpmColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Engine Speed Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setRpmColumnName(table.getValueAt(logRpmColIdx, 0).toString()); - } - - lblMin.setText("Engine Load Filter - minimum value"); - minTextField.setText(String.valueOf(minLoad)); - lblMin.setVisible(true); - minTextField.setVisible(true); - if (logLoadColIdx >= 0) - table.changeSelection(logLoadColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logLoadColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Engine Load Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logLoadColIdx = table.getSelectedRow(); - if (logLoadColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Engine Load Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - if (!Pattern.matches(Utils.fpRegex, minTextField.getText())) { - JOptionPane.showMessageDialog(null, "Invalid Engine Load Filter minimum value", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - minLoad = Double.valueOf(minTextField.getText()); - Config.setLoadColumnName(table.getValueAt(logLoadColIdx, 0).toString()); - Config.setLoadMinimumValue(minLoad); - } - lblMin.setVisible(false); - minTextField.setVisible(false); - - lblMax.setText("dV/dt Filter - maximum value"); - maxTextField.setText(String.valueOf(maxDvDt)); - lblMax.setVisible(true); - maxTextField.setVisible(true); - if (logTimeColIdx >= 0) - table.changeSelection(logTimeColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logTimeColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Time Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logTimeColIdx = table.getSelectedRow(); - if (logTimeColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Time Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - if (!Pattern.matches(Utils.fpRegex, maxTextField.getText())) { - JOptionPane.showMessageDialog(null, "Invalid dV/dt Filter maximum value", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - maxDvDt = Double.valueOf(maxTextField.getText()); - Config.setTimeColumnName(table.getValueAt(logTimeColIdx, 0).toString()); - Config.setDvDtMaximumValue(maxDvDt); - } - lblMax.setVisible(false); - maxTextField.setVisible(false); - - lblMax.setText("MafV Filter - maximum value"); - maxTextField.setText(String.valueOf(maxMafV)); - lblMax.setVisible(true); - maxTextField.setVisible(true); - if (logMafvColIdx >= 0) - table.changeSelection(logMafvColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logMafvColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Maf Voltage Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logMafvColIdx = table.getSelectedRow(); - if (logMafvColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Maf Voltage Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - maxMafV = Double.valueOf(maxTextField.getText()); - Config.setMafVoltageColumnName(table.getValueAt(logMafvColIdx, 0).toString()); - Config.setMafVMaximumValue(maxMafV); - } - lblMax.setVisible(false); - maxTextField.setVisible(false); - lblMax.setText("IAT Filter - maximum value"); - maxTextField.setText(String.valueOf(maxIat)); - lblMax.setVisible(true); - maxTextField.setVisible(true); - if (logIatColIdx >= 0) - table.changeSelection(logIatColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logIatColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select IAT Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logIatColIdx = table.getSelectedRow(); - if (logIatColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid IAT Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - maxIat = Double.valueOf(maxTextField.getText()); - Config.setIatColumnName(table.getValueAt(logIatColIdx, 0).toString()); - Config.setIatMaximumValue(maxIat); + if (resetColumns || logClOlStatusColIdx < 0 || logAfLearningColIdx < 0 || logAfCorrectionColIdx < 0 || logAfrColIdx < 0 || + logRpmColIdx < 0 || logLoadColIdx < 0 || logTimeColIdx < 0 || logMafvColIdx < 0 || logIatColIdx < 0 ) { + ColumnsFiltersSelection selectionWindow = new ColumnsFiltersSelection(ColumnsFiltersSelection.Loop.CLOSED_LOOP, polfTable.isSet()); + if (!selectionWindow.getUserSettings(elements) || !getColumnsFilters(elements)) + return; } - lblMax.setVisible(false); - maxTextField.setVisible(false); String[] flds; line = br.readLine(); @@ -2188,7 +1995,7 @@ private void loadLogFile() { } catch (NumberFormatException e) { logger.error(e); - JOptionPane.showMessageDialog(null, "Error parsing number at line " + i + ": " + e.getMessage(), "Error processing file", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Error parsing number at line " + i + ": " + e, "Error processing file", JOptionPane.ERROR_MESSAGE); return; } line = br.readLine(); @@ -2202,7 +2009,7 @@ private void loadLogFile() { } catch (Exception e) { logger.error(e); - JOptionPane.showMessageDialog(null, e.getMessage(), "Error opening file", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, e, "Error opening file", JOptionPane.ERROR_MESSAGE); } finally { if (br != null) { diff --git a/src/com/vgi/mafscaling/ColumnsFiltersSelection.java b/src/com/vgi/mafscaling/ColumnsFiltersSelection.java new file mode 100644 index 0000000..cc9c841 --- /dev/null +++ b/src/com/vgi/mafscaling/ColumnsFiltersSelection.java @@ -0,0 +1,1116 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.text.NumberFormat; + +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JFormattedTextField; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSpinner; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.SpinnerNumberModel; +import javax.swing.table.DefaultTableModel; + +public class ColumnsFiltersSelection implements ActionListener { + public enum Loop { + OPEN_LOOP, + CLOSED_LOOP + } + private static final String rpmLabelText = "Engine Speed"; + private static final String loadLabelText = "Engine Load"; + private static final String afLearningLabelText = "AFR Learning (LTFT)"; + private static final String afCorrectionLabelText = "AFR Correction (STFT)"; + private static final String mafVLabelText = "MAF Voltage"; + private static final String wbAfrLabelText = "Wideband AFR"; + private static final String thtlAngleLabelText = "Throttle Angle %"; + private static final String commAfrLabelText = "Commanded AFR"; + private static final String stockAfrLabelText = "Stock AFR"; + private static final String clolStatusLabelText = "CL/OL Status"; + private static final String timeLabelText = "Time"; + private static final String iatLabelText = "Intake Air Temperature"; + private static final String minMafVLabelText = "MAF Voltage Minimum"; + private static final String maxMafVLabelText = "MAF Voltage Maximum"; + private static final String maxIatLabelText = "IAT Maximum"; + private static final String maxAfrLabelText = "AFR Maximum"; + private static final String minAfrLabelText = "AFR Minimum"; + private static final String maxDvdtLabelText = "dV/dt Maximum"; + private static final String minEngineLoadLabelText = "Engine Load Minimum"; + private static final String wotStationaryLabelText = "WOT stationary point (Angle %)"; + private static final String afrErrorLabelText = "AFR Error +/- % value"; + private boolean isOpenLoop; + private boolean isPolfTableSet; + private JTable columnsTable = null; + private JTextField thtlAngleName = null; + private JTextField afLearningName = null; + private JTextField afCorrectionName = null; + private JTextField mafVName = null; + private JTextField wbAfrName = null; + private JTextField stockAfrName = null; + private JTextField rpmName = null; + private JTextField loadName = null; + private JTextField commAfrName = null; + private JTextField clolStatusName = null; + private JTextField timeName = null; + private JTextField iatName = null; + private JFormattedTextField minMafVFilter = null; + private JFormattedTextField maxMafVFilter = null; + private JFormattedTextField minEngineLoadFilter = null; + private JFormattedTextField afrErrorFilter = null; + private JFormattedTextField maxAfrFilter = null; + private JFormattedTextField minAfrFilter = null; + private JFormattedTextField maxIatFilter = null; + private JFormattedTextField maxDvdtFilter = null; + private JSpinner wotStationaryPointFilter = null; + private JSpinner clolStatusFilter = null; + + public ColumnsFiltersSelection(Loop loop, boolean isPolfTableSet) { + if (loop == Loop.OPEN_LOOP) + isOpenLoop = true; + else + isOpenLoop = false; + this.isPolfTableSet = isPolfTableSet; + } + + public boolean getUserSettings(String[] columns) { + JPanel selectionPanel = new JPanel(); + GridBagLayout gbl_dataPanel = new GridBagLayout(); + gbl_dataPanel.columnWidths = new int[]{0, 0, 0, 0}; + gbl_dataPanel.rowHeights = new int[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + gbl_dataPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 1.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0}; + selectionPanel.setLayout(gbl_dataPanel); + + Dimension minTextDimension = new Dimension(200, 16); + Dimension minFilterDimension = new Dimension(80, 16); + Insets insets0 = new Insets(0, 0, 0, 0); + Insets insets1 = new Insets(1, 1, 1, 1); + Insets insets3 = new Insets(3, 3, 3, 3); + NumberFormat doubleFmt = NumberFormat.getNumberInstance(); + doubleFmt.setMaximumFractionDigits(2); + ImageIcon arrowImage = new ImageIcon(getClass().getResource("/arrow.jpg")); + + int row = 0; + // Optional Note + JLabel optNoteLabel = new JLabel("NOTE: Fields marked with asterisk (*) are optional"); + optNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_optNoteLabel = new GridBagConstraints(); + gbc_optNoteLabel.anchor = GridBagConstraints.WEST; + gbc_optNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_optNoteLabel.insets = new Insets(5, 50, 5, 5); + gbc_optNoteLabel.gridx = 0; + gbc_optNoteLabel.gridy = row; + gbc_optNoteLabel.gridwidth = 4; + selectionPanel.add(optNoteLabel, gbc_optNoteLabel); + + row += 1; + // columns note + JLabel colNoteLabel = new JLabel("Columns Selection - use blank row to clear optional columns"); + GridBagConstraints gbc_colNoteLabel = new GridBagConstraints(); + gbc_colNoteLabel.anchor = GridBagConstraints.WEST; + gbc_colNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_colNoteLabel.insets = new Insets(5, 5, 5, 5); + gbc_colNoteLabel.gridx = 0; + gbc_colNoteLabel.gridy = row; + gbc_colNoteLabel.gridwidth = 4; + selectionPanel.add(colNoteLabel, gbc_colNoteLabel); + + row += 1; + // RPM + JLabel rpmLabel = new JLabel(rpmLabelText); + GridBagConstraints gbc_rpmLabel = new GridBagConstraints(); + gbc_rpmLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_rpmLabel.insets = insets3; + gbc_rpmLabel.gridx = 0; + gbc_rpmLabel.gridy = row; + selectionPanel.add(rpmLabel, gbc_rpmLabel); + + rpmName = new JTextField(isEmpty(Config.getRpmColumnName())); + rpmName.setMinimumSize(minTextDimension); + rpmName.setEditable(false); + rpmName.setBackground(Color.WHITE); + GridBagConstraints gbc_rpmName = new GridBagConstraints(); + gbc_rpmName.anchor = GridBagConstraints.NORTHWEST; + gbc_rpmName.insets = insets3; + gbc_rpmName.gridx = 1; + gbc_rpmName.gridy = row; + selectionPanel.add(rpmName, gbc_rpmName); + + JButton rpmButton = new JButton("", arrowImage); + rpmButton.setMargin(insets0); + rpmButton.setBorderPainted(false); + rpmButton.setContentAreaFilled(false); + GridBagConstraints gbc_rpmButton = new GridBagConstraints(); + gbc_rpmButton.anchor = GridBagConstraints.CENTER; + gbc_rpmButton.insets = insets1; + gbc_rpmButton.gridx = 2; + gbc_rpmButton.gridy = row; + rpmButton.setActionCommand("rpm"); + rpmButton.addActionListener(this); + selectionPanel.add(rpmButton, gbc_rpmButton); + + row += 1; + // Load + JLabel loadLabel = new JLabel(loadLabelText); + GridBagConstraints gbc_loadLabel = new GridBagConstraints(); + gbc_loadLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_loadLabel.insets = insets3; + gbc_loadLabel.gridx = 0; + gbc_loadLabel.gridy = row; + selectionPanel.add(loadLabel, gbc_loadLabel); + + loadName = new JTextField(isEmpty(Config.getLoadColumnName())); + loadName.setMinimumSize(minTextDimension); + loadName.setEditable(false); + loadName.setBackground(Color.WHITE); + GridBagConstraints gbc_loadName = new GridBagConstraints(); + gbc_loadName.anchor = GridBagConstraints.NORTHWEST; + gbc_loadName.insets = insets3; + gbc_loadName.gridx = 1; + gbc_loadName.gridy = row; + selectionPanel.add(loadName, gbc_loadName); + + JButton loadButton = new JButton("", arrowImage); + loadButton.setMargin(insets0); + loadButton.setBorderPainted(false); + loadButton.setContentAreaFilled(false); + GridBagConstraints gbc_loadButton = new GridBagConstraints(); + gbc_loadButton.anchor = GridBagConstraints.CENTER; + gbc_loadButton.insets = insets1; + gbc_loadButton.gridx = 2; + gbc_loadButton.gridy = row; + loadButton.setActionCommand("load"); + loadButton.addActionListener(this); + selectionPanel.add(loadButton, gbc_loadButton); + + row += 1; + // LTFT + JLabel afLearningLabel = new JLabel(afLearningLabelText); + GridBagConstraints gbc_afLearningLabel = new GridBagConstraints(); + gbc_afLearningLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_afLearningLabel.insets = insets3; + gbc_afLearningLabel.gridx = 0; + gbc_afLearningLabel.gridy = row; + selectionPanel.add(afLearningLabel, gbc_afLearningLabel); + + afLearningName = new JTextField(isEmpty(Config.getAfLearningColumnName())); + afLearningName.setMinimumSize(minTextDimension); + afLearningName.setEditable(false); + afLearningName.setBackground(Color.WHITE); + GridBagConstraints gbc_afLearningName = new GridBagConstraints(); + gbc_afLearningName.anchor = GridBagConstraints.NORTHWEST; + gbc_afLearningName.insets = insets3; + gbc_afLearningName.gridx = 1; + gbc_afLearningName.gridy = row; + selectionPanel.add(afLearningName, gbc_afLearningName); + + JButton afLearningButton = new JButton("", arrowImage); + afLearningButton.setMargin(insets0); + afLearningButton.setBorderPainted(false); + afLearningButton.setContentAreaFilled(false); + GridBagConstraints gbc_afLearningButton = new GridBagConstraints(); + gbc_afLearningButton.anchor = GridBagConstraints.CENTER; + gbc_afLearningButton.insets = insets1; + gbc_afLearningButton.gridx = 2; + gbc_afLearningButton.gridy = row; + afLearningButton.setActionCommand("afrlearn"); + afLearningButton.addActionListener(this); + selectionPanel.add(afLearningButton, gbc_afLearningButton); + + row += 1; + // STFT + JLabel afCorrectionLabel = new JLabel(afCorrectionLabelText); + GridBagConstraints gbc_afCorrectionLabel = new GridBagConstraints(); + gbc_afCorrectionLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_afCorrectionLabel.insets = insets3; + gbc_afCorrectionLabel.gridx = 0; + gbc_afCorrectionLabel.gridy = row; + selectionPanel.add(afCorrectionLabel, gbc_afCorrectionLabel); + + afCorrectionName = new JTextField(isEmpty(Config.getAfCorrectionColumnName())); + afCorrectionName.setMinimumSize(minTextDimension); + afCorrectionName.setEditable(false); + afCorrectionName.setBackground(Color.WHITE); + GridBagConstraints gbc_afCorrectionName = new GridBagConstraints(); + gbc_afCorrectionName.anchor = GridBagConstraints.NORTHWEST; + gbc_afCorrectionName.insets = insets3; + gbc_afCorrectionName.gridx = 1; + gbc_afCorrectionName.gridy = row; + selectionPanel.add(afCorrectionName, gbc_afCorrectionName); + + JButton afCorrectionButton = new JButton("", arrowImage); + afCorrectionButton.setMargin(insets0); + afCorrectionButton.setBorderPainted(false); + afCorrectionButton.setContentAreaFilled(false); + GridBagConstraints gbc_afCorrectionButton = new GridBagConstraints(); + gbc_afCorrectionButton.anchor = GridBagConstraints.CENTER; + gbc_afCorrectionButton.insets = insets1; + gbc_afCorrectionButton.gridx = 2; + gbc_afCorrectionButton.gridy = row; + afCorrectionButton.setActionCommand("afrcorr"); + afCorrectionButton.addActionListener(this); + selectionPanel.add(afCorrectionButton, gbc_afCorrectionButton); + + row += 1; + // MAF Voltage + JLabel mafVLabel = new JLabel(mafVLabelText); + GridBagConstraints gbc_mafVLabel = new GridBagConstraints(); + gbc_mafVLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_mafVLabel.insets = insets3; + gbc_mafVLabel.gridx = 0; + gbc_mafVLabel.gridy = row; + selectionPanel.add(mafVLabel, gbc_mafVLabel); + + mafVName = new JTextField(isEmpty(Config.getMafVoltageColumnName())); + mafVName.setMinimumSize(minTextDimension); + mafVName.setEditable(false); + mafVName.setBackground(Color.WHITE); + GridBagConstraints gbc_mafVName = new GridBagConstraints(); + gbc_mafVName.anchor = GridBagConstraints.NORTHWEST; + gbc_mafVName.insets = insets3; + gbc_mafVName.gridx = 1; + gbc_mafVName.gridy = row; + selectionPanel.add(mafVName, gbc_mafVName); + + JButton mafVButton = new JButton("", arrowImage); + mafVButton.setMargin(insets0); + mafVButton.setBorderPainted(false); + mafVButton.setContentAreaFilled(false); + GridBagConstraints gbc_mafVButton = new GridBagConstraints(); + gbc_mafVButton.anchor = GridBagConstraints.CENTER; + gbc_mafVButton.insets = insets1; + gbc_mafVButton.gridx = 2; + gbc_mafVButton.gridy = row; + mafVButton.setActionCommand("mafv"); + mafVButton.addActionListener(this); + selectionPanel.add(mafVButton, gbc_mafVButton); + + if (isOpenLoop) { + row += 1; + // Wideband AFR + JLabel wbAfrLabel = new JLabel(wbAfrLabelText); + GridBagConstraints gbc_wbAfrLabel = new GridBagConstraints(); + gbc_wbAfrLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_wbAfrLabel.insets = insets3; + gbc_wbAfrLabel.gridx = 0; + gbc_wbAfrLabel.gridy = row; + selectionPanel.add(wbAfrLabel, gbc_wbAfrLabel); + + wbAfrName = new JTextField(isEmpty(Config.getWidebandAfrColumnName())); + wbAfrName.setMinimumSize(minTextDimension); + wbAfrName.setEditable(false); + wbAfrName.setBackground(Color.WHITE); + GridBagConstraints gbc_wbAfrName = new GridBagConstraints(); + gbc_wbAfrName.anchor = GridBagConstraints.NORTHWEST; + gbc_wbAfrName.insets = insets3; + gbc_wbAfrName.gridx = 1; + gbc_wbAfrName.gridy = row; + selectionPanel.add(wbAfrName, gbc_wbAfrName); + + JButton wbAfrButton = new JButton("", arrowImage); + wbAfrButton.setMargin(insets0); + wbAfrButton.setBorderPainted(false); + wbAfrButton.setContentAreaFilled(false); + GridBagConstraints gbc_wbAfrButton = new GridBagConstraints(); + gbc_wbAfrButton.anchor = GridBagConstraints.CENTER; + gbc_wbAfrButton.insets = insets1; + gbc_wbAfrButton.gridx = 2; + gbc_wbAfrButton.gridy = row; + wbAfrButton.setActionCommand("wbafr"); + wbAfrButton.addActionListener(this); + selectionPanel.add(wbAfrButton, gbc_wbAfrButton); + + row += 1; + // Throttle Angle + JLabel thtlAngleLabel = new JLabel(thtlAngleLabelText); + GridBagConstraints gbc_thtlAngleLabel = new GridBagConstraints(); + gbc_thtlAngleLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_thtlAngleLabel.insets = insets3; + gbc_thtlAngleLabel.gridx = 0; + gbc_thtlAngleLabel.gridy = row; + selectionPanel.add(thtlAngleLabel, gbc_thtlAngleLabel); + + thtlAngleName = new JTextField(isEmpty(Config.getThrottleAngleColumnName())); + thtlAngleName.setMinimumSize(minTextDimension); + thtlAngleName.setEditable(false); + thtlAngleName.setBackground(Color.WHITE); + GridBagConstraints gbc_thtlAngleName= new GridBagConstraints(); + gbc_thtlAngleName.anchor = GridBagConstraints.NORTHWEST; + gbc_thtlAngleName.insets = insets3; + gbc_thtlAngleName.gridx = 1; + gbc_thtlAngleName.gridy = row; + selectionPanel.add(thtlAngleName, gbc_thtlAngleName); + + JButton thtlAngleButton = new JButton("", arrowImage); + thtlAngleButton.setMargin(insets0); + thtlAngleButton.setBorderPainted(false); + thtlAngleButton.setContentAreaFilled(false); + GridBagConstraints gbc_thtlAngleButton = new GridBagConstraints(); + gbc_thtlAngleButton.anchor = GridBagConstraints.CENTER; + gbc_thtlAngleButton.insets = insets1; + gbc_thtlAngleButton.gridx = 2; + gbc_thtlAngleButton.gridy = row; + thtlAngleButton.setActionCommand("thtlAngle"); + thtlAngleButton.addActionListener(this); + selectionPanel.add(thtlAngleButton, gbc_thtlAngleButton); + + row += 1; + // Commanded AFR + JLabel commAfrLabel = new JLabel(commAfrLabelText + (isPolfTableSet ? " *" : "")); + GridBagConstraints gbc_commAfrLabel = new GridBagConstraints(); + gbc_commAfrLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_commAfrLabel.insets = insets3; + gbc_commAfrLabel.gridx = 0; + gbc_commAfrLabel.gridy = row; + selectionPanel.add(commAfrLabel, gbc_commAfrLabel); + + commAfrName = new JTextField(isEmpty(Config.getCommandedAfrColumnName())); + commAfrName.setMinimumSize(minTextDimension); + commAfrName.setEditable(false); + commAfrName.setBackground(Color.WHITE); + GridBagConstraints gbc_commAfrName = new GridBagConstraints(); + gbc_commAfrName.anchor = GridBagConstraints.NORTHWEST; + gbc_commAfrName.insets = insets3; + gbc_commAfrName.gridx = 1; + gbc_commAfrName.gridy = row; + selectionPanel.add(commAfrName, gbc_commAfrName); + + JButton commAfrButton = new JButton("", arrowImage); + commAfrButton.setMargin(insets0); + commAfrButton.setBorderPainted(false); + commAfrButton.setContentAreaFilled(false); + GridBagConstraints gbc_commAfrButton = new GridBagConstraints(); + gbc_commAfrButton.anchor = GridBagConstraints.CENTER; + gbc_commAfrButton.insets = insets1; + gbc_commAfrButton.gridx = 2; + gbc_commAfrButton.gridy = row; + commAfrButton.setActionCommand("cmdafr"); + commAfrButton.addActionListener(this); + selectionPanel.add(commAfrButton, gbc_commAfrButton); + } + else { + row += 1; + // Stock AFR + JLabel stockAfrLabel = new JLabel(stockAfrLabelText); + GridBagConstraints gbc_stockAfrLabel = new GridBagConstraints(); + gbc_stockAfrLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_stockAfrLabel.insets = insets3; + gbc_stockAfrLabel.gridx = 0; + gbc_stockAfrLabel.gridy = row; + selectionPanel.add(stockAfrLabel, gbc_stockAfrLabel); + + stockAfrName = new JTextField(isEmpty(Config.getAfrColumnName())); + stockAfrName.setMinimumSize(minTextDimension); + stockAfrName.setEditable(false); + stockAfrName.setBackground(Color.WHITE); + GridBagConstraints gbc_stockAfrName = new GridBagConstraints(); + gbc_stockAfrName.anchor = GridBagConstraints.NORTHWEST; + gbc_stockAfrName.insets = insets3; + gbc_stockAfrName.gridx = 1; + gbc_stockAfrName.gridy = row; + selectionPanel.add(stockAfrName, gbc_stockAfrName); + + JButton stockAfrButton = new JButton("", arrowImage); + stockAfrButton.setMargin(insets0); + stockAfrButton.setBorderPainted(false); + stockAfrButton.setContentAreaFilled(false); + GridBagConstraints gbc_stockAfrButton = new GridBagConstraints(); + gbc_stockAfrButton.anchor = GridBagConstraints.CENTER; + gbc_stockAfrButton.insets = insets1; + gbc_stockAfrButton.gridx = 2; + gbc_stockAfrButton.gridy = row; + stockAfrButton.setActionCommand("afr"); + stockAfrButton.addActionListener(this); + selectionPanel.add(stockAfrButton, gbc_stockAfrButton); + + row += 1; + // Closed/Open Loop Status + JLabel clolStatusLabel = new JLabel(clolStatusLabelText); + GridBagConstraints gbc_clolStatusLabel = new GridBagConstraints(); + gbc_clolStatusLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_clolStatusLabel.insets = insets3; + gbc_clolStatusLabel.gridx = 0; + gbc_clolStatusLabel.gridy = row; + selectionPanel.add(clolStatusLabel, gbc_clolStatusLabel); + + clolStatusName = new JTextField(isEmpty(Config.getClOlStatusColumnName())); + clolStatusName.setMinimumSize(minTextDimension); + clolStatusName.setEditable(false); + clolStatusName.setBackground(Color.WHITE); + GridBagConstraints gbc_clolStatusName = new GridBagConstraints(); + gbc_clolStatusName.anchor = GridBagConstraints.NORTHWEST; + gbc_clolStatusName.insets = insets3; + gbc_clolStatusName.gridx = 1; + gbc_clolStatusName.gridy = row; + selectionPanel.add(clolStatusName, gbc_clolStatusName); + + JButton clolStatusButton = new JButton("", arrowImage); + clolStatusButton.setMargin(insets0); + clolStatusButton.setBorderPainted(false); + clolStatusButton.setContentAreaFilled(false); + GridBagConstraints gbc_clolStatusButton = new GridBagConstraints(); + gbc_clolStatusButton.anchor = GridBagConstraints.CENTER; + gbc_clolStatusButton.insets = insets1; + gbc_clolStatusButton.gridx = 2; + gbc_clolStatusButton.gridy = row; + clolStatusButton.setActionCommand("clolstat"); + clolStatusButton.addActionListener(this); + selectionPanel.add(clolStatusButton, gbc_clolStatusButton); + + row += 1; + // Time + JLabel timeLabel = new JLabel(timeLabelText); + GridBagConstraints gbc_timeLabel = new GridBagConstraints(); + gbc_timeLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_timeLabel.insets = insets3; + gbc_timeLabel.gridx = 0; + gbc_timeLabel.gridy = row; + selectionPanel.add(timeLabel, gbc_timeLabel); + + timeName = new JTextField(isEmpty(Config.getTimeColumnName())); + timeName.setMinimumSize(minTextDimension); + timeName.setEditable(false); + timeName.setBackground(Color.WHITE); + GridBagConstraints gbc_timeName = new GridBagConstraints(); + gbc_timeName.anchor = GridBagConstraints.NORTHWEST; + gbc_timeName.insets = insets3; + gbc_timeName.gridx = 1; + gbc_timeName.gridy = row; + selectionPanel.add(timeName, gbc_timeName); + + JButton timeButton = new JButton("", arrowImage); + timeButton.setMargin(insets0); + timeButton.setBorderPainted(false); + timeButton.setContentAreaFilled(false); + GridBagConstraints gbc_timeButton = new GridBagConstraints(); + gbc_timeButton.anchor = GridBagConstraints.CENTER; + gbc_timeButton.insets = insets1; + gbc_timeButton.gridx = 2; + gbc_timeButton.gridy = row; + timeButton.setActionCommand("time"); + timeButton.addActionListener(this); + selectionPanel.add(timeButton, gbc_timeButton); + + row += 1; + // IAT + JLabel iatLabel = new JLabel(iatLabelText); + GridBagConstraints gbc_iatLabel = new GridBagConstraints(); + gbc_iatLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_iatLabel.insets = insets3; + gbc_iatLabel.gridx = 0; + gbc_iatLabel.gridy = row; + selectionPanel.add(iatLabel, gbc_iatLabel); + + iatName = new JTextField(isEmpty(Config.getIatColumnName())); + iatName.setMinimumSize(minTextDimension); + iatName.setEditable(false); + iatName.setBackground(Color.WHITE); + GridBagConstraints gbc_iatName = new GridBagConstraints(); + gbc_iatName.anchor = GridBagConstraints.NORTHWEST; + gbc_iatName.insets = insets3; + gbc_iatName.gridx = 1; + gbc_iatName.gridy = row; + selectionPanel.add(iatName, gbc_iatName); + + JButton iatButton = new JButton("", arrowImage); + iatButton.setMargin(insets0); + iatButton.setBorderPainted(false); + iatButton.setContentAreaFilled(false); + GridBagConstraints gbc_iatButton = new GridBagConstraints(); + gbc_iatButton.anchor = GridBagConstraints.CENTER; + gbc_iatButton.insets = insets1; + gbc_iatButton.gridx = 2; + gbc_iatButton.gridy = row; + iatButton.setActionCommand("iat"); + iatButton.addActionListener(this); + selectionPanel.add(iatButton, gbc_iatButton); + } + + // Columns selection table + columnsTable = new JTable() { + private static final long serialVersionUID = 1L; + public boolean isCellEditable(int row, int column) { return false; }; + }; + columnsTable.setColumnSelectionAllowed(false); + columnsTable.setCellSelectionEnabled(true); + columnsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + columnsTable.setTableHeader(null); + columnsTable.setModel(new DefaultTableModel(columns.length + 1, 1)); + columnsTable.setValueAt("", 0, 0); + for (int i = 0; i < columns.length; ++i) + columnsTable.setValueAt(columns[i], i + 1, 0); + + GridBagConstraints gbc_selectionPanel = new GridBagConstraints(); + gbc_selectionPanel.insets = insets3; + gbc_selectionPanel.anchor = GridBagConstraints.SOUTH; + gbc_selectionPanel.fill = GridBagConstraints.BOTH; + gbc_selectionPanel.gridx = 3; + gbc_selectionPanel.gridy = 2; + gbc_selectionPanel.gridheight = (isOpenLoop? 8 : 9); + JScrollPane scrollPane = new JScrollPane(columnsTable); + selectionPanel.add(scrollPane, gbc_selectionPanel); + + row += 1; + // filters note + JLabel filtNoteLabel = new JLabel("Filters Selection - use large/small values out of range to disable a filter"); + GridBagConstraints gbc_filtNoteLabel = new GridBagConstraints(); + gbc_filtNoteLabel.anchor = GridBagConstraints.WEST; + gbc_filtNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_filtNoteLabel.insets = new Insets(5, 5, 5, 5); + gbc_filtNoteLabel.gridx = 0; + gbc_filtNoteLabel.gridy = row; + gbc_filtNoteLabel.gridwidth = 4; + selectionPanel.add(filtNoteLabel, gbc_filtNoteLabel); + + if (isOpenLoop) { + row += 1; + // MAF Voltage Minimum Note + JLabel minMafVNoteLabel = new JLabel("Set this filter to process just Open Loop part of MAF curve data"); + minMafVNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_minMafVNoteLabel = new GridBagConstraints(); + gbc_minMafVNoteLabel.anchor = GridBagConstraints.WEST; + gbc_minMafVNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_minMafVNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_minMafVNoteLabel.gridx = 0; + gbc_minMafVNoteLabel.gridy = row; + gbc_minMafVNoteLabel.gridwidth = 4; + selectionPanel.add(minMafVNoteLabel, gbc_minMafVNoteLabel); + + row += 1; + JLabel minMafVLabel = new JLabel(minMafVLabelText); + GridBagConstraints gbc_minMafVLabel = new GridBagConstraints(); + gbc_minMafVLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_minMafVLabel.insets = insets3; + gbc_minMafVLabel.gridx = 0; + gbc_minMafVLabel.gridy = row; + selectionPanel.add(minMafVLabel, gbc_minMafVLabel); + + minMafVFilter = new JFormattedTextField(doubleFmt); + minMafVFilter.setText(String.valueOf(Config.getMafVMinimumValue())); + minMafVFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_minMafVFilter = new GridBagConstraints(); + gbc_minMafVFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_minMafVFilter.insets = insets3; + gbc_minMafVFilter.gridx = 1; + gbc_minMafVFilter.gridy = row; + selectionPanel.add(minMafVFilter, gbc_minMafVFilter); + + row += 1; + // WOT Stationary Point Note + JLabel wotPointNoteLabel = new JLabel("CL/OL transition. Use \"Throttle Angle %\" but could use \"Accel Pedal Angle %\" instead"); + wotPointNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_wotPointNoteLabel = new GridBagConstraints(); + gbc_wotPointNoteLabel.anchor = GridBagConstraints.WEST; + gbc_wotPointNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_wotPointNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_wotPointNoteLabel.gridx = 0; + gbc_wotPointNoteLabel.gridy = row; + gbc_wotPointNoteLabel.gridwidth = 4; + selectionPanel.add(wotPointNoteLabel, gbc_wotPointNoteLabel); + + row += 1; + JLabel wotStationaryLabel = new JLabel(wotStationaryLabelText); + GridBagConstraints gbc_wotStationaryLabel = new GridBagConstraints(); + gbc_wotStationaryLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_wotStationaryLabel.insets = insets3; + gbc_wotStationaryLabel.gridx = 0; + gbc_wotStationaryLabel.gridy = row; + selectionPanel.add(wotStationaryLabel, gbc_wotStationaryLabel); + + wotStationaryPointFilter = new JSpinner(new SpinnerNumberModel(Config.getWotStationaryPointValue(), 50, 100, 5)); + wotStationaryPointFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_wotStationaryPointFilter = new GridBagConstraints(); + gbc_wotStationaryPointFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_wotStationaryPointFilter.insets = insets3; + gbc_wotStationaryPointFilter.gridx = 1; + gbc_wotStationaryPointFilter.gridy = row; + selectionPanel.add(wotStationaryPointFilter, gbc_wotStationaryPointFilter); + + row += 1; + // AFR Error Percent Note + JLabel afrErrorNoteLabel = new JLabel("Remove data where \"AFR Error %\" exceeds desired change %"); + afrErrorNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_afrErrorNoteLabel = new GridBagConstraints(); + gbc_afrErrorNoteLabel.anchor = GridBagConstraints.WEST; + gbc_afrErrorNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_afrErrorNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_afrErrorNoteLabel.gridx = 0; + gbc_afrErrorNoteLabel.gridy = row; + gbc_afrErrorNoteLabel.gridwidth = 4; + selectionPanel.add(afrErrorNoteLabel, gbc_afrErrorNoteLabel); + + row += 1; + JLabel afrErrorLabel = new JLabel(afrErrorLabelText); + GridBagConstraints gbc_afrErrorLabel = new GridBagConstraints(); + gbc_afrErrorLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_afrErrorLabel.insets = insets3; + gbc_afrErrorLabel.gridx = 0; + gbc_afrErrorLabel.gridy = row; + selectionPanel.add(afrErrorLabel, gbc_afrErrorLabel); + + afrErrorFilter = new JFormattedTextField(doubleFmt); + afrErrorFilter.setText(String.valueOf(Config.getWidebandAfrErrorPercentValue())); + afrErrorFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_afrErrorFilter = new GridBagConstraints(); + gbc_afrErrorFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_afrErrorFilter.insets = insets3; + gbc_afrErrorFilter.gridx = 1; + gbc_afrErrorFilter.gridy = row; + selectionPanel.add(afrErrorFilter, gbc_afrErrorFilter); + } + else { + row += 1; + // CL/OL Status value for CL Note + JLabel clolStatusNoteLabel = new JLabel("Set this filter to filter out Open Loop data using logged OL/CL status"); + clolStatusNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_clolStatusNoteLabel = new GridBagConstraints(); + gbc_clolStatusNoteLabel.anchor = GridBagConstraints.WEST; + gbc_clolStatusNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_clolStatusNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_clolStatusNoteLabel.gridx = 0; + gbc_clolStatusNoteLabel.gridy = row; + gbc_clolStatusNoteLabel.gridwidth = 4; + selectionPanel.add(clolStatusNoteLabel, gbc_clolStatusNoteLabel); + + row += 1; + JLabel clolStatusLabel = new JLabel(clolStatusLabelText); + GridBagConstraints gbc_clolStatusLabel = new GridBagConstraints(); + gbc_clolStatusLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_clolStatusLabel.insets = insets3; + gbc_clolStatusLabel.gridx = 0; + gbc_clolStatusLabel.gridy = row; + selectionPanel.add(clolStatusLabel, gbc_clolStatusLabel); + + clolStatusFilter = new JSpinner(new SpinnerNumberModel(Config.getClOlStatusValue(), -1, 10, 1)); + clolStatusFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_clolStatusFilter = new GridBagConstraints(); + gbc_clolStatusFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_clolStatusFilter.insets = insets3; + gbc_clolStatusFilter.gridx = 1; + gbc_clolStatusFilter.gridy = row; + selectionPanel.add(clolStatusFilter, gbc_clolStatusFilter); + + row += 1; + // MAF Voltage Maximum Note + JLabel maxMafVNoteLabel = new JLabel("Set this filter to process just Closed Loop part of MAF curve data"); + maxMafVNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_maxMafVNoteLabel = new GridBagConstraints(); + gbc_maxMafVNoteLabel.anchor = GridBagConstraints.WEST; + gbc_maxMafVNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_maxMafVNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_maxMafVNoteLabel.gridx = 0; + gbc_maxMafVNoteLabel.gridy = row; + gbc_maxMafVNoteLabel.gridwidth = 4; + selectionPanel.add(maxMafVNoteLabel, gbc_maxMafVNoteLabel); + + row += 1; + JLabel maxMafVLabel = new JLabel(maxMafVLabelText); + GridBagConstraints gbc_maxMafVLabel = new GridBagConstraints(); + gbc_maxMafVLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_maxMafVLabel.insets = insets3; + gbc_maxMafVLabel.gridx = 0; + gbc_maxMafVLabel.gridy = row; + selectionPanel.add(maxMafVLabel, gbc_maxMafVLabel); + + maxMafVFilter = new JFormattedTextField(doubleFmt); + maxMafVFilter.setText(String.valueOf(Config.getMafVMaximumValue())); + maxMafVFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_maxMafVFilter = new GridBagConstraints(); + gbc_maxMafVFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_maxMafVFilter.insets = insets3; + gbc_maxMafVFilter.gridx = 1; + gbc_maxMafVFilter.gridy = row; + selectionPanel.add(maxMafVFilter, gbc_maxMafVFilter); + + row += 1; + // Engine Load Minimum Note + JLabel minEngineLoadNoteLabel = new JLabel("Set this filter to process data above specific Engine Load (eg filter out idle)"); + minEngineLoadNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_minEngineLoadNoteLabel = new GridBagConstraints(); + gbc_minEngineLoadNoteLabel.anchor = GridBagConstraints.WEST; + gbc_minEngineLoadNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_minEngineLoadNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_minEngineLoadNoteLabel.gridx = 0; + gbc_minEngineLoadNoteLabel.gridy = row; + gbc_minEngineLoadNoteLabel.gridwidth = 4; + selectionPanel.add(minEngineLoadNoteLabel, gbc_minEngineLoadNoteLabel); + + row += 1; + JLabel minEngineLoadLabel = new JLabel(minEngineLoadLabelText); + GridBagConstraints gbc_minEngineLoadLabel = new GridBagConstraints(); + gbc_minEngineLoadLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_minEngineLoadLabel.insets = insets3; + gbc_minEngineLoadLabel.gridx = 0; + gbc_minEngineLoadLabel.gridy = row; + selectionPanel.add(minEngineLoadLabel, gbc_minEngineLoadLabel); + + minEngineLoadFilter = new JFormattedTextField(doubleFmt); + minEngineLoadFilter.setText(String.valueOf(Config.getLoadMinimumValue())); + minEngineLoadFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_minEngineLoadFilter = new GridBagConstraints(); + gbc_minEngineLoadFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_minEngineLoadFilter.insets = insets3; + gbc_minEngineLoadFilter.gridx = 1; + gbc_minEngineLoadFilter.gridy = row; + selectionPanel.add(minEngineLoadFilter, gbc_minEngineLoadFilter); + + row += 1; + // Intake Air Temperature Maximum Note + JLabel maxIatNoteLabel = new JLabel("Set this filter to filter out data with high Intake Air Temperature"); + maxIatNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_maxIatNoteLabel = new GridBagConstraints(); + gbc_maxIatNoteLabel.anchor = GridBagConstraints.WEST; + gbc_maxIatNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_maxIatNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_maxIatNoteLabel.gridx = 0; + gbc_maxIatNoteLabel.gridy = row; + gbc_maxIatNoteLabel.gridwidth = 4; + selectionPanel.add(maxIatNoteLabel, gbc_maxIatNoteLabel); + + row += 1; + JLabel maxIatLabel = new JLabel(maxIatLabelText); + GridBagConstraints gbc_maxIatLabel = new GridBagConstraints(); + gbc_maxIatLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_maxIatLabel.insets = insets3; + gbc_maxIatLabel.gridx = 0; + gbc_maxIatLabel.gridy = row; + selectionPanel.add(maxIatLabel, gbc_maxIatLabel); + + maxIatFilter = new JFormattedTextField(doubleFmt); + maxIatFilter.setText(String.valueOf(Config.getIatMaximumValue())); + maxIatFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_maxIatFilter = new GridBagConstraints(); + gbc_maxIatFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_maxIatFilter.insets = insets3; + gbc_maxIatFilter.gridx = 1; + gbc_maxIatFilter.gridy = row; + selectionPanel.add(maxIatFilter, gbc_maxIatFilter); + + row += 1; + // AFR Maximum Note + JLabel maxAfrNoteLabel = new JLabel("Remove data where \"AFR\" is above the specified maximum"); + maxAfrNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_maxAfrNoteLabel = new GridBagConstraints(); + gbc_maxAfrNoteLabel.anchor = GridBagConstraints.WEST; + gbc_maxAfrNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_maxAfrNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_maxAfrNoteLabel.gridx = 0; + gbc_maxAfrNoteLabel.gridy = row; + gbc_maxAfrNoteLabel.gridwidth = 4; + selectionPanel.add(maxAfrNoteLabel, gbc_maxAfrNoteLabel); + + row += 1; + JLabel maxAfrLabel = new JLabel(maxAfrLabelText); + GridBagConstraints gbc_maxAfrLabel = new GridBagConstraints(); + gbc_maxAfrLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_maxAfrLabel.insets = insets3; + gbc_maxAfrLabel.gridx = 0; + gbc_maxAfrLabel.gridy = row; + selectionPanel.add(maxAfrLabel, gbc_maxAfrLabel); + + maxAfrFilter = new JFormattedTextField(doubleFmt); + maxAfrFilter.setText(String.valueOf(Config.getAfrMaximumValue())); + maxAfrFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_maxAfrFilter = new GridBagConstraints(); + gbc_maxAfrFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_maxAfrFilter.insets = insets3; + gbc_maxAfrFilter.gridx = 1; + gbc_maxAfrFilter.gridy = row; + selectionPanel.add(maxAfrFilter, gbc_maxAfrFilter); + + row += 1; + // AFR Minimum Note + JLabel minAfrNoteLabel = new JLabel("Remove data where \"AFR\" is below the specified minimum"); + minAfrNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_minAfrNoteLabel = new GridBagConstraints(); + gbc_minAfrNoteLabel.anchor = GridBagConstraints.WEST; + gbc_minAfrNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_minAfrNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_minAfrNoteLabel.gridx = 0; + gbc_minAfrNoteLabel.gridy = row; + gbc_minAfrNoteLabel.gridwidth = 4; + selectionPanel.add(minAfrNoteLabel, gbc_minAfrNoteLabel); + + row += 1; + JLabel minAfrLabel = new JLabel(minAfrLabelText); + GridBagConstraints gbc_minAfrLabel = new GridBagConstraints(); + gbc_minAfrLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_minAfrLabel.insets = insets3; + gbc_minAfrLabel.gridx = 0; + gbc_minAfrLabel.gridy = row; + selectionPanel.add(minAfrLabel, gbc_minAfrLabel); + + minAfrFilter = new JFormattedTextField(doubleFmt); + minAfrFilter.setText(String.valueOf(Config.getAfrMinimumValue())); + minAfrFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_minAfrFilter = new GridBagConstraints(); + gbc_minAfrFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_minAfrFilter.insets = insets3; + gbc_minAfrFilter.gridx = 1; + gbc_minAfrFilter.gridy = row; + selectionPanel.add(minAfrFilter, gbc_minAfrFilter); + + row += 1; + // dVdt Maximum Note + JLabel maxDvdtNoteLabel = new JLabel("Remove data where \"dV/dt\" is above the specified maximum"); + maxDvdtNoteLabel.setForeground(Color.BLUE); + GridBagConstraints gbc_maxDvdtNoteLabel = new GridBagConstraints(); + gbc_maxDvdtNoteLabel.anchor = GridBagConstraints.WEST; + gbc_maxDvdtNoteLabel.fill = GridBagConstraints.HORIZONTAL; + gbc_maxDvdtNoteLabel.insets = new Insets(5, 10, 5, 5); + gbc_maxDvdtNoteLabel.gridx = 0; + gbc_maxDvdtNoteLabel.gridy = row; + gbc_maxDvdtNoteLabel.gridwidth = 4; + selectionPanel.add(maxDvdtNoteLabel, gbc_maxDvdtNoteLabel); + + row += 1; + JLabel maxDvdtLabel = new JLabel(maxDvdtLabelText); + GridBagConstraints gbc_maxDvdtLabel = new GridBagConstraints(); + gbc_maxDvdtLabel.anchor = GridBagConstraints.NORTHEAST; + gbc_maxDvdtLabel.insets = insets3; + gbc_maxDvdtLabel.gridx = 0; + gbc_maxDvdtLabel.gridy = row; + selectionPanel.add(maxDvdtLabel, gbc_maxDvdtLabel); + + maxDvdtFilter = new JFormattedTextField(doubleFmt); + maxDvdtFilter.setText(String.valueOf(Config.getDvDtMaximumValue())); + maxDvdtFilter.setMinimumSize(minFilterDimension); + GridBagConstraints gbc_maxDvdtFilter = new GridBagConstraints(); + gbc_maxDvdtFilter.anchor = GridBagConstraints.NORTHWEST; + gbc_maxDvdtFilter.insets = insets3; + gbc_maxDvdtFilter.gridx = 1; + gbc_maxDvdtFilter.gridy = row; + selectionPanel.add(maxDvdtFilter, gbc_maxDvdtFilter); + } + + // Set window params + selectionPanel.setPreferredSize(new Dimension(650, (isOpenLoop ? 400 : 600))); + JComponent[] inputs = new JComponent[] { selectionPanel }; + do { + if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Columns / Filters Settings", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) + return false; + } + while (!validate()); + + return true; + } + + public String isEmpty(String current) { + if (current.equals(Config.NO_NAME)) + return ""; + return current; + } + + private boolean validate() { + boolean ret = true; + String error = ""; + String value; + String colName; + + // Engine Speed + value = rpmName.getText().trim(); + colName = rpmLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setRpmColumnName(value); + // Engine Load + value = loadName.getText().trim(); + colName = loadLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setLoadColumnName(value); + // AFR Learning + value = afLearningName.getText().trim(); + colName = afLearningLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setAfLearningColumnName(value); + // AFR Correction + value = afCorrectionName.getText().trim(); + colName = afCorrectionLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setAfCorrectionColumnName(value); + // Maf Voltage + value = mafVName.getText().trim(); + colName = mafVLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setMafVoltageColumnName(value); + if (isOpenLoop) { + // Wideband AFR + value = wbAfrName.getText().trim(); + colName = wbAfrLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setWidebandAfrColumnName(value); + // Throttle Angle + value = thtlAngleName.getText().trim(); + colName = thtlAngleLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setThrottleAngleColumnName(value); + // Commanded AFR + value = commAfrName.getText().trim(); + colName = commAfrLabelText; + if (isPolfTableSet) { + if (value.isEmpty()) + value = Config.NO_NAME; + Config.setCommandedAfrColumnName(value); + } + else { + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified if \"Primary Open Loop Fueling\" table is not set.\n"; + } + else + Config.setCommandedAfrColumnName(value); + } + // Min MAF Voltage filter + Config.setMafVMinimumValue(Double.valueOf(minMafVFilter.getText())); + // WOT Stationary point + Config.setWotStationaryPointValue(Integer.valueOf(wotStationaryPointFilter.getValue().toString())); + // Afr Error filter + Config.setWidebandAfrErrorPercentValue(Double.valueOf(afrErrorFilter.getText())); + } + else { + // Stock AFR + value = stockAfrName.getText().trim(); + colName = stockAfrLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setAfrColumnName(value); + // CL/OL Status + value = clolStatusName.getText().trim(); + colName = clolStatusLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setClOlStatusColumnName(value); + // Time + value = timeName.getText().trim(); + colName = timeLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setTimeColumnName(value); + // Intake Air Temperature + value = iatName.getText().trim(); + colName = iatLabelText; + if (value.isEmpty()) { + ret = false; + error += "\"" + colName + "\" column must be specified\n"; + } + else + Config.setIatColumnName(value); + // CL/OL Status + Config.setClOlStatusValue(Integer.valueOf(clolStatusFilter.getValue().toString())); + // Max MAF Voltage filter + Config.setMafVMaximumValue(Double.valueOf(maxMafVFilter.getText())); + // Engine Load filter + Config.setLoadMinimumValue(Double.valueOf(minEngineLoadFilter.getText())); + // IAT filter + Config.setIatMaximumValue(Double.valueOf(maxIatFilter.getText())); + // AFR filters + Config.setAfrMaximumValue(Double.valueOf(maxAfrFilter.getText())); + Config.setAfrMinimumValue(Double.valueOf(minAfrFilter.getText())); + // dV/dt filter + Config.setDvDtMaximumValue(Double.valueOf(maxDvdtFilter.getText())); + } + if (!ret) + JOptionPane.showMessageDialog(null, error, "Error", JOptionPane.ERROR_MESSAGE); + return ret; + } + + @Override + public void actionPerformed(ActionEvent e) { + int row = columnsTable.getSelectedRow(); + if (row < 0) { + JOptionPane.showMessageDialog(null, "Please select column name from the list", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + String value = columnsTable.getValueAt(row, 0).toString(); + if ("thtlAngle".equals(e.getActionCommand())) + thtlAngleName.setText(value); + else if ("afrlearn".equals(e.getActionCommand())) + afLearningName.setText(value); + else if ("afrcorr".equals(e.getActionCommand())) + afCorrectionName.setText(value); + else if ("mafv".equals(e.getActionCommand())) + mafVName.setText(value); + else if ("wbafr".equals(e.getActionCommand())) + wbAfrName.setText(value); + else if ("rpm".equals(e.getActionCommand())) + rpmName.setText(value); + else if ("load".equals(e.getActionCommand())) + loadName.setText(value); + else if ("cmdafr".equals(e.getActionCommand())) + commAfrName.setText(value); + else if ("afr".equals(e.getActionCommand())) + stockAfrName.setText(value); + else if ("clolstat".equals(e.getActionCommand())) + clolStatusName.setText(value); + else if ("time".equals(e.getActionCommand())) + timeName.setText(value); + else if ("iat".equals(e.getActionCommand())) + iatName.setText(value); + } +} diff --git a/src/com/vgi/mafscaling/Config.java b/src/com/vgi/mafscaling/Config.java index 21aa8d2..94da695 100644 --- a/src/com/vgi/mafscaling/Config.java +++ b/src/com/vgi/mafscaling/Config.java @@ -1,3 +1,21 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; import java.awt.Dimension; @@ -15,7 +33,20 @@ public class Config { private static final Logger logger = Logger.getLogger(Config.class); private static final String CFG_FILE = "config.xml"; + public static final String NO_NAME = "#$#"; private static Properties props = new Properties(); + + public static String getProperty(String name) { + return props.getProperty(name, ""); + } + + public static void setProperty(String name, String prop) { + props.setProperty(name, prop); + } + + public static void removeProperty(String name) { + props.remove(name); + } public static Dimension getWindowSize() { return new Dimension(Integer.parseInt(props.getProperty("WindowWidth", "300")), Integer.parseInt(props.getProperty("WindowHeight", "200"))); @@ -35,6 +66,24 @@ public static void setWindowLocation(Point p) { props.setProperty("WindowPositionY", Integer.toString(p.y)); } + public static Dimension getCompWindowSize() { + return new Dimension(Integer.parseInt(props.getProperty("CompareWindowWidth", "300")), Integer.parseInt(props.getProperty("WindowHeight", "140"))); + } + + public static void setCompWindowSize(Dimension d) { + props.setProperty("CompareWindowWidth", Integer.toString(d.width)); + props.setProperty("CompareWindowHeight", Integer.toString(d.height)); + } + + public static Point getCompWindowLocation() { + return new Point(Integer.parseInt(props.getProperty("CompareWindowPositionX", "50")), Integer.parseInt(props.getProperty("WindowPositionY", "50"))); + } + + public static void setCompWindowLocation(Point p) { + props.setProperty("CompareWindowPositionX", Integer.toString(p.x)); + props.setProperty("CompareWindowPositionY", Integer.toString(p.y)); + } + public static String getThrottleAngleColumnName() { return props.getProperty("ThrottleAngleColumnName", "#$#"); } @@ -234,6 +283,22 @@ public static String getPOLFuelingFiles() { public static void setPOLFuelingFiles(String s) { props.setProperty("POLFuelingFiles", s); } + + public static String getXAxisTemplates() { + return props.getProperty("XAxisTemplates", ","); + } + + public static void setXAxisTemplates(String s) { + props.setProperty("XAxisTemplates", s); + } + + public static String getYAxisTemplates() { + return props.getProperty("YAxisTemplates", ","); + } + + public static void setYAxisTemplates(String s) { + props.setProperty("YAxisTemplates", s); + } public static void load() { InputStream is = null; diff --git a/src/com/vgi/mafscaling/ExcelAdapter.java b/src/com/vgi/mafscaling/ExcelAdapter.java index a86d811..e0e614f 100644 --- a/src/com/vgi/mafscaling/ExcelAdapter.java +++ b/src/com/vgi/mafscaling/ExcelAdapter.java @@ -108,7 +108,7 @@ public void addTable(JTable table, boolean extendRows, boolean extendCols) { * @param extendRows, if true will automatically add rows to the table to be able to paste all data * @param extendCols, if true will automatically add columns to the table to be able to paste all data */ - private void addTable(JTable table, boolean disableCopy, boolean disableCut, boolean disablePaste, boolean disableClear, boolean extendRows, boolean extendCols) { + public void addTable(JTable table, boolean disableCopy, boolean disableCut, boolean disablePaste, boolean disableClear, boolean extendRows, boolean extendCols) { addTable(table, disableCopy, disableCut, disablePaste, disableClear, true, true, true, extendRows, extendCols); } @@ -254,7 +254,7 @@ else if (e.getActionCommand().equals("Paste Vertical")) onPasteVertical(tableHolder.getTable(), tableHolder.getExtendRows(), tableHolder.getExtendCols()); } - private void onClearSelection(JTable table) { + protected void onClearSelection(JTable table) { // Check to ensure we have selected only a contiguous block of cells int numcols = table.getSelectedColumnCount(); int numrows = table.getSelectedRowCount(); @@ -282,11 +282,11 @@ private void onClearSelection(JTable table) { } } - private void onSelectAll(JTable table) { + protected void onSelectAll(JTable table) { table.selectAll(); } - private void onCopy(JTable table) { + protected void onCopy(JTable table) { StringBuffer sbf = new StringBuffer(); // Check to ensure we have selected only a contiguous block of cells int numcols = table.getSelectedColumnCount(); @@ -315,7 +315,7 @@ private void onCopy(JTable table) { system.setContents(stsel, stsel); } - private void onCopyVertical(JTable table) { + protected void onCopyVertical(JTable table) { StringBuffer sbf = new StringBuffer(); // Check to ensure we have selected only a contiguous block of cells int numcols = table.getSelectedColumnCount(); @@ -344,7 +344,7 @@ private void onCopyVertical(JTable table) { system.setContents(stsel, stsel); } - private void onCopyRR(JTable table) { + protected void onCopyRR(JTable table) { StringBuffer sbf = new StringBuffer("[Table2D]" + eol); // Check to ensure we have selected only a contiguous block of cells int numcols = table.getSelectedColumnCount(); @@ -373,7 +373,7 @@ private void onCopyRR(JTable table) { system.setContents(stsel, stsel); } - private void onPaste(JTable table, boolean extendRows, boolean extendCols) { + protected void onPaste(JTable table, boolean extendRows, boolean extendCols) { if (table.getSelectedRows() == null || table.getSelectedRows().length == 0 || table.getSelectedColumns() == null || table.getSelectedColumns().length == 0) return; @@ -393,16 +393,26 @@ private void onPaste(JTable table, boolean extendRows, boolean extendCols) { int colCount = entries.length; if (extendCols && startCol + colCount > table.getColumnCount()) Utils.ensureColumnCount(startCol + colCount, table); - // populate cells with the data - for (int i = 0; i < rowCount; ++i) { - if (i > 0) - rowstring = lines[i]; - entries = rowstring.split("\t", -1); - for (int j = 0; j < entries.length; ++j) { - value = entries[j]; - if (startRow + i < table.getRowCount() && startCol + j< table.getColumnCount()) - table.setValueAt(value, startRow + i, startCol + j); - } + if (rowCount == 1 && colCount == 1) { + int[] rows = table.getSelectedRows(); + int[] cols = table.getSelectedColumns(); + // populate cells with the data + for (int i = 0; i < rows.length; ++i) { + for (int j = 0; j < cols.length; ++j) + table.setValueAt(entries[0], rows[i], cols[j]); + } + } + else { + for (int i = 0; i < rowCount; ++i) { + if (i > 0) + rowstring = lines[i]; + entries = rowstring.split("\t", -1); + for (int j = 0; j < entries.length; ++j) { + value = entries[j]; + if (startRow + i < table.getRowCount() && startCol + j< table.getColumnCount()) + table.setValueAt(value, startRow + i, startCol + j); + } + } } } } @@ -412,7 +422,7 @@ private void onPaste(JTable table, boolean extendRows, boolean extendCols) { } } - private void onPasteVertical(JTable table, boolean extendRows, boolean extendCols) { + protected void onPasteVertical(JTable table, boolean extendRows, boolean extendCols) { if (table.getSelectedRows() == null || table.getSelectedRows().length == 0 || table.getSelectedColumns() == null || table.getSelectedColumns().length == 0) return; diff --git a/src/com/vgi/mafscaling/IMafChartHolder.java b/src/com/vgi/mafscaling/IMafChartHolder.java index 863a5c8..a6e267f 100644 --- a/src/com/vgi/mafscaling/IMafChartHolder.java +++ b/src/com/vgi/mafscaling/IMafChartHolder.java @@ -1,8 +1,26 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; /** * Interface that defines required function for MafChartPanel holders */ public interface IMafChartHolder { - public void onMovePoint(int itemIndex, double valueY); + public void onMovePoint(int itemIndex, double valueX, double valueY); } diff --git a/src/com/vgi/mafscaling/LogStats.java b/src/com/vgi/mafscaling/LogStats.java new file mode 100644 index 0000000..03e87da --- /dev/null +++ b/src/com/vgi/mafscaling/LogStats.java @@ -0,0 +1,974 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.Format; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.ResourceBundle; +import java.util.TreeMap; +import java.util.regex.Pattern; + +import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.JFormattedTextField; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import javax.swing.ListSelectionModel; +import javax.swing.border.LineBorder; +import javax.swing.table.DefaultTableColumnModel; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; +import org.apache.log4j.Logger; +import org.math.plot.Plot3DPanel; + +public class LogStats extends JTabbedPane implements ActionListener { + private enum Statistics {COUNT, MINIMUM, MAXIMUM, MEAN, MEDIAN, MODE, RANGE, VARIANCE, STDDEV}; + private enum Plot3D {GRID, BAR, LINE, SCATTER}; + private enum DataFilter {NONE, LESS, EQUAL, GREATER}; + private static final long serialVersionUID = -7486851151646396168L; + private static final Logger logger = Logger.getLogger(LogStats.class); + private static final int ColumnWidth = 50; + private static final int DataTableRowCount = 50; + private static final int DataTableColumnCount = 25; + + private JFileChooser fileChooser = new JFileChooser(); + private File logFile = null; + private JComboBox xAxisColumn = null; + private JComboBox yAxisColumn = null; + private JComboBox dataColumn = null; + private JComboBox statistics = null; + private JComboBox filters = null; + private JFormattedTextField xAxisRoundTextBox = null; + private JFormattedTextField yAxisRoundTextBox = null; + private JTable dataTable = null; + private ExcelAdapter excelAdapter = null; + private HashMap>> xData = null; + private Plot3DPanel plot = null; + private ButtonGroup rbGroup = new ButtonGroup(); + private JRadioButton rbGridPlot = null; + private JRadioButton rbBarPlot = null; + private JRadioButton rbLinePlot = null; + private JRadioButton rbScatterPlot = null; + private ArrayList xAxisArray; + private ArrayList yAxisArray; + private DataFilter dataFilterType = DataFilter.NONE; + private double dataFilter = Double.NaN; + private int dataRounding = 0; + + public LogStats(int tabPlacement) { + super(tabPlacement); + initialize(); + } + + private void initialize() { + fileChooser.setCurrentDirectory(new File(".")); + excelAdapter = new ExcelAdapter(); + xAxisArray = new ArrayList(); + yAxisArray = new ArrayList(); + createDataTab(); + createGraghTab(); + createUsageTab(); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // DATA TAB + ////////////////////////////////////////////////////////////////////////////////////// + + private void createDataTab() { + JPanel dataPanel = new JPanel(); + add(dataPanel, "

D
a
t
a
"); + GridBagLayout gbl_dataPanel = new GridBagLayout(); + gbl_dataPanel.columnWidths = new int[] {0}; + gbl_dataPanel.rowHeights = new int[] {0, 0}; + gbl_dataPanel.columnWeights = new double[]{0.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 1.0}; + dataPanel.setLayout(gbl_dataPanel); + + createControlPanel(dataPanel); + createDataPanel(dataPanel); + } + + private void createControlPanel(JPanel dataPanel) { + NumberFormat doubleFmt = NumberFormat.getNumberInstance(); + doubleFmt.setGroupingUsed(false); + doubleFmt.setMaximumFractionDigits(2); + doubleFmt.setMinimumFractionDigits(1); + doubleFmt.setRoundingMode(RoundingMode.HALF_UP); + + JPanel cntlPanel = new JPanel(); + GridBagConstraints gbc_ctrlPanel = new GridBagConstraints(); + gbc_ctrlPanel.insets = new Insets(3, 3, 3, 3); + gbc_ctrlPanel.anchor = GridBagConstraints.PAGE_START; + gbc_ctrlPanel.fill = GridBagConstraints.HORIZONTAL; + gbc_ctrlPanel.weightx = 1.0; + gbc_ctrlPanel.gridx = 0; + gbc_ctrlPanel.gridy = 0; + dataPanel.add(cntlPanel, gbc_ctrlPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0, 0}; + gbl_cntlPanel.rowHeights = new int[]{0, 0, 0}; + gbl_cntlPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0}; + gbl_cntlPanel.rowWeights = new double[]{0.0, 0.0, 0.0}; + cntlPanel.setLayout(gbl_cntlPanel); + + JButton selectLogButton = new JButton("Select Log"); + GridBagConstraints gbc_selectLogButton = new GridBagConstraints(); + gbc_selectLogButton.anchor = GridBagConstraints.PAGE_START; + gbc_selectLogButton.insets = new Insets(3, 3, 3, 3); + gbc_selectLogButton.gridx = 0; + gbc_selectLogButton.gridy = 0; + gbc_selectLogButton.gridheight = 3; + selectLogButton.setActionCommand("selectlog"); + selectLogButton.addActionListener(this); + cntlPanel.add(selectLogButton, gbc_selectLogButton); + + JLabel xAxisLabel = new JLabel("X-Axis"); + xAxisLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_xAxisLabel = new GridBagConstraints(); + gbc_xAxisLabel.anchor = GridBagConstraints.EAST; + gbc_xAxisLabel.insets = new Insets(3, 3, 3, 0); + gbc_xAxisLabel.gridx = 1; + gbc_xAxisLabel.gridy = 0; + cntlPanel.add(xAxisLabel, gbc_xAxisLabel); + + xAxisColumn = new JComboBox(); + GridBagConstraints gbc_xAxisColumn = new GridBagConstraints(); + gbc_xAxisColumn.anchor = GridBagConstraints.PAGE_START; + gbc_xAxisColumn.insets = new Insets(3, 3, 3, 3); + gbc_xAxisColumn.gridx = 2; + gbc_xAxisColumn.gridy = 0; + xAxisColumn.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); + cntlPanel.add(xAxisColumn, gbc_xAxisColumn); + + JLabel xAxisScalingLabel = new JLabel("X-Axis Step"); + xAxisScalingLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_xAxisScalingLabel = new GridBagConstraints(); + gbc_xAxisScalingLabel.anchor = GridBagConstraints.EAST; + gbc_xAxisScalingLabel.insets = new Insets(3, 3, 3, 0); + gbc_xAxisScalingLabel.gridx = 3; + gbc_xAxisScalingLabel.gridy = 0; + cntlPanel.add(xAxisScalingLabel, gbc_xAxisScalingLabel); + + xAxisRoundTextBox = new JFormattedTextField(doubleFmt); + xAxisRoundTextBox.setPreferredSize(new Dimension(65, 20)); + GridBagConstraints gbc_xAxisRoundTextBox = new GridBagConstraints(); + gbc_xAxisRoundTextBox.anchor = GridBagConstraints.PAGE_START; + gbc_xAxisRoundTextBox.fill = GridBagConstraints.HORIZONTAL; + gbc_xAxisRoundTextBox.insets = new Insets(3, 3, 3, 3); + gbc_xAxisRoundTextBox.gridx = 4; + gbc_xAxisRoundTextBox.gridy = 0; + cntlPanel.add(xAxisRoundTextBox, gbc_xAxisRoundTextBox); + + JLabel yAxisLabel = new JLabel("Y-Axis"); + yAxisLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_yAxisLabel = new GridBagConstraints(); + gbc_yAxisLabel.anchor = GridBagConstraints.EAST; + gbc_yAxisLabel.insets = new Insets(3, 3, 3, 0); + gbc_yAxisLabel.gridx = 1; + gbc_yAxisLabel.gridy = 1; + cntlPanel.add(yAxisLabel, gbc_yAxisLabel); + + yAxisColumn = new JComboBox(); + GridBagConstraints gbc_yAxisColumn = new GridBagConstraints(); + gbc_yAxisColumn.anchor = GridBagConstraints.PAGE_START; + gbc_yAxisColumn.insets = new Insets(3, 3, 3, 3); + gbc_yAxisColumn.gridx = 2; + gbc_yAxisColumn.gridy = 1; + yAxisColumn.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); + cntlPanel.add(yAxisColumn, gbc_yAxisColumn); + + JLabel yAxisScalingLabel = new JLabel("Y-Axis Step"); + yAxisScalingLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_yAxisScalingLabel = new GridBagConstraints(); + gbc_yAxisScalingLabel.anchor = GridBagConstraints.EAST; + gbc_yAxisScalingLabel.insets = new Insets(3, 3, 3, 0); + gbc_yAxisScalingLabel.gridx = 3; + gbc_yAxisScalingLabel.gridy = 1; + cntlPanel.add(yAxisScalingLabel, gbc_yAxisScalingLabel); + + yAxisRoundTextBox = new JFormattedTextField(doubleFmt); + yAxisRoundTextBox.setPreferredSize(new Dimension(65, 20)); + GridBagConstraints gbc_yAxisRoundTextBox = new GridBagConstraints(); + gbc_yAxisRoundTextBox.anchor = GridBagConstraints.PAGE_START; + gbc_yAxisRoundTextBox.fill = GridBagConstraints.HORIZONTAL; + gbc_yAxisRoundTextBox.insets = new Insets(3, 3, 3, 3); + gbc_yAxisRoundTextBox.gridx = 4; + gbc_yAxisRoundTextBox.gridy = 1; + cntlPanel.add(yAxisRoundTextBox, gbc_yAxisRoundTextBox); + + JLabel datasLabel = new JLabel("Data"); + datasLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_datasLabel = new GridBagConstraints(); + gbc_datasLabel.anchor = GridBagConstraints.EAST; + gbc_datasLabel.insets = new Insets(3, 3, 3, 0); + gbc_datasLabel.gridx = 1; + gbc_datasLabel.gridy = 2; + cntlPanel.add(datasLabel, gbc_datasLabel); + + dataColumn = new JComboBox(); + GridBagConstraints gbc_dataColumn = new GridBagConstraints(); + gbc_dataColumn.anchor = GridBagConstraints.PAGE_START; + gbc_dataColumn.insets = new Insets(3, 3, 3, 3); + gbc_dataColumn.gridx = 2; + gbc_dataColumn.gridy = 2; + dataColumn.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); + cntlPanel.add(dataColumn, gbc_dataColumn); + + JLabel statisticsLabel = new JLabel("Statistics"); + statisticsLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_statisticsLabel = new GridBagConstraints(); + gbc_statisticsLabel.anchor = GridBagConstraints.EAST; + gbc_statisticsLabel.insets = new Insets(3, 3, 3, 0); + gbc_statisticsLabel.gridx = 3; + gbc_statisticsLabel.gridy = 2; + cntlPanel.add(statisticsLabel, gbc_statisticsLabel); + + statistics = new JComboBox(new String[] {"Count", "Minimum", "Maximum", "Mean", "Median", "Mode", "Range", "Variance", "Std Deviation"}); + GridBagConstraints gbc_statistics = new GridBagConstraints(); + gbc_statistics.anchor = GridBagConstraints.PAGE_START; + gbc_statistics.insets = new Insets(3, 3, 3, 3); + gbc_statistics.gridx = 4; + gbc_statistics.gridy = 2; + cntlPanel.add(statistics, gbc_statistics); + + JLabel orLabel = new JLabel("or"); + statisticsLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_orLabel = new GridBagConstraints(); + gbc_orLabel.anchor = GridBagConstraints.CENTER; + gbc_orLabel.insets = new Insets(3, 3, 3, 0); + gbc_orLabel.gridx = 5; + gbc_orLabel.gridy = 0; + gbc_orLabel.gridheight = 2; + cntlPanel.add(orLabel, gbc_orLabel); + + JButton btnSetAxisButton = new JButton("Set Axis"); + GridBagConstraints gbc_btnSetAxisButton = new GridBagConstraints(); + gbc_btnSetAxisButton.anchor = GridBagConstraints.CENTER; + gbc_btnSetAxisButton.insets = new Insets(3, 3, 3, 3); + gbc_btnSetAxisButton.gridx = 6; + gbc_btnSetAxisButton.gridy = 0; + gbc_btnSetAxisButton.gridheight = 2; + btnSetAxisButton.setActionCommand("setaxis"); + btnSetAxisButton.addActionListener(this); + cntlPanel.add(btnSetAxisButton, gbc_btnSetAxisButton); + + filters = new JComboBox(new String[] {"", "Less", "Equal", "Greater"}); + GridBagConstraints gbc_filters = new GridBagConstraints(); + gbc_filters.anchor = GridBagConstraints.PAGE_START; + gbc_filters.fill = GridBagConstraints.HORIZONTAL; + gbc_filters.insets = new Insets(3, 3, 3, 3); + gbc_filters.gridx = 6; + gbc_filters.gridy = 2; + filters.setActionCommand("filter"); + filters.addActionListener(this); + cntlPanel.add(filters, gbc_filters); + + JButton btnGoButton = new JButton("GO"); + GridBagConstraints gbc_btnGoButton = new GridBagConstraints(); + gbc_btnGoButton.anchor = GridBagConstraints.EAST; + gbc_btnGoButton.insets = new Insets(3, 3, 3, 3); + gbc_btnGoButton.weightx = 1.0; + gbc_btnGoButton.gridx = 7; + gbc_btnGoButton.gridy = 0; + gbc_btnGoButton.gridheight = 3; + btnGoButton.setActionCommand("go"); + btnGoButton.addActionListener(this); + cntlPanel.add(btnGoButton, gbc_btnGoButton); + } + + private void createDataPanel(JPanel dataPanel) { + TableColumnModel dataTableModel = new DefaultTableColumnModel(); + dataTableModel.addColumn(new TableColumn(0, 250)); + + dataTable = new JTable() { + private static final long serialVersionUID = 6526901361175099297L; + public boolean isCellEditable(int row, int column) { return false; }; + }; + dataTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + dataTable.setColumnSelectionAllowed(true); + dataTable.setCellSelectionEnabled(true); + dataTable.setBorder(new LineBorder(new Color(0, 0, 0))); + dataTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + dataTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + dataTable.setModel(new DefaultTableModel(DataTableRowCount, DataTableColumnCount)); + dataTable.setTableHeader(null); + Utils.initializeTable(dataTable, ColumnWidth); + + Format[][] formatMatrix = { { new DecimalFormat("0.00"), new DecimalFormat("0.00") } }; + NumberFormatRenderer renderer = (NumberFormatRenderer)dataTable.getDefaultRenderer(Object.class); + renderer.setFormats(formatMatrix); + + GridBagConstraints gbc_dataTable = new GridBagConstraints(); + gbc_dataTable.insets = new Insets(3, 3, 3, 3); + gbc_dataTable.anchor = GridBagConstraints.PAGE_START; + gbc_dataTable.fill = GridBagConstraints.BOTH; + gbc_dataTable.weightx = 1.0; + gbc_dataTable.weighty = 1.0; + gbc_dataTable.gridx = 0; + gbc_dataTable.gridy = 1; + gbc_dataTable.gridwidth = 14; + + JScrollPane scrollPane = new JScrollPane(dataTable); + dataPanel.add(scrollPane, gbc_dataTable); + excelAdapter.addTable(dataTable, false, true, true, true, true, true, true, true, true); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // CREATE CHART TAB + ////////////////////////////////////////////////////////////////////////////////////// + + private void createGraghTab() { + JPanel plotPanel = new JPanel(); + add(plotPanel, "
C
h
a
r
t
"); + GridBagLayout gbl_plotPanel = new GridBagLayout(); + gbl_plotPanel.columnWidths = new int[] {0}; + gbl_plotPanel.rowHeights = new int[] {0, 0}; + gbl_plotPanel.columnWeights = new double[]{1.0}; + gbl_plotPanel.rowWeights = new double[]{0.0, 1.0}; + plotPanel.setLayout(gbl_plotPanel); + + JPanel cntlPanel = new JPanel(); + GridBagConstraints gbl_ctrlPanel = new GridBagConstraints(); + gbl_ctrlPanel.insets = new Insets(3, 3, 3, 3); + gbl_ctrlPanel.anchor = GridBagConstraints.NORTH; + gbl_ctrlPanel.weightx = 1.0; + gbl_ctrlPanel.fill = GridBagConstraints.HORIZONTAL; + gbl_ctrlPanel.gridx = 0; + gbl_ctrlPanel.gridy = 0; + plotPanel.add(cntlPanel, gbl_ctrlPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0, 0, 0, 0, 0}; + gbl_cntlPanel.rowHeights = new int[]{0}; + gbl_cntlPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 1.0}; + gbl_cntlPanel.rowWeights = new double[]{0}; + cntlPanel.setLayout(gbl_cntlPanel); + + rbGridPlot = new JRadioButton("Grid"); + GridBagConstraints gbc_rbGridPlot = new GridBagConstraints(); + gbc_rbGridPlot.anchor = GridBagConstraints.WEST; + gbc_rbGridPlot.insets = new Insets(0, 0, 3, 3); + gbc_rbGridPlot.gridx = 0; + gbc_rbGridPlot.gridy = 0; + rbGridPlot.setActionCommand("grid"); + rbGridPlot.addActionListener(this); + rbGroup.add(rbGridPlot); + cntlPanel.add(rbGridPlot, gbc_rbGridPlot); + + rbBarPlot = new JRadioButton("Bar"); + GridBagConstraints gbc_rbBarPlot = new GridBagConstraints(); + gbc_rbBarPlot.anchor = GridBagConstraints.WEST; + gbc_rbBarPlot.insets = new Insets(0, 0, 3, 3); + gbc_rbBarPlot.gridx = 1; + gbc_rbBarPlot.gridy = 0; + rbBarPlot.setActionCommand("bar"); + rbBarPlot.addActionListener(this); + rbGroup.add(rbBarPlot); + cntlPanel.add(rbBarPlot, gbc_rbBarPlot); + + rbLinePlot = new JRadioButton("Line"); + GridBagConstraints gbc_rbLinePlot = new GridBagConstraints(); + gbc_rbLinePlot.anchor = GridBagConstraints.WEST; + gbc_rbLinePlot.insets = new Insets(0, 0, 3, 3); + gbc_rbLinePlot.gridx = 2; + gbc_rbLinePlot.gridy = 0; + rbLinePlot.setActionCommand("line"); + rbLinePlot.addActionListener(this); + rbGroup.add(rbLinePlot); + cntlPanel.add(rbLinePlot, gbc_rbLinePlot); + + rbScatterPlot = new JRadioButton("Scatter"); + GridBagConstraints gbc_rbScatterPlot = new GridBagConstraints(); + gbc_rbScatterPlot.anchor = GridBagConstraints.WEST; + gbc_rbScatterPlot.insets = new Insets(0, 0, 3, 3); + gbc_rbScatterPlot.gridx = 3; + gbc_rbScatterPlot.gridy = 0; + rbScatterPlot.setActionCommand("scatter"); + rbScatterPlot.addActionListener(this); + rbGroup.add(rbScatterPlot); + cntlPanel.add(rbScatterPlot, gbc_rbScatterPlot); + + plot = new Plot3DPanel("NORTH") { + private static final long serialVersionUID = 7914951068593204419L; + public void addPlotToolBar(String location) { + super.addPlotToolBar(location); + super.plotToolBar.remove(4); + super.plotToolBar.remove(5); + } + }; + plot.setAutoBounds(); + plot.setAutoscrolls(true); + plot.setEditable(false); + plot.setBorder(BorderFactory.createLineBorder(Color.BLACK)); + plot.setForeground(Color.BLACK); + plot.getAxis(0).setColor(Color.BLACK); + plot.getAxis(1).setColor(Color.BLACK); + plot.getAxis(2).setColor(Color.BLACK); + + GridBagConstraints gbl_chartPanel = new GridBagConstraints(); + gbl_chartPanel.anchor = GridBagConstraints.CENTER; + gbl_chartPanel.insets = new Insets(3, 3, 3, 3); + gbl_chartPanel.weightx = 1.0; + gbl_chartPanel.weighty = 1.0; + gbl_chartPanel.fill = GridBagConstraints.BOTH; + gbl_chartPanel.gridx = 0; + gbl_chartPanel.gridy = 1; + plotPanel.add(plot, gbl_chartPanel); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // CREATE USAGE TAB + ////////////////////////////////////////////////////////////////////////////////////// + + private void createUsageTab() { + JTextPane usageTextArea = new JTextPane(); + usageTextArea.setMargin(new Insets(10, 10, 10, 10)); + usageTextArea.setContentType("text/html"); + usageTextArea.setText(usage()); + usageTextArea.setEditable(false); + usageTextArea.setCaretPosition(0); + + JScrollPane textScrollPane = new JScrollPane(usageTextArea); + textScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + textScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + + add(textScrollPane, "
U
s
a
g
e
"); + } + + private String usage() { + ResourceBundle bundle; + bundle = ResourceBundle.getBundle("com.vgi.mafscaling.logstats"); + return bundle.getString("usage"); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // WORK FUNCTIONS + ////////////////////////////////////////////////////////////////////////////////////// + + private void setAxis() { + new LogStatsFixedAxis(xAxisArray, yAxisArray); + if (xAxisArray.size() > 0) + xAxisRoundTextBox.setValue(null); + if (yAxisArray.size() > 0) + yAxisRoundTextBox.setValue(null); + } + + private void getLogColumns() { + if (JFileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this)) + return; + xAxisColumn.removeAllItems(); + yAxisColumn.removeAllItems(); + dataColumn.removeAllItems(); + logFile = fileChooser.getSelectedFile(); + BufferedReader br = null; + try { + br = new BufferedReader(new FileReader(logFile.getAbsoluteFile())); + String line = br.readLine(); + if (line != null) { + String [] elements = line.split(",", -1); + for (String item : elements) { + xAxisColumn.addItem(item); + yAxisColumn.addItem(item); + dataColumn.addItem(item); + } + } + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error opening file", JOptionPane.ERROR_MESSAGE); + } + finally { + if (br != null) { + try { + br.close(); + } + catch (IOException e) { + logger.error(e); + } + } + } + } + + private Statistics getStatId() { + if (statistics.getSelectedItem() == null) + return Statistics.MEAN; + String name = (String)statistics.getSelectedItem(); + if ("Count".equals(name)) + return Statistics.COUNT; + if ("Minimum".equals(name)) + return Statistics.MINIMUM; + if ("Maximum".equals(name)) + return Statistics.MAXIMUM; + if ("Mean".equals(name)) + return Statistics.MEAN; + if ("Median".equals(name)) + return Statistics.MEDIAN; + if ("Mode".equals(name)) + return Statistics.MODE; + if ("Range".equals(name)) + return Statistics.RANGE; + if ("Variance".equals(name)) + return Statistics.VARIANCE; + if ("Std Deviation".equals(name)) + return Statistics.STDDEV; + return Statistics.MEAN; + } + + private DataFilter getType() { + if (filters.getSelectedItem() == null) + return DataFilter.NONE; + String name = (String)filters.getSelectedItem(); + if ("Less".equals(name)) + return DataFilter.LESS; + if ("Equal".equals(name)) + return DataFilter.EQUAL; + if ("Greater".equals(name)) + return DataFilter.GREATER; + return DataFilter.NONE; + } + + private void processLog() { + Utils.clearTable(dataTable); + if (xAxisColumn.getSelectedItem() == null || yAxisColumn.getSelectedItem() == null || dataColumn.getSelectedItem() == null) + return; + if (xAxisRoundTextBox.getValue() == null && xAxisArray.size() == 0) { + JOptionPane.showMessageDialog(null, "X-Axis scaling is not set. Please set 'Step' or X-Axis values.", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + if (yAxisRoundTextBox.getValue() == null && yAxisArray.size() == 0) { + JOptionPane.showMessageDialog(null, "Y-Axis scaling is not set. Please set 'Step' or Y-Axis values.", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + double xRound = Double.NaN; + if (xAxisRoundTextBox.getValue() != null) { + xRound = (((Number)xAxisRoundTextBox.getValue()).doubleValue()); + if (xRound < 0.01) { + JOptionPane.showMessageDialog(null, "Incorrect X-Axis scaling, minimum allowed is 0.01", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + } + double yRound = Double.NaN; + if (yAxisRoundTextBox.getValue() != null) { + yRound = (((Number)yAxisRoundTextBox.getValue()).doubleValue()); + if (yRound < 0.01) { + JOptionPane.showMessageDialog(null, "Incorrect Y-Axis scaling, minimum allowed is 0.01", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + } + setCursor(new Cursor(Cursor.WAIT_CURSOR)); + Statistics statid = getStatId(); + String xAxisColName = (String)xAxisColumn.getSelectedItem(); + String yAxisColName = (String)yAxisColumn.getSelectedItem(); + String dataColName = (String)dataColumn.getSelectedItem(); + + BufferedReader br = null; + try { + String [] elements; + br = new BufferedReader(new FileReader(logFile.getAbsoluteFile())); + String line = br.readLine(); + if (line != null) { + elements = line.split(",", -1); + ArrayList columns = new ArrayList(Arrays.asList(elements)); + int xColIdx = columns.indexOf(xAxisColName); + int yColIdx = columns.indexOf(yAxisColName); + int vColIdx = columns.indexOf(dataColName); + double x, y, val, roundedVal; + int i = 2; + // data struct where first hash set is X-Axis containing second hash set which is Y-Axis containing array of values + xData = new HashMap>>(); + HashMap> yData; + ArrayList data; + try { + line = br.readLine(); + boolean proceed = true; + while (line != null) { + elements = line.split(",", -1); + try { + proceed = true; + if (Double.isNaN(xRound)) + x = xAxisArray.get(Utils.closestValueIndex(Double.valueOf(elements[xColIdx]), xAxisArray)); + else + x = Utils.round(Double.valueOf(elements[xColIdx]), xRound); + if (Double.isNaN(yRound)) + y = yAxisArray.get(Utils.closestValueIndex(Double.valueOf(elements[yColIdx]), yAxisArray)); + else + y = Utils.round(Double.valueOf(elements[yColIdx]), yRound); + val = Double.valueOf(elements[vColIdx]); + if (dataFilterType != DataFilter.NONE && !Double.isNaN(dataFilter)) { + switch (dataFilterType) { + case LESS: + if (val > dataFilter) + proceed = false; + break; + case EQUAL: + roundedVal = val; + if (dataRounding > 0) + roundedVal = Math.round(val * dataRounding * 10.0) / (dataRounding * 10.0); + else + roundedVal = Math.round(val); + if (roundedVal != dataFilter) + proceed = false; + break; + case GREATER: + if (val < dataFilter) + proceed = false; + break; + default: + proceed = true; + } + } + if (proceed) { + yData = xData.get(x); + if (yData == null) { + yData = new HashMap>(); + xData.put(x, yData); + } + data = yData.get(y); + if (data == null) { + data = new ArrayList(); + yData.put(y, data); + } + data.add(val); + } + } + catch (NumberFormatException e) { + logger.error(e); + JOptionPane.showMessageDialog(null, "Error parsing number at line " + i + ": " + e, "Error processing file", JOptionPane.ERROR_MESSAGE); + return; + } + line = br.readLine(); + i += 1; + } + processData(statid); + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE); + } + } + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error opening file", JOptionPane.ERROR_MESSAGE); + } + finally { + setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + if (br != null) { + try { + br.close(); + } + catch (IOException e) { + logger.error(e); + } + } + } + } + + public void processData(Statistics id) { + HashMap> yData; + ArrayList data; + try { + TreeMap xAxisMap = new TreeMap(); + TreeMap yAxisMap = new TreeMap(); + for (Map.Entry>> xentry : xData.entrySet()) { + xAxisMap.put(xentry.getKey(), 0); + for (Map.Entry> yentry : xentry.getValue().entrySet()) + yAxisMap.put(yentry.getKey(), 0); + } + Utils.ensureColumnCount(xAxisMap.size() + 1, dataTable); + int i = 0; + for (Map.Entry entry : xAxisMap.entrySet()) { + entry.setValue(++i); + dataTable.setValueAt(entry.getKey(), 0, i); + } + Utils.ensureRowCount(yAxisMap.size() + 1, dataTable); + i = 0; + for (Map.Entry entry : yAxisMap.entrySet()) { + entry.setValue(++i); + dataTable.setValueAt(entry.getKey(), i, 0); + } + double x, y, val; + for (Map.Entry>> xentry : xData.entrySet()) { + x = xentry.getKey(); + yData = xentry.getValue(); + val = 0; + for (Map.Entry> yentry : yData.entrySet()) { + y = yentry.getKey(); + data = yentry.getValue(); + switch (id) { + case COUNT: + val = data.size(); + break; + case MINIMUM: + val = Collections.min(data); + break; + case MAXIMUM: + val = Collections.max(data); + break; + case MEAN: + val = Utils.mean(data); + break; + case MEDIAN: + val = Utils.median(data); + break; + case MODE: + val = Utils.mode(data); + break; + case RANGE: + val = Utils.range(data); + break; + case VARIANCE: + val = Utils.variance(data); + break; + case STDDEV: + val = Utils.standardDeviation(data); + break; + } + dataTable.setValueAt(val, yAxisMap.get(y), xAxisMap.get(x)); + } + } + if (xData.size() > 0) { + // remove extra rows + for (i = dataTable.getRowCount() - 1; i >= 0 && dataTable.getValueAt(i, 0).toString().equals(""); --i) + Utils.removeRow(i, dataTable); + // remove extra columns + for (i = dataTable.getColumnCount() - 1; i >= 0 && dataTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, dataTable); + Utils.colorTable(dataTable); + } + else { + Utils.clearTable(dataTable); + } + rbGridPlot.setSelected(true); + display3D(Plot3D.GRID); + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE); + } + } + + public double[][] doubleZArray(double[] x, double[] y) { + double[][] z = new double[y.length][x.length]; + for (int i = 0; i < x.length; ++i) { + for (int j = 0; j < y.length; ++j) { + if (!dataTable.getValueAt(j + 1, i + 1).toString().isEmpty()) + z[j][i] = Double.valueOf(dataTable.getValueAt(j + 1, i + 1).toString()); + } + } + return z; + } + + private void addGridPlot() { + if (xData == null || xData.size() == 0) + return; + TreeMap xAxisMap = new TreeMap(); + TreeMap yAxisMap = new TreeMap(); + for (Map.Entry>> xentry : xData.entrySet()) { + xAxisMap.put(xentry.getKey(), 0); + for (Map.Entry> yentry : xentry.getValue().entrySet()) + yAxisMap.put(yentry.getKey(), 0); + } + double[] x = new double[xAxisMap.size()]; + int i = 0; + for (Double key : xAxisMap.keySet()) + x[i++] = key; + double[] y = new double[yAxisMap.size()]; + i = 0; + for (Double key : yAxisMap.keySet()) + y[i++] = key; + double[][] z = doubleZArray(x, y); + plot.addGridPlot(dataColumn.getSelectedItem().toString() + " " + statistics.getSelectedItem().toString(), x, y, z); + } + + private void addBarLineScatterPlot(Plot3D type) { + if (xData == null || xData.size() == 0) + return; + ArrayList xAxisArray = new ArrayList(); + ArrayList yAxisArray = new ArrayList(); + ArrayList zAxisArray = new ArrayList(); + String val; + double X, Y; + for (int i = 1; i < dataTable.getColumnCount(); ++i) { + val = dataTable.getValueAt(0, i).toString(); + if (val.isEmpty()) + break; + X = Double.valueOf(val.toString()); + for (int j = 1; j < dataTable.getRowCount(); ++j) { + val = dataTable.getValueAt(j, 0).toString(); + if (val.isEmpty()) + break; + Y = Double.valueOf(val.toString()); + val = dataTable.getValueAt(j, i).toString(); + if (!val.isEmpty()) { + xAxisArray.add(X); + yAxisArray.add(Y); + zAxisArray.add(Double.valueOf(val)); + } + } + } + double[] x = new double[xAxisArray.size()]; + int i = 0; + for (Double v : xAxisArray) + x[i++] = v; + double[] y = new double[yAxisArray.size()]; + i = 0; + for (Double v : yAxisArray) + y[i++] = v; + double[] z = new double[zAxisArray.size()]; + i = 0; + for (Double v : zAxisArray) + z[i++] = v; + switch (type) { + case BAR: + plot.addBarPlot(dataColumn.getSelectedItem().toString() + " " + statistics.getSelectedItem().toString(), x, y, z); + break; + case LINE: + plot.addLinePlot(dataColumn.getSelectedItem().toString() + " " + statistics.getSelectedItem().toString(), x, y, z); + break; + case SCATTER: + plot.addScatterPlot(dataColumn.getSelectedItem().toString() + " " + statistics.getSelectedItem().toString(), x, y, z); + default: + break; + } + } + + private void display3D(Plot3D type) { + plot.removeAllPlots(); + switch (type) { + case GRID: + addGridPlot(); + break; + case BAR: + addBarLineScatterPlot(type); + break; + case LINE: + addBarLineScatterPlot(type); + break; + case SCATTER: + addBarLineScatterPlot(type); + break; + default: + return; + } + plot.setAxisLabel(0, xAxisColumn.getSelectedItem().toString()); + plot.setAxisLabel(1, yAxisColumn.getSelectedItem().toString()); + plot.setAxisLabel(2, dataColumn.getSelectedItem().toString()); + } + + private void getFilter() { + dataFilterType = getType(); + if (dataFilterType != DataFilter.NONE) { + String temp = ""; + DecimalFormat dblFmt = new DecimalFormat("#.######"); + JTextField filterTextField = new JTextField(""); + if (!Double.isNaN(dataFilter)) + filterTextField.setText(dblFmt.format(dataFilter)); + JComponent[] inputs = new JComponent[] { + new JLabel("Set data filter value (Double)"), + filterTextField + }; + boolean done = false; + do { + if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Data Filter", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) + return; + temp = filterTextField.getText().trim(); + if (Pattern.matches(Utils.fpRegex, temp)) { + dataFilter = Double.valueOf(temp); + done = true; + dataRounding = 0; + if (temp.indexOf('.') != -1) { + temp = temp.substring(temp.indexOf('.')); + dataRounding = temp.length() - 1; + } + } + else { + if (!Double.isNaN(dataFilter)) + dblFmt.format(dataFilter); + else + filterTextField.setText(""); + } + } + while (!done); + } + else + dataFilter = Double.NaN; + } + + @Override + public void actionPerformed(ActionEvent e) { + if ("selectlog".equals(e.getActionCommand())) + getLogColumns(); + else if ("go".equals(e.getActionCommand())) + processLog(); + else if ("setaxis".equals(e.getActionCommand())) + setAxis(); + else if ("grid".equals(e.getActionCommand())) { + if (xData != null) + display3D(Plot3D.GRID); + } + else if ("bar".equals(e.getActionCommand())) { + if (xData != null) + display3D(Plot3D.BAR); + } + else if ("line".equals(e.getActionCommand())) { + if (xData != null) + display3D(Plot3D.LINE); + } + else if ("scatter".equals(e.getActionCommand())) { + if (xData != null) + display3D(Plot3D.SCATTER); + } + else if ("filter".equals(e.getActionCommand())) { + getFilter(); + } + } +} diff --git a/src/com/vgi/mafscaling/LogStatsFixedAxis.java b/src/com/vgi/mafscaling/LogStatsFixedAxis.java new file mode 100644 index 0000000..a47d9ed --- /dev/null +++ b/src/com/vgi/mafscaling/LogStatsFixedAxis.java @@ -0,0 +1,708 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.text.DecimalFormat; +import java.text.Format; +import java.util.ArrayList; +import java.util.Collections; +import java.util.regex.Pattern; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.ScrollPaneConstants; +import javax.swing.border.LineBorder; +import javax.swing.border.TitledBorder; +import javax.swing.table.DefaultTableModel; + +import org.apache.log4j.Logger; + +public class LogStatsFixedAxis implements ActionListener { + private static final Logger logger = Logger.getLogger(LogStatsFixedAxis.class); + private enum Axis {XAXIS, YAXIS}; + private final static int ColumnWidth = 40; + private final static int AxisColumnCount = 15; + private ExcelAdapter excelAdapter = new ExcelAdapter(); + private JTable xAxisTable = null; + private JTable yAxisTable = null; + private JTable templateTable = null; + private JComboBox xAxisList = null; + private JComboBox yAxisList = null; + private ArrayList xAxisArray; + private ArrayList yAxisArray; + + public LogStatsFixedAxis(ArrayList xAxis, ArrayList yAxis) { + xAxisArray = xAxis; + yAxisArray = yAxis; + initialize(); + } + + private void initialize() { + JPanel dataPanel = new JPanel(); + GridBagLayout gbl_dataPanel = new GridBagLayout(); + gbl_dataPanel.columnWidths = new int[]{0}; + gbl_dataPanel.rowHeights = new int[] {0, 0, 0, 0, 0, 0}; + gbl_dataPanel.columnWeights = new double[]{0.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 1.0}; + dataPanel.setLayout(gbl_dataPanel); + dataPanel.setPreferredSize(new Dimension(620, 500)); + + JLabel note1Label = new JLabel("You can manually enter axis values or paste them into tables below"); + note1Label.setForeground(Color.BLUE); + GridBagConstraints gbc_note1Label = new GridBagConstraints(); + gbc_note1Label.anchor = GridBagConstraints.WEST; + gbc_note1Label.fill = GridBagConstraints.HORIZONTAL; + gbc_note1Label.insets = new Insets(3, 3, 3, 3); + gbc_note1Label.gridx = 0; + gbc_note1Label.gridy = 0; + dataPanel.add(note1Label, gbc_note1Label); + + createAxisPanel(dataPanel); + + JLabel note2Label = new JLabel("You can select existing axis if you have saved them before"); + note2Label.setForeground(Color.BLUE); + GridBagConstraints gbc_note2Label = new GridBagConstraints(); + gbc_note2Label.anchor = GridBagConstraints.WEST; + gbc_note2Label.fill = GridBagConstraints.HORIZONTAL; + gbc_note2Label.insets = new Insets(3, 3, 3, 3); + gbc_note2Label.gridx = 0; + gbc_note2Label.gridy = 2; + dataPanel.add(note2Label, gbc_note2Label); + + createControlPanel(dataPanel); + + JLabel note3Label = new JLabel("You can paste a table below and first row and first column will be used as axis"); + note3Label.setForeground(Color.BLUE); + GridBagConstraints gbc_note3Label = new GridBagConstraints(); + gbc_note3Label.anchor = GridBagConstraints.WEST; + gbc_note3Label.fill = GridBagConstraints.HORIZONTAL; + gbc_note3Label.insets = new Insets(3, 3, 3, 3); + gbc_note3Label.gridx = 0; + gbc_note3Label.gridy = 4; + dataPanel.add(note3Label, gbc_note3Label); + + createDataTablePanel(dataPanel); + + setAxisTables(); + + JComponent[] inputs = new JComponent[] { dataPanel }; + do { + if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Fixed size axis", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) + return; + } + while (!validateAxisData()); + } + + private void createAxisPanel(JPanel dataPanel) { + JPanel axisPanel = new JPanel(); + GridBagConstraints gbc_axisPanel = new GridBagConstraints(); + gbc_axisPanel.insets = new Insets(3, 3, 3, 3); + gbc_axisPanel.anchor = GridBagConstraints.NORTHWEST; + gbc_axisPanel.fill = GridBagConstraints.HORIZONTAL; + gbc_axisPanel.weightx = 1.0; + gbc_axisPanel.gridx = 0; + gbc_axisPanel.gridy = 1; + dataPanel.add(axisPanel, gbc_axisPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0, 0, 0}; + gbl_cntlPanel.rowHeights = new int[]{0, 0, 0}; + gbl_cntlPanel.columnWeights = new double[]{0.0, 0.0, 0.0}; + gbl_cntlPanel.rowWeights = new double[]{0.0, 0.0, 1.0}; + axisPanel.setLayout(gbl_cntlPanel); + + xAxisTable = new JTable(); + xAxisTable.setColumnSelectionAllowed(true); + xAxisTable.setCellSelectionEnabled(true); + xAxisTable.setBorder(new LineBorder(Color.GRAY)); + xAxisTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + xAxisTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + xAxisTable.setModel(new DefaultTableModel(1, AxisColumnCount)); + xAxisTable.setTableHeader(null); + Utils.initializeTable(xAxisTable, ColumnWidth); + excelAdapter.addTable(xAxisTable, false, false, false, false, true, false, true, false, true); + + JScrollPane xAxisScrollPane = new JScrollPane(xAxisTable); + xAxisScrollPane.setViewportBorder(new TitledBorder(null, "X-Axis", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + xAxisScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + xAxisScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + GridBagConstraints gbc_xAxisScrollPane = new GridBagConstraints(); + gbc_xAxisScrollPane.insets = new Insets(0, 0, 0, 0); + gbc_xAxisScrollPane.anchor = GridBagConstraints.NORTH; + gbc_xAxisScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbc_xAxisScrollPane.ipady = 17; + gbc_xAxisScrollPane.weightx = 1.0; + gbc_xAxisScrollPane.gridx = 0; + gbc_xAxisScrollPane.gridy = 0; + axisPanel.add(xAxisScrollPane, gbc_xAxisScrollPane); + + JButton btnClearXAxis = new JButton("Clear"); + GridBagConstraints gbc_btnClearXAxis = new GridBagConstraints(); + gbc_btnClearXAxis.anchor = GridBagConstraints.EAST; + gbc_btnClearXAxis.insets = new Insets(1, 5, 1, 1); + gbc_btnClearXAxis.gridx = 1; + gbc_btnClearXAxis.gridy = 0; + btnClearXAxis.setActionCommand("clearxaxis"); + btnClearXAxis.addActionListener(this); + axisPanel.add(btnClearXAxis, gbc_btnClearXAxis); + + JButton btnSaveXAxis = new JButton("Save"); + GridBagConstraints gbc_btnSaveXAxis = new GridBagConstraints(); + gbc_btnSaveXAxis.anchor = GridBagConstraints.EAST; + gbc_btnSaveXAxis.insets = new Insets(1, 5, 1, 1); + gbc_btnSaveXAxis.gridx = 2; + gbc_btnSaveXAxis.gridy = 0; + btnSaveXAxis.setActionCommand("savexaxis"); + btnSaveXAxis.addActionListener(this); + axisPanel.add(btnSaveXAxis, gbc_btnSaveXAxis); + + yAxisTable = new JTable(); + yAxisTable.setColumnSelectionAllowed(true); + yAxisTable.setCellSelectionEnabled(true); + yAxisTable.setBorder(new LineBorder(Color.GRAY)); + yAxisTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + yAxisTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + yAxisTable.setModel(new DefaultTableModel(1, AxisColumnCount)); + yAxisTable.setTableHeader(null); + Utils.initializeTable(yAxisTable, ColumnWidth); + excelAdapter.addTable(yAxisTable, false, false, false, false, true, false, true, false, true); + + JScrollPane yAxisScrollPane = new JScrollPane(yAxisTable); + yAxisScrollPane.setViewportBorder(new TitledBorder(null, "Y-Axis", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + yAxisScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + yAxisScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + GridBagConstraints gbc_yAxisScrollPane = new GridBagConstraints(); + gbc_yAxisScrollPane.anchor = GridBagConstraints.PAGE_START; + gbc_yAxisScrollPane.weightx = 1.0; + gbc_yAxisScrollPane.insets = new Insets(0, 0, 0, 0); + gbc_yAxisScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbc_yAxisScrollPane.ipady = 17; + gbc_yAxisScrollPane.gridx = 0; + gbc_yAxisScrollPane.gridy = 1; + axisPanel.add(yAxisScrollPane, gbc_yAxisScrollPane); + + JButton btnClearYAxis = new JButton("Clear"); + GridBagConstraints gbc_btnClearYAxis = new GridBagConstraints(); + gbc_btnClearYAxis.anchor = GridBagConstraints.EAST; + gbc_btnClearYAxis.insets = new Insets(1, 5, 1, 1); + gbc_btnClearYAxis.gridx = 1; + gbc_btnClearYAxis.gridy = 1; + btnClearYAxis.setActionCommand("clearyaxis"); + btnClearYAxis.addActionListener(this); + axisPanel.add(btnClearYAxis, gbc_btnClearYAxis); + + JButton btnSaveYAxis = new JButton("Save"); + GridBagConstraints gbc_btnSaveYAxis = new GridBagConstraints(); + gbc_btnSaveYAxis.anchor = GridBagConstraints.EAST; + gbc_btnSaveYAxis.insets = new Insets(1, 5, 1, 1); + gbc_btnSaveYAxis.gridx = 2; + gbc_btnSaveYAxis.gridy = 1; + btnSaveYAxis.setActionCommand("saveyaxis"); + btnSaveYAxis.addActionListener(this); + axisPanel.add(btnSaveYAxis, gbc_btnSaveYAxis); + } + + private void createControlPanel(JPanel dataPanel) { + String templNames; + JPanel cntlPanel = new JPanel(); + GridBagConstraints gbc_ctrlPanel = new GridBagConstraints(); + gbc_ctrlPanel.insets = new Insets(3, 3, 3, 3); + gbc_ctrlPanel.anchor = GridBagConstraints.WEST; + gbc_ctrlPanel.fill = GridBagConstraints.HORIZONTAL; + gbc_ctrlPanel.gridx = 0; + gbc_ctrlPanel.gridy = 3; + dataPanel.add(cntlPanel, gbc_ctrlPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0, 0, 0, 0, 0, 0}; + gbl_cntlPanel.rowHeights = new int[]{0}; + gbl_cntlPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 1.0, 0.0, 0.0}; + gbl_cntlPanel.rowWeights = new double[]{0.0}; + cntlPanel.setLayout(gbl_cntlPanel); + + JLabel xAxisLabel = new JLabel("Saved X-Axis"); + GridBagConstraints gbc_xAxisLabel = new GridBagConstraints(); + gbc_xAxisLabel.anchor = GridBagConstraints.WEST; + gbc_xAxisLabel.insets = new Insets(3, 0, 3, 0); + gbc_xAxisLabel.gridx = 0; + gbc_xAxisLabel.gridy = 0; + cntlPanel.add(xAxisLabel, gbc_xAxisLabel); + + templNames = Config.getXAxisTemplates(); + if (templNames.isEmpty()) + templNames = ","; + xAxisList = new JComboBox(templNames.split(",")); + GridBagConstraints gbc_xAxisList = new GridBagConstraints(); + gbc_xAxisList.anchor = GridBagConstraints.WEST; + gbc_xAxisList.insets = new Insets(1, 5, 1, 1); + gbc_xAxisList.gridx = 1; + gbc_xAxisList.gridy = 0; + xAxisList.setActionCommand("xaxis"); + xAxisList.addActionListener(this); + xAxisList.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXX"); + cntlPanel.add(xAxisList, gbc_xAxisList); + + JButton btnRemXAxisTempl = new JButton("Remove"); + GridBagConstraints gbc_btnRemXAxisTempl = new GridBagConstraints(); + gbc_btnRemXAxisTempl.anchor = GridBagConstraints.EAST; + gbc_btnRemXAxisTempl.insets = new Insets(1, 5, 1, 1); + gbc_btnRemXAxisTempl.gridx = 2; + gbc_btnRemXAxisTempl.gridy = 0; + btnRemXAxisTempl.setActionCommand("remxtempl"); + btnRemXAxisTempl.addActionListener(this); + cntlPanel.add(btnRemXAxisTempl, gbc_btnRemXAxisTempl); + + JLabel yAxisLabel = new JLabel("Saved Y-Axis"); + GridBagConstraints gbc_yAxisLabel = new GridBagConstraints(); + gbc_yAxisLabel.anchor = GridBagConstraints.EAST; + gbc_yAxisLabel.insets = new Insets(3, 3, 3, 0); + gbc_yAxisLabel.gridx = 3; + gbc_yAxisLabel.gridy = 0; + cntlPanel.add(yAxisLabel, gbc_yAxisLabel); + + templNames = Config.getYAxisTemplates(); + if (templNames.isEmpty()) + templNames = ","; + yAxisList = new JComboBox(templNames.split(",")); + GridBagConstraints gbc_yAxisList = new GridBagConstraints(); + gbc_yAxisList.anchor = GridBagConstraints.WEST; + gbc_yAxisList.insets = new Insets(1, 5, 1, 1); + gbc_yAxisList.gridx = 4; + gbc_yAxisList.gridy = 0; + yAxisList.setActionCommand("yaxis"); + yAxisList.addActionListener(this); + yAxisList.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXX"); + cntlPanel.add(yAxisList, gbc_yAxisList); + + JButton btnRemYAxisTempl = new JButton("Remove"); + GridBagConstraints gbc_btnRemYAxisTempl = new GridBagConstraints(); + gbc_btnRemYAxisTempl.anchor = GridBagConstraints.EAST; + gbc_btnRemYAxisTempl.insets = new Insets(1, 5, 1, 1); + gbc_btnRemYAxisTempl.gridx = 5; + gbc_btnRemYAxisTempl.gridy = 0; + btnRemYAxisTempl.setActionCommand("remytempl"); + btnRemYAxisTempl.addActionListener(this); + cntlPanel.add(btnRemYAxisTempl, gbc_btnRemYAxisTempl); + } + + public void createDataTablePanel(JPanel dataPanel) { + JPanel tblPanel = new JPanel(); + GridBagConstraints gbc_tblPanel = new GridBagConstraints(); + gbc_tblPanel.insets = new Insets(3, 3, 3, 3); + gbc_tblPanel.anchor = GridBagConstraints.NORTHWEST; + gbc_tblPanel.fill = GridBagConstraints.BOTH; + gbc_tblPanel.gridx = 0; + gbc_tblPanel.gridy = 5; + dataPanel.add(tblPanel, gbc_tblPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0,0}; + gbl_cntlPanel.rowHeights = new int[]{0, 0}; + gbl_cntlPanel.columnWeights = new double[]{1.0,0.0}; + gbl_cntlPanel.rowWeights = new double[]{0.0, 1.0}; + tblPanel.setLayout(gbl_cntlPanel); + + JButton btnClearData = new JButton("Clear"); + GridBagConstraints gbc_btnClearData = new GridBagConstraints(); + gbc_btnClearData.anchor = GridBagConstraints.EAST; + gbc_btnClearData.insets = new Insets(1, 5, 1, 1); + gbc_btnClearData.gridx = 0; + gbc_btnClearData.gridy = 0; + btnClearData.setActionCommand("cleartempl"); + btnClearData.addActionListener(this); + tblPanel.add(btnClearData, gbc_btnClearData); + + JButton btnValidateData = new JButton("Validate"); + GridBagConstraints gbc_btnValidateData = new GridBagConstraints(); + gbc_btnValidateData.anchor = GridBagConstraints.EAST; + gbc_btnValidateData.insets = new Insets(1, 5, 1, 1); + gbc_btnValidateData.gridx = 1; + gbc_btnValidateData.gridy = 0; + btnValidateData.setActionCommand("validate"); + btnValidateData.addActionListener(this); + tblPanel.add(btnValidateData, gbc_btnValidateData); + + templateTable = new JTable(); + templateTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + templateTable.setColumnSelectionAllowed(true); + templateTable.setCellSelectionEnabled(true); + templateTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + templateTable.setTableHeader(null); + templateTable.setModel(new DefaultTableModel(20, 15)); + Utils.initializeTable(templateTable, ColumnWidth); + Format[][] formatMatrix = { { new DecimalFormat("#"), new DecimalFormat("0.00") } }; + NumberFormatRenderer renderer = (NumberFormatRenderer)templateTable.getDefaultRenderer(Object.class); + renderer.setFormats(formatMatrix); + excelAdapter.addTable(templateTable, true, true); + + GridBagConstraints gbc_templTable = new GridBagConstraints(); + gbc_templTable.insets = new Insets(5, 0, 0, 0); + gbc_templTable.fill = GridBagConstraints.BOTH; + gbc_templTable.weightx = 1.0; + gbc_templTable.weighty = 1.0; + gbc_templTable.gridx = 0; + gbc_templTable.gridy = 1; + gbc_templTable.gridwidth = 2; + + JScrollPane scrollPane = new JScrollPane(templateTable); + tblPanel.add(scrollPane, gbc_templTable); + } + + /** + * Methods sets the axis table from axis array if they have been set before + */ + private void setAxisTables() { + try { + if (xAxisArray.size() > 0) { + Utils.ensureColumnCount(xAxisArray.size(), xAxisTable); + Utils.clearTable(xAxisTable); + for (int i = 0; i < xAxisArray.size(); ++i) + xAxisTable.setValueAt(xAxisArray.get(i), 0, i); + for (int i = xAxisTable.getColumnCount() - 1; i >= 0 && xAxisTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, xAxisTable); + } + if (yAxisArray.size() > 0) { + Utils.ensureColumnCount(yAxisArray.size(), yAxisTable); + Utils.clearTable(yAxisTable); + for (int i = 0; i < yAxisArray.size(); ++i) + yAxisTable.setValueAt(yAxisArray.get(i), 0, i); + for (int i = yAxisTable.getColumnCount() - 1; i >= 0 && yAxisTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, yAxisTable); + } + } + catch (Exception e) { + logger.error(e); + } + } + + /** + * Method validates that all data is populated and valid. + * @param fuelingTable, table to be checked + * @return + */ + private boolean validateTemplateData() { + try { + // check if table is empty + if (Utils.isTableEmpty(templateTable)) + return true; + // check paste format + if (!templateTable.getValueAt(0, 0).toString().equalsIgnoreCase("[table3d]") && + !((templateTable.getValueAt(0, 0).toString().equals("")) && + Pattern.matches(Utils.fpRegex, templateTable.getValueAt(0, 1).toString()) && + Pattern.matches(Utils.fpRegex, templateTable.getValueAt(1, 0).toString()))) { + JOptionPane.showMessageDialog(null, "Invalid data in table.\n\nPlease post data into first cell", "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + if (templateTable.getValueAt(0, 0).toString().equalsIgnoreCase("[table3d]")) { + // realign if paste is from RomRaider + if (templateTable.getValueAt(0, 1).toString().equals("")) { + Utils.removeRow(0, templateTable); + for (int i = templateTable.getColumnCount() - 2; i >= 0; --i) + templateTable.setValueAt(templateTable.getValueAt(0, i), 0, i + 1); + templateTable.setValueAt("", 0, 0); + } + // paste is probably from excel, just blank out the first cell + else + templateTable.setValueAt("", 0, 0); + } + // remove extra rows + for (int i = templateTable.getRowCount() - 1; i >= 0 && templateTable.getValueAt(i, 0).toString().equals(""); --i) + Utils.removeRow(i, templateTable); + // remove extra columns + for (int i = templateTable.getColumnCount() - 1; i >= 0 && templateTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, templateTable); + // validate row/column headers cells are numeric + for (int i = 1; i < templateTable.getRowCount(); ++i) { + if (!Pattern.matches(Utils.fpRegex, templateTable.getValueAt(i, 0).toString())) { + JOptionPane.showMessageDialog(null, "Invalid value at row " + (i + 1) + " column 1", "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + } + for (int i = 1; i < templateTable.getColumnCount(); ++i) { + if (!Pattern.matches(Utils.fpRegex, templateTable.getValueAt(0, i).toString())) { + JOptionPane.showMessageDialog(null, "Invalid value at row 1 column " + (i + 1), "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + } + Utils.colorTableHeaders(templateTable); + // copy axis + Utils.clearTable(xAxisTable); + Utils.clearTable(yAxisTable); + Utils.ensureColumnCount(templateTable.getColumnCount() - 1, xAxisTable); + Utils.ensureColumnCount(templateTable.getRowCount() - 1, yAxisTable); + for (int i = 1; i < templateTable.getColumnCount(); ++i) + xAxisTable.setValueAt(templateTable.getValueAt(0, i), 0, i - 1); + for (int i = 1; i < templateTable.getRowCount(); ++i) + yAxisTable.setValueAt(templateTable.getValueAt(i, 0), 0, i - 1); + // remove extra columns + for (int i = xAxisTable.getColumnCount() - 1; i >= 0 && xAxisTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, xAxisTable); + for (int i = yAxisTable.getColumnCount() - 1; i >= 0 && yAxisTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, yAxisTable); + return true; + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error validation table data", JOptionPane.ERROR_MESSAGE); + } + return false; + } + + /** + * Methods saves axis table into config and adds a menu item in the template dropdown + * @param type + */ + private void save(Axis type) { + try { + JTable axisTable = xAxisTable; + JComboBox axisList = xAxisList; + if (type == Axis.YAXIS) { + axisTable = yAxisTable; + axisList = yAxisList; + } + if (Utils.isTableEmpty(axisTable)) { + JOptionPane.showMessageDialog(null, "Table is empty or not properly populated", "Error", JOptionPane.ERROR_MESSAGE); + return; + } + String axisName = ""; + JTextField nameTextField = new JTextField(); + JComponent[] inputs = new JComponent[] { new JLabel("Set unique name"), nameTextField }; + do { + if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Axis template name", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) + return; + axisName = nameTextField.getText().trim(); + boolean found = false; + for (int i = 0; i < xAxisList.getItemCount() && !found; ++i) { + if (xAxisList.getItemAt(i).toString().equals(axisName)) + found = true; + } + if (found) { + JOptionPane.showMessageDialog(null, "This name is being used for X-Axis template", "Error", JOptionPane.ERROR_MESSAGE); + axisName = ""; + } + else { + for (int i = 0; i < yAxisList.getItemCount() && !found; ++i) { + if (yAxisList.getItemAt(i).toString().equals(axisName)) + found = true; + } + if (found) { + JOptionPane.showMessageDialog(null, "This name is being used for Y-Axis template", "Error", JOptionPane.ERROR_MESSAGE); + axisName = ""; + } + } + } + while (axisName.isEmpty()); + + String axisValues = ""; + for (int i = 0; i < axisTable.getColumnCount(); ++i) { + if (!Pattern.matches(Utils.fpRegex, axisTable.getValueAt(0, i).toString())) { + JOptionPane.showMessageDialog(null, "Invalid data in table, column " + (i + 1), "Error", JOptionPane.ERROR_MESSAGE); + return; + } + if (i > 0) + axisValues += ","; + axisValues += axisTable.getValueAt(0, i).toString(); + } + if (type == Axis.XAXIS) { + String s = Config.getXAxisTemplates(); + if (s.endsWith(",")) + Config.setXAxisTemplates(s + axisName); + else + Config.setXAxisTemplates(s + "," + axisName); + } + else { + String s = Config.getYAxisTemplates(); + if (s.endsWith(",")) + Config.setYAxisTemplates(s + axisName); + else + Config.setYAxisTemplates(s + "," + axisName); + } + Config.setProperty(axisName, axisValues); + if (axisList.getItemCount() == 0) + axisList.addItem(""); + axisList.addItem(axisName); + axisList.setSelectedItem(axisName); + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error saving axis", JOptionPane.ERROR_MESSAGE); + } + } + + /** + * Method removes current axis template from templates dropdown and config + * @param type + */ + private void remove(Axis type) { + try { + String newNames = ""; + String[] axisNames = Config.getXAxisTemplates().split(","); + JComboBox axisList = xAxisList; + if (type == Axis.YAXIS) { + axisList = yAxisList; + axisNames = Config.getYAxisTemplates().split(","); + } + if (axisList.getSelectedItem() == null) + return; + String axisName = axisList.getSelectedItem().toString(); + if (axisName.isEmpty()) + return; + if (axisList.getItemCount() == 0) + axisList.addItem(""); + axisList.setSelectedItem(""); + axisList.removeItem(axisName); + Config.removeProperty(axisName); + for (String s : axisNames) { + if (s.isEmpty() || s.equals(axisName)) + continue; + newNames += ("," + s); + } + if (newNames.isEmpty()) + newNames = ","; + if (type == Axis.XAXIS) + Config.setXAxisTemplates(newNames); + else + Config.setYAxisTemplates(newNames); + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error removing axis template", JOptionPane.ERROR_MESSAGE); + } + } + + /** + * Method loads from config selected axis template into axis table + * @param type + */ + private void load(Axis type) { + try { + JTable axisTable = xAxisTable; + JComboBox axisList = xAxisList; + if (type == Axis.YAXIS) { + axisTable = yAxisTable; + axisList = yAxisList; + } + if (axisList.getSelectedItem() == null) + return; + String axisName = axisList.getSelectedItem().toString(); + if (axisName.isEmpty()) + return; + String[] values = Config.getProperty(axisName).split(","); + Utils.ensureColumnCount(values.length, axisTable); + Utils.clearTable(axisTable); + for (int i = 0; i < values.length; ++i) + axisTable.setValueAt(values[i], 0, i); + for (int i = axisTable.getColumnCount() - 1; i >= 0 && axisTable.getValueAt(0, i).toString().equals(""); --i) + Utils.removeColumn(i, axisTable); + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error load axis template", JOptionPane.ERROR_MESSAGE); + } + } + + /** + * Methods validates axis table and makes sure at least one axes is specified + * @return + */ + private boolean validateAxisData() { + try { + if (Utils.isTableEmpty(xAxisTable) && Utils.isTableEmpty(yAxisTable)) { + JOptionPane.showMessageDialog(null, "Both axis tables are either empty or not properly populated", "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + ArrayList tempArray = new ArrayList(); + if (!Utils.isTableEmpty(xAxisTable)) { + for (int i = 0; i < xAxisTable.getColumnCount(); ++i) { + if (!Pattern.matches(Utils.fpRegex, xAxisTable.getValueAt(0, i).toString())) { + JOptionPane.showMessageDialog(null, "Invalid data in X-Axis table, column " + (i + 1), "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + tempArray.add(Double.valueOf(xAxisTable.getValueAt(0, i).toString())); + } + xAxisArray.clear(); + for (Double d : tempArray) + xAxisArray.add(d); + Collections.sort(xAxisArray); + } + tempArray.clear(); + if (!Utils.isTableEmpty(yAxisTable)) { + for (int i = 0; i < yAxisTable.getColumnCount(); ++i) { + if (!Pattern.matches(Utils.fpRegex, yAxisTable.getValueAt(0, i).toString())) { + JOptionPane.showMessageDialog(null, "Invalid data in Y-Axis table, column " + (i + 1), "Error", JOptionPane.ERROR_MESSAGE); + return false; + } + tempArray.add(Double.valueOf(yAxisTable.getValueAt(0, i).toString())); + } + yAxisArray.clear(); + for (Double d : tempArray) + yAxisArray.add(d); + Collections.sort(yAxisArray); + } + return true; + } + catch (Exception e) { + logger.error(e); + JOptionPane.showMessageDialog(null, e, "Error setting axis", JOptionPane.ERROR_MESSAGE); + } + return false; + } + + @Override + public void actionPerformed(ActionEvent e) { + if ("clearxaxis".equals(e.getActionCommand())) { + Utils.clearTable(xAxisTable); + xAxisList.setSelectedIndex(-1); + } + else if ("clearyaxis".equals(e.getActionCommand())) { + Utils.clearTable(yAxisTable); + yAxisList.setSelectedIndex(-1); + } + else if ("cleartempl".equals(e.getActionCommand())) + Utils.clearTable(templateTable); + else if ("validate".equals(e.getActionCommand())) + validateTemplateData(); + else if ("savexaxis".equals(e.getActionCommand())) + save(Axis.XAXIS); + else if ("saveyaxis".equals(e.getActionCommand())) + save(Axis.YAXIS); + else if ("remxtempl".equals(e.getActionCommand())) + remove(Axis.XAXIS); + else if ("remytempl".equals(e.getActionCommand())) + remove(Axis.YAXIS); + else if ("xaxis".equals(e.getActionCommand())) + load(Axis.XAXIS); + else if ("yaxis".equals(e.getActionCommand())) + load(Axis.YAXIS); + } +} diff --git a/src/com/vgi/mafscaling/MafChartPanel.java b/src/com/vgi/mafscaling/MafChartPanel.java index 36fa542..97a50a7 100644 --- a/src/com/vgi/mafscaling/MafChartPanel.java +++ b/src/com/vgi/mafscaling/MafChartPanel.java @@ -1,3 +1,21 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; import java.awt.Cursor; @@ -9,6 +27,7 @@ import java.awt.event.MouseWheelListener; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.util.HashSet; import org.apache.log4j.Logger; import org.jfree.chart.ChartPanel; @@ -21,14 +40,16 @@ public class MafChartPanel implements MouseListener, MouseMotionListener, MouseWheelListener { private static final Logger logger = Logger.getLogger(MafChartPanel.class); - ChartPanel chartPanel = null; - IMafChartHolder chartHolder = null; + private ChartPanel chartPanel = null; + private IMafChartHolder chartHolder = null; private XYItemEntity xyItemEntity = null; + private HashSet pointDraggableSet = null; private boolean AllowPointMove = true; private boolean IsMovable = false; private double initialMovePointY = 0; public MafChartPanel(JFreeChart chart, IMafChartHolder holder) { + pointDraggableSet = new HashSet(); chartPanel = new ChartPanel(chart, true, true, true, true, true); chartHolder = holder; chartPanel.addMouseMotionListener(this); @@ -38,6 +59,10 @@ public MafChartPanel(JFreeChart chart, IMafChartHolder holder) { chartPanel.setMouseZoomable(false); } + public void enablePointsDrag(int seriesIndex) { + pointDraggableSet.add(seriesIndex); + } + public ChartPanel getChartPanel() { return chartPanel; } @@ -47,7 +72,7 @@ public void movePoint(MouseEvent event) { if (IsMovable) { int itemIndex = xyItemEntity.getItem(); int seriesIndex = xyItemEntity.getSeriesIndex(); - if (seriesIndex != 0) + if (!pointDraggableSet.contains(seriesIndex)) return; XYSeries series = ((XYSeriesCollection)xyItemEntity.getDataset()).getSeries(seriesIndex); XYPlot plot = chartPanel.getChart().getXYPlot(); @@ -59,7 +84,7 @@ public void movePoint(MouseEvent event) { series.getY(itemIndex).doubleValue() + difference < 0.0) initialMovePointY = finalMovePointY; series.updateByIndex(itemIndex, series.getY(itemIndex).doubleValue() + difference); - chartHolder.onMovePoint(itemIndex, series.getY(itemIndex).doubleValue()); + chartHolder.onMovePoint(itemIndex, series.getX(itemIndex).doubleValue(), series.getY(itemIndex).doubleValue()); chartPanel.getChart().fireChartChanged(); chartPanel.updateUI(); initialMovePointY = finalMovePointY; diff --git a/src/com/vgi/mafscaling/MafCompare.java b/src/com/vgi/mafscaling/MafCompare.java new file mode 100644 index 0000000..56890ee --- /dev/null +++ b/src/com/vgi/mafscaling/MafCompare.java @@ -0,0 +1,384 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.regex.Pattern; +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.ScrollPaneConstants; +import javax.swing.border.LineBorder; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; +import javax.swing.table.DefaultTableModel; +import org.apache.log4j.Logger; + +public class MafCompare extends JFrame { + private static final long serialVersionUID = 3380903505904186441L; + private static final Logger logger = Logger.getLogger(MafCompare.class); + private static final String Title = "MAF Compare / Modify"; + private static final int WindowHeight = 145; + private static final int RowHeight = 17; + private static final int ColumnWidth = 50; + private static final int MafTableColumnCount = 50; + private ExcelAdapter excelAdapter = new ExcelAdapter(); + private ExcelAdapter compExcelAdapter = null; + private TableCellListener compMafCellListener = null; + private JTable origMafTable = null; + private JTable newMafTable = null; + private JTable compMafTable = null; + + public MafCompare() { + compExcelAdapter = new ExcelAdapter() { + //@override + protected void onPaste(JTable table, boolean extendRows, boolean extendCols) { + super.onPaste(table, extendRows, extendCols); + int colCount = compMafTable.getColumnCount(); + Utils.ensureColumnCount(colCount, origMafTable); + Utils.ensureColumnCount(colCount, newMafTable); + ArrayList values = new ArrayList(); + int i; + for (i = (table.getSelectedColumns())[0]; i < colCount; ++i) + values.add(compMafTable.getValueAt(0, i)); + double corr; + int j = 0; + for (i = (table.getSelectedColumns())[0]; i < colCount; ++i, ++j) { + if (Pattern.matches(Utils.fpRegex, values.get(j).toString()) && + Pattern.matches(Utils.fpRegex, origMafTable.getValueAt(1, i).toString())) { + corr = Double.valueOf(values.get(j).toString()) / 100.0 + 1.0; + newMafTable.setValueAt(Double.valueOf(origMafTable.getValueAt(1, i).toString()) * corr, 1, i); + } + else + break; + } + } + }; + initialize(); + } + + /** + * Initialize the contents of the frame. + */ + private void initialize() { + try { + ImageIcon tableImage = new ImageIcon(getClass().getResource("/table.jpg")); + setTitle(Title); + setIconImage(tableImage.getImage()); + setBounds(100, 100, 621, 372); + setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + setSize(Config.getCompWindowSize()); + setLocation(Config.getCompWindowLocation()); + setMaximumSize(new Dimension(1600, WindowHeight)); + setMinimumSize(new Dimension(300, WindowHeight)); + setLocationRelativeTo(null); + setVisible(false); + addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + Utils.clearTable(origMafTable); + Utils.clearTable(newMafTable); + Utils.clearTable(compMafTable); + Config.setCompWindowSize(getSize()); + Config.setCompWindowLocation(getLocation()); + } + }); + + JPanel dataPanel = new JPanel(); + GridBagLayout gbl_dataPanel = new GridBagLayout(); + gbl_dataPanel.columnWidths = new int[] {0, 0, 0}; + gbl_dataPanel.rowHeights = new int[] {RowHeight, RowHeight, RowHeight, RowHeight, RowHeight}; + gbl_dataPanel.columnWeights = new double[]{0.0, 0.0, 0.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0}; + dataPanel.setLayout(gbl_dataPanel); + getContentPane().add(dataPanel); + + JLabel origLabel = new JLabel("Original"); + GridBagConstraints gbc_origLabel = new GridBagConstraints(); + gbc_origLabel.anchor = GridBagConstraints.PAGE_START; + gbc_origLabel.insets = new Insets(1, 1, 1, 5); + gbc_origLabel.weightx = 0; + gbc_origLabel.weighty = 0; + gbc_origLabel.gridx = 0; + gbc_origLabel.gridy = 0; + gbc_origLabel.gridheight = 2; + dataPanel.add(origLabel, gbc_origLabel); + + JLabel newLabel = new JLabel("New"); + GridBagConstraints gbc_newLabel = new GridBagConstraints(); + gbc_newLabel.anchor = GridBagConstraints.PAGE_START; + gbc_newLabel.insets = new Insets(1, 1, 1, 5); + gbc_newLabel.weightx = 0; + gbc_newLabel.weighty = 0; + gbc_newLabel.gridx = 0; + gbc_newLabel.gridy = 2; + gbc_newLabel.gridheight = 2; + dataPanel.add(newLabel, gbc_newLabel); + + JLabel compLabel = new JLabel("Change"); + GridBagConstraints gbc_compLabel = new GridBagConstraints(); + gbc_compLabel.anchor = GridBagConstraints.PAGE_START; + gbc_compLabel.insets = new Insets(1, 1, 1, 5); + gbc_compLabel.weightx = 0; + gbc_compLabel.weighty = 0; + gbc_compLabel.gridx = 0; + gbc_compLabel.gridy = 4; + dataPanel.add(compLabel, gbc_compLabel); + + JLabel origVoltLabel = new JLabel("volt"); + GridBagConstraints gbc_origVoltLabel = new GridBagConstraints(); + gbc_origVoltLabel.anchor = GridBagConstraints.PAGE_START; + gbc_origVoltLabel.insets = new Insets(1, 1, 1, 5); + gbc_origVoltLabel.weightx = 0; + gbc_origVoltLabel.weighty = 0; + gbc_origVoltLabel.gridx = 1; + gbc_origVoltLabel.gridy = 0; + dataPanel.add(origVoltLabel, gbc_origVoltLabel); + + JLabel origGsLabel = new JLabel(" g/s"); + GridBagConstraints gbc_origGsLabel = new GridBagConstraints(); + gbc_origGsLabel.anchor = GridBagConstraints.PAGE_START; + gbc_origGsLabel.insets = new Insets(1, 1, 1, 5); + gbc_origGsLabel.weightx = 0; + gbc_origGsLabel.weighty = 0; + gbc_origGsLabel.gridx = 1; + gbc_origGsLabel.gridy = 1; + dataPanel.add(origGsLabel, gbc_origGsLabel); + + JLabel newVoltLabel = new JLabel("volt"); + GridBagConstraints gbc_newVoltLabel = new GridBagConstraints(); + gbc_newVoltLabel.anchor = GridBagConstraints.PAGE_START; + gbc_newVoltLabel.insets = new Insets(1, 1, 1, 5); + gbc_newVoltLabel.weightx = 0; + gbc_newVoltLabel.weighty = 0; + gbc_newVoltLabel.gridx = 1; + gbc_newVoltLabel.gridy = 2; + dataPanel.add(newVoltLabel, gbc_newVoltLabel); + + JLabel newGsLabel = new JLabel(" g/s"); + GridBagConstraints gbc_newGsLabel = new GridBagConstraints(); + gbc_newGsLabel.anchor = GridBagConstraints.PAGE_START; + gbc_newGsLabel.insets = new Insets(1, 1, 1, 5); + gbc_newGsLabel.weightx = 0; + gbc_newGsLabel.weighty = 0; + gbc_newGsLabel.gridx = 1; + gbc_newGsLabel.gridy = 3; + dataPanel.add(newGsLabel, gbc_newGsLabel); + + JLabel compPctLabel = new JLabel(" % "); + GridBagConstraints gbc_compPctLabel = new GridBagConstraints(); + gbc_compPctLabel.anchor = GridBagConstraints.PAGE_START; + gbc_compPctLabel.insets = new Insets(1, 1, 1, 5); + gbc_compPctLabel.weightx = 0; + gbc_compPctLabel.weighty = 0; + gbc_compPctLabel.gridx = 1; + gbc_compPctLabel.gridy = 4; + dataPanel.add(compPctLabel, gbc_compPctLabel); + + JPanel tablesPanel = new JPanel(); + GridBagLayout gbl_tablesPanel = new GridBagLayout(); + gbl_tablesPanel.columnWidths = new int[]{0}; + gbl_tablesPanel.rowHeights = new int[] {0, 0, 0}; + gbl_tablesPanel.columnWeights = new double[]{0.0}; + gbl_tablesPanel.rowWeights = new double[]{0.0, 0.0, 1.0}; + tablesPanel.setLayout(gbl_tablesPanel); + + JScrollPane mafScrollPane = new JScrollPane(tablesPanel); + mafScrollPane.setMinimumSize(new Dimension(1600, 105)); + mafScrollPane.getHorizontalScrollBar().setMaximumSize(new Dimension(20, 20)); + mafScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + mafScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + GridBagConstraints gbc_mafScrollPane = new GridBagConstraints(); + gbc_mafScrollPane.weightx = 1.0; + gbc_mafScrollPane.weighty = 1.0; + gbc_mafScrollPane.anchor = GridBagConstraints.PAGE_START; + gbc_mafScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbc_mafScrollPane.gridx = 2; + gbc_mafScrollPane.gridy = 0; + gbc_mafScrollPane.gridheight = 5; + dataPanel.add(mafScrollPane, gbc_mafScrollPane); + + origMafTable = new JTable(); + origMafTable.setColumnSelectionAllowed(true); + origMafTable.setCellSelectionEnabled(true); + origMafTable.setBorder(new LineBorder(new Color(0, 0, 0))); + origMafTable.setRowHeight(RowHeight); + origMafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + origMafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + origMafTable.setModel(new DefaultTableModel(2, MafTableColumnCount)); + origMafTable.setTableHeader(null); + Utils.initializeTable(origMafTable, ColumnWidth); + GridBagConstraints gbc_origMafTable = new GridBagConstraints(); + gbc_origMafTable.anchor = GridBagConstraints.PAGE_START; + gbc_origMafTable.insets = new Insets(0, 0, 0, 0); + gbc_origMafTable.fill = GridBagConstraints.BOTH; + gbc_origMafTable.weightx = 1.0; + gbc_origMafTable.weighty = 0; + gbc_origMafTable.gridx = 0; + gbc_origMafTable.gridy = 0; + tablesPanel.add(origMafTable, gbc_origMafTable); + excelAdapter.addTable(origMafTable, false, false, false, false, true, false, true, false, true); + + newMafTable = new JTable(); + newMafTable.setColumnSelectionAllowed(true); + newMafTable.setCellSelectionEnabled(true); + newMafTable.setBorder(new LineBorder(new Color(0, 0, 0))); + newMafTable.setRowHeight(RowHeight); + newMafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + newMafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + newMafTable.setModel(new DefaultTableModel(2, MafTableColumnCount)); + newMafTable.setTableHeader(null); + Utils.initializeTable(newMafTable, ColumnWidth); + GridBagConstraints gbc_newMafTable = new GridBagConstraints(); + gbc_newMafTable.anchor = GridBagConstraints.PAGE_START; + gbc_newMafTable.insets = new Insets(0, 0, 0, 0); + gbc_newMafTable.fill = GridBagConstraints.BOTH; + gbc_newMafTable.weightx = 1.0; + gbc_newMafTable.weighty = 0; + gbc_newMafTable.gridx = 0; + gbc_newMafTable.gridy = 1; + tablesPanel.add(newMafTable, gbc_newMafTable); + excelAdapter.addTable(newMafTable, false, false, false, false, false, false, false, false, true); + + compMafTable = new JTable(); + compMafTable.setColumnSelectionAllowed(true); + compMafTable.setCellSelectionEnabled(true); + compMafTable.setBorder(new LineBorder(new Color(0, 0, 0))); + compMafTable.setRowHeight(RowHeight); + compMafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + compMafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + compMafTable.setModel(new DefaultTableModel(1, MafTableColumnCount)); + compMafTable.setTableHeader(null); + Utils.initializeTable(compMafTable, ColumnWidth); + NumberFormatRenderer numericRenderer = new NumberFormatRenderer(); + numericRenderer.setFormatter(new DecimalFormat("0.000")); + compMafTable.setDefaultRenderer(Object.class, numericRenderer); + GridBagConstraints gbc_compMafTable = new GridBagConstraints(); + gbc_compMafTable.anchor = GridBagConstraints.PAGE_START; + gbc_compMafTable.insets = new Insets(0, 0, 0, 0); + gbc_compMafTable.fill = GridBagConstraints.BOTH; + gbc_compMafTable.weightx = 1.0; + gbc_compMafTable.weighty = 0; + gbc_compMafTable.gridx = 0; + gbc_compMafTable.gridy = 2; + tablesPanel.add(compMafTable, gbc_compMafTable); + compExcelAdapter.addTable(compMafTable, false, true, false, false, false, true, true, false, true); + + TableModelListener origTableListener = new TableModelListener() { + public void tableChanged(TableModelEvent tme) { + if (tme.getType() == TableModelEvent.UPDATE) { + int colCount = origMafTable.getColumnCount(); + Utils.ensureColumnCount(colCount, newMafTable); + Utils.ensureColumnCount(colCount, compMafTable); + for (int i = 0; i < colCount; ++i) { + if (Pattern.matches(Utils.fpRegex, origMafTable.getValueAt(1, i).toString()) && + Pattern.matches(Utils.fpRegex, newMafTable.getValueAt(1, i).toString())) { + compMafTable.setValueAt(((Double.valueOf(newMafTable.getValueAt(1, i).toString()) / Double.valueOf(origMafTable.getValueAt(1, i).toString())) - 1.0) * 100.0, 0, i); + } + else + break; + } + } + } + }; + + TableModelListener newTableListener = new TableModelListener() { + public void tableChanged(TableModelEvent tme) { + if (tme.getType() == TableModelEvent.UPDATE) { + int colCount = newMafTable.getColumnCount(); + Utils.ensureColumnCount(colCount, origMafTable); + Utils.ensureColumnCount(colCount, compMafTable); + for (int i = 0; i < colCount; ++i) { + if (Pattern.matches(Utils.fpRegex, newMafTable.getValueAt(1, i).toString()) && + Pattern.matches(Utils.fpRegex, origMafTable.getValueAt(1, i).toString())) { + compMafTable.setValueAt(((Double.valueOf(newMafTable.getValueAt(1, i).toString()) / Double.valueOf(origMafTable.getValueAt(1, i).toString())) - 1.0) * 100.0, 0, i); + } + else + break; + } + } + } + }; + + origMafTable.getModel().addTableModelListener(origTableListener); + newMafTable.getModel().addTableModelListener(newTableListener); + + Action action = new AbstractAction() { + private static final long serialVersionUID = 8148393537657380215L; + public void actionPerformed(ActionEvent e) { + TableCellListener tcl = (TableCellListener)e.getSource(); + if (Pattern.matches(Utils.fpRegex, compMafTable.getValueAt(0, tcl.getColumn()).toString())) { + if (Pattern.matches(Utils.fpRegex, origMafTable.getValueAt(1, tcl.getColumn()).toString())) { + double corr = Double.valueOf(compMafTable.getValueAt(0, tcl.getColumn()).toString()) / 100.0 + 1.0; + newMafTable.setValueAt(Double.valueOf(origMafTable.getValueAt(1, tcl.getColumn()).toString()) * corr, 1, tcl.getColumn()); + } + } + else + compMafTable.setValueAt(tcl.getOldValue(), 0, tcl.getColumn()); + } + }; + + setCompMafCellListener(new TableCellListener(compMafTable, action)); + } + catch (Exception e) { + logger.error(e); + } + } + + @Override + public void paint(Graphics g) { + Dimension d = getSize(); + Dimension m = getMaximumSize(); + boolean resize = d.width > m.width || d.height > m.height; + d.width = Math.min(m.width, d.width); + d.height = Math.min(m.height, d.height); + if (resize) { + Point p = getLocation(); + setVisible(false); + setSize(d); + setLocation(p); + setVisible(true); + } + super.paint(g); + } + + public TableCellListener getCompMafCellListener() { + return compMafCellListener; + } + + public void setCompMafCellListener(TableCellListener compMafCellListener) { + this.compMafCellListener = compMafCellListener; + } +} diff --git a/src/com/vgi/mafscaling/MafScaling.java b/src/com/vgi/mafscaling/MafScaling.java index 6005e9b..bbf12c5 100644 --- a/src/com/vgi/mafscaling/MafScaling.java +++ b/src/com/vgi/mafscaling/MafScaling.java @@ -1,3 +1,21 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; import java.awt.BorderLayout; @@ -5,6 +23,7 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JTabbedPane; import javax.swing.UIManager; @@ -12,9 +31,10 @@ public class MafScaling { private static final Logger logger = Logger.getLogger(MafScaling.class); - private static final String Title = "MAF Scaling - v1.2.0"; + private static final String Title = "MAF Scaling - v1.3.0"; private static final String OLTabName = "Open Loop"; private static final String CLTabName = "Closed Loop"; + private static final String RTabName = "Rescale"; private JFrame frame; /** @@ -55,6 +75,9 @@ public MafScaling() { */ private void initialize() { PrimaryOpenLoopFuelingTable pofFuelingTable = new PrimaryOpenLoopFuelingTable(); + MafCompare mafCompare = new MafCompare(); + + ImageIcon chartImage = new ImageIcon(getClass().getResource("/chart.jpg")); frame = new JFrame(); frame.setTitle(Title); @@ -62,6 +85,7 @@ private void initialize() { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(Config.getWindowSize()); frame.setLocation(Config.getWindowLocation()); + frame.setIconImage(chartImage.getImage()); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { Config.setWindowSize(frame.getSize()); @@ -74,12 +98,21 @@ public void windowClosing(WindowEvent e) { tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); frame.getContentPane().add(tabbedPane, BorderLayout.CENTER); - JTabbedPane ol = new OpenLoop(JTabbedPane.LEFT, pofFuelingTable); + JTabbedPane ol = new OpenLoop(JTabbedPane.LEFT, pofFuelingTable, mafCompare); ol.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); tabbedPane.add(ol, OLTabName); - JTabbedPane cl = new ClosedLoop(JTabbedPane.LEFT, pofFuelingTable); + JTabbedPane cl = new ClosedLoop(JTabbedPane.LEFT, pofFuelingTable, mafCompare); cl.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); tabbedPane.add(cl, CLTabName); + + JTabbedPane r = new Rescale(JTabbedPane.LEFT); + r.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); + tabbedPane.add(r, RTabName); + + JTabbedPane l = new LogStats(JTabbedPane.LEFT); + l.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); + tabbedPane.add(l, "Log Stats"); + } } diff --git a/src/com/vgi/mafscaling/OpenLoop.java b/src/com/vgi/mafscaling/OpenLoop.java index b90562d..4ed2458 100644 --- a/src/com/vgi/mafscaling/OpenLoop.java +++ b/src/com/vgi/mafscaling/OpenLoop.java @@ -48,20 +48,17 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JSpinner; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextPane; import javax.swing.ListSelectionModel; import javax.swing.ScrollPaneConstants; -import javax.swing.SpinnerNumberModel; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableModel; @@ -88,27 +85,27 @@ public class OpenLoop extends JTabbedPane implements ActionListener, IMafChartHolder { private static final long serialVersionUID = 2988105467764335997L; private static final Logger logger = Logger.getLogger(OpenLoop.class); - private final static String SaveDataFileHeader = "[open_loop run data]"; - private final static String MafTableName = "Current MAF Scaling"; - private final static String RunTableName = "Run "; - private final static String XAxisName = "MAF Sensor (Voltage)"; - private final static String Y1AxisName = "Mass Airflow (g/s)"; - private final static String Y2AxisName = "AFR Error (%)"; - private final static String rpmAxisName = "RPM"; + private static final String SaveDataFileHeader = "[open_loop run data]"; + private static final String MafTableName = "Current MAF Scaling"; + private static final String RunTableName = "Run "; + private static final String XAxisName = "MAF Sensor (Voltage)"; + private static final String Y1AxisName = "Mass Airflow (g/s)"; + private static final String Y2AxisName = "AFR Error (%)"; + private static final String rpmAxisName = "RPM"; private static final String runDataName = "AFR Error"; private static final String currentDataName = "Current"; private static final String correctedDataName = "Corrected"; private static final String smoothedDataName = "Smoothed"; - private static final String mafCurveDataName = "Maf Curve"; + private static final String mafCurveDataName = "Smoothed Maf Curve"; private static final String currentSlopeDataName = "Current Maf Slope"; private static final String smoothedSlopeDataName = "Smoothed Maf Slope"; - private final static int ColumnWidth = 50; - private final static int RunCount = 12; - private int MafTableColumnCount = 50; - private int RunRowsCount = 200; - private int wotPoint = Config.getWotStationaryPointValue(); + private static final int ColumnWidth = 50; + private static final int RunCount = 12; + private static final int MafTableColumnCount = 50; + private static final int RunRowsCount = 200; private double minMafV = Config.getMafVMinimumValue(); - private Double afrErrPrct = Config.getWidebandAfrErrorPercentValue(); + private double afrErrPrct = Config.getWidebandAfrErrorPercentValue(); + private int wotPoint = Config.getWotStationaryPointValue(); private int logThtlAngleColIdx = -1; private int logAfLearningColIdx = -1; private int logAfCorrectionColIdx = -1; @@ -128,6 +125,7 @@ public class OpenLoop extends JTabbedPane implements ActionListener, IMafChartHo private JCheckBox checkBoxSmoothedMaf = null; private JCheckBox checkBoxSmoothing = null; private JComboBox smoothComboBox = null; + private JButton btnCompareButton = null; private JButton btnSmoothButton = null; private JButton btnResetSmoothButton = null; private JButton btnPlusButton = null; @@ -151,10 +149,12 @@ public class OpenLoop extends JTabbedPane implements ActionListener, IMafChartHo private final XYSeries corrMafData = new XYSeries(correctedDataName); private final XYSeries smoothMafData = new XYSeries(smoothedDataName); private PrimaryOpenLoopFuelingTable polfTable = null; + private MafCompare mafCompare = null; - public OpenLoop(int tabPlacement, PrimaryOpenLoopFuelingTable table) { + public OpenLoop(int tabPlacement, PrimaryOpenLoopFuelingTable table, MafCompare comparer) { super(tabPlacement); polfTable = table; + mafCompare = comparer; initialize(); } @@ -177,7 +177,7 @@ private void createDataTab() { gbl_dataPanel.columnWidths = new int[] {0}; gbl_dataPanel.rowHeights = new int[] {0, 0, 0, 0}; gbl_dataPanel.columnWeights = new double[]{1.0}; - gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0,0, 1.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 1.0}; dataPanel.setLayout(gbl_dataPanel); JPanel cntlPanel = new JPanel(); @@ -476,14 +476,16 @@ private void createGraghTab() { checkBoxSmoothedMaf.addActionListener(this); cntlPanel.add(checkBoxSmoothedMaf, gbc_checkBoxSmoothedMaf); - Component horizontalGlue = Box.createHorizontalGlue(); - GridBagConstraints gbc_horizontalGlue = new GridBagConstraints(); - gbc_horizontalGlue.weightx = 1.0; - gbc_horizontalGlue.fill = GridBagConstraints.HORIZONTAL; - gbc_horizontalGlue.insets = new Insets(0, 0, 3, 3); - gbc_horizontalGlue.gridx = 5; - gbc_horizontalGlue.gridy = 0; - cntlPanel.add(horizontalGlue, gbc_horizontalGlue); + btnCompareButton = new JButton("Compare"); + GridBagConstraints gbc_btnCompareButton = new GridBagConstraints(); + gbc_btnCompareButton.anchor = GridBagConstraints.CENTER; + gbc_btnCompareButton.insets = new Insets(0, 0, 3, 3); + gbc_btnCompareButton.weightx = 1.0; + gbc_btnCompareButton.gridx = 5; + gbc_btnCompareButton.gridy = 0; + btnCompareButton.setActionCommand("compare"); + btnCompareButton.addActionListener(this); + cntlPanel.add(btnCompareButton, gbc_btnCompareButton); checkBoxSmoothing = new JCheckBox("Smoothing:"); GridBagConstraints gbc_checkBoxSmoothing = new GridBagConstraints(); @@ -528,6 +530,7 @@ private void createGraghTab() { cntlPanel.add(btnResetSmoothButton, gbc_btnResetSmoothButton); JFreeChart chart = ChartFactory.createScatterPlot(null, null, null, null, PlotOrientation.VERTICAL, false, true, false); + chart.setBorderVisible(true); mafChartPanel = new MafChartPanel(chart, this); GridBagConstraints gbl_chartPanel = new GridBagConstraints(); @@ -561,6 +564,7 @@ private void createGraghTab() { lineRenderer.setSeriesShape(0, ShapeUtilities.createDiamond((float) 2.5)); lineRenderer.setSeriesShape(1, ShapeUtilities.createUpTriangle((float) 2.5)); lineRenderer.setSeriesShape(2, ShapeUtilities.createDownTriangle((float) 2.5)); + mafChartPanel.enablePointsDrag(0); lineRenderer.setLegendItemLabelGenerator( new StandardXYSeriesLabelGenerator() { @@ -721,9 +725,11 @@ public String generateLabel(XYDataset dataset, int series) { private void createUsageTab() { JTextPane usageTextArea = new JTextPane(); + usageTextArea.setMargin(new Insets(10, 10, 10, 10)); usageTextArea.setContentType("text/html"); usageTextArea.setText(usage()); usageTextArea.setEditable(false); + usageTextArea.setCaretPosition(0); JScrollPane textScrollPane = new JScrollPane(usageTextArea); textScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); @@ -757,6 +763,9 @@ else if ("save".equals(e.getActionCommand())) { else if ("go".equals(e.getActionCommand())) { calculateMafScaling(); } + else if ("compare".equals(e.getActionCommand())) { + mafCompare.setVisible(true); + } else if ("smooth".equals(e.getActionCommand())) { smoothCurve(); } @@ -948,7 +957,7 @@ private void calculateMafScaling() { catch (Exception e) { e.printStackTrace(); logger.error(e); - JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Error: " + e, "Error", JOptionPane.ERROR_MESSAGE); } finally { setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); @@ -997,10 +1006,12 @@ private boolean sortRunData(TreeMap> result) { private void calculateCorrectedGS(TreeMap> result) { ArrayList closestVolatageArray; - double gs; - double avgError; + double gs = 0; + double avgError = 0; + int lastErrIndex = 0; + int i; gsCorrected.addAll(gsArray); - for (int i = 0; i < gsCorrected.size(); ++i) { + for (i = 0; i < gsCorrected.size(); ++i) { gs = gsCorrected.get(i); avgError = 0; closestVolatageArray = result.get(i); @@ -1008,11 +1019,23 @@ private void calculateCorrectedGS(TreeMap> result) { for (int j = 0; j < closestVolatageArray.size(); ++j) avgError += closestVolatageArray.get(j); avgError /= closestVolatageArray.size(); + lastErrIndex = i; } gsCorrected.set(i, gs +(gs * 0.01 * avgError)); } + avgError = 0; + ArrayList sortedAfrArray = result.get(lastErrIndex); + Collections.sort(sortedAfrArray, Collections.reverseOrder()); + for (i = 0; i < 10 && i < sortedAfrArray.size(); ++i) + avgError += sortedAfrArray.get(i); + if (i > 0) + avgError /= i; + for (i = lastErrIndex + 1; i < gsCorrected.size(); ++i) { + gs = gsCorrected.get(i); + gsCorrected.set(i, gs +(gs * 0.01 * avgError)); + } } - + private boolean getMafTableData(ArrayList voltArray, ArrayList gsArray) { String value; for (int i = 0; i < mafTable.getColumnCount(); ++i) { @@ -1149,7 +1172,7 @@ private void plotSmoothingLineSlopes() { setXYTable(mafSmoothingTable, voltArray, smoothGsArray); } - public void onMovePoint(int itemIndex, double valueY) { + public void onMovePoint(int itemIndex, double valueX, double valueY) { ArrayList xarr = voltArray; ArrayList yarr = smoothGsArray; XYSeries series = smoothMafData; @@ -1438,6 +1461,39 @@ public void loadData() { } } + private boolean getColumnsFilters(String[] elements) { + boolean ret = true; + ArrayList columns = new ArrayList(Arrays.asList(elements)); + String logThtlAngleColName = Config.getThrottleAngleColumnName(); + String logAfLearningColName = Config.getAfLearningColumnName(); + String logAfCorrectionColName = Config.getAfCorrectionColumnName(); + String logMafvColName = Config.getMafVoltageColumnName(); + String logAfrColName = Config.getWidebandAfrColumnName(); + String logRpmColName = Config.getRpmColumnName(); + String logLoadColName = Config.getLoadColumnName(); + String logCommandedAfrColName = Config.getCommandedAfrColumnName(); + logThtlAngleColIdx = columns.indexOf(logThtlAngleColName); + logAfLearningColIdx = columns.indexOf(logAfLearningColName); + logAfCorrectionColIdx = columns.indexOf(logAfCorrectionColName); + logMafvColIdx = columns.indexOf(logMafvColName); + logAfrColIdx = columns.indexOf(logAfrColName); + logRpmColIdx = columns.indexOf(logRpmColName); + logLoadColIdx = columns.indexOf(logLoadColName); + logCommandedAfrCol = columns.indexOf(logCommandedAfrColName); + if (logThtlAngleColIdx == -1) { Config.setThrottleAngleColumnName(Config.NO_NAME); ret = false; } + if (logAfLearningColIdx == -1) { Config.setAfLearningColumnName(Config.NO_NAME); ret = false; } + if (logAfCorrectionColIdx == -1) { Config.setAfCorrectionColumnName(Config.NO_NAME); ret = false; } + if (logMafvColIdx == -1) { Config.setMafVoltageColumnName(Config.NO_NAME); ret = false; } + if (logAfrColIdx == -1) { Config.setWidebandAfrColumnName(Config.NO_NAME); ret = false; } + if (logRpmColIdx == -1) { Config.setRpmColumnName(Config.NO_NAME); ret = false; } + if (logLoadColIdx == -1) { Config.setLoadColumnName(Config.NO_NAME); ret = false; } + if (logCommandedAfrCol == -1) { Config.setCommandedAfrColumnName(Config.NO_NAME); ret = false; } + wotPoint = Config.getWotStationaryPointValue(); + minMafV = Config.getMafVMinimumValue(); + afrErrPrct = Config.getWidebandAfrErrorPercentValue(); + return ret; + } + private void loadLogFile() { if (JFileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this)) return; @@ -1448,202 +1504,20 @@ private void loadLogFile() { String line = br.readLine(); if (line != null) { String [] elements = line.split(",", -1); - ArrayList columns = new ArrayList(Arrays.asList(elements)); - String logThtlAngleColName = Config.getThrottleAngleColumnName(); - String logAfLearningColName = Config.getAfLearningColumnName(); - String logAfCorrectionColName = Config.getAfCorrectionColumnName(); - String logMafvColName = Config.getMafVoltageColumnName(); - String logAfrColName = Config.getWidebandAfrColumnName(); - String logRpmColName = Config.getRpmColumnName(); - String logLoadColName = Config.getLoadColumnName(); - String logCommandedAfrColName = Config.getCommandedAfrColumnName(); - logThtlAngleColIdx = columns.indexOf(logThtlAngleColName); - logAfLearningColIdx = columns.indexOf(logAfLearningColName); - logAfCorrectionColIdx = columns.indexOf(logAfCorrectionColName); - logMafvColIdx = columns.indexOf(logMafvColName); - logAfrColIdx = columns.indexOf(logAfrColName); - logRpmColIdx = columns.indexOf(logRpmColName); - logLoadColIdx = columns.indexOf(logLoadColName); - logCommandedAfrCol = columns.indexOf(logCommandedAfrColName); + getColumnsFilters(elements); + boolean resetColumns = false; - - if (logThtlAngleColIdx >= 0 || - logAfLearningColIdx >= 0 || - logAfCorrectionColIdx >= 0 || - logMafvColIdx >= 0 || - logAfrColIdx >= 0 || - logRpmColIdx >= 0 || - logLoadColIdx >=0 || - logCommandedAfrCol >=0) { + if (logThtlAngleColIdx >= 0 || logAfLearningColIdx >= 0 || logAfCorrectionColIdx >= 0 || logMafvColIdx >= 0 || + logAfrColIdx >= 0 || logRpmColIdx >= 0 || logLoadColIdx >= 0 || logCommandedAfrCol >= 0) { if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null, "Would you like to reset column names or filter values?", "Columns/Filters Reset", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE)) resetColumns = true; } - JTable table = new JTable() { - private static final long serialVersionUID = 1L; - public boolean isCellEditable(int row, int column) { return false; }; - }; - table.setColumnSelectionAllowed(false); - table.setCellSelectionEnabled(true); - table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - table.setBorder(new LineBorder(new Color(0, 0, 0))); - table.setTableHeader(null); - table.setModel(new DefaultTableModel(elements.length, 1)); - for (int i = 0; i < elements.length; ++i) - table.setValueAt(elements[i], i, 0); - JLabel noteLabel1 = new JLabel("Note: please check your log file if Throttle Angle % reaches 100%."); - JLabel noteLabel2 = new JLabel("If not, you could change WOT stationary point below or use Accel Pedal Angle."); - JLabel spinnerLabel = new JLabel("WOT stationary point (%)"); - JSpinner spinner = new JSpinner(new SpinnerNumberModel(wotPoint, 50, 100, 5)); - NumberFormat doubleFmt = NumberFormat.getNumberInstance(); - doubleFmt.setMaximumFractionDigits(2); - JFormattedTextField valueField = new JFormattedTextField(doubleFmt); - valueField.setColumns(10); - valueField.setVisible(false); - JComponent[] inputs = new JComponent[] { new JScrollPane(table), noteLabel1, noteLabel2, spinnerLabel, spinner, valueField }; - - if (logThtlAngleColIdx >= 0) - table.changeSelection(logThtlAngleColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logThtlAngleColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Throttle Angle % Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logThtlAngleColIdx = table.getSelectedRow(); - if (logThtlAngleColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Throttle Angle % Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - wotPoint = Integer.valueOf(spinner.getValue().toString()); - Config.setThrottleAngleColumnName(table.getValueAt(logThtlAngleColIdx, 0).toString()); - Config.setWotStationaryPointValue(wotPoint); - } - noteLabel1.setVisible(false); - noteLabel2.setVisible(false); - spinnerLabel.setVisible(false); - spinner.setVisible(false); - - if (logAfLearningColIdx >= 0) - table.changeSelection(logAfLearningColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfLearningColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select AFR Learning (LTFT) Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfLearningColIdx = table.getSelectedRow(); - if (logAfLearningColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Learning (LTFT) Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setAfLearningColumnName(table.getValueAt(logAfLearningColIdx, 0).toString()); - } - - if (logAfCorrectionColIdx >= 0) - table.changeSelection(logAfCorrectionColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfCorrectionColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select AFR Correction (STFT) Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfCorrectionColIdx = table.getSelectedRow(); - if (logAfCorrectionColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Correction (STFT) Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setAfCorrectionColumnName(table.getValueAt(logAfCorrectionColIdx, 0).toString()); - } - - noteLabel1.setText("MafV Filter - minimum value"); - valueField.setText(String.valueOf(minMafV)); - noteLabel1.setVisible(true); - valueField.setVisible(true); - if (logMafvColIdx >= 0) - table.changeSelection(logMafvColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logMafvColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Maf Voltage Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logMafvColIdx = table.getSelectedRow(); - if (logMafvColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Maf Voltage Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - minMafV = Double.valueOf(valueField.getText()); - Config.setMafVoltageColumnName(table.getValueAt(logMafvColIdx, 0).toString()); - Config.setMafVMinimumValue(minMafV); - } - noteLabel1.setVisible(false); - valueField.setVisible(false); - - noteLabel1.setText("Afr Error Filter +/- % value"); - valueField.setText(String.valueOf(afrErrPrct)); - noteLabel1.setVisible(true); - valueField.setVisible(true); - if (logAfrColIdx >= 0) - table.changeSelection(logAfrColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logAfrColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Wideband AFR Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logAfrColIdx = table.getSelectedRow(); - if (logAfrColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid AFR Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - afrErrPrct = Double.valueOf(valueField.getText()); - Config.setWidebandAfrColumnName(table.getValueAt(logAfrColIdx, 0).toString()); - Config.setWidebandAfrErrorPercentValue(afrErrPrct); - } - noteLabel1.setVisible(false); - valueField.setVisible(false); - - if (logRpmColIdx >= 0) - table.changeSelection(logRpmColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logRpmColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Engine Speed Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logRpmColIdx = table.getSelectedRow(); - if (logRpmColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Engine Speed Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setRpmColumnName(table.getValueAt(logRpmColIdx, 0).toString()); - } - - if (logLoadColIdx >= 0) - table.changeSelection(logLoadColIdx, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logLoadColIdx < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Engine Load Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logLoadColIdx = table.getSelectedRow(); - if (logLoadColIdx == -1) { - JOptionPane.showMessageDialog(null, "Invalid Engine Load Column selection", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setLoadColumnName(table.getValueAt(logLoadColIdx, 0).toString()); - } - - if (!polfTable.isSet()) { - if (logCommandedAfrCol >= 0) - table.changeSelection(logCommandedAfrCol, 0, false, false); - else - table.clearSelection(); - if (resetColumns == true || logCommandedAfrCol < 0) { - if (JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(null, inputs, "Select Commanded Afr Column", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) - return; - logCommandedAfrCol = table.getSelectedRow(); - if (logCommandedAfrCol == -1) { - JOptionPane.showMessageDialog(null, "Invalid Commanded Afr Column selection. Please select Commanded Afr or set the Primary Open Loop Fueling table.", "Invalid selection", JOptionPane.ERROR_MESSAGE); - return; - } - Config.setCommandedAfrColumnName(table.getValueAt(logCommandedAfrCol, 0).toString()); - } + if (resetColumns || logThtlAngleColIdx < 0 || logAfLearningColIdx < 0 || logAfCorrectionColIdx < 0 || logMafvColIdx < 0 || + logAfrColIdx < 0 || logRpmColIdx < 0 || logLoadColIdx < 0 || (logCommandedAfrCol < 0 && !polfTable.isSet())) { + ColumnsFiltersSelection selectionWindow = new ColumnsFiltersSelection(ColumnsFiltersSelection.Loop.OPEN_LOOP, polfTable.isSet()); + if (!selectionWindow.getUserSettings(elements) || !getColumnsFilters(elements)) + return; } String[] flds; @@ -1658,7 +1532,7 @@ private void loadLogFile() { double rpm; double load; double mafv; - double afrErr; + double afrErr = 0; int i = 0; for (; i < runTables.length; ++i) { if (runTables[i].getValueAt(0, 0).toString().isEmpty()) @@ -1701,12 +1575,14 @@ private void loadLogFile() { afr = afr / ((100.0 - (ltft + stft)) / 100.0); - if (!polfTable.isSet() && logCommandedAfrCol >= 0) { + if (logCommandedAfrCol >= 0) { cmdafr = Double.valueOf(flds[logCommandedAfrCol]); afrErr = (afr - cmdafr) / cmdafr * 100.0; } - else + else if (polfTable.isSet()) afrErr = calculateAfrError(rpm, load, afr); + else + JOptionPane.showMessageDialog(null, "Please set either \"Commanded AFR\" column or \"Primary Open Loop Fueling\" table", "Error", JOptionPane.ERROR_MESSAGE); if (Math.abs(afrErr) <= afrErrPrct) { runTables[i].setValueAt(rpm, j, 0); @@ -1729,7 +1605,7 @@ private void loadLogFile() { } catch (Exception e) { logger.error(e); - JOptionPane.showMessageDialog(null, e.getMessage(), "Error opening file", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, e, "Error opening file", JOptionPane.ERROR_MESSAGE); } finally { if (br != null) { diff --git a/src/com/vgi/mafscaling/PrimaryOpenLoopFuelingTable.java b/src/com/vgi/mafscaling/PrimaryOpenLoopFuelingTable.java index 01e0c1e..b77e213 100644 --- a/src/com/vgi/mafscaling/PrimaryOpenLoopFuelingTable.java +++ b/src/com/vgi/mafscaling/PrimaryOpenLoopFuelingTable.java @@ -1,3 +1,21 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + package com.vgi.mafscaling; import java.awt.Component; @@ -57,7 +75,7 @@ public boolean isRoot(File file) { return false; } } - private static final Logger logger = Logger.getLogger(ClosedLoop.class); + private static final Logger logger = Logger.getLogger(PrimaryOpenLoopFuelingTable.class); private final static int ColumnWidth = 40; private ExcelAdapter excelAdapter = new ExcelAdapter(); private JFileChooser fileChooser = null; @@ -78,8 +96,14 @@ public PrimaryOpenLoopFuelingTable() { fuelingTable = loadPolFueling(fuelingTable, fileName); if (fuelingTable == null) { Config.setDefaultPOLFueling(""); - String files = Config.getPOLFuelingFiles(); - Config.setPOLFuelingFiles(files.replaceAll("," + fileName + "\\b", "")); + String[] files = Config.getPOLFuelingFiles().split(","); + String fs = ""; + for (String fn : files) { + if (fn.equals(fileName) || fn.isEmpty()) + continue; + fs += ("," + fn); + } + Config.setPOLFuelingFiles(fs); fileName = ""; } else { @@ -87,6 +111,8 @@ public PrimaryOpenLoopFuelingTable() { btnSetDefault.setText("Unset Default"); } } + else if (Config.getDefaultPOLFueling().equals(fileName)) + btnSetDefault.setText("Unset Default"); } public boolean getSetUserFueling() { @@ -104,11 +130,10 @@ public boolean getSetUserFueling() { gbc_loadList.insets = new Insets(1, 5, 1, 1); gbc_loadList.gridx = 0; gbc_loadList.gridy = 0; - if (!fileName.isEmpty()) - loadList.setSelectedItem(fileName); + loadList.setSelectedItem(fileName); loadList.setActionCommand("polselected"); loadList.addActionListener(this); - loadList.setPreferredSize(new Dimension(150, 25)); + loadList.setPreferredSize(new Dimension(150, 23)); loadList.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); fuelingPanel.add(loadList, gbc_loadList); @@ -449,8 +474,8 @@ private void setDefault(JTable fuelingTable) { else { if (!tempFileName.isEmpty()) save(fuelingTable); - if (!tempFileName.isEmpty()) - Config.setDefaultPOLFueling(tempFileName); + Config.setDefaultPOLFueling(tempFileName); + btnSetDefault.setText("Unset Default"); } } @@ -486,8 +511,15 @@ private void save(JTable fuelingTable) { } } } - String files = Config.getPOLFuelingFiles(); - Config.setPOLFuelingFiles(files.replaceAll("," + fileName + "\\b", "") + "," + tempFileName); + String[] files = Config.getPOLFuelingFiles().split(","); + String fs = ""; + for (String fn : files) { + if (fn.equals(fileName) || fn.isEmpty()) + continue; + fs += ("," + fn); + } + fs += ("," + tempFileName); + Config.setPOLFuelingFiles(fs); loadList.addItem(tempFileName); loadList.setSelectedItem(tempFileName); } @@ -510,13 +542,21 @@ private void load() { } else { loadList.removeItem(fileName); - loadList.setSelectedIndex(0); + loadList.setSelectedItem(""); if (!fileName.isEmpty()) { - String files = Config.getPOLFuelingFiles(); - Config.setPOLFuelingFiles(files.replaceAll("," + fileName + "\\b", "")); + String[] files = Config.getPOLFuelingFiles().split(","); + String fs = ""; + for (String fn : files) { + if (fn.equals(fileName) || fn.isEmpty()) + continue; + fs += ("," + fn); + } + Config.setPOLFuelingFiles(fs); } } } + else if (Config.getDefaultPOLFueling().equals(fileName)) + btnSetDefault.setText("Unset Default"); } @Override diff --git a/src/com/vgi/mafscaling/Rescale.java b/src/com/vgi/mafscaling/Rescale.java new file mode 100644 index 0000000..b33c19c --- /dev/null +++ b/src/com/vgi/mafscaling/Rescale.java @@ -0,0 +1,832 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.Stroke; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.ResourceBundle; +import java.util.TreeMap; +import java.util.regex.Pattern; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.BorderFactory; +import javax.swing.JFormattedTextField; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTable; +import javax.swing.JTextPane; +import javax.swing.ListSelectionModel; +import javax.swing.ScrollPaneConstants; +import javax.swing.border.LineBorder; +import javax.swing.border.TitledBorder; +import javax.swing.table.DefaultTableModel; + +import org.apache.log4j.Logger; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.axis.NumberAxis; +import org.jfree.chart.axis.ValueAxis; +import org.jfree.chart.labels.StandardXYToolTipGenerator; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.chart.plot.SeriesRenderingOrder; +import org.jfree.chart.plot.XYPlot; +import org.jfree.chart.renderer.xy.XYSplineRenderer; +import org.jfree.chart.title.LegendTitle; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; +import org.jfree.ui.RectangleEdge; +import org.jfree.util.ShapeUtilities; + +public class Rescale extends JTabbedPane implements IMafChartHolder, ActionListener { + private static final long serialVersionUID = -3803091816206090707L; + private static final Logger logger = Logger.getLogger(Rescale.class); + private static final int MafTableColumnCount = 50; + private static final int ColumnWidth = 50; + private static final int CellsPerSection = 2; + private static final String OrigMafTableName = "Original MAF Scaling"; + private static final String NewMafTableName = "New MAF Scaling"; + private static final String XAxisName = "MAF Sensor (Voltage)"; + private static final String YAxisName = "Mass Airflow (g/s)"; + private static final String currentDataName = "Original"; + private static final String correctedDataName = "Rescaled"; + private final XYSeries currMafData = new XYSeries(currentDataName); + private final XYSeries corrMafData = new XYSeries(correctedDataName); + private JTable origMafTable = null; + private JTable newMafTable = null; + private TableCellListener newMafTableCellListener = null; + private JFormattedTextField newMaxVFmtTextBox = null; + private JFormattedTextField maxVUnchangedFmtTextBox = null; + private JFormattedTextField minVFmtTextBox = null; + private JFormattedTextField modeDeltaVFmtTextBox = null; + + private MafChartPanel mafChartPanel = null; + private ExcelAdapter excelAdapter = null; + private ExcelAdapter newMafExcelAdapter = null; + private ArrayList origVoltArray = null; + private ArrayList origGsArray = null; + private ArrayList deltaVoltArray = null; + private double modeDeltaV; + + public Rescale(int tabPlacement) { + super(tabPlacement); + excelAdapter = new ExcelAdapter() { + protected void onPaste(JTable table, boolean extendRows, boolean extendCols) { + super.onPaste(table, extendRows, extendCols); + calculateModeDeltaV(); + } + protected void onPasteVertical(JTable table, boolean extendRows, boolean extendCols) { + super.onPasteVertical(table, extendRows, extendCols); + calculateModeDeltaV(); + } + protected void onClearSelection(JTable table) { + super.onClearSelection(table); + calculateModeDeltaV(); + updateNewMafScale(); + } + }; + newMafExcelAdapter = new ExcelAdapter() { + protected void onPaste(JTable table, boolean extendRows, boolean extendCols) { + super.onPaste(table, extendRows, extendCols); + recalculateNewGs(); + } + protected void onPasteVertical(JTable table, boolean extendRows, boolean extendCols) { + super.onPasteVertical(table, extendRows, extendCols); + recalculateNewGs(); + } + }; + initialize(); + } + + private void initialize() { + createDataTab(); + createUsageTab(); + } + + public TableCellListener getNewMafTableCellListenerListener() { + return newMafTableCellListener; + } + + public void setNewMafTableCellListenerListener(TableCellListener listener) { + newMafTableCellListener = listener; + } + + ////////////////////////////////////////////////////////////////////////////////////// + // DATA TAB + ////////////////////////////////////////////////////////////////////////////////////// + + private void createDataTab() { + JPanel dataPanel = new JPanel(); + add(dataPanel, "
D
a
t
a
"); + GridBagLayout gbl_dataPanel = new GridBagLayout(); + gbl_dataPanel.columnWidths = new int[] {0}; + gbl_dataPanel.rowHeights = new int[] {0, 0, 0}; + gbl_dataPanel.columnWeights = new double[]{0.0}; + gbl_dataPanel.rowWeights = new double[]{0.0, 0.0, 1.0}; + dataPanel.setLayout(gbl_dataPanel); + + createControlPanel(dataPanel); + createMafScalesScrollPane(dataPanel); + createGraghPanel(dataPanel); + } + + private void createControlPanel(JPanel dataPanel) { + JPanel cntlPanel = new JPanel(); + GridBagConstraints gbl_ctrlPanel = new GridBagConstraints(); + gbl_ctrlPanel.insets = new Insets(3, 3, 3, 3); + gbl_ctrlPanel.anchor = GridBagConstraints.PAGE_START; + gbl_ctrlPanel.fill = GridBagConstraints.HORIZONTAL; + gbl_ctrlPanel.weightx = 1.0; + gbl_ctrlPanel.gridx = 0; + gbl_ctrlPanel.gridy = 0; + dataPanel.add(cntlPanel, gbl_ctrlPanel); + + GridBagLayout gbl_cntlPanel = new GridBagLayout(); + gbl_cntlPanel.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0, 0}; + gbl_cntlPanel.rowHeights = new int[]{0, 0}; + gbl_cntlPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0}; + gbl_cntlPanel.rowWeights = new double[]{0}; + cntlPanel.setLayout(gbl_cntlPanel); + + NumberFormat doubleFmt = NumberFormat.getNumberInstance(); + doubleFmt.setGroupingUsed(false); + doubleFmt.setMaximumIntegerDigits(1); + doubleFmt.setMinimumIntegerDigits(1); + doubleFmt.setMaximumFractionDigits(3); + doubleFmt.setMinimumFractionDigits(1); + doubleFmt.setRoundingMode(RoundingMode.HALF_UP); + + NumberFormat scaleDoubleFmt = NumberFormat.getNumberInstance(); + scaleDoubleFmt.setGroupingUsed(false); + scaleDoubleFmt.setMaximumIntegerDigits(1); + scaleDoubleFmt.setMinimumIntegerDigits(1); + scaleDoubleFmt.setMaximumFractionDigits(8); + scaleDoubleFmt.setMinimumFractionDigits(1); + scaleDoubleFmt.setRoundingMode(RoundingMode.HALF_UP); + + JLabel newMaxVLabel = new JLabel("New Max V"); + newMaxVLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_newMaxVLabel = new GridBagConstraints(); + gbc_newMaxVLabel.anchor = GridBagConstraints.EAST; + gbc_newMaxVLabel.insets = new Insets(3, 3, 3, 0); + gbc_newMaxVLabel.gridx = 0; + gbc_newMaxVLabel.gridy = 0; + cntlPanel.add(newMaxVLabel, gbc_newMaxVLabel); + + newMaxVFmtTextBox = new JFormattedTextField(doubleFmt); + newMaxVFmtTextBox.setPreferredSize(new Dimension(50, 18)); + newMaxVFmtTextBox.addPropertyChangeListener("value", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent e) { + Object source = e.getSource(); + if (source == newMaxVFmtTextBox) + updateNewMafScale(); + } + }); + GridBagConstraints gbc_newMaxV = new GridBagConstraints(); + gbc_newMaxV.anchor = GridBagConstraints.WEST; + gbc_newMaxV.insets = new Insets(3, 3, 3, 3); + gbc_newMaxV.gridx = 1; + gbc_newMaxV.gridy = 0; + cntlPanel.add(newMaxVFmtTextBox, gbc_newMaxV); + + JLabel minVLabel = new JLabel("Min V"); + minVLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_minVLabel = new GridBagConstraints(); + gbc_minVLabel.anchor = GridBagConstraints.EAST; + gbc_minVLabel.insets = new Insets(3, 3, 3, 0); + gbc_minVLabel.gridx = 2; + gbc_minVLabel.gridy = 0; + cntlPanel.add(minVLabel, gbc_minVLabel); + + minVFmtTextBox = new JFormattedTextField(doubleFmt); + minVFmtTextBox.setPreferredSize(new Dimension(50, 18)); + minVFmtTextBox.addPropertyChangeListener("value", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent e) { + Object source = e.getSource(); + if (source == minVFmtTextBox) + updateNewMafScale(); + } + }); + GridBagConstraints gbc_minVFmtTextBox = new GridBagConstraints(); + gbc_minVFmtTextBox.anchor = GridBagConstraints.WEST; + gbc_minVFmtTextBox.insets = new Insets(3, 3, 3, 3); + gbc_minVFmtTextBox.gridx = 3; + gbc_minVFmtTextBox.gridy = 0; + cntlPanel.add(minVFmtTextBox, gbc_minVFmtTextBox); + + JLabel maxVUnchangedLabel = new JLabel("Max Unchanged"); + maxVUnchangedLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_maxVUnchangedLabel = new GridBagConstraints(); + gbc_maxVUnchangedLabel.anchor = GridBagConstraints.EAST; + gbc_maxVUnchangedLabel.insets = new Insets(3, 3, 3, 0); + gbc_maxVUnchangedLabel.gridx = 4; + gbc_maxVUnchangedLabel.gridy = 0; + cntlPanel.add(maxVUnchangedLabel, gbc_maxVUnchangedLabel); + + maxVUnchangedFmtTextBox = new JFormattedTextField(doubleFmt); + maxVUnchangedFmtTextBox.setPreferredSize(new Dimension(50, 18)); + maxVUnchangedFmtTextBox.addPropertyChangeListener("value", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent e) { + Object source = e.getSource(); + if (source == maxVUnchangedFmtTextBox) + updateNewMafScale(); + } + }); + GridBagConstraints gbc_maxVUnchangedFmtTextBox = new GridBagConstraints(); + gbc_maxVUnchangedFmtTextBox.anchor = GridBagConstraints.WEST; + gbc_maxVUnchangedFmtTextBox.insets = new Insets(3, 3, 3, 3); + gbc_maxVUnchangedFmtTextBox.gridx = 5; + gbc_maxVUnchangedFmtTextBox.gridy = 0; + cntlPanel.add(maxVUnchangedFmtTextBox, gbc_maxVUnchangedFmtTextBox); + + JLabel modeDeltaVChangeLabel = new JLabel("Mode deltaV"); + modeDeltaVChangeLabel.setHorizontalAlignment(LEFT); + GridBagConstraints gbc_modeDeltaVChangeLabel = new GridBagConstraints(); + gbc_modeDeltaVChangeLabel.anchor = GridBagConstraints.EAST; + gbc_modeDeltaVChangeLabel.insets = new Insets(3, 3, 3, 0); + gbc_modeDeltaVChangeLabel.gridx = 6; + gbc_modeDeltaVChangeLabel.gridy = 0; + cntlPanel.add(modeDeltaVChangeLabel, gbc_modeDeltaVChangeLabel); + + modeDeltaVFmtTextBox = new JFormattedTextField(scaleDoubleFmt); + modeDeltaVFmtTextBox.setPreferredSize(new Dimension(80, 18)); + modeDeltaVFmtTextBox.setEditable(false); + modeDeltaVFmtTextBox.setBackground(new Color(210,210,210)); + GridBagConstraints gbc_modeDeltaVFmtTextBox = new GridBagConstraints(); + gbc_modeDeltaVFmtTextBox.anchor = GridBagConstraints.WEST; + gbc_modeDeltaVFmtTextBox.insets = new Insets(3, 3, 3, 3); + gbc_modeDeltaVFmtTextBox.gridx = 7; + gbc_modeDeltaVFmtTextBox.gridy = 0; + cntlPanel.add(modeDeltaVFmtTextBox, gbc_modeDeltaVFmtTextBox); + } + + private void createMafScalesScrollPane(JPanel dataPanel) { + JPanel mafPanel = new JPanel(); + + JScrollPane mafScrollPane = new JScrollPane(mafPanel); + mafScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + mafScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + GridBagConstraints gbl_mafScrollPane = new GridBagConstraints(); + gbl_mafScrollPane.insets = new Insets(3, 3, 3, 3); + gbl_mafScrollPane.anchor = GridBagConstraints.PAGE_START; + gbl_mafScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbl_mafScrollPane.ipady = 110; + gbl_mafScrollPane.weightx = 1.0; + gbl_mafScrollPane.gridx = 0; + gbl_mafScrollPane.gridy = 1; + + dataPanel.add(mafScrollPane, gbl_mafScrollPane); + + GridBagLayout gbl_mafPanelLayout = new GridBagLayout(); + gbl_mafPanelLayout.columnWidths = new int[]{0}; + gbl_mafPanelLayout.rowHeights = new int[]{0, 0}; + gbl_mafPanelLayout.columnWeights = new double[]{0.0, 1.0}; + gbl_mafPanelLayout.rowWeights = new double[]{0.0, 1.0}; + mafPanel.setLayout(gbl_mafPanelLayout); + + JScrollPane origMafScrollPane = new JScrollPane(); + origMafScrollPane.setBorder(BorderFactory.createEmptyBorder()); + origMafScrollPane.setViewportBorder(new TitledBorder(null, OrigMafTableName, TitledBorder.LEADING, TitledBorder.TOP, null, null)); + origMafScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + origMafScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + GridBagConstraints gbc_origMafScrollPane = new GridBagConstraints(); + gbc_origMafScrollPane.anchor = GridBagConstraints.PAGE_START; + gbc_origMafScrollPane.weightx = 1.0; + gbc_origMafScrollPane.insets = new Insets(0, 0, 0, 0); + gbc_origMafScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbc_origMafScrollPane.gridx = 0; + gbc_origMafScrollPane.gridy = 0; + mafPanel.add(origMafScrollPane, gbc_origMafScrollPane); + + JPanel origDataMafPanel = new JPanel(); + origMafScrollPane.setViewportView(origDataMafPanel); + GridBagLayout gbl_origDataMafPanel = new GridBagLayout(); + gbl_origDataMafPanel.columnWidths = new int[]{0, 0, 0}; + gbl_origDataMafPanel.rowHeights = new int[] {0, 0}; + gbl_origDataMafPanel.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE}; + gbl_origDataMafPanel.rowWeights = new double[]{0.0, 0.0}; + origDataMafPanel.setLayout(gbl_origDataMafPanel); + + JLabel origVoltLabel = new JLabel("volt"); + GridBagConstraints gbc_origVoltLabel = new GridBagConstraints(); + gbc_origVoltLabel.anchor = GridBagConstraints.PAGE_START; + gbc_origVoltLabel.insets = new Insets(1, 1, 1, 5); + gbc_origVoltLabel.weightx = 0; + gbc_origVoltLabel.weighty = 0; + gbc_origVoltLabel.gridx = 0; + gbc_origVoltLabel.gridy = 0; + origDataMafPanel.add(origVoltLabel, gbc_origVoltLabel); + + JLabel origGSLabel = new JLabel(" g/s"); + GridBagConstraints gbc_origGSLabel = new GridBagConstraints(); + gbc_origGSLabel.anchor = GridBagConstraints.PAGE_START; + gbc_origGSLabel.insets = new Insets(1, 1, 1, 5); + gbc_origGSLabel.weightx = 0; + gbc_origGSLabel.weighty = 0; + gbc_origGSLabel.gridx = 0; + gbc_origGSLabel.gridy = 1; + origDataMafPanel.add(origGSLabel, gbc_origGSLabel); + + origMafTable = new JTable(); + origMafTable.setColumnSelectionAllowed(true); + origMafTable.setCellSelectionEnabled(true); + origMafTable.setBorder(new LineBorder(new Color(0, 0, 0))); + origMafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + origMafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + origMafTable.setModel(new DefaultTableModel(2, MafTableColumnCount) { + private static final long serialVersionUID = -2179977830999030022L; + public boolean isCellEditable(int row, int column) { return false; }; + }); + origMafTable.setTableHeader(null); + Utils.initializeTable(origMafTable, ColumnWidth); + GridBagConstraints gbc_origMafTable = new GridBagConstraints(); + gbc_origMafTable.insets = new Insets(0, 0, 0, 0); + gbc_origMafTable.fill = GridBagConstraints.BOTH; + gbc_origMafTable.weightx = 1.0; + gbc_origMafTable.weighty = 1.0; + gbc_origMafTable.gridx = 1; + gbc_origMafTable.gridy = 0; + gbc_origMafTable.gridheight = 2; + origDataMafPanel.add(origMafTable, gbc_origMafTable); + excelAdapter.addTable(origMafTable, false, false, false, false, false, false, false, false, true); + + JScrollPane newMafScrollPane = new JScrollPane(); + newMafScrollPane.setBorder(BorderFactory.createEmptyBorder()); + newMafScrollPane.setViewportBorder(new TitledBorder(null, NewMafTableName, TitledBorder.LEADING, TitledBorder.TOP, null, null)); + newMafScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + newMafScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + GridBagConstraints gbc_newMafScrollPane = new GridBagConstraints(); + gbc_newMafScrollPane.anchor = GridBagConstraints.PAGE_START; + gbc_newMafScrollPane.weightx = 1.0; + gbc_newMafScrollPane.insets = new Insets(0, 0, 0, 0); + gbc_newMafScrollPane.fill = GridBagConstraints.HORIZONTAL; + gbc_newMafScrollPane.gridx = 0; + gbc_newMafScrollPane.gridy = 1; + mafPanel.add(newMafScrollPane, gbc_newMafScrollPane); + + JPanel newDataMafPanel = new JPanel(); + newMafScrollPane.setViewportView(newDataMafPanel); + GridBagLayout gbl_newDataMafPanel = new GridBagLayout(); + gbl_newDataMafPanel.columnWidths = new int[]{0, 0, 0}; + gbl_newDataMafPanel.rowHeights = new int[] {0, 0}; + gbl_newDataMafPanel.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE}; + gbl_newDataMafPanel.rowWeights = new double[]{0.0, 0.0}; + newDataMafPanel.setLayout(gbl_newDataMafPanel); + + JLabel newVoltLabel = new JLabel("volt"); + GridBagConstraints gbc_newVoltLabel = new GridBagConstraints(); + gbc_newVoltLabel.anchor = GridBagConstraints.PAGE_START; + gbc_newVoltLabel.insets = new Insets(1, 1, 1, 5); + gbc_newVoltLabel.weightx = 0; + gbc_newVoltLabel.weighty = 0; + gbc_newVoltLabel.gridx = 0; + gbc_newVoltLabel.gridy = 0; + newDataMafPanel.add(newVoltLabel, gbc_newVoltLabel); + + JLabel newGSLabel = new JLabel(" g/s"); + GridBagConstraints gbc_newGSLabel = new GridBagConstraints(); + gbc_newGSLabel.anchor = GridBagConstraints.PAGE_START; + gbc_newGSLabel.insets = new Insets(1, 1, 1, 5); + gbc_newGSLabel.weightx = 0; + gbc_newGSLabel.weighty = 0; + gbc_newGSLabel.gridx = 0; + gbc_newGSLabel.gridy = 1; + newDataMafPanel.add(newGSLabel, gbc_newGSLabel); + + newMafTable = new JTable() { + private static final long serialVersionUID = 7749582128758153892L; + public boolean isCellEditable(int row, int column) { if (row == 1) return false; return true; }; + }; + newMafTable.setColumnSelectionAllowed(true); + newMafTable.setCellSelectionEnabled(true); + newMafTable.setBorder(new LineBorder(new Color(0, 0, 0))); + newMafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + newMafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + newMafTable.setModel(new DefaultTableModel(2, MafTableColumnCount)); + newMafTable.setTableHeader(null); + Utils.initializeTable(newMafTable, ColumnWidth); + GridBagConstraints gbc_newMafTable = new GridBagConstraints(); + gbc_newMafTable.insets = new Insets(0, 0, 0, 0); + gbc_newMafTable.fill = GridBagConstraints.BOTH; + gbc_newMafTable.weightx = 1.0; + gbc_newMafTable.weighty = 1.0; + gbc_newMafTable.gridx = 1; + gbc_newMafTable.gridy = 0; + gbc_newMafTable.gridheight = 2; + newDataMafPanel.add(newMafTable, gbc_newMafTable); + newMafExcelAdapter.addTable(newMafTable, false, false, false, false, false, false, false, false, true); +/* + TableModelListener newTableListener = new TableModelListener() { + public void tableChanged(TableModelEvent tme) { + if (tme.getType() == TableModelEvent.UPDATE) { + int colCount = newMafTable.getColumnCount(); + corrMafData.clear(); + for (int i = 0; i < colCount; ++i) { + if (Pattern.matches(Utils.fpRegex, newMafTable.getValueAt(0, i).toString()) && + Pattern.matches(Utils.fpRegex, newMafTable.getValueAt(1, i).toString())) { + corrMafData.add(Double.valueOf(newMafTable.getValueAt(0, i).toString()), Double.valueOf(newMafTable.getValueAt(1, i).toString())); + } + else + break; + } + if (colCount != corrMafData.getItemCount()) + corrMafData.clear(); + corrMafData.fireSeriesChanged(); + } + } + }; + newMafTable.getModel().addTableModelListener(newTableListener); +*/ + + Action action = new AbstractAction() { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent e) { + recalculateNewGs(); + } + }; + + setNewMafTableCellListenerListener(new TableCellListener(newMafTable, action)); + } + + private void createGraghPanel(JPanel dataPanel) { + JFreeChart chart = ChartFactory.createScatterPlot(null, null, null, null, PlotOrientation.VERTICAL, false, true, false); + chart.setBorderVisible(true); + mafChartPanel = new MafChartPanel(chart, this); + + GridBagConstraints gbl_chartPanel = new GridBagConstraints(); + gbl_chartPanel.anchor = GridBagConstraints.PAGE_START; + gbl_chartPanel.insets = new Insets(3, 3, 3, 3); + gbl_chartPanel.fill = GridBagConstraints.BOTH; + gbl_chartPanel.weightx = 1.0; + gbl_chartPanel.weighty = 1.0; + gbl_chartPanel.gridx = 0; + gbl_chartPanel.gridy = 2; + dataPanel.add(mafChartPanel.getChartPanel(), gbl_chartPanel); + + XYSplineRenderer lineRenderer = new XYSplineRenderer(3); + lineRenderer.setUseFillPaint(true); + lineRenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator( + StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, + new DecimalFormat("0.00"), new DecimalFormat("0.00"))); + + Stroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, null, 0.0f); + lineRenderer.setSeriesStroke(0, stroke); + lineRenderer.setSeriesStroke(1, stroke); + lineRenderer.setSeriesPaint(0, new Color(201, 0, 0)); + lineRenderer.setSeriesPaint(1, new Color(0, 0, 255)); + lineRenderer.setSeriesShape(0, ShapeUtilities.createDiamond((float) 2.5)); + lineRenderer.setSeriesShape(1, ShapeUtilities.createUpTriangle((float) 2.5)); + + ValueAxis mafvDomain = new NumberAxis(XAxisName); + ValueAxis mafgsRange = new NumberAxis(YAxisName); + + XYSeriesCollection lineDataset = new XYSeriesCollection(); + + lineDataset.addSeries(currMafData); + lineDataset.addSeries(corrMafData); + + XYPlot plot = chart.getXYPlot(); + plot.setRangePannable(true); + plot.setDomainPannable(true); + plot.setDomainGridlinePaint(Color.DARK_GRAY); + plot.setRangeGridlinePaint(Color.DARK_GRAY); + plot.setBackgroundPaint(new Color(224, 224, 224)); + plot.setSeriesRenderingOrder(SeriesRenderingOrder.FORWARD); + + plot.setDataset(0, lineDataset); + plot.setRenderer(0, lineRenderer); + plot.setDomainAxis(0, mafvDomain); + plot.setRangeAxis(0, mafgsRange); + plot.mapDatasetToDomainAxis(0, 0); + plot.mapDatasetToRangeAxis(0, 0); + + + LegendTitle legend = new LegendTitle(plot.getRenderer()); + legend.setItemFont(new Font("Arial", 0, 10)); + legend.setPosition(RectangleEdge.TOP); + chart.addLegend(legend); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // CREATE USAGE TAB + ////////////////////////////////////////////////////////////////////////////////////// + + private void createUsageTab() { + JTextPane usageTextArea = new JTextPane(); + usageTextArea.setMargin(new Insets(10, 10, 10, 10)); + usageTextArea.setContentType("text/html"); + usageTextArea.setText(usage()); + usageTextArea.setEditable(false); + usageTextArea.setCaretPosition(0); + + JScrollPane textScrollPane = new JScrollPane(usageTextArea); + textScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + textScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + + add(textScrollPane, "
U
s
a
g
e
"); + } + + private String usage() { + ResourceBundle bundle; + bundle = ResourceBundle.getBundle("com.vgi.mafscaling.rescale"); + return bundle.getString("usage"); + } + + ////////////////////////////////////////////////////////////////////////////////////// + // WORK FUNCTIONS + ////////////////////////////////////////////////////////////////////////////////////// + + private boolean getMafTableData(JTable mafTable, ArrayList voltArray, ArrayList gsArray) { + String value; + for (int i = 0; i < mafTable.getColumnCount(); ++i) { + for (int j = 0; j < mafTable.getRowCount(); ++j) { + value = mafTable.getValueAt(j, i).toString(); + if (value.isEmpty()) + return true; + if (!Utils.validateDouble(value, j, i, mafTable.getName())) + return false; + } + voltArray.add(Double.parseDouble(mafTable.getValueAt(0, i).toString())); + gsArray.add(Double.parseDouble(mafTable.getValueAt(1, i).toString())); + } + if (voltArray.size() != gsArray.size()) { + JOptionPane.showMessageDialog(null, "Data sets (volt/gs) in " + mafTable.getName() + " have different length", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return false; + } + return true; + } + + private void calculateModeDeltaV() { + origVoltArray = new ArrayList(); + origGsArray = new ArrayList(); + if (!getMafTableData(origMafTable, origVoltArray, origGsArray) || origVoltArray.size() == 0) + return; + deltaVoltArray = new ArrayList(); + deltaVoltArray.add(0.0); + int i; + for (i = 1; i < origVoltArray.size(); ++i) + deltaVoltArray.add(origVoltArray.get(i) - origVoltArray.get(i - 1)); + modeDeltaV = Utils.mode(deltaVoltArray); + modeDeltaVFmtTextBox.setValue(modeDeltaV); + for (i = deltaVoltArray.size() - 1; i > 0; --i) { + if (modeDeltaV == deltaVoltArray.get(i)) { + // hack as if value being set is the same then change even is not sent and updateNewMafScale() is not triggered + maxVUnchangedFmtTextBox.setValue(null); + maxVUnchangedFmtTextBox.setValue(origVoltArray.get(i)); + return; + } + } + maxVUnchangedFmtTextBox.setValue(null); + } + + private void calculateNewGs(ArrayList newVoltArray, ArrayList newGsArray) { + TreeMap vgsTree = new TreeMap(); + for (int i = origVoltArray.size() - 1; i >= 0; --i) + vgsTree.put(origVoltArray.get(i), i); + Map.Entry kv; + double x0, y0, x, y, x1, y1; + for (int i = 1; i < newVoltArray.size(); ++i) { + x = newVoltArray.get(i); + kv = vgsTree.floorEntry(x); + if (kv == null) { + newGsArray.add(0.0); + continue; + } + x0 = kv.getKey(); + if (x0 == x) { + newGsArray.add(origGsArray.get(kv.getValue())); + continue; + } + y0 = origGsArray.get(kv.getValue()); + kv = vgsTree.ceilingEntry(x); + if (kv == null) { + newGsArray.add(0.0); + continue; + } + x1 = kv.getKey(); + y1 = origGsArray.get(kv.getValue()); + y = Utils.linearInterpolation(x, x0, x1, y0, y1); + newGsArray.add(y); + } + } + + private void recalculateNewGs() { + try { + if (origVoltArray.size() == 0 || origVoltArray.size() != origGsArray.size()) + return; + ArrayList newVoltArray = new ArrayList(); + ArrayList newGsArray = new ArrayList(); + newGsArray.add(origGsArray.get(0)); + for (int i = 0; i < newMafTable.getColumnCount(); ++i) { + if (Pattern.matches(Utils.fpRegex, newMafTable.getValueAt(0, i).toString())) + newVoltArray.add(Double.valueOf(newMafTable.getValueAt(0, i).toString())); + else + break; + } + if (newVoltArray.size() != origVoltArray.size()) + return; + calculateNewGs(newVoltArray, newGsArray); + for (int i = 0; i < newVoltArray.size(); ++i) + newMafTable.setValueAt(newGsArray.get(i), 1, i); + corrMafData.clear(); + setXYSeries(corrMafData, newVoltArray, newGsArray); + } + catch (Exception e) { + e.printStackTrace(); + logger.error(e); + } + } + + private void updateNewMafScale() { + try { + corrMafData.clear(); + currMafData.clear(); + Utils.clearTable(newMafTable); + + if (newMaxVFmtTextBox.getValue() == null || + maxVUnchangedFmtTextBox.getValue() == null || + minVFmtTextBox.getValue() == null || + origMafTable.getValueAt(0, 0).toString().isEmpty()) + return; + + if (origVoltArray.size() == 0 || origVoltArray.size() != origGsArray.size()) + return; + + if (origVoltArray.size() < 10) { + JOptionPane.showMessageDialog(null, "It looks like you have only partial original MAF scale table", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + + double newMafV = (((Number)newMaxVFmtTextBox.getValue()).doubleValue()); + if (newMafV < origVoltArray.get(0)) { + JOptionPane.showMessageDialog(null, "New Max V [" + newMafV + "] can't be lower than first MAF table value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + if (newMafV > origVoltArray.get(origVoltArray.size() - 1)) { + JOptionPane.showMessageDialog(null, "New Max V [" + newMafV + "] can't be higher than last MAF table value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + + double minV = (((Number)minVFmtTextBox.getValue()).doubleValue()); + if (minV <= origVoltArray.get(1)) { + JOptionPane.showMessageDialog(null, "Min V [" + minV + "] must be higher than second MAF table value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + if (minV > newMafV) { + JOptionPane.showMessageDialog(null, "Min V [" + minV + "] can't be higher than new MAF V value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + + double maxVUnch = (((Number)maxVUnchangedFmtTextBox.getValue()).doubleValue()); + if (maxVUnch <= minV) { + JOptionPane.showMessageDialog(null, "Max Unchanged [" + maxVUnch + "] must be higher than Min V value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + if (maxVUnch > newMafV) { + JOptionPane.showMessageDialog(null, "Max Unchanged [" + maxVUnch + "] can't be higher than new MAF V value", "Invalid Data", JOptionPane.ERROR_MESSAGE); + return; + } + + int i, j, z; + ArrayList newVoltArray = new ArrayList(); + ArrayList newGsArray = new ArrayList(); + newVoltArray.add(origVoltArray.get(0)); + newGsArray.add(origGsArray.get(0)); + + // Find first value greater than MinV from original scale, + // calculate mid-point and add them as second and third values to the new array. + // After that simply copy all original values up until Max Unchanged value. + boolean minFound = false; + double val; + for (i = 2; i < origVoltArray.size(); ++i) { + val = origVoltArray.get(i); + if (minFound) { + if (val <= maxVUnch) + newVoltArray.add(val); + else + break; + } + else if (minV <= val) { + newVoltArray.add((val - origVoltArray.get(0)) / 2.0 + origVoltArray.get(0)); + newVoltArray.add(val); + minFound = true; + } + } + int newMaxUnchIdx = newVoltArray.size() - 1; + + // Find avg % change per section in the original scale but for the same number of points as new scale + double pointsCount = origVoltArray.size() - newVoltArray.size(); + int sectionCount = (int)Math.ceil((double)pointsCount / (double)CellsPerSection); + List modDeltaList = deltaVoltArray.subList(newMaxUnchIdx, deltaVoltArray.size()); + double avgDelta = Utils.mean(modDeltaList); + double maxDelta = Collections.max(modDeltaList); + double minDelta = Collections.min(modDeltaList); + double avgSectionChange = (maxDelta - minDelta) / sectionCount; + double changePercent = (maxDelta - minDelta) / avgSectionChange; + + // Calculate delta per section + double delta; + ArrayList adj = new ArrayList(); + for (i = 0; i < sectionCount; ++i) + adj.add(avgDelta); + int end = (int) Math.floor(sectionCount / 2.0); + for (i = 0, j = sectionCount - 1; i < j; ++i, --j) { + delta = avgDelta / 100.00 * changePercent * (end - i); + adj.set(i, avgDelta - delta); + adj.set(j, avgDelta + delta); + } + // Apply diff for each cell of each section + for (i = newMaxUnchIdx + 1, j = 0, z = 0; i < origVoltArray.size(); ++i, ++j) { + double diff = adj.get(z); + if (j >= CellsPerSection) { + j = 0; + ++z; + diff = adj.get(z); + } + newVoltArray.add(newVoltArray.get(i - 1) + diff); + } + // Since the above diffs are based of the original scale change simply adjust the new values to fit the new scale + double corr = (newMafV - newVoltArray.get(newVoltArray.size() - 1)) / pointsCount; + for (i = newMaxUnchIdx + 1, j = 1; i < newVoltArray.size(); ++i, ++j) + newVoltArray.set(i, newVoltArray.get(i) + j * corr); + + calculateNewGs(newVoltArray, newGsArray); + + Utils.ensureColumnCount(newVoltArray.size(), newMafTable); + for (i = 0; i < newVoltArray.size(); ++i) { + newMafTable.setValueAt(newVoltArray.get(i), 0, i); + newMafTable.setValueAt(newGsArray.get(i), 1, i); + } + setXYSeries(currMafData, origVoltArray, origGsArray); + setXYSeries(corrMafData, newVoltArray, newGsArray); + setRanges(mafChartPanel); + } + catch (Exception e) { + logger.error(e); + } + } + + private boolean setXYSeries(XYSeries series, ArrayList xarr, ArrayList yarr) { + if (xarr.size() == 0 || xarr.size() != yarr.size()) + return false; + series.clear(); + for (int i = 0; i < xarr.size(); ++i) + series.add(xarr.get(i), yarr.get(i), false); + series.fireSeriesChanged(); + return true; + } + + private void setRanges(MafChartPanel chartPanel) { + double paddingX = currMafData.getMaxX() * 0.05; + double paddingY = currMafData.getMaxY() * 0.05; + chartPanel.getChartPanel().getChart().getXYPlot().getDomainAxis(0).setRange(currMafData.getMinX() - paddingX, currMafData.getMaxX() + paddingX); + chartPanel.getChartPanel().getChart().getXYPlot().getRangeAxis(0).setRange(currMafData.getMinY() - paddingY, currMafData.getMaxY() + paddingY); + } + + @Override + public void onMovePoint(int itemIndex, double valueX, double valueY) { + newMafTable.setValueAt(valueX, 0, itemIndex); + newMafTable.setValueAt(valueY, 1, itemIndex); + } + + @Override + public void actionPerformed(ActionEvent e) { + } + +} diff --git a/src/com/vgi/mafscaling/TableCellListener.java b/src/com/vgi/mafscaling/TableCellListener.java new file mode 100644 index 0000000..64a3616 --- /dev/null +++ b/src/com/vgi/mafscaling/TableCellListener.java @@ -0,0 +1,171 @@ +/* +* Open-Source tuning tools +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package com.vgi.mafscaling; + +import java.awt.event.*; +import javax.swing.*; +import java.beans.*; + +/* + * This class listens for changes made to the data in the table via the + * TableCellEditor. When editing is started, the value of the cell is saved + * When editing is stopped the new value is saved. When the oold and new + * values are different, then the provided Action is invoked. + * + * The source of the Action is a TableCellListener instance. + */ +public class TableCellListener implements PropertyChangeListener, Runnable +{ + private JTable table; + private Action action; + private int row; + private int column; + private Object oldValue; + private Object newValue; + + /** + * Create a TableCellListener. + * @param table the table to be monitored for data changes + * @param action the Action to invoke when cell data is changed + */ + public TableCellListener(JTable table, Action action) + { + this.table = table; + this.action = action; + table.addPropertyChangeListener(this); + } + + /** + * Create a TableCellListener with a copy of all the data relevant to + * the change of data for a given cell. + * @param row the row of the changed cell + * @param column the column of the changed cell + * @param oldValue the old data of the changed cell + * @param newValue the new data of the changed cell + */ + private TableCellListener(JTable table, int row, int column, Object oldValue, Object newValue) + { + this.table = table; + this.row = row; + this.column = column; + this.oldValue = oldValue; + this.newValue = newValue; + } + + /** + * Get the column that was last edited + * @return the column that was edited + */ + public int getColumn() + { + return column; + } + + /** + * Get the new value in the cell + * @return the new value in the cell + */ + public Object getNewValue() + { + return newValue; + } + + /** + * Get the old value of the cell + * @return the old value of the cell + */ + public Object getOldValue() + { + return oldValue; + } + + /** + * Get the row that was last edited + * @return the row that was edited + */ + public int getRow() + { + return row; + } + + /** + * Get the table of the cell that was changed + * @return the table of the cell that was changed + */ + public JTable getTable() + { + return table; + } + + /** + * Implement the PropertyChangeListener interface + */ + @Override + public void propertyChange(PropertyChangeEvent e) + { + // A cell has started/stopped editing + if ("tableCellEditor".equals(e.getPropertyName())) + { + if (table.isEditing()) + processEditingStarted(); + else + processEditingStopped(); + } + } + + /** + * Save information of the cell about to be edited + */ + private void processEditingStarted() + { + /* The invokeLater is necessary because the editing row and editing column of the table have + * not been set when the "tableCellEditor" PropertyChangeEvent is fired. + * This results in the "run" method being invoked + */ + SwingUtilities.invokeLater(this); + } + + /** + * Override for the above. + */ + @Override + public void run() + { + row = table.convertRowIndexToModel(table.getEditingRow()); + column = table.convertColumnIndexToModel(table.getEditingColumn()); + oldValue = table.getModel().getValueAt(row, column); + newValue = null; + } + + /** + * Update the Cell history when necessary + */ + private void processEditingStopped() + { + newValue = table.getModel().getValueAt(row, column); + // The data has changed, invoke the supplied Action + if (!newValue.equals(oldValue)) + { + // Make a copy of the data in case another cell starts editing while processing this change + TableCellListener tcl = new TableCellListener(getTable(), getRow(), getColumn(), getOldValue(), getNewValue()); + ActionEvent event = new ActionEvent(tcl, ActionEvent.ACTION_PERFORMED, ""); + action.actionPerformed(event); + } + } +} diff --git a/src/com/vgi/mafscaling/Utils.java b/src/com/vgi/mafscaling/Utils.java index df3fdd3..e2a1ac7 100644 --- a/src/com/vgi/mafscaling/Utils.java +++ b/src/com/vgi/mafscaling/Utils.java @@ -22,7 +22,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.TreeSet; import java.util.regex.Pattern; @@ -59,10 +61,14 @@ public static Color[] getColorArray(int numColors) { * @return array of unique gradient colors */ public static Color[] getColorArray(Color begin, Color end, int numColors) { - Color[] gradient = new Color[numColors]; + Color[] gradient; + if (numColors == 1) + gradient = new Color[3]; + else + gradient = new Color[numColors]; float[] hsv1 = Color.RGBtoHSB(begin.getRed(), begin.getGreen(), begin.getBlue(), null); float[] hsv2 = Color.RGBtoHSB(end.getRed(), end.getGreen(), end.getBlue(), null); - int a1 = begin.getAlpha() ; + int a1 = begin.getAlpha(); float h1 = hsv1[0] ; float s1 = hsv1[1]; float v1 = hsv1[2]; @@ -70,12 +76,14 @@ public static Color[] getColorArray(Color begin, Color end, int numColors) { float dh = hsv2[0] - h1; float ds = hsv2[1]- s1; float dv = hsv2[2] - v1; - for (int i = 0; i < gradient.length; ++i) { + for (int i = 0; i < gradient.length; ++i) { float rel = i / (float)(gradient.length - 1); - int rgb = Color.HSBtoRGB(h1 + dh * rel, s1 + ds * rel, v1 + dv * rel) ; - rgb +=(((int)(a1 + da * rel)) << 24) ; + int rgb = Color.HSBtoRGB(h1 + dh * rel, s1 + ds * rel, v1 + dv * rel); + rgb +=(((int)(a1 + da * rel)) << 24); gradient[i] = new Color(rgb); } + if (numColors == 1) + gradient = new Color[] { gradient[1] }; return gradient; } @@ -142,6 +150,25 @@ public static void colorTable(JTable table) { ((DefaultTableModel)table.getModel()).fireTableDataChanged(); } + /** + * Method sets gradient background color for first row and first column assuming those are headers. + * The table must have default renderer set as BgColorFormatRenderer + * @param table + */ + public static void colorTableHeaders(JTable table) { + Color[][] colorMatrix = new Color[table.getRowCount()][table.getColumnCount()]; + if (colorMatrix != null) { + for (int i = 0; i < colorMatrix.length; ++i) + colorMatrix[i][0] = Color.LIGHT_GRAY; + for (int i = 0; i < colorMatrix[0].length; ++i) + colorMatrix[0][i] = Color.LIGHT_GRAY; + BgColorFormatRenderer renderer = (BgColorFormatRenderer)table.getDefaultRenderer(Object.class); + if (renderer != null) + renderer.setColors(colorMatrix); + } + ((DefaultTableModel)table.getModel()).fireTableDataChanged(); + } + /** * Method clears the table cells and sets default value - an empty string * @param table @@ -184,7 +211,7 @@ public static void ensureColumnCount(int count, JTable table) { int[] minwidth = new int[count]; int[] maxwidth = new int[count]; int[] prefwidth = new int[count]; - int i; + int i, j; for (i = 0; i < table.getColumnCount(); ++i) { minwidth[i] = table.getColumnModel().getColumn(i).getMinWidth(); maxwidth[i] = table.getColumnModel().getColumn(i).getMaxWidth(); @@ -196,7 +223,7 @@ public static void ensureColumnCount(int count, JTable table) { minwidth[i] = minwidth[i - 1]; maxwidth[i] = maxwidth[i - 1]; prefwidth[i] = prefwidth[i - 1]; - for (int j = 0; j < table.getRowCount(); ++j) + for (j = 0; j < table.getRowCount(); ++j) table.setValueAt("", j, i); } for (i = 0; i < count; ++i) { @@ -213,8 +240,12 @@ public static void ensureColumnCount(int count, JTable table) { */ public static void ensureRowCount(int count, JTable table) { DefaultTableModel model = (DefaultTableModel)table.getModel(); - while (count > table.getRowCount()) + int i, j; + for (i = table.getRowCount(); i < count; ++i) { model.addRow(new Object[table.getColumnCount()]); + for (j = 0; j < table.getColumnCount(); ++j) + table.setValueAt("", i, j); + } } /** @@ -324,4 +355,116 @@ public static int closestValueIndex(double val, ArrayList list) { return index; } + /** + * Method returns a linearly interpolated value + * @param x is X value you want to interpolate at + * @param x1 is X value for previous point + * @param x2 is X value for following point + * @param y1 is Y value for previous point + * @param y2 is Y value for following point + * @return Y interpolated value + */ + public static double linearInterpolation(double x, double x1, double x2, double y1, double y2) { + return (x1 == x2) ? 0.0 : (y1 + (x - x1) * (y2 - y1) / (x2 - x1)); + } + + /** + * Method rounds input number by a specific step + * @param input + * @param step + * @return + */ + public static double round(double input, double step) { + return ((Math.round(input / step)) * step); + } + + /** + * Calculate mean of the array + * @param data + * @return + */ + public static double mean(List data) { + double val = 0; + for (int i = 0; i < data.size(); ++i) + val += data.get(i); + return val / data.size(); + } + + /** + * Calculate median of the array + * @param data + * @return + */ + public static double median(List data) { + double val = 0; + Collections.sort(data); + int mid = data.size() / 2; + if (data.size() % 2 == 1) + val = data.get(mid); + else + val = (data.get(mid - 1) + data.get(mid)) / 2; + return val; + } + + /** + * Calculate mode of the array + * @param data + * @return + */ + public static double mode(List data) { + ArrayList modes = new ArrayList(); + HashMap countMap = new HashMap(); + int max = -1; + Integer count; + for (Double n : data) { + count = countMap.get(n); + if (count == null) + count = 0; + count += 1; + countMap.put(n, count); + if (count > max) + max = count; + } + for (Map.Entry entry : countMap.entrySet()) { + if (entry.getValue() == max) + modes.add(entry.getKey()); + } + Collections.sort(modes); + return modes.get(modes.size() / 2); + } + + /** + * Calculate range of the array + * @param data + * @return + */ + public static double range(List data) { + return Collections.max(data) - Collections.min(data); + } + + /** + * Calculate variance of the array + * @param data + * @return + */ + public static double variance(List data) { + double mean = mean(data); + double sum = 0; + double diff = 0; + for (Double d : data) { + diff = d - mean; + sum += (diff * diff); + } + return sum / data.size(); + } + + /** + * Calculate standard deviation of the array + * @param data + * @return + */ + public static double standardDeviation(List data) { + return Math.sqrt(variance(data)); + } + } diff --git a/src/com/vgi/mafscaling/closed_loop.properties b/src/com/vgi/mafscaling/closed_loop.properties index 180ce57..ce0cd54 100644 --- a/src/com/vgi/mafscaling/closed_loop.properties +++ b/src/com/vgi/mafscaling/closed_loop.properties @@ -9,6 +9,7 @@ The usage guide is based on wrxsti-l's post. Big thanks to all who have been act

The Total Correction % is then calculated for each cell as average of mean and mode of Correction Error values.
\

The correction will only be applied to cells where count of corrections is more than 30.
\

The corrected g/sec is calculated from the Total Correction % and the current g/sec as current_gsec * ((tot_corr% / 100) + 1).
\ +

Also, please note that collected data and correction applied may be greater than the full MAF scaling voltage and thus several of the first table cell would be uncorrected. In this case the first calculated Total Correction % value is applied to all cells prior to it except the first cell.\
\

Usage:

\ You won't nail the calibration in one shot, so rinse and repeat until you're happy with the scaling. Also, it is VERY important that you collect data at a constant temperature. If you collect data at 30F one day and then 60F next week, it will totally screw up the process.

\ @@ -33,13 +34,13 @@ The usage guide is based on wrxsti-l's post. Big thanks to all who have been act
  • Open your tune in RomRaider.
  • \
  • Expand "Fueling - Primary Open Loop" tables group and copy "Primary Open Loop Fueling" table by clicking "Edit"->"Copy Table" into the first cell of "Primary Open Loop Fueling" table on the tool.
  • \
  • Click "Validate" button to make sure all is fine (validation is done on setting the table as default and saving it or on submitting the table so it's not required).
  • \ -
  • Most likely the Primary Open Loop Fueling table will stay the same, so for autoloading next time you can click on "Set Default" and save this table in a new file. If you do have another tune with a different Primary Open Loop Fueling table, you can click on "Clear" to clear out table, then paste data from second Primary Open Loop Fueling table, click on "Set Default" and save this table in a new file. To switch between different Primary Open Loop Fueling tables saved in files click on "Clear" to clear table, then click on "Load" to load data from file, then click on "Set Default" so that next time it will be loaded automatically.
  • \ +
  • Most likely the Primary Open Loop Fueling table will stay the same, so for auto-loading next time you can click on "Set Default" and save this table in a new file. If you do have another tune with a different Primary Open Loop Fueling table, you can click on "Clear" to clear out table, then paste data from second Primary Open Loop Fueling table, click on "Set Default" and save this table in a new file. To switch between different Primary Open Loop Fueling tables saved in files click on "Clear" to clear table, then click on "Load" to load data from file, then click on "Set Default" so that next time it will be loaded automatically.
  • \ \
  • Now you have three ways to proceed:
    \
      \
    • If you have used external tools (eg some spreadsheet) and have filtered Closed Loop data you can simply copy/paste that data into corresponding columns' first cell.
    • \
    • If you have saved data from previous run and would like to see the graphs or modify some data manually you can load that run using "Load" button.
    • \ -
    • If you just ecu log file(s) then click on "Load Log" button, select your log file, select asked columns from log file AND set desired filters values when prompted. Please pay attention to filters on some columns to filter out noisy data. Once the log file is processed you should see closed loop data populated in the table. Repeat this procedure to load more log files - the data will be appended to the table.
    • \ +
    • If you just log file(s) then click on "Load Log" button, select your log file, select asked columns from log file AND set desired filters values when prompted. Please pay attention to filters on some columns to filter out noisy data. Once the log file is processed you should see closed loop data populated in the table. Repeat this procedure to load more log files - the data will be appended to the table.
    • \
    \
  • \
  • At this point you can save all the input data for future reference or re-scaling by clicking on "Save" button at the top bar.
  • \ @@ -67,17 +68,20 @@ The usage guide is based on wrxsti-l's post. Big thanks to all who have been act
      \
    • quick - straight values copy
      \
        \ -
      1. Simply copy the newly generated "Airflow (g/s)" values from results table into the "MAF Sensor Scaling" table in your tuning tool (eg RommRaider).
      2. \ +
      3. Simply copy the newly generated "Airflow (g/s)" values from results table into the "MAF Sensor Scaling" table in your tuning tool (eg RomRaider).
      4. \
      \
    • \ -
    • slow - apply smoothing or manual changes. To apply smoothing to the Corrected Maf Scaling curve or to make manual changes (only for people who really know what they are doing!!!) click on "Smoothing" checkbox. The chart view will display smoothed MAF curve together with current MAF curve slope and the smoothed MAF curve slope. At the bottom of the screen there is resulting MAF scaling table with controls that allow making changes to the table (and thus the MAF curve). Row 1 of the result table corresponds to "MAF Sensor (volts)" and row 2 of the "Smoothing" tab corresponds to "Airflow (g/s)".
      \ +
    • slow (optional) - apply smoothing or manual changes. To apply smoothing to the Corrected Maf Scaling curve or to make manual changes (only for people who really know what they are doing!!!) click on "Smoothing" checkbox. The chart view will display Smoothed Maf curve(blue) together with Current MAF curve slope line(red) and the Smoothed MAF curve slope line(green). At the bottom of the screen there is resulting MAF scaling table with controls that allow making changes to the table (and thus the MAF curve). Row 1 of the result table corresponds to "MAF Sensor (volts)" and row 2 of the "Smoothing" tab corresponds to "Airflow (g/s)".\ +

      Slope line is a line of MAF Curve slope values. Slope value is a number which is used to indicate the steepness of a curve at a particular point. Slope value for MAF Curve is calculated between each 2 points of the curve as: \ +

      Code:
      slope = (y2 - y1) / (x2 - x1)
      Since the MAF curve is non-linear you see that the slope of the curve changes as you move along it.

      \
        \
      1. All smoothing changes are immediate and can be seen on the smoothing graph.
      2. \
      3. If you have overdone smoothing, simply click on "Reset" button to set the smoothed curve back to corrected curve.
      4. \
      5. You can apply smoothing by selecting the cells in MAF scaling table and the smoothing degree and then clicking "Apply" button. Smoothing degree is simply a moving window size where 3 - uses 1 cell to left and right, 5 - uses 2 cells to left and right, and 7 - uses 3 cells to left and right.
      6. \
      7. Please note that due to how smoothing algorithm works one, two, or three (depending on smoothing degree you chose) the first cells and last cell will not get modified. You can raise/lower those manually if needed by the same value the cell after or cell before was modified.
      8. \
      9. BE CAREFULL not to smooth too much or you will end up making your MAF scaling worse. General suggestion is to apply either degree "3" or "5" once.
      10. \ -
      11. In addition, you can manually smoothen values by either dragging the smoothed curve's point or by applying +/-0.10 to the highlighted cells using buttons on the left from the result table. Keep in mind that selection all cells will raise or lower the whole curve. Thus you can raise certain parts of the curve by selecting appropriate cells.
      12. \ +
      13. In addition, you can manually smooth values by either dragging the smoothed curve slope line's point or by applying custom +/- value to the highlighted cells using buttons on the left from the result table. Keep in mind that selection of all cells will raise or lower the whole curve. Thus you can raise certain parts of the curve by selecting appropriate cells.
      14. \ +
      15. Finally, there is a compare screen. You copy original MAF scaling and the new MAF scaling and see change % difference. You can also manually alter change % difference if you feel it's needed and it will modify you new MAF scaling.
      16. \
      17. Once you have smoothed the data to your liking, copy the data to your "MAF Sensor Scaling" table.
      18. \
      \
    • \ diff --git a/src/com/vgi/mafscaling/logstats.properties b/src/com/vgi/mafscaling/logstats.properties new file mode 100644 index 0000000..52e1810 --- /dev/null +++ b/src/com/vgi/mafscaling/logstats.properties @@ -0,0 +1,21 @@ +usage=\ +\ +

      Credits:

      \ +This tool is similar to BrzEdit Log Viewer.\ +

      Logic:

      \ +

      The tool is supposed to help in analyzing the \ +log data and visualizing data distribution by applying different statistics methods and filters.\ +

      Usage:

      \ +
        \ +
      1. Select log file to be analyzed.
      2. \ +
      3. Select X-Axis column from available columns in log file (eg Engine Load).
      4. \ +
      5. Select Y-Axis column from available columns in log file (eg Engine Speed).
      6. \ +
      7. Select Data column to be analyzed from available columns in log file (eg AFR).
      8. \ +
      9. Set X-Axis rounding - 'step' (eg 0.1 for Engine Load) or set the fixed scaling values for X-Axis column (please note that setting step takes priority over fixed scale values).
      10. \ +
      11. Set Y-Axis rounding - 'step' (eg 200 for Engine Speed) or set the fixed scaling values for Y-Axis column (please note that setting step takes priority over fixed scale values).
      12. \ +
      13. Select statistics method for analyzes (eg Mean).
      14. \ +
      15. Optionally set the filter comparison method and value to be compared against the Data column values (eg AFR < 16). Please note that for equality the Data column values are rounded \ +to the same number of decimal points as the filter input value.
      16. \ +
      17. Click on 'GO' button.
      18. \ +
      \ +\ diff --git a/src/com/vgi/mafscaling/open_loop.properties b/src/com/vgi/mafscaling/open_loop.properties index 4c5c6c2..fad78ef 100644 --- a/src/com/vgi/mafscaling/open_loop.properties +++ b/src/com/vgi/mafscaling/open_loop.properties @@ -5,7 +5,7 @@ This tool is originally based on BadNoodle's spreadsheet, however changes were m The usage guide is based on wrxsti-l's post. Big thanks to all who have been active in MAF scaling discussions and providing methodology - williaty, Rene2.5RS, and others.

      A special 'thank you' to Td-d and Kodename47 for providing feedback.
      \

      Logic:

      \

      Logged MAF voltage and AFR % error are fitted to your current MAF scaling and new scaling is suggested.
      \ -

      The raw AFR is calculated as wideband AFR / ((100 - (LTFT + STFT)) / 100). The AFR % error is calculated as (raw AFR - interpolated AFR) / interpolated AFR * 100), where interpolated AFR is interpolated from "Primary Open Loop Fueling" table or (raw AFR - commanded AFR) / commanded AFR * 100) if you log "Commanded Afr" and don't set "Primary Open Loop Fueling" table in the program.
      \ +

      The raw AFR is calculated as wideband AFR / ((100 - (LTFT + STFT)) / 100). The AFR % error is calculated as (raw AFR - interpolated AFR) / interpolated AFR * 100), where interpolated AFR is interpolated from "Primary Open Loop Fueling" table or (raw AFR - commanded AFR) / commanded AFR * 100) if you log "Commanded Afr" and set the column in settings.
      \

      The 'advantage' is that since a lot of the data points are between cells, it distributes the % error between cells based on how far your data point is from the cell value.
      \

      Say your maf was scaled like:
      \

      \ @@ -20,6 +20,7 @@ The idea is by distribution the data between cells you get a smoother scaling.Code:
      \
      MAFv: 0   1   2  3 4 5
      g/s: 0 2.5 7.5 0 0 0
      \ \ +Also, please note that collected data and correction applied may be less than the full MAF scaling voltage. In this case error correction is also applied to those table cells after the one corrected. The % error for those correction is calculated as average of 10 highest correction for the last cell. \
      \

      Usage:

      \ You really need to nail CL portion of your MAF scaling first!

      \ @@ -38,15 +39,15 @@ The idea is by distribution the data between cells you get a smoother scaling.Open your tune in RomRaider.\
    • Expand "Fueling - Primary Open Loop" tables group and copy "Primary Open Loop Fueling" table by clicking "Edit"->"Copy Table" into the first cell of "Primary Open Loop Fueling" table on the tool.
    • \
    • Click "Validate" button to make sure all is fine (validation is done on setting the table as default and saving it or on submitting the table so it's not required).
    • \ -
    • Most likely the "Primary Open Loop Fueling" table will stay the same, so for autoloading next time you can click on "Set Default" and save this table in a new file. If you do have another tune with a different "Primary Open Loop Fueling" table, you can click on "Clear" to clear out table, then paste data from second "Primary Open Loop Fueling" table, click on "Set Default" and save this table in a new file. To switch between different Primary Open Loop Fueling tables saved in files click on "Clear" to clear table, then click on "Load" to load data from file, then click on "Set Default" so that next time it will be loaded automatically.
    • \ +
    • Most likely the "Primary Open Loop Fueling" table will stay the same, so for auto-loading next time you can click on "Set Default" and save this table in a new file. If you do have another tune with a different "Primary Open Loop Fueling" table, you can click on "Clear" to clear out table, then paste data from second "Primary Open Loop Fueling" table, click on "Set Default" and save this table in a new file. To switch between different Primary Open Loop Fueling tables saved in files click on "Clear" to clear table, then click on "Load" to load data from file, then click on "Set Default" so that next time it will be loaded automatically.
    • \
    \ \ -
  • \If you did log "Commanded Afr" then you must clear "Primary Open Loop Fueling" table by clicking "POL Fueling" button and making sure that the table is empty. If it is not empty and can click on "Clear" button, and then on "OK" button. If you are logging "Commanded Afr" then also make sure that you don't have a default file set. Otherwise the "Primary Open Loop Fueling" table and interpolated values are used by default.
  • \ +
  • \If you did log "Commanded Afr" then you must set the column name in settings screen while loading log file. If that column is empty then "Primary Open Loop Fueling" table is used and values are interpolated from table (much slower).
  • \
  • Now you have three ways to proceed:
    \
      \
    • If you have WOT "MAF voltage" and "AFR Error %" from Airboy's spreadsheet then simply copy/paste "MAF voltage" and "AFR Error %" data into corresponding columns' first cell. You can go up to 12 WOT pulls.
    • \
    • If you have saved data from previous run and would like to see the graphs or modify some data manually you can load that run using "Load" button.
    • \ -
    • If you just have ecu log file(s) with WOT pulls, then click on "Load Log" button, select your log file with WOT runs, select asked columns from log file AND set desired filters values when prompted. Please pay attention to filters on some columns to filter out noisy data. Once the log file is processed you should see WOT pull tables on the tool populated with data. If you have more log files just repeat this procedure until all 12 tables are loaded.
    • \ +
    • If you just have log file(s) with WOT pulls, then click on "Load Log" button, select your log file with WOT runs, select asked columns from log file AND set desired filters values when prompted. Please pay attention to filters on some columns to filter out noisy data. Once the log file is processed you should see WOT pull tables on the tool populated with data. If you have more log files just repeat this procedure until all 12 tables are loaded.
    • \
    \
  • \
  • At this point you can save all the input data for future reference or re-scaling by clicking on "Save" button at the top bar.
  • \ @@ -70,17 +71,20 @@ The idea is by distribution the data between cells you get a smoother scaling.\
  • quick - straight values copy
    \
      \ -
    1. Simply copy the newly generated "Airflow (g/s)" values from results table into the "MAF Sensor Scaling" table in your tuning tool (eg RommRaider).
    2. \ +
    3. Simply copy the newly generated "Airflow (g/s)" values from results table into the "MAF Sensor Scaling" table in your tuning tool (eg RomRaider).
    4. \
    \
  • \ -
  • slow - apply smoothing or manual changes. To apply smoothing to the Corrected Maf Scaling curve or to make manual changes (only for people who really know what they are doing!!!) click on "Smoothing" checkbox. The chart view will display Smoothed Maf curve together with current MAF curve slope versus the smoothed MAF curve slope. At the bottom of the screen there is resulting MAF scaling table with controls that allow making changes to the table (and thus the MAF curve). Row 1 of the result table corresponds to "MAF Sensor (volts)" and row 2 of the "Smoothing" tab corresponds to "Airflow (g/s)".
    \ +
  • slow (optional) - apply smoothing or manual changes. To apply smoothing to the Corrected Maf Scaling curve or to make manual changes (only for people who really know what they are doing!!!) click on "Smoothing" checkbox. The chart view will display Smoothed Maf curve(blue) together with Current MAF curve slope line(red) and the Smoothed MAF curve slope line(green). At the bottom of the screen there is resulting MAF scaling table with controls that allow making changes to the table (and thus the MAF curve). Row 1 of the result table corresponds to "MAF Sensor (volts)" and row 2 of the "Smoothing" tab corresponds to "Airflow (g/s)".
    \ +

    Slope line is a line of MAF Curve slope values. Slope value is a number which is used to indicate the steepness of a curve at a particular point. Slope value for MAF Curve is calculated between each 2 points of the curve as: \ +

    Code:
    slope = (y2 - y1) / (x2 - x1)
    Since the MAF curve is non-linear you see that the slope of the curve changes as you move along it.

    \
      \
    1. All smoothing changes are immediate and can be seen on the smoothing graph.
    2. \
    3. If you have overdone smoothing, simply click on "Reset" button to set the smoothed curve back to corrected curve.
    4. \
    5. You can apply smoothing by selecting the cells in MAF scaling table and the smoothing degree and then clicking "Apply" button. Smoothing degree is simply a moving window size where 3 - uses 1 cell to left and right, 5 - uses 2 cells to left and right, and 7 - uses 3 cells to left and right.
    6. \
    7. Please note that due to how smoothing algorithm works one, two, or three (depending on smoothing degree you chose) the first cells and last cell will not get modified. You can raise/lower those manually if needed by the same value the cell after or cell before was modified.
    8. \
    9. BE CAREFULL not to smooth too much or you will end up making your MAF scaling worse. General suggestion is to apply either degree "3" or "5" once.
    10. \ -
    11. In addition, you can manually smoothen values by either dragging the smoothed curve's point or by applying +/-0.10 to the highlighted cells using buttons on the left from the result table. Keep in mind that selection all cells will raise or lower the whole curve. Thus you can raise certain parts of the curve by selecting appropriate cells.
    12. \ +
    13. In addition, you can manually smooth values by either dragging the smoothed curve slope line's point or by applying custom +/- value to the highlighted cells using buttons on the left from the result table. Keep in mind that selection of all cells will raise or lower the whole curve. Thus you can raise certain parts of the curve by selecting appropriate cells.
    14. \ +
    15. Finally, there is a compare screen. You copy original MAF scaling and the new MAF scaling and see change % difference. You can also manually alter change % difference if you feel it's needed and it will modify you new MAF scaling.
    16. \
    17. Once you have smoothed the data to your liking, copy the data to your "MAF Sensor Scaling" table.
    18. \
    \
  • \ diff --git a/src/com/vgi/mafscaling/rescale.properties b/src/com/vgi/mafscaling/rescale.properties new file mode 100644 index 0000000..5c4c362 --- /dev/null +++ b/src/com/vgi/mafscaling/rescale.properties @@ -0,0 +1,32 @@ +usage=\ +\ +

    Credits:

    \ +This tool development has been driven by Kodename47.\ +

    Logic:

    \ +

    The tool is about changing the MAF scale but keeping the curve the same. As with all mapping it's a resolution trade off. \ +The larger the scale, the less accurate that it is. If you're NA, the likelihood that the maximum voltage you are logging \ +at max RPM is little over 4.1/4.2v. Therefore the scale going all the way to 5v is a waste of potentially better resolution. \ +The same applies to several points at the start of the curve. You can only use the same amount of data points so by closing \ +the gaps, you're improving the accuracy due the way the ECU interpolates the cells. So by lowering maximum V value and removing \ +some unused V down low the new scale increases resolution for those cell where difference between points starts increasing and \ +therefore much more accurate.\ +

    The logic is as follow:
    \ +

    First the point grater or equal to Min V is found and mid point is calculated between that point and the first point - reference point. \ +This is done in case your MAFv drops into the low range of the MAF scaling, the three points should provide a fair resolution.\ +

    Mode of spacing between points is calculated and Max Unchanged value determined as the point after which spacing starts increasing from Mode. \ +The Max Unchanged value though can be reset from suggested by the user.\ +

    Once the original MAF scale is pasted the new MAF voltage scale is calculated where first point is unchanged, second point is the mid point between first and third point, \ +third point is point greater or equal to Min V, then original values are copied until Max Unchanged point, and finally rescaled points calculated based on original \ +scaling % increase between sections of two points.\ +

    After the new MAF Voltage values are calculated, for each MAF Voltage cell a new GS value is interpolated from the original curve for the new MafV using linear interpolation.\ +

    Usage:

    \ +
      \ +
    1. Put the new maximum desired voltage into the text box.
    2. \ +
    3. Put the new minimum voltage into the text box.
    4. \ +
    5. Paste original MAF scale into the top table.
    6. \ +
    7. Modify Unchanged MaxV if desired or paste different MafV values into new MAF scaling or modify manually to adjust the curve if needed.
    8. \ +
    9. Copy the data to your "MAF Sensor Scaling" table.
    10. \ +
    11. Once you have copied your new MAF scaling values from the result table to your ROM, save a new ROM with the changes made.
    12. \ +
    13. Flash the modified ROM to your ECU.
    14. \ +
    \ +\