flexible DFU file name

This commit is contained in:
rusefi 2020-05-22 01:41:01 -04:00
parent f4169b0819
commit d7b4b746c6
2 changed files with 17 additions and 9 deletions

View File

@ -62,13 +62,18 @@ public class IniFileModel {
return this; return this;
} }
private String findMetaInfoFile(String iniFilePath) { private static String findMetaInfoFile(String iniFilePath) {
File dir = new File(iniFilePath); return findFile(iniFilePath, RUSEFI_INI_PREFIX, RUSEFI_INI_SUFFIX);
}
@Nullable
public static String findFile(String fileDirectory, String prefix, String suffix) {
File dir = new File(fileDirectory);
if (!dir.isDirectory()) if (!dir.isDirectory())
return null; return null;
for (String file : dir.list()) { for (String file : dir.list()) {
if (file.startsWith(RUSEFI_INI_PREFIX) && file.endsWith(RUSEFI_INI_SUFFIX)) if (file.startsWith(prefix) && file.endsWith(suffix))
return iniFilePath + File.separator + file; return fileDirectory + File.separator + file;
} }
return null; return null;
} }

View File

@ -1,5 +1,6 @@
package com.rusefi.maintenance; package com.rusefi.maintenance;
import com.opensr5.ini.IniFileModel;
import com.rusefi.FileLog; import com.rusefi.FileLog;
import com.rusefi.Launcher; import com.rusefi.Launcher;
import com.rusefi.Timeouts; import com.rusefi.Timeouts;
@ -7,7 +8,6 @@ import com.rusefi.autodetect.PortDetector;
import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.config.generated.Fields; import com.rusefi.config.generated.Fields;
import com.rusefi.io.IoStream; import com.rusefi.io.IoStream;
import com.rusefi.io.serial.BaudRateHolder;
import com.rusefi.io.serial.SerialIoStreamJSerialComm; import com.rusefi.io.serial.SerialIoStreamJSerialComm;
import com.rusefi.ui.StatusWindow; import com.rusefi.ui.StatusWindow;
import com.rusefi.ui.util.URLLabel; import com.rusefi.ui.util.URLLabel;
@ -24,9 +24,6 @@ import java.io.IOException;
*/ */
public class DfuFlasher { public class DfuFlasher {
public static final String DFU_BINARY = Launcher.TOOLS_PATH + File.separator + "DfuSe/DfuSeCommand.exe"; public static final String DFU_BINARY = Launcher.TOOLS_PATH + File.separator + "DfuSe/DfuSeCommand.exe";
// TODO: integration with DFU command line tool
static final String DFU_COMMAND = DFU_BINARY + " -c -d --v --fn " + Launcher.INPUT_FILES_PATH + File.separator +
"rusefi.dfu";
private static final String DFU_SETUP_EXE = "https://github.com/rusefi/rusefi_external_utils/raw/master/DFU_mode/DfuSe_Demo_V3.0.6_Setup.exe"; private static final String DFU_SETUP_EXE = "https://github.com/rusefi/rusefi_external_utils/raw/master/DFU_mode/DfuSe_Demo_V3.0.6_Setup.exe";
private final JButton button = new JButton("Auto Program via DFU"); private final JButton button = new JButton("Auto Program via DFU");
@ -75,7 +72,7 @@ public class DfuFlasher {
} }
StringBuffer stdout = new StringBuffer(); StringBuffer stdout = new StringBuffer();
String errorResponse = ExecHelper.executeCommand(FirmwareFlasher.BINARY_LOCATION, String errorResponse = ExecHelper.executeCommand(FirmwareFlasher.BINARY_LOCATION,
FirmwareFlasher.BINARY_LOCATION + File.separator + DFU_COMMAND, FirmwareFlasher.BINARY_LOCATION + File.separator + getDfuCommand(),
DFU_BINARY, wnd, stdout); DFU_BINARY, wnd, stdout);
if (stdout.toString().contains("Verify successful")) { if (stdout.toString().contains("Verify successful")) {
wnd.appendMsg("SUCCESS!"); wnd.appendMsg("SUCCESS!");
@ -95,6 +92,12 @@ public class DfuFlasher {
wnd.appendMsg("Please power cycle device to exit DFU mode"); wnd.appendMsg("Please power cycle device to exit DFU mode");
} }
private static String getDfuCommand() {
String fileName = IniFileModel.findFile(Launcher.INPUT_FILES_PATH, "rusefi", ".dfu");
return DFU_BINARY + " -c -d --v --fn " + fileName;
}
/** /**
* connect via serial + initiate software DFU jump + program * connect via serial + initiate software DFU jump + program
*/ */