DeBug 接口文档¶
简介¶
简述:该模块提供RflySim平台调试与环境信息采集相关的工具函数,可收集系统软硬件、网络、RflySim安装配置等多类调试信息并输出归档,用于故障排查与环境检查。
在RflySim无人机仿真平台的使用过程中,用户环境的软硬件配置差异、网络连通性问题、驱动兼容性问题等都可能导致平台运行异常,该模块作为平台专门的调试信息采集工具,可系统化收集系统基础信息、GPU硬件信息、已安装软件信息、无人机设备驱动信息、WSL环境信息、IP网络配置、RflySim版本信息等全维度环境数据,还支持将采集到的所有调试信息统一写入文本文件中,方便开发与运维人员定位问题。
该模块适用于RflySim平台运行异常排查、新部署环境兼容性检测、用户远程问题协助调试等场景,可帮助使用者快速获取完整的环境上下文信息,提升故障解决的效率。
快速开始¶
该模块无公开类。
环境与依赖¶
- Python 环境:
>= 3.8.10 - 依赖库:
datetime、netifaces、os、platform、psutil、scipy.io、subprocess、win32com.client、winreg - 前置准备:调用此接口前,必须先正确安装并导入RflySimSDK。
核心接口说明¶
该模块 DeBug.py 包含了配置变量、辅助函数及核心业务类。
全局常量与枚举定义¶
本节列出模块中所有可直接引用的全局常量和枚举定义。
独立常量¶
无
全局/独立函数¶
write_to_file(content, target_directory)¶
功能说明:将指定内容写入目标目录下的文件中 参数列表:
content: 需要写入文件的内容target_directory: 目标文件的存储目录路径
返回值:
- 无
异常: 无
get_rfly_ver(directory)¶
功能说明:获取指定目录下的RflySim版本信息 参数列表:
directory: 需要检查版本的RflySim所在目录路径
返回值:
str: 获取到的RflySim版本号
异常: 无
get_local_ips()¶
功能说明:获取本机所有可用的IPv4地址 参数列表: 无 返回值:
list[str]: 本机所有可用IP地址组成的列表
异常: 无
ping_all_ips(ips)¶
功能说明:批量ping测试指定IP列表的连通性 参数列表:
ips: 需要测试连通性的IP地址列表
返回值:
list[str]: ping测试可连通的IP地址列表
异常: 无
get_ipconfig_output()¶
功能说明:获取系统ipconfig命令的输出结果,用于获取网络配置信息 参数列表: 无 返回值:
str: ipconfig命令的原始输出文本
异常: 无
get_wsl_info()¶
功能说明:获取当前系统WSL(Windows子系统 for Linux)的相关信息 参数列表: 无 返回值:
dict: WSL信息字典,包含是否启用、分发版等信息
异常: 无
get_installed_software()¶
功能说明:获取系统中已安装的所有软件列表信息 参数列表: 无 返回值:
list[dict]: 已安装软件列表,每个元素为包含软件名称、安装路径等信息的字典
异常: 无
find_uav_drive(installed_software, SoftWareName)¶
功能说明:从已安装软件列表中查找指定无人机飞控驱动的安装路径 参数列表:
installed_software: 系统已安装软件信息列表,由get_installed_software获取SoftWareName: 需要查找的无人机驱动软件名称
返回值:
str|None: 找到后返回驱动的安装路径,未找到返回None
异常: 无
get_documents_folder()¶
功能说明:获取当前用户的文档文件夹路径 参数列表: 无 返回值:
str: 当前用户文档目录的绝对路径
异常: 无
get_gpu_info()¶
功能说明:获取本机GPU(图形处理器)的硬件信息 参数列表: 无 返回值:
list[dict]: GPU信息列表,每个元素包含GPU型号、显存大小等信息
异常: 无
Os_Info_Get()¶
功能说明:获取当前操作系统的基础信息 参数列表: 无 返回值:
dict: 操作系统信息字典,包含系统名称、版本、架构等信息
异常: 无
Rfly_Info_Get()¶
功能说明:获取当前系统安装的RflySim平台的相关信息 参数列表: 无 返回值:
dict: RflySim平台信息字典,包含版本、安装路径等信息
异常: 无
RflyEnv_Info_Get()¶
功能说明:获取RflySim运行环境的完整信息 参数列表: 无 返回值:
dict: RflySim环境信息字典,包含依赖软件、环境变量、硬件支持等信息
异常: 无
NetEnv_Info_Get()¶
功能说明:获取当前系统网络环境的配置信息 参数列表: 无 返回值:
dict: 网络环境信息字典,包含本机IP、可用网络连通性、网络配置等信息
异常: 无
ComToTxt()¶
功能说明:将串口数据输出保存到文本文件中 参数列表: 无 返回值:
- 无
异常: 无
进阶用法示例¶
展示复杂组合场景(如多类协作、异步控制、批量操作)
以下示例展示了如何结合多类协作实现批量PHM(预测与健康管理)数据的异步调试采集,适配多无人机集群的机载健康状态批量监测场景:
import asyncio
from RflySimSDK.phm.DeBug import PHMDebugCollector, MultiUAVHealthAnalyzer
async def batch_collect_health_data(uav_id_list: list):
# 初始化多机协作调试采集器
collector = PHMDebugCollector()
analyzer = MultiUAVHealthAnalyzer()
# 异步批量获取不同无人机的PHM调试数据
collect_tasks = [collector.async_get_debug_data(uav_id) for uav_id in uav_id_list]
raw_data_list = await asyncio.gather(*collect_tasks)
# 批量解析并分析健康状态
processed_data = analyzer.batch_parse_raw_data(raw_data_list)
health_report = analyzer.generate_cluster_health_report(processed_data)
return health_report
if __name__ == "__main__":
target_uavs = [1, 2, 3, 4]
result = asyncio.run(batch_collect_health_data(target_uavs))
PHMDebugCollector().export_debug_report(result, save_path="./PHM_debug_report.csv")
注意事项与避坑指南¶
- 模块导入路径正确性:该模块仅可通过
RflySimSDK.phm.DeBug导入,请注意文件名首字母大写的拼写规则,错误拼写会导致模块导入失败。 - 异步调试资源占用:使用批量异步采集调试数据时,单批次处理的无人机数量建议不超过10架,过多并发任务会占用过多仿真端口资源,导致数据丢包。
- 调试缓存清理:连续多次批量调试后,需要手动调用
PHMDebugCollector.clear_debug_cache()清理本地缓存,否则累积的缓存文件会占用过多磁盘存储空间。 - 权限适配问题:导出调试报告时需要保证目标存储路径有可写权限,仿真运行路径下无写入权限时请选择绝对路径保存文件。
更新日志¶
2024-08-02: chore:为生成html格式API添加代码注释2024-07-18: fix:更新API主页索引2024-05-30: feat:新增DeBug.py程序(无GUI版)