{
#if 1
char* ucs2;
mmi_frm_sms_send_struct sendData; //char * test_no = \
memset(&sendData, 0, sizeof(mmi_frm_sms_send_struct));
MIIPTS_ASSERT(mb_utf8_len(number) \
<
sizeof(sendData.number),
memset(sendData.number, 0, sizeof(sendData.number));
strncpy((char *) sendData.number, number, sizeof(sendData.number) - 1); //strncpy((char *)sendData.number, test_no, sizeof(sendData.number) - 1);
//malloc
//ucs2 = (char *) miipts_utf8_to_unicode((const char *) content); sendData.stringlength = (U16)strlen((char *)content);
sendData.string = (S8 *) OslMalloc((sendData.stringlength + 1) << 2);
MIIPTS_ASSERT(sendData.string, \ if(sendData.string) {
memset(sendData.string, 0, ((sendData.stringlength + 1))); }
mmi_asc_to_ucs2((char *)(sendData.string), (char *)content);
//mb_free(ucs2);
sendData.dcs = SMSAL_8BIT_DCS;
sendData.sendcheck = MMI_FRM_SMS_SCR;
MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_MASTER + slave);
mmi_frm_sms_send_sms(cb, g_miiaux_mod, &sendData); //OslMfree(sendData.string); #else {
char* ucs2;
mmi_frm_sms_send_struct sendData; //char * test_no = \
memset(&sendData, 0, sizeof(mmi_frm_sms_send_struct));
MIIPTS_ASSERT(mb_utf8_len(number) \
26
< sizeof(sendData.number),
memset(sendData.number, 0, sizeof(sendData.number));
strncpy((char *) sendData.number, number, sizeof(sendData.number) - 1); //strncpy((char *)sendData.number, test_no, sizeof(sendData.number) - 1);
//malloc
ucs2 = (char *) miipts_utf8_to_unicode((const char *) content); sendData.stringlength = (U16)mb_ucs2_len((const U16*)ucs2); sendData.string = (S8 *) OslMalloc((sendData.stringlength + 1) << 1);
MIIPTS_ASSERT(sendData.string, \ if(sendData.string) {
memset(sendData.string, 0, ((sendData.stringlength + 1) << 1)); }
memcpy(sendData.string, ucs2, ((sendData.stringlength + 1) << 1)); mb_free(ucs2);
sendData.dcs = SMSAL_UCS2_DCS; sendData.sendcheck = MMI_FRM_SMS_SCR;
MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_MASTER + slave);
mmi_frm_sms_send_sms(cb, g_miiaux_mod, &sendData); //OslMfree(sendData.string); } #endif }
13 TASK
custom_config.h
add customer task id into ?custom_module_type‘
custom_config.c
define task create function here
?extern kal_bool miipts_task_create(comptask_handler_struct **handle);‘ add index into ?custom_task_indx_type custom_mod_task_g‘
add task item into ?const comptask_info_struct custom_comp_config_tbl‘
custom_config.h
27
define index here into ?custom_task_indx_type‘ add mode id into ?custom_module_type‘
stack_config.h
MMI的优先级是220
我们目前的miipts task的优先级是212
上面的是06B的方式,在07B中,这2个文件是由sysGen1脚本生成的,因此需要改动脚本。
stack_int_get_active_module_id 在TASK中,动态获得自己的MOD ID,这个值在各种系统级的应用中都会用到,例如network等。
stack_int_set_active_module_id(INDX_FLASH, MOD_FLASH); kal_get_my_task_index(&my_index);
stack_set_active_module_id(my_index, MOD_FLASH);
干啥用的?
14 Camera
需要定义宏:__MMI_CAMERA__
mdi_camera.h mdi_camera.c
mdi_camera_power_on:
发消息MSG_ID_MEDIA_CAM_POWER_UP_REQ给MED Task,并用事件来同步等待MED的回复。
我们imiChat自己使用时会有些特殊的处理: MSG_ID_MEDIA_CAM_PTS_INIT_REQ,
mdi_camera_power_off
28
resizer.c中的RESZ_HISR
我们在这里面处理图像数据,miimtk_media_RESZ_update_yuv_buffer,乒乓buffer,我们在这里修改buffer,将已有的数据发送给处理task来处理。
15 IMSI
IMSI的全称是(International Mobile Subscriber Identification Number)全球移动用户标示码,也就是客户识别码(15位数字)。它包括移动国家代码、移动网络代码和移动用户身份号码三部分。当手机开机后在接入网络的过程中有一个注册登记的过程,这时候会被分配一个客户号码(客户电话号码)和客户识别码(IMSI)客户请求接入网络时,系统通过控制信道将经加密算法后的参数组传送给客户,手机中的SIM卡收到参数后,与SIM卡存储的客户鉴权参数经同样算法后对比,结果相同就允许接入,否则为非法客户,网络拒绝为此客户服务。IMSI是用来产生TIMSI的。TIMSI是一种伪随机数产生的IMSI,GSM网络运营商使用TIMSI是为了通过空中界面传输IMSI的需要,这能使IMSI更加安全。要通过IMSI/TIMSI追踪一个GSM用户,窃听者必须在TIMSI开始通讯的时候就拦截GSM网络通信。此外,因为TIMSI周期性的重复通讯,窃听者必须拦截每一次TIMSI的重新通讯会话。
IMSI共有15位,其结构如下:
MCC+MNC+MIN
MCC:Mobile Country Code,移动国家码,共3位,中国为460;
16 IMEI
16位
17 APN
APN(Access Point Name),即―接入点名称‖,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。
名字:MAX_GPRS_APN_LEN 100字节
29
18 GPRS
概述
GPRS是 通用分组无线业务(General Packet Radio Service)的简称,它突破了GSM网只能提供电路交换的思维方式,只通过增加相应的功能实体和对现有的基站系统进行部分改造来实现分组交换,这种改 造的投入相对来说并不大,但得到的用户数据速率却相当可观。GPRS(General Packet Radio Service)是一种以全球手机系统(GSM)为基础的数据传输技术,可说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。
GPRS的 传输速率可提升至56甚至114Kbps。而且,因为不再需要现行无线应用所需要的中介转换器,所以连接及传输都会更方便容易。如此,使用者既可联机上 网,参加视讯会议等互动传播,而且在同一个视讯网络上(VRN)的使用者,甚至可以无需通过拨号上网,而持续与网络连接。
GPRS的特点
1.应用上的特点
目前,用手机上网还显得有些不尽人意。因此,全面的解决方法GPRS也就这样应运而生了,这项全新技术可以令您在任何时间、任何地点都能快速方便地实现连接,同时费用又很合理。简单地说:速度上去了,内容丰富了,应用增加了,而费用却更加合理。
(1)高速数据传输
速度10倍于GSM,更可满足您的理想需求,还可以稳定地传送大容量的高质量音频与视频文件,可谓不一般的巨大进步。
(2)永远在线
由于建立新的连接几乎无需任何时间(即无需为每次数据的访问建立呼叫连接),因而您随时都可与网络保持联系,举个例子,若无GPRS的支持,当您正在网上漫游,而此时恰有电话接入,大部分情况下您不得不断线后接通来电,通话完毕后重新拨号上网。这对大多数人来说,的确是件非常令人恼火的事。而有了GPRS,您就能轻而易举地解决这个冲突。
(3)仅按数据流量计费
即根据您传输的数据量(如:网上下载信息时)来计费,而不是按上网时间计费也就是说,只要不进行数据传输,哪怕您一直“在线”,也无需付费。做个“打 电话”的比方,在使用GSM+WAP手机上网时,就好比电话接通便开始计费;而使用GPRE+WAP上网则要合理得多,就像电话接通并不收费,只有对话时 才计算费用。总之,它真正体现了少用少付费的原则2.
30