From 6a9060b95bf6b00b4073db9e6b52ac2c104f8289 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Mon, 19 Aug 2019 14:56:06 -0700 Subject: [PATCH] 64 bit serial fixes --- android/src/org/mavlink/qgroundcontrol/QGCActivity.java | 16 ++++++++-------- android/src/org/mavlink/qgroundcontrol/UsbIoManager.java | 8 ++++---- libs/qtandroidserialport/src/qserialport_android.cpp | 16 ++++++++-------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/android/src/org/mavlink/qgroundcontrol/QGCActivity.java b/android/src/org/mavlink/qgroundcontrol/QGCActivity.java index bc8154a..f26c1aa 100644 --- a/android/src/org/mavlink/qgroundcontrol/QGCActivity.java +++ b/android/src/org/mavlink/qgroundcontrol/QGCActivity.java @@ -69,7 +69,7 @@ public class QGCActivity extends QtActivity private static UsbManager _usbManager = null; private static List _drivers; private static HashMap m_ioManager; - private static HashMap _userDataHashByDeviceId; + private static HashMap _userDataHashByDeviceId; private static final String TAG = "QGC_QGCActivity"; private static PowerManager.WakeLock _wakeLock; private static final String ACTION_USB_PERMISSION = "org.mavlink.qgroundcontrol.action.USB_PERMISSION"; @@ -85,14 +85,14 @@ public class QGCActivity extends QtActivity new UsbIoManager.Listener() { @Override - public void onRunError(Exception eA, int userData) + public void onRunError(Exception eA, long userData) { Log.e(TAG, "onRunError Exception"); nativeDeviceException(userData, eA.getMessage()); } @Override - public void onNewData(final byte[] dataA, int userData) + public void onNewData(final byte[] dataA, long userData) { nativeDeviceNewData(userData, dataA); } @@ -174,9 +174,9 @@ public class QGCActivity extends QtActivity }; // Native C++ functions which connect back to QSerialPort code - private static native void nativeDeviceHasDisconnected(int userData); - private static native void nativeDeviceException(int userData, String messageA); - private static native void nativeDeviceNewData(int userData, byte[] dataA); + private static native void nativeDeviceHasDisconnected(long userData); + private static native void nativeDeviceException(long userData, String messageA); + private static native void nativeDeviceNewData(long userData, byte[] dataA); private static native void nativeUpdateAvailableJoysticks(); // Native C++ functions called to log output @@ -190,7 +190,7 @@ public class QGCActivity extends QtActivity { _instance = this; _drivers = new ArrayList(); - _userDataHashByDeviceId = new HashMap(); + _userDataHashByDeviceId = new HashMap(); m_ioManager = new HashMap(); } @@ -375,7 +375,7 @@ public class QGCActivity extends QtActivity /// Open the specified device /// @param userData Data to associate with device and pass back through to native calls. /// @return Device id - public static int open(Context parentContext, String deviceName, int userData) + public static int open(Context parentContext, String deviceName, long userData) { int deviceId = BAD_DEVICE_ID; diff --git a/android/src/org/mavlink/qgroundcontrol/UsbIoManager.java b/android/src/org/mavlink/qgroundcontrol/UsbIoManager.java index 0092378..5b95fb4 100644 --- a/android/src/org/mavlink/qgroundcontrol/UsbIoManager.java +++ b/android/src/org/mavlink/qgroundcontrol/UsbIoManager.java @@ -40,7 +40,7 @@ public class UsbIoManager implements Runnable { private static final String TAG = "QGC_UsbIoManager"; private final UsbSerialDriver mDriver; - private int mUserData; + private long mUserData; private final ByteBuffer mReadBuffer = ByteBuffer.allocate(BUFSIZ); private final ByteBuffer mWriteBuffer = ByteBuffer.allocate(BUFSIZ); @@ -62,13 +62,13 @@ public class UsbIoManager implements Runnable { /** * Called when new incoming data is available. */ - public void onNewData(byte[] data, int userData); + public void onNewData(byte[] data, long userData); /** * Called when {@link SerialInputOutputManager#run()} aborts due to an * error. */ - public void onRunError(Exception e, int userData); + public void onRunError(Exception e, long userData); } @@ -87,7 +87,7 @@ public class UsbIoManager implements Runnable { /** * Creates a new instance with the provided listener. */ - public UsbIoManager(UsbSerialDriver driver, Listener listener, int userData) + public UsbIoManager(UsbSerialDriver driver, Listener listener, long userData) { mDriver = driver; mListener = listener; diff --git a/libs/qtandroidserialport/src/qserialport_android.cpp b/libs/qtandroidserialport/src/qserialport_android.cpp index 6d29434..8524ee0 100644 --- a/libs/qtandroidserialport/src/qserialport_android.cpp +++ b/libs/qtandroidserialport/src/qserialport_android.cpp @@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE static const char kJniClassName[] {"org/mavlink/qgroundcontrol/QGCActivity"}; -static void jniDeviceHasDisconnected(JNIEnv *envA, jobject thizA, jint userDataA) +static void jniDeviceHasDisconnected(JNIEnv *envA, jobject thizA, jlong userDataA) { Q_UNUSED(envA); Q_UNUSED(thizA); @@ -64,7 +64,7 @@ static void jniDeviceHasDisconnected(JNIEnv *envA, jobject thizA, jint userDataA (reinterpret_cast(userDataA))->q_ptr->close(); } -static void jniDeviceNewData(JNIEnv *envA, jobject thizA, jint userDataA, jbyteArray dataA) +static void jniDeviceNewData(JNIEnv *envA, jobject thizA, jlong userDataA, jbyteArray dataA) { Q_UNUSED(thizA); if (userDataA != 0) @@ -76,7 +76,7 @@ static void jniDeviceNewData(JNIEnv *envA, jobject thizA, jint userDataA, jbyteA } } -static void jniDeviceException(JNIEnv *envA, jobject thizA, jint userDataA, jstring messageA) +static void jniDeviceException(JNIEnv *envA, jobject thizA, jlong userDataA, jstring messageA) { Q_UNUSED(thizA); if(userDataA != 0) @@ -143,9 +143,9 @@ void QSerialPortPrivate::setNativeMethods(void) // REGISTER THE C++ FUNCTION WITH JNI JNINativeMethod javaMethods[] { - {"nativeDeviceHasDisconnected", "(I)V", reinterpret_cast(jniDeviceHasDisconnected)}, - {"nativeDeviceNewData", "(I[B)V", reinterpret_cast(jniDeviceNewData)}, - {"nativeDeviceException", "(ILjava/lang/String;)V", reinterpret_cast(jniDeviceException)}, + {"nativeDeviceHasDisconnected", "(J)V", reinterpret_cast(jniDeviceHasDisconnected)}, + {"nativeDeviceNewData", "(J[B)V", reinterpret_cast(jniDeviceNewData)}, + {"nativeDeviceException", "(JLjava/lang/String;)V", reinterpret_cast(jniDeviceException)}, {"qgcLogDebug", "(Ljava/lang/String;)V", reinterpret_cast(jniLogDebug)}, {"qgcLogWarning", "(Ljava/lang/String;)V", reinterpret_cast(jniLogWarning)} }; @@ -186,10 +186,10 @@ bool QSerialPortPrivate::open(QIODevice::OpenMode mode) deviceId = QAndroidJniObject::callStaticMethod( kJniClassName, "open", - "(Landroid/content/Context;Ljava/lang/String;I)I", + "(Landroid/content/Context;Ljava/lang/String;J)I", QtAndroid::androidActivity().object(), jnameL.object(), - reinterpret_cast(this)); + reinterpret_cast(this)); cleanJavaException(); isReadStopped = false;