Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
bd307a17
Unverified
Commit
bd307a17
authored
Aug 28, 2019
by
Don Gagne
Committed by
GitHub
Aug 28, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7730 from DonLakeFlyer/Android64Serial
Android 64 bit stage 1
parents
646b87e1
2a3ee083
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
36 additions
and
32 deletions
+36
-32
.travis.yml
.travis.yml
+11
-11
QGCCommon.pri
QGCCommon.pri
+3
-1
QGCExternalLibs.pri
QGCExternalLibs.pri
+2
-0
QGCActivity.java
android/src/org/mavlink/qgroundcontrol/QGCActivity.java
+8
-8
UsbIoManager.java
android/src/org/mavlink/qgroundcontrol/UsbIoManager.java
+4
-4
qserialport_android.cpp
libs/qtandroidserialport/src/qserialport_android.cpp
+8
-8
No files found.
.travis.yml
View file @
bd307a17
...
...
@@ -25,7 +25,7 @@ matrix:
sudo
:
required
-
dist
:
trusty
language
:
android
env
:
SPEC=android-
g++
CONFIG=installer
env
:
SPEC=android-
clang
CONFIG=installer
sudo
:
false
-
os
:
osx
osx_image
:
xcode9.2
...
...
@@ -82,16 +82,16 @@ install:
fi
# android dependencies: qt, gstreamer, android-ndk
-
if [ "${SPEC}" = "android-
g++
" ]; then
-
if [ "${SPEC}" = "android-
clang
" ]; then
wget --quiet https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies/gstreamer-1.0-android-universal-1.14.4.tar.bz2 &&
tar jxf gstreamer-1.0-android-universal-1.14.4.tar.bz2 -C ${TRAVIS_BUILD_DIR} &&
wget --quiet https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies/Qt5.1
1.0
-android_armv7-min.tar.bz2 &&
tar jxf Qt5.1
1.0
-android_armv7-min.tar.bz2 -C /tmp &&
wget --quiet https://dl.google.com/android/repository/android-ndk-r
16b
-linux-x86_64.zip &&
unzip android-ndk-r
16b
-linux-x86_64.zip > /dev/null &&
export ANDROID_NDK_ROOT=`pwd`/android-ndk-r
16b
&&
wget --quiet https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies/Qt5.1
2.4
-android_armv7-min.tar.bz2 &&
tar jxf Qt5.1
2.4
-android_armv7-min.tar.bz2 -C /tmp &&
wget --quiet https://dl.google.com/android/repository/android-ndk-r
20
-linux-x86_64.zip &&
unzip android-ndk-r
20
-linux-x86_64.zip > /dev/null &&
export ANDROID_NDK_ROOT=`pwd`/android-ndk-r
20
&&
export ANDROID_SDK_ROOT=/usr/local/android-sdk &&
export PATH=/tmp/Qt5.1
1-android_armv7/5.11.0/android_armv7/bin:`pwd`/android-ndk-r16b
:$PATH && echo $PATH
export PATH=/tmp/Qt5.1
2-android_armv7/5.12.4/android_armv7/bin:`pwd`/android-ndk-r20
:$PATH && echo $PATH
;
fi
...
...
@@ -133,12 +133,12 @@ before_script:
-
cd ${TRAVIS_BUILD_DIR}
# switch android config from installer to release if the android storepass isn't available
-
if [[ "${SPEC}" = "android-
g++
" && "${CONFIG}" = "installer" && -z ${ANDROID_STOREPASS} ]]; then
-
if [[ "${SPEC}" = "android-
clang
" && "${CONFIG}" = "installer" && -z ${ANDROID_STOREPASS} ]]; then
export CONFIG=release;
fi
# insert QGC version in AndroidManifest.xml
-
if [ "${SPEC}" = "android-
g++
" ]; then
-
if [ "${SPEC}" = "android-
clang
" ]; then
git remote set-branches origin 'master' &&
git fetch --tags origin master &&
./tools/update_android_version.sh;
...
...
@@ -181,7 +181,7 @@ after_success:
else
GOOGLE_PLAY_PKG=none;
fi
-
if [[ "${SPEC}" = "android-
g++
" && "${TRAVIS_PULL_REQUEST}" = "false" && "${GOOGLE_PLAY_PKG}" != "none" ]]; then
-
if [[ "${SPEC}" = "android-
clang
" && "${TRAVIS_PULL_REQUEST}" = "false" && "${GOOGLE_PLAY_PKG}" != "none" ]]; then
pip install --user --upgrade oauth2client &&
pip install --user google-api-python-client pyopenssl ndg-httpsclient pyasn1 &&
openssl aes-256-cbc -K $encrypted_25db6eb7c3fd_key -iv $encrypted_25db6eb7c3fd_iv -in android/Google_Play_Android_Developer-4432a3c4f5d1.json.enc -out android/Google_Play_Android_Developer-4432a3c4f5d1.json -d &&
...
...
QGCCommon.pri
View file @
bd307a17
...
...
@@ -34,7 +34,7 @@ linux {
DEFINES += __STDC_LIMIT_MACROS __rasp_pi2__
DEFINES += QGC_GST_TAISYNC_ENABLED
DEFINES += QGC_GST_MICROHARD_ENABLED
} else : android-
g++ | android-
clang {
} else : android-clang {
CONFIG += AndroidBuild MobileBuild
DEFINES += __android__
DEFINES += __STDC_LIMIT_MACROS
...
...
@@ -42,6 +42,8 @@ linux {
DEFINES += QGC_GST_TAISYNC_ENABLED
DEFINES += QGC_GST_MICROHARD_ENABLED
QMAKE_CXXFLAGS += -Wno-address-of-packed-member
QMAKE_CXXFLAGS += -Wno-unused-command-line-argument
QMAKE_LINK += -nostdlib++ # Hack fix?: https://forum.qt.io/topic/103713/error-cannot-find-lc-qt-5-12-android
target.path = $$DESTDIR
equals(ANDROID_TARGET_ARCH, x86) {
CONFIG += Androidx86Build
...
...
QGCExternalLibs.pri
View file @
bd307a17
...
...
@@ -154,6 +154,8 @@ AndroidBuild {
ANDROID_EXTRA_LIBS += $$BASEDIR/libs/OpenSSL/Android/arch-armeabi-v7a/lib/libssl.so
LIBS += $$ANDROID_EXTRA_LIBS
INCLUDEPATH += $$BASEDIR/libs/OpenSSL/Android/arch-armeabi-v7a/include
} else:contains(QT_ARCH, arm64) {
# Haven't figured out how to get 64 bit arm OpenSLL yet. This means things like terrain queries will not qork.
} else {
ANDROID_EXTRA_LIBS += $$BASEDIR/libs/OpenSSL/Android/arch-x86/lib/libcrypto.so
ANDROID_EXTRA_LIBS += $$BASEDIR/libs/OpenSSL/Android/arch-x86/lib/libssl.so
...
...
android/src/org/mavlink/qgroundcontrol/QGCActivity.java
View file @
bd307a17
...
...
@@ -69,7 +69,7 @@ public class QGCActivity extends QtActivity
private
static
UsbManager
_usbManager
=
null
;
private
static
List
<
UsbSerialDriver
>
_drivers
;
private
static
HashMap
<
Integer
,
UsbIoManager
>
m_ioManager
;
private
static
HashMap
<
Integer
,
Integer
>
_userDataHashByDeviceId
;
private
static
HashMap
<
Integer
,
Long
>
_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
<
UsbSerialDriver
>();
_userDataHashByDeviceId
=
new
HashMap
<
Integer
,
Integer
>();
_userDataHashByDeviceId
=
new
HashMap
<
Integer
,
Long
>();
m_ioManager
=
new
HashMap
<
Integer
,
UsbIoManager
>();
}
...
...
@@ -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
;
...
...
android/src/org/mavlink/qgroundcontrol/UsbIoManager.java
View file @
bd307a17
...
...
@@ -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
;
...
...
libs/qtandroidserialport/src/qserialport_android.cpp
View file @
bd307a17
...
...
@@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE
static
const
char
kJniClassName
[]
{
"org/mavlink/qgroundcontrol/QGCActivity"
};
static
void
jniDeviceHasDisconnected
(
JNIEnv
*
envA
,
jobject
thizA
,
j
int
userDataA
)
static
void
jniDeviceHasDisconnected
(
JNIEnv
*
envA
,
jobject
thizA
,
j
long
userDataA
)
{
Q_UNUSED
(
envA
);
Q_UNUSED
(
thizA
);
...
...
@@ -64,7 +64,7 @@ static void jniDeviceHasDisconnected(JNIEnv *envA, jobject thizA, jint userDataA
(
reinterpret_cast
<
QSerialPortPrivate
*>
(
userDataA
))
->
q_ptr
->
close
();
}
static
void
jniDeviceNewData
(
JNIEnv
*
envA
,
jobject
thizA
,
j
int
userDataA
,
jbyteArray
dataA
)
static
void
jniDeviceNewData
(
JNIEnv
*
envA
,
jobject
thizA
,
j
long
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
,
j
int
userDataA
,
jstring
messageA
)
static
void
jniDeviceException
(
JNIEnv
*
envA
,
jobject
thizA
,
j
long
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
<
void
*>
(
jniDeviceHasDisconnected
)},
{
"nativeDeviceNewData"
,
"(
I
[B)V"
,
reinterpret_cast
<
void
*>
(
jniDeviceNewData
)},
{
"nativeDeviceException"
,
"(
I
Ljava/lang/String;)V"
,
reinterpret_cast
<
void
*>
(
jniDeviceException
)},
{
"nativeDeviceHasDisconnected"
,
"(
J
)V"
,
reinterpret_cast
<
void
*>
(
jniDeviceHasDisconnected
)},
{
"nativeDeviceNewData"
,
"(
J
[B)V"
,
reinterpret_cast
<
void
*>
(
jniDeviceNewData
)},
{
"nativeDeviceException"
,
"(
J
Ljava/lang/String;)V"
,
reinterpret_cast
<
void
*>
(
jniDeviceException
)},
{
"qgcLogDebug"
,
"(Ljava/lang/String;)V"
,
reinterpret_cast
<
void
*>
(
jniLogDebug
)},
{
"qgcLogWarning"
,
"(Ljava/lang/String;)V"
,
reinterpret_cast
<
void
*>
(
jniLogWarning
)}
};
...
...
@@ -186,10 +186,10 @@ bool QSerialPortPrivate::open(QIODevice::OpenMode mode)
deviceId
=
QAndroidJniObject
::
callStaticMethod
<
jint
>
(
kJniClassName
,
"open"
,
"(Landroid/content/Context;Ljava/lang/String;
I
)I"
,
"(Landroid/content/Context;Ljava/lang/String;
J
)I"
,
QtAndroid
::
androidActivity
().
object
(),
jnameL
.
object
<
jstring
>
(),
reinterpret_cast
<
j
int
>
(
this
));
reinterpret_cast
<
j
long
>
(
this
));
cleanJavaException
();
isReadStopped
=
false
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment