- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 QGC4.1.2二次开发(2)QGC连接与数据收发
文章目录前言一、连接原理二、连接过程与数据收发1.连接过程(以串口为例)2.数据发送总结前言QGC连接无人机飞控时支持多种连接方式,并且可以自动连接,不由让人好奇它的实现原理,本文主要分析QGC的连接原理和连接过程,数据的收发过程。提示:以下是本篇文章正文内容一、连接原理 QGC使用QT框架,采用c++语言,能够通过多种方式连接无人机飞控(串口、UDP、TCP、蓝牙等)。连接的实现类有一个基类Linkinterface,继承于QThread类,基类提供统一接口,实现多态。子类有:S.
2021-11-02 17:20:48
4291
3
原创 SITL--仿真多架无人机
SITL仿真环境搭建ardupliot源码下载与编译首先需要安装Ardupliot开源飞控的开发环境,参考这个知乎博主的文章:链接我的安装环境 ubuntu20.04。先下载Ardupilot源码,然后进入ardupilot文件夹更新一下子模块 git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive之后,根据网上大多数文章推荐的方法运行对应的sh
2021-07-07 17:55:21
2506
2
原创 QGC4.1.2二次开发(1)--Qt5.12.6 andorid开发环境搭建
开发环境介绍:QGC版本: 4.1.2Qt版本: 5.12.6(QGC要求)windows平台开发:vs2017andorid平台: JDK jdk-8.0.2810.9andorid sdkandorid ndk ndk-r21eQGC下载github地址:添加链接描述QGC readme中QGroundControl Dev Guide的Getting Started部分有关于如何下载,对Qt要求等的说明,针对不同的操作系统有不同的操作步骤。...
2021-04-09 19:01:34
2089
2
原创 蓝牙Mesh基础(9)设备配网
设备配网(启动配置)设备配网过程设备配网过程首先,需要配网的设备先进行未配网广播,这个广播不同于普通的ble广播,广播数据结构类型(AD Type)为mesh Beacon,专门用于mesh未配网广播和网络安全广播,数值为0x00时表示未配网广播(Unprovisioned Device beacon);0x01时表示网络安全广播(Secure Network beacon)。当数值为0x00时,广播数组包含字段如下图所示:
2020-09-03 17:57:06
2202
原创 蓝牙Mesh基础(8)Access layer(访问层)
访问层功能Access layer PDUModel layer / Foundation Model layer功能定义用户应用如何使用上层传输层,控制上层传输层对消息的加密/解密定义应用消息的格式判断消息中的netkey、appkey是否有效字节序:小端Access layer PDU最大支持380 bytes(transMIC 为32 bit时),包含opcode、parameter两部分。不分段的最大消息长度是11 bytes,除去3个byte的opcode,剩下的只有8个字节,也
2020-09-01 19:05:55
810
原创 蓝牙Mesh基础(7)Upper Transport(上层传输层)
上层传输层功能Upper Transport PDU朋友关系建立过程功能加密后向下传输来自访问层的消息,消息名称:Upper Transport Access PDU解密后向上传输发给访问层的消息传输控制类消息,消息名称:Upper Transport Control PDU字节序:大端Upper Transport PDU上层传输层共有两种PDU:①Upper Transport Access PDU;②Upper Transport Control PDU网络层PDU中有一个字段CT
2020-08-28 17:32:09
584
原创 蓝牙Mesh基础(6)Lower Transport(下层传输层)
下层传输层功能Lower Transport PDU功能分段----当上层传输层的PDU长度超过限制后就需要将PDU分段下发到网络层。协议中规定:Upper Transport Access PDU (access消息)超过12 byte时便分段;Upper Transport Control PDU(控制消息)超过8 byte时便分段重组----和分段相对,重组是收到来自网络层上传的分段消息时,将分段的消息进行重组,之后上传给上层传输层Friend Queue----朋友队列,网络中发送给LPN
2020-08-26 16:56:59
391
原创 蓝牙Mesh基础(5)Network Layer (网络层)
网络层在协议中是非常重要的一层,接收过滤来自成承载的消息,并转发给下层传输层,同时以本层定义的PDU格式向下发送来自下层传输层的消息。定义地址类型,代理和中继功能在本层实现。字节序:大端消息地址类型一共定义了4种地址类型,每种地址占两个字节,下图是协议中给出的地址类型图:未配置地址类型(unassigned address)未分配地址数值为0x0000。尚未分配地址的节点或者没有配置元素的节点的地址是未配置地址类型。可以将模型的发布地址(public address)设置为未分配的地址来禁用模型
2020-08-25 14:53:53
915
原创 蓝牙Mesh基础(4)Bearer Layer (承载层)
Bearer LayerAdvertising bearerGATT Bearer为了给不支持蓝牙mesh的设备提供进入网络的机会,在承载层设置了两种承载,以满足不同的需求。Advertising bearer广播承载向下对接ble协议的广播扫描功能,所以向外发送的PDU结构符合ble广播通道PDU格式。前导----前导码占一个字节,它有两个值分别为: 10101010b 和 01010101b。数据由硬件实现,当接入地址的最低位为 0 时, 那么前导码为10101010b, 如果是 1 时,前
2020-08-10 17:47:24
1027
原创 蓝牙Mesh基础(3)蓝牙Mesh协议--总览
蓝牙Mesh协议总览总览学习蓝牙Mesh,绕不开学习协议。蓝牙Mesh协议由7部分组成:“Model Layer”、“Foundation Model Layer”、“Access Layer”、“Upper Transport Layer”、“Low Transport Layer”、“Network Layer”、“Bearer Layer”。在上面蓝牙Mesh协议图中还有一部分“Bluetooth Low Energy Core Specification”在整个协议的底部,这部分是ble的协
2020-08-05 18:10:31
1968
原创 蓝牙Mesh基础 (1)蓝牙Mesh简介
蓝牙Mesh简介蓝牙Mesh诞生蓝牙Mesh诞生蓝牙 Mesh脱胎于CSR倡导的私有协议-CSR Mesh,该技术诞生于2014年。蓝牙技术联盟于17年7月19日正式宣布,蓝牙(Bluetooth)技术开始全面支持Mesh网状网络。全新的Mesh功能提供设备间多对多传输,并特别提高构建大范围网络覆盖的通信能力,适用于楼宇自动化、无线传感器网络等需要让数以万计个设备在可靠、安全的环境下传输的物联网解决方案。蓝牙Mesh网络是用于建立多对多(many:many)设备通信的基于BLE协议的网络拓扑,是一种纯
2020-07-22 17:37:20
1866
原创 Telink Mesh 开发(1)调试log打印
Telink Mesh SDK 调试log打印Telink 官网论坛建议使用GPIO模拟串口打印log一. 使用串口打印logTelink 官网论坛建议使用GPIO模拟串口打印log参考博文:Telink BLE MESH开发|ble mesh开发教程《二》telink_sig_mesh增加调试信息打印一. 使用串口打印log...
2020-07-13 11:36:03
1871
1
原创 Gcc编译指令
gcc常用编译指令gcc编译过程编译选项gcc filename 直接编译./filename.out 运行-E 预处理 输出.i文件-S 编译 输出.s文件-c 汇编 输出.o文件-O 对程序进行优化编译 -O2 优化效果更好,但编译链接慢-o 指定输出文件名字-g 产生调试工具所需要的符号信息-I dirname 将dirname所指出的目录作为...
2020-04-26 09:18:19
286
原创 Linux文本编辑器—vim常用指令整理
vim常用指令工作模式常用指令工作模式vim有三种工作模式:命令行模式 输入“vim 文件名”就进入了命令模式,但不能输入文字插入模式 在命令行模式按i就会进入编辑模式,此时就可以写入程式,按Esc回到命令行模式底行模式 在命令行模式下按**:**进入末行模式,左下角会有一个冒号出现常用指令vim 文件 打开文件键入 i 进入插入...
2020-04-23 08:56:22
164
原创 自用的Linux常用命令
Linux常用命令用户管理类命令文件与目录类命令压缩打包类命令磁盘管理类命令查找类命令进程管理类命令杂项命令用户管理类命令添加用户: useradd [选项] 用户名删除用户: userdel [选项] 用户名 userdel -r 用户名 同时删除home下用户目录修改密码: passwd [选项] 用户名切换用户: su [选项] 用户名 su - root 切换到root用...
2020-04-17 10:02:31
129
原创 nRF52 Mesh开发 (3) MESH Sensor Server/Client Models详解与实现
MESH Sensor Model 实现 MESH Spec规定的 Sensor Model 标准传感器状态传感器描述传感器参数设置传感器cadence传感器数据传感器可发送和接收的消息Sensor Server /Client ModelsSensor Server ModelsSensor Client ModelsSensor Server /Client Models 在nrf52832上...
2020-04-10 10:02:49
3439
7
原创 nRF52 Mesh开发(1) Mesh 技术特点、SEGGER 工程添加文件方法
1.蓝牙MESH技术简介 蓝牙 Mesh脱胎于CSR倡导的私有协议-CSR Mesh,该技术诞生于2014年。蓝牙Mesh网络是用于建立多对多(many:many)设备通信的低能耗蓝牙(Bluetooth Low Energy)新的网络拓扑。MESH允许创建基于多个设备的大型网络,网...
2020-03-28 13:33:53
1449
原创 nRF52 Mesh开发 (2) SDK例程Light_switch server 添加一个element控制开发板其他LED灯
server文件结构: 使用SEGGER编译的话直接打开.emProject文件即可;img文件中包含程序运行过程图;include文件包含该例程下的头文件;2.具体操作:在main.cpp文件中#defineONOFF_SERVER_0_LED(BSP_LED_0)下添加...
2020-03-05 13:41:05
1439
1
原创 OpenCV双目相机测距程序
本文主要分享一个双目测距的实现程序,用的bumblebee2相机。使用的OpenCV自带的BM算法。 在OpenCV3中,StereoBM算法发生了比较大的变化,StereoBM被定义为纯虚类,因此不能直接实例化,只能用智能指针的形式实例化,也不用StereoBMState类来设置了,而是改成用bm->set...的形式。(转载请注明出处)详细参数代码请查看链接http://www.c...
2018-06-08 14:45:13
6553
1
sensor_dht_model.rar
2020-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人