数组 vector是c++中的一个容器,可以用来存储数组。vector的使用方法和数组类似,但是vector的长度是可以动态变化的。vector的长度可以通过size()方法获取。 .begin()和.end()分别返回数组的首地址和尾地址。在c++中,数组的首地址是数组的第一个元素的地址,尾地址是数组的最后一个元素的下一个地址。因此,数组的长度为end() - begin()。 .rbegin()和.rend()分别返回数组的尾地址和首地址。 sort()1、`revers...
该项目采用多线程架构来处理不同的通信任务,主要包括 UDP 通信线程 和 串口通信线程。每个线程独立运行,负责特定的通信任务,并通过 Qt 信号槽机制 与主线程进行通信和数据传递。 1.1 UDP 通信线程 UDPThread 类继承自 QThread,专门用于处理 UDP 通信任务。其主要特点包括: 构造函数接收一个端口号,并用于绑定 UDP socket 以接收数据。 run() 方法中创建并配置 QUdpSocket,然后进入事件循环 (exec()) 处理数据接收。 使用 信号槽机制 处理异步数据接收。 提...
1. Protocol Buffers (protobuf) 的应用 Protobuf用于定义统一的消息格式,实现高效的数据序列化和反序列化。 a. 消息定义 在 message.proto 文件中定义消息结构: syntax = "proto3"; message AUVMessage { int32 auv_id = 1; float latitude = 2; float longitude = 3; float velocity_x = 4; float velocity_y = 5; uint64 timestamp = 6; enum M...
1 总览 2 设备、传感器状态 3 AUVs 实时状态 4 下位机控制 ![](https://cdn.beanljun.top/gh/beanlj...
摘要: `GPIO` 全称 `General Purpose Input Output`,即通用输入输出端口 ,负责采集外部器件的信息或者控制外部器件工作 。
1. STM32 GPIO 简介 2.1 特点 不同型号,IO 口数量可能不一样,可通过选型手册快速查询 快速翻转,每次翻转最快只需要两个时钟周期(F1 最高速度可以到 50Mhz) 每个 IO 口都可以做中断 支持 8 种工作模式 2.2 电气特性 工作电压范围:2 V ≤ VDD ≤ 3.6 V 识别电压范围:-0.3 ≤ VIL ≤ 1.164,`1.833 ≤ VIH ...
摘要: linux下使用vscode一键式编译烧录调试STM32
1. 环境准备 在开始之前,需要安装以下必要的软件和工具: STM32CubeMX:用于生成 STM32 工程代码,提供了图形化界面,可以方便地配置 STM32 的各 0 种参数。 vscode:一个轻量级的代码编辑器,支持多种编程语言,支持插件扩展,可以通过插件实现 STM32 的编译、烧录和调试。 OpenOCD:一个开源的调试工具,支持多种调试器,可以通过 OpenOCD 实现对 STM32 的调试。 gcc-arm-none-eabi 编译器,用于编译 STM32 的代码。 gdb-multiarch:一个多架构的调试器,支持多种架构的调试,用于 ...
摘要: Ubuntu配置SSH连接,包括密码连接和私钥连接,本机和远程主机上分别的配置 。
Ubuntu配置SSH连接 安装SSH 在Ubuntu上,SSH通常已经预装。如果没有安装,可以使用以下命令: sudo apt update && sudo apt install ssh 或者 sudo apt update && sudo apt install openssh-server 前者是安装SSH客户端,后者是安装SSH客户端和服务端。如果只是需要连接远程主机,只需要在主机上安装SSH服务端即可。 密码连接 启动SSH服务 确保远程主机SSH服务已经启动: ...
QT是一个跨平台的C++GUI应用程序开发框架,具有易学易用、模块化和功能丰富的特点。其轻量级、高效能的特性使得在资源受限的嵌入式系统上开发图形用户界面变得更加简便和可行。 本文分别介绍了利用在线安装工具和使用离线安装包安装Qt,并简单配置了Qt环境。 在线安装 下载安装工具 首先,我们需要下载Qt的在线安装工具,下载地址为:Qt Online Installer。进入网站后下滑页面,找到Qt Online Installer,点击跳转到下载页面,选择对应的操作系统下载安装工具。这里...
摘要: moos-ivp是一种基于C++的开源软件,用于构建和管理大型海洋机器人系统 其提供了一种分布式的、基于消息的架构,用于传输数据和控制命令。本文介绍了moos-ivp的特点、应用、安装以及一些基本的使用方法 。
moos-ivp简介 moos-ivp是一种用于海洋无人系统的开源软件平台,基于C++的,是MOOS (Mission Oriented Operating Suite) 和 IvP (Interval Programming) 的组合。项目位于麻省理工学院机械工程系和海洋工程中心,是自主海洋传感系统实验室(LAMSS)的一部分。核心开发人员也是麻省理工学院计算机科学和人工智能实验室 (CSAIL) 的一部分。核心MOO...
{%cq%} Markdown是一种轻量级标记语言,使用易读易写的纯文本格式,通过简单的标记符号来实现文档的格式化,包括标题、列表、链接、图片等。被广泛用于编写各种文档,例如博客、论坛帖子、README文件等。其一大优势是可以轻松转换为HTML等其他格式,更为灵活方便地在不同平台上展示内容。 {%endcq%} 摘要 Markdown是一种轻量级标记语言,使用易读易写的纯文本格式,通过简单的标记符号来实现文档的格式化,包括标题、列表、链接、图片等。被广泛用于编写各种文档,例如博客、论坛帖子、README文件、技术文档等。Markdown的一大优势是可以轻松转换为...