# 一键网络诊断 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # 功能概述 一键网络诊断功能内部集成多个网络接口,用于快速获取注网状态、SIM卡状态、网络参数等信息。接口返回的结果可为定位网络故障提供初步排查方向。 # 一键网络诊断API ## 头文件 *easy_network_diagnostics.h* ## 函数概览 | **函数** | **说明** | | --- | --- | | *qapp_easy_nw_diagnostics()* | 执行一键网络诊断 | ## 函数详解 ### qapp_easy_nw_diagnostics - **功能描述** 执行一键网络诊断。此函数内部集成多个网络接口,用于获取注网状态、SIM卡状态、网络参数等,返回的诊断结果可为定位网络故障提供初步排查方向。 - **函数原型** ```cpp qapp_nw_diagnostics_result qapp_easy_nw_diagnostics(qapp_network_diagnostics_config_t *config); ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *config* | 输入 | *qapp_network_diagnostics_config_t* | 诊断阈值配置;详见 [*qapp_network_diagnostics_config_t*](#qappnetworkdiagnosticsconfigt) | - **返回值说明** 详见 [*qapp_nw_diagnostics_result*](#qappnwdiagnostics_result) ```{note} 1. 返回值中每个bit对应一种网络问题,对应位置1即表示该项存在异常。例如:*weak_signal* 事件位置1(值:0x02)代表当前RSRP/RSRQ低于设定阈值,判定为弱信号场景。 2. 此函数仅提供多指标状态筛查,输出异常标记,不提供完整根因定位与深度故障分析。 ``` ## 结构体定义 ### qapp_network_diagnostics_config_t 诊断阈值配置结构体定义如下: ```cpp typedef struct { qosa_uint8_t rsrp_threshold; qosa_uint8_t rsrq_threshold; qosa_uint8_t snr_threshold; qosa_uint16_t ul_bler_threshold; qosa_uint16_t dl_bler_threshold; }qapp_network_diagnostics_config_t; ``` | **参数** | **类型** | **说明** | | --- | --- | --- | | *rsrp_threshold* | qosa_uint8_t | RSRP信号强度阈值 | | *rsrq_threshold* | qosa_uint8_t | RSRQ信号质量阈值 | | *snr_threshold* | qosa_uint8_t | 信噪比SNR阈值 | | *ul_bler_threshold* | qosa_uint16_t | 上行BLER误码率阈值 | | *dl_bler_threshold* | qosa_uint16_t | 下行BLER误码率阈值 | ### qapp_nw_diagnostics_result 一键诊断结果结构体定义如下: ```c typedef struct { qosa_uint8_t execute_result : 1; qosa_uint8_t weak_signal : 1; qosa_uint8_t poor_nw_resources : 1; qosa_uint8_t high_bler : 1; qosa_uint8_t cell_change: 1; qosa_uint8_t low_bandwidth : 1; qosa_uint8_t tx_power_abnormal : 1; qosa_uint8_t no_dl_data : 1; qosa_uint8_t simcard_not_ready : 1; qosa_uint8_t rf_close : 1; qosa_uint8_t lock_oper : 1; qosa_uint8_t lock_band : 1; qosa_uint8_t lock_freq_or_cell : 1; qosa_uint8_t no_available_cell : 1; qosa_uint8_t rach_fail : 1; qosa_uint8_t rrc_establish_fail : 1; qosa_uint8_t dl_loss_sync : 1; qosa_uint8_t esm_cause_event: 1; qosa_uint8_t emm_cause_event: 1; qosa_uint16_t reserve: 13; }qapp_nw_diagnostics_result; ``` | **参数** | **类型** | **说明** | | --- | --- | --- | | *execute_result* | qosa_uint8_t:1 | 诊断执行结果
*0*:函数执行成功
*1*:函数执行失败 | | *weak_signal* | qosa_uint8_t:1 | 信号弱 | | *poor_nw_resources* | qosa_uint8_t:1 | 网络资源不足 | | *high_bler* | qosa_uint8_t:1 | 上下行误码率偏高 | | *cell_change* | qosa_uint8_t:1 | 小区切换频繁 | | *low_bandwidth* | qosa_uint8_t:1 | 带宽低 | | *tx_power_abnormal* | qosa_uint8_t:1 | 发射功率异常 | | *no_dl_data* | qosa_uint8_t:1 | 无下行数据 | | *simcard_not_ready* | qosa_uint8_t:1 | SIM卡未就绪 | | *rf_close* | qosa_uint8_t:1 | 射频通道关闭 | | *lock_oper* | qosa_uint8_t:1 | 运营商锁定 | | *lock_band* | qosa_uint8_t:1 | 频段锁定 | | *lock_freq_or_cell* | qosa_uint8_t:1 | 频点/小区锁定 | | *no_available_cell* | qosa_uint8_t:1 | 无可用服务小区 | | *rach_fail* | qosa_uint8_t:1 | 随机接入失败 | | *rrc_establish_fail* | qosa_uint8_t:1 | RRC连接建立失败 | | *dl_loss_sync* | qosa_uint8_t:1 | 下行同步丢失 | | *esm_cause_event* | qosa_uint8_t:1 | ESM异常事件 | | *emm_cause_event* | qosa_uint8_t:1 | EMM异常事件 | | *reserve* | qosa_uint16_t:13 | 预留 | # 应用逻辑流程图 ```{figure} images/board_H0tlwNWsahXrx9bTM6fct1D0nHg.jpg :align: center :alt: image ``` # 示例代码 完整示例代码请查看 https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/application/one_touch/diagnostics.c