增加WAP/MMS参数个数:
需要修改的位置:
1.GPRS的datacount个数(插入SIM,设置—>数据账户—>GPRS)
MMI相关 #define MAX_GPRS_PROFILE_NUM (30)
NV相关 #define NVRAM_EF_ABM_GPRS_PROFILE_TOTAL 30
上面两个值要保持一致
2. WAP/MMS的Profile的个数(网络服务—>Internet service —>settings—>profiles,
Messaging —>MMS —> MMS Settings —>profiles —> —> —> —>)
#define NVRAM_WAP_PROF_MAX_STATIC_PROFILES 15
这个WAP/MMS共用
3.WIFI的ID(网络服务—>Internet service —>settings—>profiles可能会有WIFI设置)
#define DTCNT_WIFI_ID 40
此值一般是10+datacount的总数
4.根据客户提供的表在NV中配置各个参数,就是修改nvram_cust_pack.c。此文件主要修改以下几个数据
NVRAM_EF_ABM_PS_PROFILE_DEFAULT
WAP相关的
NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT
NVRAM_EF_WAP_PROF_WAP_SIM1_PROFILE_NAMES_DEFAULT
NVRAM_EF_WAP_PROF_WAP_SIM2_PROFILE_NAMES_DEFAULT
MMS相关的
NVRAM_EF_WAP_PROF_MMS_PROFILE_CONTENT_DEFAULT
NVRAM_EF_WAP_PROF_MMS_SIM1_PROFILE_NAMES_DEFAULT
NVRAM_EF_WAP_PROF_MMS_SIM2_PROFILE_NAMES_DEFAULT
搞清这个几个数组的数据如何关联起来的,就很容易修改了:
WAP profile配置与数据账户关系:
数据帐户列表:NVRAM_EF_ABM_PS_PROFILE_DEFAULT
Wap 浏览器设置档列表:NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT)
每个SIM下Wap浏览器设置档内容列表:NVRAM_EF_WAP_PROF_WAP_SIM1_PROFILE_NAMES_DEFAULT
数据帐户列表、Wap 浏览器设置档列表、Wap浏览器设置档内容之间的关系为:
每个SIM下Wap 浏览器设置档列表的每个成员必须选择一个 Wap浏览器设置档内容列表的一个成员,Wap浏览器设置档内容列表每个成员必须选择数据帐户列表 一个成员
那这种关系如何联系起来的呢?
第一种关系的建立:NVRAM_EF_WAP_PROF_WAP_SIM1_PROFILE_NAMES_DEFAULT元素的类型是typedef struct
{
kal_uint8 conn_type;
kal_uint8 dcs;
kal_uint8 access;
kal_uint8 content_index;
kal_uint8 profile_name[NVRAM_WAP_PROF_PROFILE_NAME_LEN];
kal_uint8 prov_url[NVRAM_WAP_PROF_PROVURL_LEN];
kal_uint8 context_id[NVRAM_WAP_PROF_CONTEXT_ID_LEN];
} nvram_wap_prof_profile_name_struct;
第4个成员就是关联到NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT[ ]对应元素的索引
第二种关系的建立:
NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT[ ]元素的类型是
typedef struct
{
kal_uint8 access;
kal_uint16 proxy_port;
kal_int32 data_account_primary_id;
kal_int32 data_account_secondary_id;
kal_uint8 conn_type;
kal_uint8 use_proxy_status;
kal_uint8 proxy_ip[4];
kal_uint8 username[NVRAM_WAP_PROF_PROFILE_USERNAME_LEN];
kal_uint8 password[NVRAM_WAP_PROF_PROFILE_PASSWORD_LEN];
kal_uint8 url[NVRAM_WAP_PROF_URL_LEN];
} nvram_wap_prof_profile_content_struct;
第3个成员account_primary_id就是关联到NVRAM_EF_ABM_PS_PROFILE_DEFAULT [ ]对应元素,不过此数据不是数组的索引,此数组第一个元素ID默认是10,其他元素依次加1
(为什么是10,我也不知道,还望知道的告知哦O(∩_∩)O~)
基本就是这样,至于上层MMI如何读取NV这些数据,并关联起来,我还没有在code中找到,这是我的另一个疑问
需要注意的几个问题:
1. { /* wap profile 1 -Airtel Live*/
1,8080,10,-1,1,0,100,001,200,099,"","","http://live.airtelworld.com"
},
"custom/app/PROWAVE35_08B_BB/nvram_cust_pack.c", line 1497: Error: C2445E: digit 8 or 9 found in octal number
原因:C中默认以0开头的数字是八进制,所以099被认为是八进制数其中又含有9,当然是错误的。类似这样的数字不要以0开头,直接写99。另外即使是0——8的数字,供应商给的IP一般都类似010.011.012.023这样,必须去掉前面的0。
2.如过客户给的个数不够,
NVRAM_EF_ABM_PS_PROFILE_DEFAULT[]余下的要填空,即元素必须必须和MAX_GPRS_PROFILE_NUM保持一致