news 2026/4/15 14:08:49

深入浅出高通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/4/12 7:14:02

使用Git管理YOLOv8项目代码的最佳实践

使用Git管理YOLOv8项目代码的最佳实践 在现代AI工程实践中&#xff0c;一个训练速度快、精度高的模型并不足以支撑项目的长期成功。真正决定项目成败的&#xff0c;往往是背后那套能否快速迭代、清晰追溯、高效协作的开发体系。以YOLOv8为例&#xff0c;尽管它凭借简洁API和强…

作者头像 李华
网站建设 2026/4/14 6:35:19

456456456

45645645645

作者头像 李华
网站建设 2026/4/12 13:01:31

基于OpenSpec标准构建的YOLOv8可复现训练环境

基于OpenSpec标准构建的YOLOv8可复现训练环境 在智能视觉系统快速落地的今天&#xff0c;一个常见的尴尬场景是&#xff1a;研究员在本地调出理想结果后&#xff0c;工程团队却无法在服务器上复现——问题往往不在于模型本身&#xff0c;而在于“我的机器上能跑”这种环境差异。…

作者头像 李华
网站建设 2026/4/12 15:10:02

【PHP人工智能图像识别实战】:手把手教你搭建高精度图像识别接口

第一章&#xff1a;PHP人工智能图像识别接口概述随着人工智能技术的快速发展&#xff0c;图像识别已成为现代Web应用中的核心功能之一。PHP作为广泛使用的服务器端脚本语言&#xff0c;虽然本身不直接提供深度学习能力&#xff0c;但可通过调用外部AI服务API实现高效的图像识别…

作者头像 李华