From 3f82e2cbe4d899248d4cfdaa10cd89c70edb932d Mon Sep 17 00:00:00 2001 From: integralfx Date: Tue, 2 Jul 2019 13:43:33 +1000 Subject: [PATCH] XMP should be fully functional --- SPDEditorGUI.java | 162 ++++++++++++++++++++++++++++++---------------- XMP.java | 5 ++ spdeditor.png | Bin 14652 -> 36317 bytes 3 files changed, 113 insertions(+), 54 deletions(-) diff --git a/SPDEditorGUI.java b/SPDEditorGUI.java index 129fa43..6f6365e 100644 --- a/SPDEditorGUI.java +++ b/SPDEditorGUI.java @@ -1,6 +1,4 @@ -import java.awt.Color; -import java.awt.Font; -import java.awt.GridLayout; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -12,9 +10,11 @@ import javax.swing.*; import javax.swing.border.Border; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; public class SPDEditorGUI extends JFrame { - private JButton btnXMPset; + private JButton btnSet, btnXMPset; private JComboBox cboXMPNum; private JLabel lblSPDFile, lblXMP; private JRadioButton rdoTime, rdoCycles, rdoXMPTime, rdoXMPCycles; @@ -22,10 +22,11 @@ public class SPDEditorGUI extends JFrame { private JTabbedPane tabbedPane; private JTextField txtFrequencyns, txtFrequency, txtXMPmtbDividend, txtXMPmtbDivisor, txtXMPmtbns, txtXMPFrequencyValue, txtXMPFrequencyns, txtXMPFrequency; - private LinkedHashMap nameTextFieldMap, XMPnameTextFieldMap; + private LinkedHashMap timingsTextFieldMap, XMPtimingsTextFieldMap; private LinkedHashMap clCheckBoxMap, XMPclCheckBoxMap; private LinkedHashMap voltageCheckBoxMap; private SPDEditor spd; + private final String VERSION = "Version 1.0.0", DISCORD = "∫ntegral#7834"; private XMP xmp; public static void main(String[] args) { @@ -39,7 +40,10 @@ public SPDEditorGUI() { tabbedPane = new JTabbedPane(); addSPDTab(); + setSPDControlsEnabled(false); addXMPTab(); + setXMPControlsEnabled(false); + addAboutTab(); add(tabbedPane); setDefaultCloseOperation(EXIT_ON_CLOSE); @@ -58,19 +62,8 @@ private void addSPDTab() { panel.add(lblSPDFile); panelSPD.add(panel); - // TODO: Only allow the user to select certain frequencies - Frequency[] frequencies = { - new Frequency(1200/3.0), // 400 - new Frequency(1600/3.0), // 533.33... - new Frequency(2000/3.0), // 666.66... - new Frequency(2400/3.0), // 800 - new Frequency(2800/3.0), // 933.33... - new Frequency(3200/3.0) // 1066.66... - }; panel = new JPanel(); panel.add(new JLabel("Frequency:")); - //JComboBox cboFrequencies = new JComboBox<>(frequencies); - //panel.add(cboFrequencies); txtFrequency = new JTextField(5); txtFrequency.addActionListener(new ActionListener() { @Override @@ -86,7 +79,7 @@ public void actionPerformed(ActionEvent e) { double f = Double.valueOf(s); if (f < 400) valid = false; else { - txtFrequencyns.setText(String.format("%.3f", 1000/f)); + txtFrequencyns.setText(String.format("%.3f ns", 1000/f)); /* * Timings are calculated from the cycle time (ns), * which don't change when changing frequency. @@ -125,10 +118,10 @@ else if (rdoTime.isSelected()) { panel = new JPanel(); rdoCycles = new JRadioButton("Scale from cycles (ticks)"); rdoCycles.setToolTipText("Keeps the same amount of cycles in ticks when changing frequency."); + rdoCycles.setSelected(true); panel.add(rdoCycles); rdoTime = new JRadioButton("Scale from time (ns)"); rdoTime.setToolTipText("Keeps the same absolute time in ns when changing frequency."); - rdoTime.setSelected(true); panel.add(rdoTime); ButtonGroup group = new ButtonGroup(); group.add(rdoCycles); @@ -186,7 +179,7 @@ public void actionPerformed(ActionEvent e) { "tCL", "tRCD", "tRP", "tRAS", "tRC","tRFC", "tRRD", "tFAW", "tWR", "tWTR", "tRTP" }; - nameTextFieldMap = new LinkedHashMap<>(); + timingsTextFieldMap = new LinkedHashMap<>(); for (String name : timingNames) { panel = new JPanel(); @@ -231,22 +224,22 @@ else if (name.equals("tCL")) { } }); panel.add(txtTicks); - JTextField txtns = new JTextField(5); + JTextField txtns = new JTextField(6); txtns.setEditable(false); panel.add(txtns); timingsPanel.add(panel); - nameTextFieldMap.put(name, new TextFieldPair(txtTicks, txtns)); + timingsTextFieldMap.put(name, new TextFieldPair(txtTicks, txtns)); } panel = new JPanel(); - JButton btnSet = new JButton("Set"); + btnSet = new JButton("Set"); btnSet.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (spd == null) showErrorMsg("Please open an SPD file."); - for (Map.Entry entry : nameTextFieldMap.entrySet()) { + for (Map.Entry entry : timingsTextFieldMap.entrySet()) { JTextField txt = entry.getValue().left; String name = entry.getKey(), input = txt.getText(); @@ -284,7 +277,10 @@ else if (name.equals("tCL")) { timingsPanel.setBorder(BorderFactory.createTitledBorder(b, "Timings")); panelSPD.add(timingsPanel); - tabbedPane.addTab("SPD", panelSPD); + // default layout manager is FlowLayout, which will only use as much space as necessary + panel = new JPanel(); + panel.add(panelSPD); + tabbedPane.addTab("SPD", panel); } private void addXMPTab() { @@ -307,8 +303,10 @@ public void actionPerformed(ActionEvent e) { panel = new JPanel(); panel.add(new JLabel("MTB:")); txtXMPmtbDividend = new JTextField(2); + txtXMPmtbDividend.setToolTipText("Dividend for MTB."); panel.add(txtXMPmtbDividend); txtXMPmtbDivisor = new JTextField(2); + txtXMPmtbDivisor.setToolTipText("Divisor for MTB."); panel.add(txtXMPmtbDivisor); txtXMPmtbns = new JTextField(5); txtXMPmtbns.setEditable(false); @@ -342,6 +340,7 @@ else if (xmp == null) panel = new JPanel(); panel.add(new JLabel("Frequency:")); txtXMPFrequencyValue = new JTextField(2); + txtXMPFrequencyValue.setToolTipText("This value is multiplied by the MTB to derive the frequency."); txtXMPFrequencyValue.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -357,22 +356,22 @@ else if (xmp == null) } }); panel.add(txtXMPFrequencyValue); - txtXMPFrequency = new JTextField(7); - txtXMPFrequency.setEditable(false); - panel.add(txtXMPFrequency); txtXMPFrequencyns = new JTextField(5); txtXMPFrequencyns.setEditable(false); panel.add(txtXMPFrequencyns); + txtXMPFrequency = new JTextField(7); + txtXMPFrequency.setEditable(false); + panel.add(txtXMPFrequency); panelXMP.add(panel); panel = new JPanel(); - rdoXMPTime = new JRadioButton("Scale from time (ns)"); - rdoXMPTime.setToolTipText("Keeps the same absolute time in ns when changing frequency."); - rdoXMPTime.setSelected(true); - panel.add(rdoXMPTime); rdoXMPCycles = new JRadioButton("Scale from cycles (ticks)"); rdoXMPCycles.setToolTipText("Keeps the same amount of cycles in ticks when changing frequency."); + rdoXMPCycles.setSelected(true); panel.add(rdoXMPCycles); + rdoXMPTime = new JRadioButton("Scale from time (ns)"); + rdoXMPTime.setToolTipText("Keeps the same absolute time in ns when changing frequency."); + panel.add(rdoXMPTime); ButtonGroup group = new ButtonGroup(); group.add(rdoXMPTime); group.add(rdoXMPCycles); @@ -386,6 +385,14 @@ else if (xmp == null) SpinnerListModel model = new SpinnerListModel(voltages.toArray(new String[0])); spnXMPVoltage = new JSpinner(model); ((JSpinner.DefaultEditor)spnXMPVoltage.getEditor()).getTextField().setEditable(false); + spnXMPVoltage.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + XMP.Profile selected = xmp.getProfile(cboXMPNum.getSelectedIndex()); + double value = Double.valueOf((String)spnXMPVoltage.getValue()); + selected.setVoltage((int)Math.round(100 * value)); + } + }); panel.add(spnXMPVoltage); panelXMP.add(panel); @@ -429,7 +436,7 @@ else if (spd.getXMP() == null) "tCL", "tRCD", "tRP", "tRAS", "tRC","tRFC", "tRRD", "tFAW", "tWR", "tWTR", "tRTP", "tCWL", "tREFI" }; - XMPnameTextFieldMap = new LinkedHashMap<>(); + XMPtimingsTextFieldMap = new LinkedHashMap<>(); for (String name : timingNames) { panel = new JPanel(); @@ -486,7 +493,7 @@ else if (name.equals("tCL")) { panel.add(txtns); timingsPanel.add(panel); - XMPnameTextFieldMap.put(name, new TextFieldPair(txtTicks, txtns)); + XMPtimingsTextFieldMap.put(name, new TextFieldPair(txtTicks, txtns)); } panel = new JPanel(); btnXMPset = new JButton("Set"); @@ -498,7 +505,7 @@ public void actionPerformed(ActionEvent e) { else if (spd.getXMP() == null) showErrorMsg("No XMPs found."); else { - for (Map.Entry entry : XMPnameTextFieldMap.entrySet()) { + for (Map.Entry entry : XMPtimingsTextFieldMap.entrySet()) { JTextField txt = entry.getValue().left; String name = entry.getKey(), input = txt.getText(); @@ -543,6 +550,27 @@ else if (name.equals("tCL")) { tabbedPane.addTab("XMP", panelXMP); } + private void addAboutTab() { + JPanel panelAbout = new JPanel(); + panelAbout.setLayout(new BoxLayout(panelAbout, BoxLayout.Y_AXIS)); + + JPanel panel = new JPanel(); + panel.add(new JLabel(VERSION)); + panelAbout.add(panel); + + panel = new JPanel(); + panel.add(new JLabel("Discord:")); + JTextField txtDiscord = new JTextField(DISCORD); + txtDiscord.setEditable(false); + panel.add(txtDiscord); + panelAbout.add(panel); + + // wrap in a GridBagLayout to centre content + panel = new JPanel(new GridBagLayout()); + panel.add(panelAbout); + tabbedPane.addTab("About", panel); + } + private void addMenuBar() { JMenuBar menuBar = new JMenuBar(); @@ -621,8 +649,10 @@ private void updateSPDTab() { if (spd == null) return; SwingUtilities.invokeLater(() -> { + setSPDControlsEnabled(true); + double f = spd.getFrequency(); - txtFrequencyns.setText(String.format("%.3f", 1000/f)); + txtFrequencyns.setText(String.format("%.3f ns", 1000/f)); txtFrequency.setText(String.format("%.2f", f)); LinkedHashMap voltages = spd.getVoltages(); @@ -645,10 +675,10 @@ private void updateSPDTab() { private void updateSPDTimingsText() { SwingUtilities.invokeLater(() -> { for (Map.Entry e : spd.getTimings().entrySet()) { - if (nameTextFieldMap.containsKey(e.getKey())) { - TextFieldPair pair = nameTextFieldMap.get(e.getKey()); + if (timingsTextFieldMap.containsKey(e.getKey())) { + TextFieldPair pair = timingsTextFieldMap.get(e.getKey()); pair.left.setText(e.getValue().toString()); - pair.right.setText(String.format("%.3f", 1000/spd.getFrequency()*e.getValue())); + pair.right.setText(String.format("%.3f ns", 1000/spd.getFrequency()*e.getValue())); } } }); @@ -700,18 +730,46 @@ private void updateXMPTab() { }); } + private void setSPDControlsEnabled(boolean enable) { + SwingUtilities.invokeLater(() -> { + txtFrequency.setEnabled(enable); + rdoCycles.setEnabled(enable); + rdoTime.setEnabled(enable); + + for (Map.Entry e : voltageCheckBoxMap.entrySet()) + e.getValue().setEnabled(enable); + + for (Map.Entry e : clCheckBoxMap.entrySet()) + e.getValue().setEnabled(enable); + + for (Map.Entry e : timingsTextFieldMap.entrySet()) + e.getValue().left.setEnabled(enable); + + btnSet.setEnabled(enable); + }); + } + private void setXMPControlsEnabled(boolean enable) { SwingUtilities.invokeLater(() -> { + cboXMPNum.setEnabled(enable); + + txtXMPmtbDividend.setEnabled(enable); + txtXMPmtbDivisor.setEnabled(enable); + txtXMPmtbDividend.setEnabled(enable); + + txtXMPFrequencyValue.setEnabled(enable); txtXMPFrequencyns.setEnabled(enable); txtXMPFrequency.setEnabled(enable); + rdoXMPTime.setEnabled(enable); rdoXMPCycles.setEnabled(enable); + spnXMPVoltage.setEnabled(enable); for (Map.Entry e : XMPclCheckBoxMap.entrySet()) e.getValue().setEnabled(enable); - for (Map.Entry e : XMPnameTextFieldMap.entrySet()) { + for (Map.Entry e : XMPtimingsTextFieldMap.entrySet()) { e.getValue().left.setEnabled(enable); e.getValue().right.setEnabled(enable); } @@ -727,7 +785,15 @@ private void updateXMPFrequencyText() { int input = Integer.valueOf(txtXMPFrequencyValue.getText()), num = cboXMPNum.getSelectedIndex(); XMP.Profile selected = xmp.getProfiles()[num]; - selected.settCKmin((byte)input); + + if (rdoCycles.isSelected()) { + LinkedHashMap t = selected.getTimings(); + selected.settCKmin((byte)input); + selected.setTimings(t); + } + else if (rdoTime.isSelected()) { + selected.settCKmin((byte)input); + } double freqns = input * selected.getMTB().getTime(); txtXMPFrequency.setText(String.format("%.2f MHz", 1000 / freqns)); @@ -744,8 +810,8 @@ private void updateXMPTimingsText() { if (selected == null) return; for (Map.Entry e : selected.getTimings().entrySet()) { - if (XMPnameTextFieldMap.containsKey(e.getKey())) { - TextFieldPair pair = XMPnameTextFieldMap.get(e.getKey()); + if (XMPtimingsTextFieldMap.containsKey(e.getKey())) { + TextFieldPair pair = XMPtimingsTextFieldMap.get(e.getKey()); double time = 1000 / selected.getFrequency() * e.getValue(); pair.left.setText(e.getValue().toString()); pair.right.setText(String.format("%.3f ns", time)); @@ -779,16 +845,4 @@ public TextFieldPair(JTextField l, JTextField r) { left = l; right = r; } -} - -class Frequency { - public final double frequency; - public Frequency(double f) { - frequency = f; - } - - @Override - public String toString() { - return String.format("%.2f", frequency); - } } \ No newline at end of file diff --git a/XMP.java b/XMP.java index a7f2787..90215e5 100644 --- a/XMP.java +++ b/XMP.java @@ -53,6 +53,11 @@ public XMP(byte[] bytes) throws IllegalArgumentException { public Profile[] getProfiles() { return profile; } + public Profile getProfile(int index) { + if (index < 0 || index > 1) return null; + return profile[index]; + } + public void setProfile(int index, Profile p) { if (index >= 0 && index <= 1 && profile != null) { profile[index] = p; diff --git a/spdeditor.png b/spdeditor.png index 8f9ba4566cf771f0e1fa91fe49b4702c31488d69..d42381fd38981d0ee5c5961726b1699067e9ec84 100644 GIT binary patch literal 36317 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 LrLrrtTAgl4FOzL79ptE-P=JiKG_7Rdk;5BVxW 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 MNhOJVv6t`u7hlBY`~Uy| literal 14652 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%0A;>R37ih&j+C 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