android开发使用mavlink协议

一、添加依赖库

在工程的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 messageMavlinkMessage<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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/292155.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序审核过慢有什么辅助方法吗?

加急审核 微信小程序加急审核一年有3次机会可使用 以下仅为建议方法 换个开发人员账号重新提交新版本审核 有时候审核失败&#xff0c;审核会变得严格&#xff0c;以前没有的问题也会被拎出来&#xff0c;不得不再次修改代码提交审核&#xff0c;建议换个账号&#xff0c;否则…

美团的破局之路(含笔试原题)

写在前面 中概惨&#xff0c;美团最近更是惨上加惨。 利润率个位数&#xff0c;财报爆雷&#xff0c;现在还被谣言击穿防线&#xff0c;造成单日 个点以上的跌幅。 自从字节的现象级产品 抖音 做出流量后&#xff0c;往各个方向扩张的脚步就从未停下。 其中就包括对涵盖"…

SVN使用总结

安装 使用 回撤与恢复功能 FAQ SVN服务器路径被改 IP地址改成ddqc-fs01 SVN右键选择relocate SVN文件无法比较

【MYSQL】-数据类型

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

[vue]Echart使用手册

[vue]Echart使用手册 使用环境Echart的使用Echart所有组件和图表类型Echart 使用方法 使用环境 之前是在JQuery阶段使用Echart&#xff0c;直接引入Echart的js文件即可&#xff0c;现在是在vue中使用,不仅仅时echarts包&#xff0c;还需要安装vue-echarts&#xff1a; "…

Linux调试器gdb的用法

Linux调试器gdb的用法 1. debug/release版本之间的比较2. gdb调试器的基本指令3. 使用展示 1. debug/release版本之间的比较 在之前学习C语言的的时候出过一期vs的调试技巧。 而对于现在的Linux下的调试器gdb其实也是换汤不换药的&#xff0c;基本上的调试思路是不会改变的&am…

安全、高效的MySQL DDL解决方案

MySQL作为目前应用最广泛的开源关系型数据库&#xff0c;是许多网站、应用和商业产品的主要数据存储。在生产环境&#xff0c;线上数据库常常面临着持续的、不断变化的表结构修改&#xff08;DDL&#xff09;&#xff0c;如增加、更改、删除字段和索引等等。其中一些DDL操作在M…

司铭宇老师《流量密码-全网全渠道营销拓客高手特训营》网络营销培训

《流量密码-全网全渠道营销拓客高手特训营》 在互联网的浪潮中&#xff0c;无论是大型企业还是小型创业公司&#xff0c;都面临着一个共同的问题&#xff1a;如何有效地吸引和留住客户&#xff1f;答案就是全网全渠道营销。这是一种全新的营销模式&#xff0c;它能够帮助企业在…

宕机后,Redis如何实现快速恢复?

Redis作为非常火热的内存数据库&#xff0c;其除了具有非常高的性能之外&#xff0c;还需要保证高可用&#xff0c;在故障发生时&#xff0c;尽可能地降低故障带来的影响&#xff0c;Redis也提供了完善的故障恢复机制&#xff1a;哨兵。 下面就来具体来看看Redis的故障恢复是如…

vue-pure-admin源码解读与使用

vue-pure-admin 全面使用ESMVue3ViteElement-PlusTypeScript编写的一款后台管理系统&#xff08;兼容移动端&#xff09;,目前斩获11.5k个star。 界面构成 主题Layout的组成 左边sidebar由Vertical组件定义tab标签栏由layoutHeader组件定义中间Body由appMain组件定义 为何点…

RouterSrv-路由功能

2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 安装Remote Access服务开启路由转发,为当前实验环境提供路由功能。启用网络地址转换功能,实现内部客户端访问互联网资源。答题步骤 安装Remote Access服务开启路由转发,为当前实验环境提供路由功能。 配置网卡 加…

VSCode安装PYQT5

安装PYQT5 pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple 获得Python环境位置 查看函数库安装位置 pip show 函数库名 通过查询函数库&#xff0c;了解到python安装位置为 C:\User…