From 6e1a10a509343a61f95c1c6b76832028852551c4 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sat, 4 Nov 2023 00:20:50 -0700 Subject: [PATCH] handle macos serial port prefix snafu --- .../com/rusefi/maintenance/OpenbltJni.java | 23 ++++++++++++++++--- misc/libopenblt_jni/openblt_jni.cpp | 6 ++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/OpenbltJni.java b/java_console/ui/src/main/java/com/rusefi/maintenance/OpenbltJni.java index f8f3f383d7..e7ab3d5d6a 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/OpenbltJni.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/OpenbltJni.java @@ -47,7 +47,24 @@ public final class OpenbltJni { System.loadLibrary("openblt_jni"); } - public static native void flashSerial(String filename, String serialPort, OpenbltCallbacks callbacks); - public static native void flashCan(String filename, OpenbltCallbacks callbacks); - public static native void stop(OpenbltCallbacks callbacks); + public static void flashSerial(String filename, String serialPort, OpenbltCallbacks callbacks) { + // On non-Windows, prepend "/dev/" to the serial port name if it's missing + if (!OS_NAME.contains("win") && !serialPort.startsWith("/dev/")) { + serialPort = "/dev/" + serialPort; + } + + flashSerialImpl(filename, serialPort, callbacks); + } + + public static void flashCan(String filename, OpenbltCallbacks callbacks) { + flashCanNative(filename, callbacks); + } + + public static void stop(OpenbltCallbacks callbacks) { + stopNative(callbacks); + } + + private static native void flashSerialImpl(String filename, String serialPort, OpenbltCallbacks callbacks); + private static native void flashCanNative(String filename, OpenbltCallbacks callbacks); + private static native void stopNative(OpenbltCallbacks callbacks); } diff --git a/misc/libopenblt_jni/openblt_jni.cpp b/misc/libopenblt_jni/openblt_jni.cpp index 33ca352eaf..254d1fb7a1 100644 --- a/misc/libopenblt_jni/openblt_jni.cpp +++ b/misc/libopenblt_jni/openblt_jni.cpp @@ -253,7 +253,7 @@ static bool program(JNIEnv* env, jobject jCallbacks) { return true; } -extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashSerial(JNIEnv* env, jobject, jstring jFirmwareFile, jstring jSerialPort, jobject jCallbacks) { +extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashSerialNative(JNIEnv* env, jobject, jstring jFirmwareFile, jstring jSerialPort, jobject jCallbacks) { if (!loadFirmware(env, jFirmwareFile, jCallbacks)) { return; } @@ -271,7 +271,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashSe } } -extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashCan(JNIEnv * env, jobject, jstring jFirmwareFile, jobject jCallbacks) { +extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashCanNative(JNIEnv * env, jobject, jstring jFirmwareFile, jobject jCallbacks) { if (!loadFirmware(env, jFirmwareFile, jCallbacks)) { return; } @@ -289,7 +289,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_flashCa } } -extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_stop(JNIEnv* env, jobject, jobject jCallbacks) { +extern "C" JNIEXPORT void JNICALL Java_com_rusefi_maintenance_OpenbltJni_stopNative(JNIEnv* env, jobject, jobject jCallbacks) { Callbacks cb(env, jCallbacks, "Cleanup", false); BltSessionStop();