diff --git a/java_console/.idea/runConfigurations/Launcher_COM16.xml b/java_console/.idea/runConfigurations/Launcher_COM16.xml
index 3dc0de5a35..dd011e14a9 100644
--- a/java_console/.idea/runConfigurations/Launcher_COM16.xml
+++ b/java_console/.idea/runConfigurations/Launcher_COM16.xml
@@ -3,6 +3,7 @@
+
diff --git a/java_console/inifile/src/main/java/com/opensr5/ini/field/ArrayIniField.java b/java_console/inifile/src/main/java/com/opensr5/ini/field/ArrayIniField.java
index 7ff48667d7..77b34fb0af 100644
--- a/java_console/inifile/src/main/java/com/opensr5/ini/field/ArrayIniField.java
+++ b/java_console/inifile/src/main/java/com/opensr5/ini/field/ArrayIniField.java
@@ -98,7 +98,7 @@ public class ArrayIniField extends IniField {
String size = list.get(4);
String unit = list.get(5);
String digits = list.get(10);
- double multiplier = Double.parseDouble(list.get(6));
+ double multiplier = IniField.parseDouble(list.get(6));
size = size.replaceAll("[\\]\\[x]", " ").trim();
String dimentions[] = size.split(" ");
diff --git a/java_console/inifile/src/main/java/com/opensr5/ini/field/IniField.java b/java_console/inifile/src/main/java/com/opensr5/ini/field/IniField.java
index cfe23557e9..f204e84cf9 100644
--- a/java_console/inifile/src/main/java/com/opensr5/ini/field/IniField.java
+++ b/java_console/inifile/src/main/java/com/opensr5/ini/field/IniField.java
@@ -12,6 +12,17 @@ public abstract class IniField {
this.offset = offset;
}
+ public static double parseDouble(String s) {
+ // todo: real implementation
+ s = s.replaceAll("\\{", "").replaceAll("\\}", "");
+ int dividerIndex = s.indexOf('/');
+ if (dividerIndex != -1) {
+ return Double.parseDouble(s.substring(0, dividerIndex)) / Double.parseDouble(s.substring(dividerIndex + 1));
+ } else {
+ return Double.parseDouble(s);
+ }
+ }
+
public String getName() {
return name;
}
diff --git a/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java b/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java
index d4228f8b6a..b588c1c3bc 100644
--- a/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java
+++ b/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java
@@ -96,7 +96,7 @@ public class ScalarIniField extends IniField {
String digits = list.get(9);
String unit = list.get(4);
- double multiplier = Double.parseDouble(list.get(5));
+ double multiplier = IniField.parseDouble(list.get(5));
return new ScalarIniField(name, offset, unit, type, multiplier, digits);
}
diff --git a/java_console/inifile/src/test/java/com/opensr5/ini/test/IniFileReaderTest.java b/java_console/inifile/src/test/java/com/opensr5/ini/test/IniFileReaderTest.java
index a79925aa60..bebc66b75e 100644
--- a/java_console/inifile/src/test/java/com/opensr5/ini/test/IniFileReaderTest.java
+++ b/java_console/inifile/src/test/java/com/opensr5/ini/test/IniFileReaderTest.java
@@ -6,6 +6,7 @@ import com.opensr5.ini.IniFileReader;
import com.opensr5.ini.RawIniFile;
import com.opensr5.ini.field.ArrayIniField;
import com.opensr5.ini.field.EnumIniField;
+import com.opensr5.ini.field.IniField;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
@@ -21,6 +22,14 @@ import static org.junit.Assert.assertNotNull;
public class IniFileReaderTest {
private static final String PAGE_READ = " pageReadCommand = \"X\", \"X\", \"X\"\n\n\n\n";
private static final String SIGNATURE_UNIT_TEST = " signature = \"unit test\"\n";
+ private static final double EPS = 0.00001;
+
+ @Test
+ public void parseExpressions() {
+ assertEquals(0.1, IniField.parseDouble("{1/10}"), EPS);
+ assertEquals(0.1, IniField.parseDouble("{0.1}"), EPS);
+ assertEquals(0.1, IniField.parseDouble("0.1"), EPS);
+ }
@Test
public void testSplitWithEmptyUnits() {
diff --git a/java_console/models/src/main/java/com/rusefi/rusEFIVersion.java b/java_console/models/src/main/java/com/rusefi/rusEFIVersion.java
index a103786bde..f4b9ceb185 100644
--- a/java_console/models/src/main/java/com/rusefi/rusEFIVersion.java
+++ b/java_console/models/src/main/java/com/rusefi/rusEFIVersion.java
@@ -6,7 +6,7 @@ import java.net.URL;
import java.util.concurrent.atomic.AtomicReference;
public class rusEFIVersion {
- public static final int CONSOLE_VERSION = 20200724;
+ public static final int CONSOLE_VERSION = 20200829;
public static AtomicReference firmwareVersion = new AtomicReference<>("N/A");
public static long classBuildTimeMillis() {