Skip to content

Commit 81f53e0

Browse files
Merge pull request #78 from mavlink/update-to-0.11.0
Update to mavsdk_server v0.48.0
2 parents cebc435 + 391aa21 commit 81f53e0

File tree

8 files changed

+51
-21
lines changed

8 files changed

+51
-21
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ MAVSDK-Java is distributed through MavenCentral, meaning that it can be imported
1919
```
2020
dependencies {
2121
...
22-
implementation 'io.mavsdk:mavsdk:0.10.0'
22+
implementation 'io.mavsdk:mavsdk:0.11.0'
2323
...
2424
}
2525
```
@@ -29,8 +29,8 @@ For Android, `mavsdk_server` is distributed as an Android library (`aar`):
2929
```
3030
dependencies {
3131
...
32-
implementation 'io.mavsdk:mavsdk:0.10.0'
33-
implementation 'io.mavsdk:mavsdk-server:0.10.0'
32+
implementation 'io.mavsdk:mavsdk:0.11.0'
33+
implementation 'io.mavsdk:mavsdk-server:0.11.0'
3434
...
3535
}
3636
```

mavsdk_server/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ allprojects {
1919
jcenter()
2020
}
2121

22-
def mavsdk_server_release = "v0.43.0"
22+
def mavsdk_server_release = "v0.48.0"
2323

2424
task extractMavsdkServer(type: Copy) {
2525
mkdir project.buildDir.getAbsolutePath() + "/tmp"
@@ -132,7 +132,7 @@ android {
132132
archivesBaseName = 'mavsdk-server'
133133
group = 'io.mavsdk'
134134
versionCode 1
135-
version '0.10.0'
135+
version '0.11.0'
136136

137137
ndk {
138138
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'

mavsdk_server/src/main/cpp/native-lib.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,27 @@
88

99
extern "C"
1010
{
11-
void onServerStarted(void* port_promise) {
12-
auto* promise = static_cast<std::promise<void>*>(port_promise);
13-
promise->set_value();
11+
JNIEXPORT jlong JNICALL
12+
Java_io_mavsdk_mavsdkserver_MavsdkServer_initNative(JNIEnv *env, jobject thiz) {
13+
MavsdkServer* mavsdk_server;
14+
mavsdk_server_init(&mavsdk_server);
15+
return reinterpret_cast<jlong>(mavsdk_server);
1416
}
1517

16-
JNIEXPORT jlong JNICALL
17-
Java_io_mavsdk_mavsdkserver_MavsdkServer_runNative(JNIEnv* env, jobject thiz, jstring system_address, jint mavsdk_server_port)
18+
JNIEXPORT jboolean JNICALL
19+
Java_io_mavsdk_mavsdkserver_MavsdkServer_runNative(JNIEnv* env, jobject thiz, jlong mavsdkServerHandle, jstring system_address, jint mavsdk_server_port)
1820
{
1921
const char* native_connection_url = env->GetStringUTFChars(system_address, 0);
22+
auto mavsdk_server = reinterpret_cast<MavsdkServer*>(mavsdkServerHandle);
2023

2124
LOGD("Running mavsdk_server with connection url: %s", native_connection_url);
22-
auto mavsdk_server = mavsdk_server_run(native_connection_url, mavsdk_server_port);
25+
if (!mavsdk_server_run(mavsdk_server, native_connection_url, mavsdk_server_port)) {
26+
return false;
27+
}
28+
2329
auto server_port = mavsdk_server_get_port(mavsdk_server);
2430
LOGD("mavsdk_server is now running, listening on port %d", server_port);
25-
26-
return reinterpret_cast<jlong>(mavsdk_server);
31+
return true;
2732
}
2833

2934
JNIEXPORT jint JNICALL

mavsdk_server/src/main/java/io/mavsdk/mavsdkserver/MavsdkServer.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,22 @@ public int run(String systemAddress) {
5050
* For UDP : udp://[bind_host][:bind_port]
5151
* For Serial : serial:///path/to/serial/dev[:baudrate]
5252
* @param mavsdkServerPort The port on which the server should listen for a `System`.
53-
* @return A handle to the started MavsdkServer, to be used with other native functions.
53+
* @return The port on which MavsdkServer listens for a `System` to connect.
54+
* A return value of 0 means that the server failed to start.
5455
*/
5556
public int run(String systemAddress, int mavsdkServerPort) {
56-
mavsdkServerHandle = runNative(systemAddress, mavsdkServerPort);
57+
mavsdkServerHandle = initNative();
58+
59+
if (!runNative(mavsdkServerHandle, systemAddress, mavsdkServerPort)) {
60+
return 0;
61+
}
62+
5763
return getPort(mavsdkServerHandle);
5864
}
5965

60-
private native long runNative(String systemAddress, int mavsdkServerPort);
66+
private native long initNative();
67+
68+
private native boolean runNative(long mavsdkServerHandle, String systemAddress, int mavsdkServerPort);
6169

6270
private native int getPort(long mavsdkServerHandle);
6371

mavsdk_server/src/main/jniLibs/include/mavsdk_server_api.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,38 @@
44
extern "C" {
55
#endif
66

7+
#ifdef __cplusplus
8+
#include <cstdint>
9+
#else
10+
#include <stdint.h>
11+
#endif
12+
713
#ifdef WINDOWS
814
#define DLLExport __declspec(dllexport)
915
#else
1016
#define DLLExport __attribute__((visibility("default")))
1117
#endif
1218

13-
DLLExport struct MavsdkServer*
14-
mavsdk_server_run(const char* system_address, const int mavsdk_server_port);
19+
DLLExport void mavsdk_server_init(struct MavsdkServer** mavsdk_server);
20+
21+
DLLExport int mavsdk_server_run(
22+
struct MavsdkServer* mavsdk_server, const char* system_address, const int mavsdk_server_port);
23+
24+
DLLExport int mavsdk_server_run_with_mavlink_ids(
25+
struct MavsdkServer* mavsdk_server,
26+
const char* system_address,
27+
const int mavsdk_server_port,
28+
const uint8_t system_id,
29+
const uint8_t component_id);
1530

1631
DLLExport int mavsdk_server_get_port(struct MavsdkServer* mavsdk_server);
1732

1833
DLLExport void mavsdk_server_attach(struct MavsdkServer* mavsdk_server);
1934

2035
DLLExport void mavsdk_server_stop(struct MavsdkServer* mavsdk_server);
2136

37+
DLLExport void mavsdk_server_destroy(struct MavsdkServer* mavsdk_server);
38+
2239
#ifdef __cplusplus
2340
}
2441
#endif

sdk/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Because it is deployed on Maven Central, adding MAVSDK-Java to your project is a
88

99
```groovy
1010
dependencies {
11-
implementation 'io.mavsdk:mavsdk:0.10.0'
11+
implementation 'io.mavsdk:mavsdk:0.11.0'
1212
}
1313
```
1414

sdk/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ subprojects {
1717

1818
group = 'io.mavsdk'
1919
archivesBaseName = 'mavsdk'
20-
version = '0.10.0'
20+
version = '0.11.0'
2121

2222
repositories {
2323
jcenter()

sdk/proto

Submodule proto updated from 757979e to b91e6f7

0 commit comments

Comments
 (0)