夜雨聆风学习资料网

ARTICLE · 1043900

把能见度带到地面站:我们的无人机监测软件开发记录

把能见度带到地面站:我们的无人机监测软件开发记录

不动手ai搞事情 · 项目开发手记

无人机搭载了能见度检测仪,地面人员怎样才能方便地看到它的数据?这是我们这次开发的起点。

我们的做法,是围绕 NHNJ75 能见度检测仪,开发一套 Windows 地面端软件:接收数据、检查返回内容、显示能见度,再用一个小浮窗,把关键状态留在操作人员视线里。

01|先解决一件事:让数据走完整条链路

这个项目里,传感器数据需要经过机载端、图传链路和地面端,最后到达电脑。中间既有串口,也有网络通信。

因此,软件实现了三种接入方式:串口、TCP 客户端和 UDP。地面设备通过哪一种方式输出数据,就在软件中选择对应的接入方式。

这里有一个容易混淆的细节:走网口,并不意味着数据协议就变成了 Modbus TCP。当前软件发送的仍然是 NHNJ75 的 Modbus-RTU 原始字节帧,由中间链路透明传输。

02|收到数据以后,还要确认它能不能用

软件不会只把接收到的数字直接放大显示。它会检查设备地址、返回功能码、数据长度和 CRC 校验,并检查读数是否落在当前程序设置的 10—10000 米范围内。

连续收到 3 次有效返回后,界面才显示“已确认连接 NHNJ75”。这个提示依据的是协议特征,不能作为硬件身份认证。

发生超时、校验错误或返回格式异常时,界面会更新连接状态,帮助操作人员区分“设备正在正常返回”和“链路出现问题”。

03|把重要信息,放到看得见的地方

主界面适合连接设备、调试参数和查看数据。实际操作时,我们又希望关键读数尽量少占地方,于是加入了置顶小浮窗。

浮窗保留能见度、状态和链路提醒,可以拖动位置。进入浮窗模式后,后台读取继续运行;预警、报警或通信异常时,显示颜色会随状态变化。

预警和报警阈值可在软件中配置。这些提示用于辅助观察,阈值需要结合具体作业要求设置,不能单独作为飞行放行依据。

04|现场调试,也要少一些重复操作

当前版本还实现了自动读取、串口扫描和 HEX 调试功能。

串口扫描会尝试电脑上的 COM 口、若干常用波特率和设备地址,找到符合协议校验条件的数据后自动填入连接参数。直接使用网口的链路,则选择 TCP 或 UDP 模式配置。

对需要进一步排查的通信问题,HEX 调试区可以发送字节帧,也可以自动补充 CRC。但修改仪器内部地址、波特率等参数,仍需要厂家提供对应的写入协议。

05|这一期,我们做到哪一步?

从当前项目文档和 C# 源码可以确认,软件已经实现多种通信接入、读取与校验、状态提示、串口扫描和置顶浮窗,并提供 Windows 可执行程序。

这篇记录介绍的是软件当前实现。长时间现场运行、空中链路稳定性以及异常后的恢复表现,还需要结合实际设备测试记录来评价;本期没有把这些写成已经完成的测试成果。

后续开发记录,将围绕真实联调结果展开:设备怎样接入、遇到了什么问题、修改了哪里、最终验证到了哪一步。让每次进展都有具体内容,也让问题和解决过程一起留下来。

不动手ai搞事情

从一个实际需求出发,把软件一点点做出来。

相关学习资料