mirror of https://github.com/rusefi/rusefi-1.git
auto-sync
This commit is contained in:
parent
2b604e6e10
commit
11e9f44132
|
@ -5,6 +5,8 @@
|
|||
*
|
||||
* This config overrides some values of the default configuration which is set by setDefaultConfiguration() method
|
||||
*
|
||||
* set_engine_type 10
|
||||
*
|
||||
* ROVER_V8 = 10
|
||||
*
|
||||
* @date Jun 27, 2014
|
||||
|
|
|
@ -10,4 +10,8 @@ public class Fields {
|
|||
public static final Field GLOBAL_FUEL_CORRECTION = new Field(@@globalFuelCorrection@@, FieldType.FLOAT);
|
||||
public static final Field ENGINE_SNIFFER_SIZE = new Field(@@engineChartSize@@, FieldType.INT);
|
||||
public static final Field isDigitalChartEnabled = new Field(@@isEngineChartEnabled@@, FieldType.BIT, 5);
|
||||
public static final Field triggerType = new Field(516, FieldType.INT, "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth");
|
||||
public static final Field triggerInputPins1 = new Field(912, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
public static final Field triggerInputPins2 = new Field(916, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
public static final Field triggerInputPins3 = new Field(920, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
// This file was generated by Version2Header
|
||||
// Wed Apr 22 21:56:21 EDT 2015
|
||||
// Sat Apr 25 11:16:30 EDT 2015
|
||||
#ifndef VCS_VERSION
|
||||
#define VCS_VERSION "7887"
|
||||
#define VCS_VERSION "7900"
|
||||
#endif
|
||||
|
|
|
@ -10,19 +10,30 @@ public class Field {
|
|||
private static final String BIT_VALUE_PREFIX = "bit @";
|
||||
private static final String INT_VALUE_PREFIX = "int @";
|
||||
private static final String FLOAT_VALUE_PREFIX = "float @";
|
||||
public static final int NO_BIT_OFFSET = -1;
|
||||
|
||||
private final int offset;
|
||||
private final FieldType type;
|
||||
private final int bitOffset;
|
||||
private final String[] options;
|
||||
|
||||
public Field(int offset, FieldType type) {
|
||||
this(offset, type, -1);
|
||||
this(offset, type, NO_BIT_OFFSET);
|
||||
}
|
||||
|
||||
public Field(int offset, FieldType type, String... options) {
|
||||
this(offset, type, NO_BIT_OFFSET, options);
|
||||
}
|
||||
|
||||
public Field(int offset, FieldType type, int bitOffset) {
|
||||
this(offset, type, bitOffset, null);
|
||||
}
|
||||
|
||||
public Field(int offset, FieldType type, int bitOffset, String[] options) {
|
||||
this.offset = offset;
|
||||
this.type = type;
|
||||
this.bitOffset = bitOffset;
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
public String setCommand() {
|
||||
|
@ -41,6 +52,10 @@ public class Field {
|
|||
return offset;
|
||||
}
|
||||
|
||||
public String[] getOptions() {
|
||||
return options;
|
||||
}
|
||||
|
||||
public int getBitOffset() {
|
||||
return bitOffset;
|
||||
}
|
||||
|
|
|
@ -10,4 +10,8 @@ public class Fields {
|
|||
public static final Field GLOBAL_FUEL_CORRECTION = new Field(552, FieldType.FLOAT);
|
||||
public static final Field ENGINE_SNIFFER_SIZE = new Field(1504, FieldType.INT);
|
||||
public static final Field isDigitalChartEnabled = new Field(1488, FieldType.BIT, 5);
|
||||
public static final Field triggerType = new Field(516, FieldType.INT, "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth");
|
||||
public static final Field triggerInputPins1 = new Field(912, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
public static final Field triggerInputPins2 = new Field(916, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
public static final Field triggerInputPins3 = new Field(920, FieldType.INT, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID");
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import com.rusefi.io.LinkManager;
|
|||
import com.rusefi.maintenance.VersionChecker;
|
||||
import com.rusefi.ui.*;
|
||||
import com.rusefi.ui.engine.EngineSnifferPanel;
|
||||
import com.rusefi.ui.fsio.FlexibleControls;
|
||||
import com.rusefi.ui.logview.LogViewer;
|
||||
import com.rusefi.ui.storage.Node;
|
||||
import com.rusefi.ui.util.DefaultExceptionHandler;
|
||||
|
@ -32,7 +31,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
|
|||
* @see com.rusefi.StartupFrame
|
||||
*/
|
||||
public class Launcher {
|
||||
public static final int CONSOLE_VERSION = 20150423;
|
||||
public static final int CONSOLE_VERSION = 20150425;
|
||||
public static final boolean SHOW_STIMULATOR = false;
|
||||
private static final String TAB_INDEX = "main_tab";
|
||||
protected static final String PORT_KEY = "port";
|
||||
|
@ -87,10 +86,9 @@ public class Launcher {
|
|||
tabbedPane.addTab("Engine Sniffer", engineSnifferPanel.getPanel());
|
||||
tabbedPane.addTab("Sensor Sniffer", new AnalogChartPanel().getPanel());
|
||||
|
||||
|
||||
tabbedPane.addTab("Table Editor", tableEditor);
|
||||
|
||||
tabbedPane.addTab("LE controls", new FlexibleControls().getPanel());
|
||||
// tabbedPane.addTab("LE controls", new FlexibleControls().getPanel());
|
||||
|
||||
// tabbedPane.addTab("ADC", new AdcPanel(new BooleanInputsModel()).createAdcPanel());
|
||||
if (SHOW_STIMULATOR && !LinkManager.isStimulationMode && !LinkManager.isLogViewerMode(port)) {
|
||||
|
@ -100,7 +98,9 @@ public class Launcher {
|
|||
}
|
||||
// tabbedPane.addTab("live map adjustment", new Live3DReport().getControl());
|
||||
tabbedPane.add("Messages", new MessagesPane(getConfig().getRoot().getChild("messages")).getContent());
|
||||
tabbedPane.add("Wizards", new Wizard().createPane());
|
||||
// tabbedPane.add("Wizards", new Wizard().createPane());
|
||||
|
||||
tabbedPane.add("Settings", new SettingsTab().createPane());
|
||||
|
||||
|
||||
if (!LinkManager.isLogViewerMode(port)) {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.rusefi;
|
||||
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
|
@ -34,11 +36,11 @@ public class StimulationInputs {
|
|||
content.add(tpsRange.getContent());
|
||||
|
||||
content.add(new JLabel("EL resistance"));
|
||||
content.add(wrap(elResistance2));
|
||||
content.add(UiUtils.wrap(elResistance2));
|
||||
|
||||
JButton button = ecuStimulator.createButton();
|
||||
if (Launcher.SHOW_STIMULATOR)
|
||||
content.add(wrap(button));
|
||||
content.add(UiUtils.wrap(button));
|
||||
}
|
||||
|
||||
public double getEngineLoadMin() {
|
||||
|
@ -69,12 +71,6 @@ public class StimulationInputs {
|
|||
return (int) cltRange.getTo();
|
||||
}
|
||||
|
||||
public static JComponent wrap(JComponent component) {
|
||||
JPanel result = new JPanel();
|
||||
result.add(component);
|
||||
return result;
|
||||
}
|
||||
|
||||
public JPanel getContent() {
|
||||
return content;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.rusefi.ui;
|
||||
|
||||
import com.rusefi.StimulationInputs;
|
||||
import com.rusefi.io.CommandQueue;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
|
||||
|
@ -12,6 +11,7 @@ import java.util.LinkedHashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
|
||||
|
||||
|
@ -33,7 +33,7 @@ public class RecentCommands {
|
|||
}
|
||||
};
|
||||
|
||||
private boolean reentrant;
|
||||
private final AtomicBoolean reentrant = new AtomicBoolean();
|
||||
|
||||
private final JScrollPane messagesScroll = new JScrollPane(content, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class RecentCommands {
|
|||
CommandQueue.getInstance().addListener(new CommandQueue.CommandQueueListener() {
|
||||
@Override
|
||||
public void onCommand(String command) {
|
||||
if (!reentrant)
|
||||
if (!reentrant.get())
|
||||
add(command);
|
||||
}
|
||||
});
|
||||
|
@ -97,7 +97,7 @@ public class RecentCommands {
|
|||
sorted.addAll(entries.keySet());
|
||||
|
||||
for (Entry entry : sorted) {
|
||||
content.add(createButton(entry));
|
||||
content.add(createButton(reentrant, entry.command));
|
||||
}
|
||||
}
|
||||
UiUtils.trueRepaint(content.getParent());
|
||||
|
@ -107,21 +107,21 @@ public class RecentCommands {
|
|||
getConfig().getRoot().setProperty(KEY, pack());
|
||||
}
|
||||
|
||||
private JComponent createButton(final Entry entry) {
|
||||
JButton button = new JButton(entry.command);
|
||||
public static JComponent createButton(final AtomicBoolean reentrant, final String command) {
|
||||
JButton button = new JButton(command);
|
||||
button.setBorder(BorderFactory.createEmptyBorder(3, 5, 0, 5));
|
||||
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
reentrant = true;
|
||||
int timeout = CommandQueue.getTimeout(entry.command);
|
||||
CommandQueue.getInstance().write(entry.command, timeout);
|
||||
reentrant = false;
|
||||
reentrant.set(true);
|
||||
int timeout = CommandQueue.getTimeout(command);
|
||||
CommandQueue.getInstance().write(command, timeout);
|
||||
reentrant.set(false);
|
||||
}
|
||||
});
|
||||
|
||||
return StimulationInputs.wrap(button);
|
||||
return UiUtils.wrap(button);
|
||||
}
|
||||
|
||||
public Component getContent() {
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package com.rusefi.ui;
|
||||
|
||||
import com.rusefi.config.Fields;
|
||||
import com.rusefi.ui.config.EnumConfigField;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
public class SettingsTab {
|
||||
private final JPanel panel = new JPanel(new GridLayout(3, 3));
|
||||
|
||||
public SettingsTab() {
|
||||
panel.add(UiUtils.wrap(new EnumConfigField(Fields.triggerType, "trigger type").getContent()));
|
||||
panel.add(UiUtils.wrap(new EnumConfigField(Fields.triggerInputPins1, "trigger #1 input").getContent()));
|
||||
panel.add(UiUtils.wrap(new EnumConfigField(Fields.triggerInputPins2, "trigger #2 input").getContent()));
|
||||
panel.add(UiUtils.wrap(new EnumConfigField(Fields.triggerInputPins3, "trigger #3 input").getContent()));
|
||||
|
||||
panel.add(UiUtils.wrap(RecentCommands.createButton(new AtomicBoolean(), "writeconfig")));
|
||||
}
|
||||
|
||||
public Component createPane() {
|
||||
return panel;
|
||||
}
|
||||
}
|
|
@ -87,8 +87,6 @@ public class Wizard {
|
|||
.setNext(new SendCommand("subscribe " + OutputChannel.RunningOrderingTriggerError.getProtocolId()))
|
||||
.setNext(new SendCommand("set_analog_chart_freq " + 1))
|
||||
.setNext(new WaitForZeroRpm())
|
||||
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@ class BaseConfigField {
|
|||
protected void createUi(String topLabel, Component control) {
|
||||
JPanel center = new JPanel(new FlowLayout());
|
||||
|
||||
control.setEnabled(false);
|
||||
|
||||
/**
|
||||
* I guess a nice status enum is coming soon
|
||||
*/
|
||||
|
|
|
@ -23,9 +23,9 @@ public class BitConfigField extends BaseConfigField {
|
|||
String expectedPrefix = "bit @" + field.getOffset() + "/" + field.getBitOffset() + " is ";
|
||||
if (message.startsWith(expectedPrefix) && message.length() == expectedPrefix.length() + 1) {
|
||||
message = message.substring(expectedPrefix.length());
|
||||
System.out.println("Bit arrived " + message);
|
||||
Boolean value = message.equals("1");
|
||||
ec = true;
|
||||
view.setEnabled(true);
|
||||
view.setSelected(value);
|
||||
onValueArrived();
|
||||
ec = false;
|
||||
|
|
|
@ -23,6 +23,7 @@ public class ConfigField extends BaseConfigField {
|
|||
if (Field.isIntValueMessage(message) || Field.isFloatValueMessage(message)) {
|
||||
Pair<Integer, ?> p = Field.parseResponse(message);
|
||||
if (p != null && p.first == field.getOffset()) {
|
||||
view.setEnabled(true);
|
||||
view.setText("" + p.second);
|
||||
onValueArrived();
|
||||
}
|
||||
|
|
|
@ -7,16 +7,28 @@ import com.rusefi.core.Pair;
|
|||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class EnumConfigField extends BaseConfigField {
|
||||
private final JComboBox<String> view = new JComboBox<>();
|
||||
private boolean ec;
|
||||
private final Map<String, Integer> ordinals = new HashMap<>();
|
||||
|
||||
public EnumConfigField(final Field field, String caption, String... options) {
|
||||
public EnumConfigField(final Field field, String caption) {
|
||||
this(field, caption, field.getOptions());
|
||||
}
|
||||
|
||||
public EnumConfigField(final Field field, String caption, final String... options) {
|
||||
super(field);
|
||||
|
||||
for (String option : options)
|
||||
view.addItem(option);
|
||||
int ordinal = 0;
|
||||
for (String option : options) {
|
||||
ordinals.put(option, ordinal++);
|
||||
|
||||
if (!"invalid".equalsIgnoreCase(option))
|
||||
view.addItem(option);
|
||||
}
|
||||
|
||||
createUi(caption, view);
|
||||
|
||||
|
@ -26,9 +38,10 @@ public class EnumConfigField extends BaseConfigField {
|
|||
if (Field.isIntValueMessage(message)) {
|
||||
Pair<Integer, ?> p = Field.parseResponse(message);
|
||||
if (p != null && p.first == field.getOffset()) {
|
||||
int value = (Integer) p.second;
|
||||
int ordinal = (Integer) p.second;
|
||||
ec = true;
|
||||
view.setSelectedIndex(value);
|
||||
view.setEnabled(true);
|
||||
view.setSelectedItem(options[ordinal]);
|
||||
onValueArrived();
|
||||
ec = false;
|
||||
}
|
||||
|
@ -41,7 +54,9 @@ public class EnumConfigField extends BaseConfigField {
|
|||
public void actionPerformed(ActionEvent e) {
|
||||
if (ec)
|
||||
return;
|
||||
sendValue(field, Integer.toString(view.getSelectedIndex()));
|
||||
String value = (String) view.getSelectedItem();
|
||||
int ordinal = ordinals.get(value);
|
||||
sendValue(field, Integer.toString(ordinal));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -89,4 +89,10 @@ public class UiUtils {
|
|||
public static void setTwoLineToolTip(JComponent component, String line1, String line2) {
|
||||
component.setToolTipText("<html>" + line1 + "<br>" + line2 + "</html>");
|
||||
}
|
||||
|
||||
public static JComponent wrap(JComponent component) {
|
||||
JPanel result = new JPanel();
|
||||
result.add(component);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue