news 2026/7/21 19:07:34

深入浅出高通QMI(5):QMI核心服务进阶接口速查表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入浅出高通QMI(5):QMI核心服务进阶接口速查表

本文为《深入浅出高通QMI》系列的配套速查表,汇总了CTL、DMS、NAS、WDS四大核心服务的高级接口、关键参数与典型调用示例,方便开发者快速查阅与调用。

一、CTL(Control Service)—— 控制服务

1. 服务状态查询

用途:实时获取指定服务的运行状态(启用/禁用/异常)。

请求消息
CTL_GET_SERVICE_STATUS_REQ_V01

关键字段

uint32_tservice_id;// 目标服务ID,如NAS=0x02

响应消息
CTL_GET_SERVICE_STATUS_RESP_V01

关键字段

uint32_tservice_status;// 状态:1=启用,2=禁用,3=异常

调用示例

ctl_get_service_status_req_msg_v01 req={0};ctl_get_service_status_resp_msg_v01 resp={0};req.service_id=0x02;// NAS服务qmi_client_send_msg_sync(ctl_handle,CTL_GET_SERVICE_STATUS_REQ_V01,&req,sizeof(req),&resp,sizeof(resp),3000);

2. 客户端权限设置

用途:限制客户端对特定服务的访问权限。

请求消息
CTL_SET_CLIENT_PERMISSIONS_REQ_V01

关键字段

uint32_tclient_id;uint32_tpermission_mask;// 权限掩码

常用权限掩码

CTL_PERMISSION_DMS_READ// 允许读DMSCTL_PERMISSION_DMS_WRITE// 允许写DMSCTL_PERMISSION_NAS_READ// 允许读NASCTL_PERMISSION_WDS_WRITE// 允许写WDS

调用示例

ctl_set_client_permissions_req_msg_v01 req={0};req.client_id=client_id;req.permission_mask_valid=1;req.permission_mask=CTL_PERMISSION_DMS_READ|CTL_PERMISSION_WDS_WRITE;

3. 服务重启

用途:重启指定的异常服务。

请求消息
CTL_RESTART_SERVICE_REQ_V01

关键字段

uint32_tservice_id;// 需重启的服务ID

调用示例

ctl_restart_service_req_msg_v01 req={0};req.service_id=0x02;// 重启NAS服务qmi_client_send_msg_sync(ctl_handle,CTL_RESTART_SERVICE_REQ_V01,&req,sizeof(req),&resp,sizeof(resp),5000);

二、DMS(Device Management Service)—— 设备管理服务

1. 射频频段设置

用途:配置Modem支持的通信频段。

请求消息
DMS_SET_RF_BAND_PREF_REQ_V01

关键字段

uint64_tlte_bands;// LTE频段掩码uint64_tnr5g_bands;// 5G NR频段掩码

常用频段掩码

LTE_BAND_1=1<<0LTE_BAND_3=1<<2LTE_BAND_7=1<<6NR5G_BAND_78=1<<77

调用示例

dms_set_rf_band_pref_req_msg_v01 req={0};req.rf_band_pref_valid=1;req.rf_band_pref.lte_bands=LTE_BAND_1|LTE_BAND_3;req.rf_band_pref.nr5g_bands=NR5G_BAND_78;

2. 固件信息查询

用途:获取Modem固件版本、编译时间等。

请求消息
DMS_GET_FIRMWARE_INFO_REQ_V01

响应关键字段

charfirmware_version[QMI_DMS_FIRMWARE_VERSION_LENGTH_V01];charbuild_date[QMI_DMS_BUILD_DATE_LENGTH_V01];

调用示例

dms_get_firmware_info_req_msg_v01 req={0};dms_get_firmware_info_resp_msg_v01 resp={0};qmi_client_send_msg_sync(dms_handle,DMS_GET_FIRMWARE_INFO_REQ_V01,&req,sizeof(req),&resp,sizeof(resp),3000);

三、NAS(Network Access Service)—— 网络接入服务

1. 网络模式锁定

用途:强制Modem工作在指定网络模式。

请求消息
NAS_SET_SYSTEM_SELECTION_PREFERENCE_REQ_V01

关键字段

uint32_tsystem_preference;// 网络模式偏好

常用模式枚举

NAS_SYSTEM_PREF_LTE_ONLY_V01// 仅4GNAS_SYSTEM_PREF_5G_SA_ONLY_V01// 仅5G SANAS_SYSTEM_PREF_5G_NSA_ONLY_V01// 仅5G NSANAS_SYSTEM_PREF_AUTOMATIC_V01// 自动选择

调用示例

nas_set_system_selection_preference_req_msg_v01 req={0};req.system_preference_valid=1;req.system_preference=NAS_SYSTEM_PREF_5G_SA_ONLY_V01;

2. 信号强度详细查询

用途:获取RSRP、RSRQ、SINR等5G关键指标。

请求消息
NAS_GET_SIGNAL_STRENGTH_DETAILED_REQ_V01

响应关键字段

floatrsrp;// 参考信号接收功率(dBm)floatrsrq;// 参考信号接收质量(dB)floatsinr;// 信号干扰噪声比(dB)

调用示例

nas_get_signal_strength_detailed_req_msg_v01 req={0};nas_get_signal_strength_detailed_resp_msg_v01 resp={0};qmi_client_send_msg_sync(nas_handle,NAS_GET_SIGNAL_STRENGTH_DETAILED_REQ_V01,&req,sizeof(req),&resp,sizeof(resp),3000);

四、WDS(Wireless Data Service)—— 无线数据服务

1. 多APN并发连接

用途:同时建立多个不同APN的数据连接。

请求消息
WDS_START_NETWORK_INTERFACE_REQ_V01

关键字段

charapn_name[WDS_APN_NAME_MAX_LENGTH_V01];uint8_tip_family;// IP类型:4=IPv4,6=IPv6,10=IPv4v6

调用示例

wds_start_network_interface_req_msg_v01 req={0};strncpy(req.apn_name,"crmnet",sizeof(req.apn_name)-1);req.ip_family_valid=1;req.ip_family=10;// IPv4v6

2. 数据连接统计

用途:获取当前连接的丢包率、延迟、吞吐量。

请求消息
WDS_GET_PACKET_STATISTICS_REQ_V01

响应关键字段

uint64_ttx_packets;// 发送包数uint64_trx_packets;// 接收包数uint64_ttx_bytes;// 发送字节数uint64_trx_bytes;// 接收字节数uint32_ttx_packet_errors;// 发送错误数

调用示例

wds_get_packet_statistics_req_msg_v01 req={0};wds_get_packet_statistics_resp_msg_v01 resp={0};qmi_client_send_msg_sync(wds_handle,WDS_GET_PACKET_STATISTICS_REQ_V01,&req,sizeof(req),&resp,sizeof(resp),3000);

五、错误码速查

错误码宏说明
QMI_RESULT_SUCCESS_V010成功
QMI_RESULT_FAILURE_V011通用失败
QMI_ERR_INVALID_ARG_V012无效参数
QMI_ERR_INVALID_CLIENT_ID_V017无效客户端ID
QMI_ERR_NO_MEMORY_V018内存不足
QMI_ERR_NO_NETWORK_FOUND_V0117无网络
QMI_ERR_NETWORK_NOT_READY_V0122网络未就绪

六、服务ID速查

服务名称服务ID(十六进制)说明
CTL0x01控制服务
DMS0x02设备管理
NAS0x03网络接入
WDS0x04无线数据
UIM0x05SIM卡管理
PDS0x06定位服务
VOICE0x08语音服务
自定义服务0x10 起需避免冲突

七、调用模板(同步/异步)

同步调用模板:

qmi_client_error_type err;err=qmi_client_send_msg_sync(handle,// 服务句柄msg_id,// 消息IDreq,sizeof(req),// 请求结构体resp,sizeof(resp),// 响应结构体timeout_ms// 超时时间);

异步调用模板:

qmi_client_error_type err;void*txn_handle;err=qmi_client_send_msg_async(handle,msg_id,req,sizeof(req),resp,sizeof(resp),callback,// 回调函数context,// 用户上下文&txn_handle// 事务句柄);

八、注意事项

  1. 初始化顺序:CTL → UIM → NAS → WDS(遵循依赖关系)。
  2. Client ID:必须先通过CTL注册获取,否则无法调用其他服务。
  3. 资源释放:按初始化逆序释放,先业务服务后CTL。
  4. 线程安全:多客户端并发时使用互斥锁保护共享资源。
  5. 日志脱敏:IMEI、ICCID等敏感信息在日志中需掩码处理。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 20:05:54

PHP性能迎来拐点,PHP 8.7正式版前最后实测数据泄露

第一章&#xff1a;PHP 8.7 新特性 性能测试PHP 8.7 作为 PHP 语言的下一个重要迭代版本&#xff0c;引入了多项底层优化与新语法特性&#xff0c;显著提升了执行效率和开发体验。本章将重点分析其关键性能改进&#xff0c;并通过基准测试对比 PHP 8.6 与 PHP 8.7 的运行表现。…

作者头像 李华
网站建设 2026/7/20 19:39:52

PHP与智能合约数据互通实战(解决跨平台对接难题)

第一章&#xff1a;PHP与智能合约数据互通实战&#xff08;解决跨平台对接难题&#xff09;在区块链应用开发中&#xff0c;PHP作为广泛使用的后端语言&#xff0c;常需与部署在以太坊等公链上的智能合约进行数据交互。由于PHP本身不支持直接调用智能合约&#xff0c;必须借助中…

作者头像 李华
网站建设 2026/7/16 17:42:27

45634563456

45645645645

作者头像 李华
网站建设 2026/7/19 12:35:27

YOLOv8日志收集ELK方案:集中管理训练日志

YOLOv8日志收集ELK方案&#xff1a;集中管理训练日志 在现代AI研发实践中&#xff0c;一个看似不起眼却影响深远的问题正困扰着越来越多的团队——当我们在多个服务器、容器甚至云实例上并行训练YOLOv8模型时&#xff0c;那些记录着损失值波动、mAP变化和学习率调整的日志文件&…

作者头像 李华
网站建设 2026/7/21 18:57:24

YOLOv8多版本共存:virtualenv隔离不同项目

YOLOv8多版本共存&#xff1a;virtualenv隔离不同项目 在深度学习项目开发中&#xff0c;一个看似不起眼却频频引发“线上事故”的问题浮出水面——环境依赖冲突。你是否经历过这样的场景&#xff1a;刚跑通YOLOv8的新模型&#xff0c;准备回头维护一个基于YOLOv5的老项目时&a…

作者头像 李华
网站建设 2026/7/20 21:02:07

程序员必学!AI智能体记忆系统:理论框架与实战指南(收藏)

这篇由多所顶尖机构联合发布的综述&#xff0c;提出"形态-功能-动态"三维框架&#xff0c;系统解构了AI智能体记忆系统的完整蓝图。文章明晰了智能体记忆与LLM记忆、RAG、上下文工程的边界与联系&#xff0c;详细分析了记忆的三种形态、三大功能及动态过程&#xff0…

作者头像 李华