# 一键配置Profile ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # 功能概述 一键配置Profile功能内置了三大运营商(中国移动、中国联通、中国电信)的基础拨号配置模板,同时支持用户根据实际需求进行自定义配置,旨在简化数据拨号参数的配置流程。 # 一键配置Profile API ## 头文件 *easy_datacall_profile.h* ## 函数概览 | **函数** | **说明** | | --- | --- | | *qapp_easy_datacall_prof_tpl_set_config()* | 配置指定索引的Profile模板参数 | | *qapp_easy_datacall_prof_tpl_get_config()* | 读取指定索引的Profile模板参数 | | *qapp_easy_datacall_prof_tpl_write()* | 将Profile模板写入指定SIM卡的指定PDP上下文 | | *qapp_easy_datacall_prof_tpl_read()* | 从指定SIM卡的指定PDP上下文读取已配置的Profile模板索引 | ## 函数详解 ### qapp_easy_datacall_prof_tpl_set_config - **功能描述:** 配置指定索引的Profile模板参数,将传入的PDP上下文、鉴权信息写入目标模板。 - **函数原型** ```c qosa_uint32_t qapp_easy_datacall_prof_tpl_set_config(const qapp_easy_datacall_prof_param_t *tpl, qapp_easy_datacall_prof_tpl_e tpl_idx); ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *tpl* | 输入 | *const qapp_easy_datacall_prof_param_t* * | 待写入的Profile模板参数;详见 [*qapp_easy_datacall_prof_param_t*](#qappeasydatacallprofparam_t) | | *tpl_idx* | 输入 | *qapp_easy_datacall_prof_tpl_e* | 待配置的模板索引;详见 [*qapp_easy_datacall_prof_tpl_e*](#qappeasydatacallproftpl_e) | - **返回值说明** *0*:函数执行成功 *1*:函数执行失败 其他值详见 [*qapp_easy_datacall_prof_tpl_error_e*](#qappeasydatacallproftplerrore) ### qapp_easy_datacall_prof_tpl_get_config - **功能描述** 读取指定索引的Profile模板参数,将模板中存储的PDP上下文及鉴权参数输出到目标结构体。 - **函数原型** ```c qosa_uint32_t qapp_easy_datacall_prof_tpl_get_config(qapp_easy_datacall_prof_param_t *tpl, qapp_easy_datacall_prof_tpl_e tpl_idx); ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *tpl* | 输出 | *qapp_easy_datacall_prof_param_t \** | 读取到的Profile模板参数;详见 [*qapp_easy_datacall_prof_param_t*](#qappeasydatacallprofparam_t) | | *tpl_idx* | 输入 | *qapp_easy_datacall_prof_tpl_e* | 待读取的模板索引;详见 [*qapp_easy_datacall_prof_tpl_e*](#qappeasydatacallproftpl_e) | - **返回值说明** *0*:函数执行成功 *1*:函数执行失败 其他值详见 [*qapp_easy_datacall_prof_tpl_error_e*](#qappeasydatacallproftplerrore) ### qapp_easy_datacall_prof_tpl_write - **功能描述** 将Profile模板写入指定SIM卡的指定PDP上下文,后续拨号可直接复用这套模板参数。 - **函数原型** ```c qosa_uint32_t qapp_easy_datacall_prof_tpl_write(qosa_uint8_t simid, qosa_uint8_t pdpid, qapp_easy_datacall_prof_tpl_e tpl_idx); ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *simid* | 输入 | qosa_uint8_t | SIM ID | | *pdpid* | 输入 | qosa_uint8_t | PDP上下文ID | | *tpl_idx* | 输入 | *qapp_easy_datacall_prof_tpl_e* | 待写入的模板索引;详见 [*qapp_easy_datacall_prof_tpl_e*](#qappeasydatacallproftpl_e) | - **返回值说明** *0*:函数执行成功 *1*:函数执行失败 其他值详见 [*qapp_easy_datacall_prof_tpl_error_e*](#qappeasydatacallproftplerrore) ### qapp_easy_datacall_prof_tpl_read - **功能描述** 从指定SIM卡的指定PDP上下文读取已配置的Profile模板索引。 - **函数原型** ```c qosa_uint32_t qapp_easy_datacall_prof_tpl_read(qosa_uint8_t simid, qosa_uint8_t pdpid, qapp_easy_datacall_prof_tpl_e *tpl_idx); ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *simid* | 输入 | qosa_uint8_t | SIM ID | | *pdpid* | 输入 | qosa_uint8_t | PDP上下文ID | | *tpl_idx* | 输出 | *qapp_easy_datacall_prof_tpl_e* | 读取到的模板索引;详见 [*qapp_easy_datacall_prof_tpl_e*](#qappeasydatacallproftpl_e) | - **返回值说明** *0*:函数执行成功 *1*:函数执行失败 *3*:配置模板与参数不匹配 其他值详见 [*qapp_easy_datacall_prof_tpl_error_e*](#qappeasydatacallproftplerrore) ## 结构体定义 ### qapp_easy_datacall_prof_param_t Profile模板参数结构体定义如下: ```cpp typedef struct { qosa_pdp_context_t pdp; qosa_pdp_auth_context_t auth; } qapp_easy_datacall_prof_param_t; ``` | **参数** | **类型** | **说明** | | --- | --- | --- | | *pdp* | *qosa_pdp_context_t* | PDP上下文参数;详见 [*qosa_pdp_context_t*](<../../../网络与通信/网卡/蜂窝无线网卡/DataCall拨号/DataCall拨号.md#qosapdpcontext_t>) | | *auth* | *qosa_pdp_auth_context_t* | PDP认证参数;详见 [*qosa_pdp_auth_context_t*](<../../../网络与通信/网卡/蜂窝无线网卡/DataCall拨号/DataCall拨号.md#qosapdpauthcontextt>) | ## 枚举类型定义 ### [qapp_easy_datacall_prof_tpl_error_e](#qappeasydatacallproftplerrore) Profile配置结果码枚举定义如下: ```cpp typedef enum { QAPP_EASY_DATACALL_PROF_TPL_SUCCESS = QOSA_OK, QAPP_EASY_DATACALL_PROF_TPL_EXECUTE_ERR = 1, QAPP_EASY_DATACALL_PROF_TPL_NO_MEMORY, QAPP_EASY_DATACALL_PROF_TPL_MISMATCH, } qapp_easy_datacall_prof_tpl_error_e; ``` | **成员** | **说明** | | --- | --- | | *QAPP_EASY_DATACALL_PROF_TPL_SUCCESS* | 函数执行成功 | | *QAPP_EASY_DATACALL_PROF_TPL_EXECUTE_ERR* | 函数执行失败 | | *QAPP_EASY_DATACALL_PROF_TPL_NO_MEMORY* | 内存分配失败 | | *QAPP_EASY_DATACALL_PROF_TPL_MISMATCH* | 配置模板与参数不匹配 | ### qapp_easy_datacall_prof_tpl_e 模板索引枚举定义如下: ```cpp typedef enum { QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_NONE = -1, QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_DEFAULT = 0, QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_CMNET_IPV4V6, QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_UNINET_IPV4V6, QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_CTNET_IPV4V6, QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_MAX, QAPP_EASY_DATACALL_PROF_TPL_USER_0 = QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_MAX, QAPP_EASY_DATACALL_PROF_TPL_USER_1, QAPP_EASY_DATACALL_PROF_TPL_USER_2, QAPP_EASY_DATACALL_PROF_TPL_MAX, } qapp_easy_datacall_prof_tpl_e; ``` | **成员** | **说明** | | --- | --- | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_NONE* | 无效模板 | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_DEFAULT* | 默认通用模板(只读) | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_CMNET_IPV4V6* | 中国移动CMNET IPv4 + IPv6模板(只读) | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_UNINET_IPV4V6* | 中国联通UNINET IPv4 + IPv6内置模板(只读) | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_CTNET_IPV4V6* | 中国电信CTNET IPv4 + IPv6内置模板(只读) | | *QAPP_EASY_DATACALL_PROF_TPL_INTERNAL_MAX* | 内置模板数量上限(分界值) | | *QAPP_EASY_DATACALL_PROF_TPL_USER_0* | 用户自定义模板0,支持读写修改 | | *QAPP_EASY_DATACALL_PROF_TPL_USER_1* | 用户自定义模板1,支持读写修改 | | *QAPP_EASY_DATACALL_PROF_TPL_USER_2* | 用户自定义模板2,支持读写修改 | | *QAPP_EASY_DATACALL_PROF_TPL_MAX* | 所有模板总数上限(内置 + 用户自定义) | # 应用逻辑流程图 ```{image} images/board_QRh9wBlZbhtFw7bxmD5c1aKxn7c.jpg :width: 820px :height: 445px :align: center ``` # 示例代码 ### 一键profile默认参数配置 https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/application/one_touch/profile/profile_demo.c ### 使用内置profile配置 https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/application/one_touch/profile/profile_builtin.c