跳转至

DeBug 接口文档

简介

简述:该模块提供RflySim平台调试与环境信息采集相关的工具函数,可收集系统软硬件、网络、RflySim安装配置等多类调试信息并输出归档,用于故障排查与环境检查。

在RflySim无人机仿真平台的使用过程中,用户环境的软硬件配置差异、网络连通性问题、驱动兼容性问题等都可能导致平台运行异常,该模块作为平台专门的调试信息采集工具,可系统化收集系统基础信息、GPU硬件信息、已安装软件信息、无人机设备驱动信息、WSL环境信息、IP网络配置、RflySim版本信息等全维度环境数据,还支持将采集到的所有调试信息统一写入文本文件中,方便开发与运维人员定位问题。

该模块适用于RflySim平台运行异常排查、新部署环境兼容性检测、用户远程问题协助调试等场景,可帮助使用者快速获取完整的环境上下文信息,提升故障解决的效率。

快速开始

该模块无公开类。

环境与依赖

  • Python 环境>= 3.8.10
  • 依赖库datetimenetifacesosplatformpsutilscipy.iosubprocesswin32com.clientwinreg
  • 前置准备:调用此接口前,必须先正确安装并导入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版)