android开发使用mavlink协议
2023-12-22 11:14:23
一、添加依赖库
在工程的build.gradle
添加implementation 'io.dronefleet.mavlink:mavlink:1.1.11'
。
点击右上角sync
二、接收解析数据
// This example uses a TCP socket, however we may also use a UDP socket by injecting
// PipedInputStream/PipedOutputStream to MavlinkConnection, or even USB by using any
// implementation that will eventually yield an InputStream and an OutputStream.
try (Socket socket = new Socket("127.0.0.1", 5760)) {
// After establishing a connection, we proceed to building a MavlinkConnection instance.
MavlinkConnection connection = MavlinkConnection.create(
socket.getInputStream(),
socket.getOutputStream());
// Now we are ready to read and send messages.
MavlinkMessage message;
while ((message = connection.next()) != null) {
// The received message could be either a Mavlink1 message, or a Mavlink2 message.
// To check if the message is a Mavlink2 message, we could do the following:
if (message instanceof Mavlink2Message) {
// This is a Mavlink2 message.
// When a message is received, its payload type isn't statically available.
// We can resolve which kind of message it is by its payload, like so:
if (message.getPayload() instanceof Heartbeat) {
// This is a heartbeat message
MavlinkMessage<Heartbeat> heartbeatMessage = (MavlinkMessage<Heartbeat>)message;
}
// We are better off by publishing the payload to a pub/sub mechanism such
// as RxJava, JMS or any other favorite instead, though.
}
} catch (EOFException eof) {
// The stream has ended.
}
三、发送数据
int systemId = 255;
int componentId = 0;
Heartbeat heartbeat = Heartbeat.builder()
.type(MavType.MAV_TYPE_GCS)
.autopilot(MavAutopilot.MAV_AUTOPILOT_INVALID)
.systemStatus(MavState.MAV_STATE_UNINIT)
.mavlinkVersion(3)
.build()
// Write an unsigned heartbeat
connection.send2(systemId, componentId, heartbeat);
文章来源:https://blog.csdn.net/qq_15181569/article/details/135145377
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!