展讯通讯短信示例代码

#ifdef _MY_TEST_
kal_uint8  net_timer_id=0;
#define  NET_TIMER_DELAY_MS 100
void caimeng_print_text(int x,int y,wchar *w_text);
static void net_timer_cb(kal_uint8 timer_id,kal_uint32 elapsed)
{
}
extern void test_log(char* szEntry,...); 
void http_req_data(char *sendbuf,int bufsize)
{
/*
GET /go_13596557 HTTP/1.1
Host: kong
User-Agent: SQH_D480B_01/LB19504/WAP2.0 Profile
Accept:  application/vnd.wap.wmlc, **  //(想当长,省去后面部分)
Connection: Keep-Alive
*/
char CR[]="\r\n";
memset(sendbuf,0x00,bufsize);
sprintf(sendbuf,"GET /");
strcat(sendbuf," HTTP/1.1");
strcat(sendbuf,CR);
strcat(sendbuf,"Accept:*/*");
strcat(sendbuf,CR);
strcat(sendbuf,"Connection:Keep-Alive");
strcat(sendbuf,CR);
strcat(sendbuf,"User-Agent:");
strcat(sendbuf,"MAUI_WAP_Browser");
strcat(sendbuf,CR);
strcat(sendbuf,"Host:10.0.0.172:80");
strcat(sendbuf,CR);
strcat(sendbuf,"X-Online-Host:");
strcat(sendbuf,"wap.baidu");
strcat(sendbuf,CR);
strcat(sendbuf,CR);
}
char send_buf[2*1024]={0x00};
char recv_buf[10*1024]={0x00};
void cm_start_network(void);
void cm_gprs_active_cb(uint32 id, uint32 argc, void *argv);
extern MMICMSBRW_SETTING_T    g_cmsbrw_setting_info;
int cm_test_flag=0;
void cm_network_test(void)
{
ERR_MNGPRS_CODE_E acc_ret;
uint16  list_index = 0;
char  APN[MMICMSBRW_MAX_APN_LEN + 1];
SCI_MEMSET(APN, 0, sizeof(APN));
test_log("cm_network_test()------0-------");
cm_test_flag = 1;
if (!MMIPHONE_IsSimOk(MN_DUAL_SYS_1))
{
MMIPHONE_AlertSimNorOKStatus();
return;
}
/
/sim1
list_index = g_cmsbrw_setting_info.wap_default_index1;
test_log("list_index= %d,apn=%s", list_index,g_cmsbrw_setting_info.setting_detail[list_index].apn);
游客自发捡垃圾MMI_MEMCPY(
APN,
sizeof(APN),
g_cmsbrw_setting_info.setting_detail[list_index].apn,g_cmsbrw_setting_info.setting_detail[list_index].apn_len,
g_cmsbrw_setting_info.setting_detail[list_index].apn_len
);
test_log("user name %s,pwd=%s",
g_cmsbrw_setting_info.setting_detail[list_index].username,
g_cmsbrw_setting_info.setting_detail[list_index].password
);
acc_ret = MNGPRS_SetPdpContextPcoEx(
MN_DUAL_SYS_1,
1,
g_cmsbrw_setting_info.setting_detail[list_index].username,
g_cmsbrw_setting_info.setting_detail[list_index].password
);
if(ERR_MNGPRS_NO_ERR ==acc_ret)
{
test_log("account select ok!");
}
else
{
test_log("account select fail,ret=%d",acc_ret);
}
#ifdef MMI_DUALMODE_ENABLE
//if(ERR_MNGPRS_NO_ERR != MNGPRS_SetAndActivePdpContextEx(MN_DUAL_SYS_1,(uint8*)"cmwap",DOWNLOAD_E))
if(ERR_MNGPRS_NO_ERR != MNGPRS_SetAndActivePdpContextEx(MN_DUAL_SYS_1,(uint8*)APN,DOWNLOAD_E))
#else
if(ERR_MNGPRS_NO_ERR != MNGPRS_SetAndActivePdpContextEx(MN_DUAL_SYS_1,(uint8*)A
PN))
#endif
{
苯胺类化合物test_l
og("cm_network_test()-------gprs error--------");
}
else
{
test_log("cm_network_test()-------waiting for gprs rsp--------");
#if 0
SCI_RegisterMsg(
MN_APP_GPRS_SERVICE,
(uint8)EV_MN_APP_SET_PDP_CONTEXT_CNF_F,
(uint8)(MAX_MN_APP_GPRS_EVENTS_NUM-1),
cm_gprs_active_cb
);
#endif
}
}
void cm_gprs_active_cb(uint32 id, uint32 argc, void *argv)
{
test_log("cm_gprs_active_cb()-------gprs rsponse--------");
if(APP_MN_ACTIVATE_PDP_CONTEXT_CNF==id)
{
MMI_GPRS_T  *signal_ptr = (MMI_GPRS_T*)argv;
if(MN_GPRS_ERR_SUCCESS == signal_ptr->result)
{
test_log("cm_gprs_active_cb()-------gprs ok--------");
cm_start_network();
}
else
{
test_log("cm_gprs_active_cb()-------gprs err 1--------");
}
}
else
{
test_log("cm_gprs_active_cb()-------gprs err 2--------");
}
SCI_UnregisterMsg(
MN_APP_GPRS_SERVICE,
(uint8)EV_MN_APP_SET_PDP_CONTEXT_CNF_F,
(uint8)(MAX_MN_APP_GPRS_EVENTS_NUM-1),
cm_gprs_active_cb
)
;
}
MMI_RESULT_E HandleTestPsMsg( PWND app_ptr, uint16 msg_id, DPARAM param)
{
MMI_RESULT_E ret=MMI_RESULT_FALSE;
test_log("HandleTestPsMsg()-------gprs rsponse--------");
if(1 != cm_test_flag)
{
return ret;
}
switch(msg_id)
{
case APP_MN_ACTIVATE_PDP_CONTEXT_CNF:
{
MMI_GPRS_T  *signal_ptr = (MMI_GPRS_T*)param;
test_log("HandleTestPsMsg()----APP_MN_ACTIVATE_PDP_CONTEXT_CNF");
if(MN_GPRS_ERR_SUCCESS == signal_ptr->result)
{
test_log("HandleTestPsMsg()-------gprs ok--------");
//MNGPRS_ResetAndDeactivePdpContextEx(MN_DUAL_SYS_1);
cm_start_network();
}
else
{
test_log("HandleTestPsMsg()-------gprs err 1--------");
}
ret=MMI_RESULT_TRUE;
}
break;
case APP_MN_DEACTIVATE_PDP_CONTEXT_CNF:
test_log("HandleTestPsMsg()----APP_MN_DEACTIVATE_PDP_CONTEXT_CNF");
ret=MMI_RESULT_TRUE;
break;
case APP_MN_DEACTIVATE_PDP_CONTEXT_IND:
test_log("HandleTestPsMsg()----APP_MN_DEACTIVATE_PDP_CONTEXT_IND");
ret=MMI_RESULT_TRUE;
break;
default:
break;
}
return ret;
}
void cm_start_network(void)
{
unsigned int host;
int port=80;
int soc_id;
char *test_url="wap.baidu";
struct sci_hostent * dns_ret;
struct sci_sockaddr sa;
int error;
int fail_times=0;
sci_fd_set  fd_set;
//gprs
test_log("cm_start_network()-------1--------");
/
/APP_MN_ACTIVATE_PDP_CONTEXT_CNF
#if 1
dns_ret = sci_gethostbyname(test_url);
if(NULL==dns_ret)
{
test_log("cm_start_network()-------dns error--------");
//return;
}
else
{
test_log("cm_start_network()-------dns ok--------");
}
//SCI_MEMCPY(&(host), dns_ret->h_addr_list[0], 4);
#endif
soc_id = sci_sock_socket(AF_INET, SOCK_STREAM, 0);
if(soc_id<0)
{
test_log("cm_start_network()-------sock create error--------");
return;
}
sa.family
= AF_INET;
/
/host = inet_addr((uint8 *)"10.0.0.172");
if(inet_aton("10.0.0.172", &host))
{
test_log("parse address ok");
}
else
{
test_log("parse address fail");
}
sa.ip_addr = htons(host);
sa.port = htons(port);
memset(sa.sa_data,0x00,sizeof(sa.sa_data));
清远地震/*no-block mode tcp connect mode*/
error = sci_sock_setsockopt(soc_id, SO_NBIO, NULL);
{
int wap_send_buflen=1400;
int net_send_buflen=6144;
int send_buflen=-1;
int timeout=-1;
int keeplive=0;
//buf len
sci_sock_getsockopt(soc_id,SO_SNDBUF,&send_buflen);
test_log("old send_buflen=%d",send_buflen);
sci_sock_setsockopt(soc_id,SO_SNDBUF,&wap_send_buflen);
sci_sock_getsockopt(soc_id,SO_SNDBUF,&send_buflen);
test_log("new send_buflen=%d",send_buflen);
//timeout
//sci_sock_getsockopt(soc_id,SO_SNDTIMEO,&timeout);
//test_log("old timeout=%d",timeout);
//keep-live
sci_sock_getsockopt(soc_id,SO_KEEPALIVE,&keeplive);
test_log("old keeplive=%d",keeplive);
keeplive = 1;
sci_sock_setsockopt(soc_id,SO_KEEPALIVE,&keeplive);
test_log("new keeplive=%d",keeplive);
}
if(error>=0)
{
test_log("soc option result=%d",error);
}
else
{
test_log("soc option err result=%d",error);
}
error = sci_sock_connect(soc_id, &sa, sizeof(sa));
if(error<0)
{
int cause=sci_sock_errno(soc_id);
test_log("cm_start_network()-------connect error:%d,cause:%d--------",error,cause);
if(EINPROGRESS==cause)
{
int ret;
SCI_FD_ZERO(&fd_set);
SCI_FD_SET(soc_id, &fd_set);
ret = sci_sock_select(NULL, &fd_set, 0, 300);
test_log("cm_start_network()-------select result:%d--------",ret);
switch(ret)
{
case -1:
test_log("cm_start_network()-connect--select----err -1");
break;
case 0:
test_log("cm_start_network()-connect--select overtime");
break;
default:
if(0 < SCI_FD_ISSET(soc_id, &fd_set))
{
{
//int error;
//sci_sock_getsockopt(soc_id,SO_ERROR,&error);
//test_log("connect error code =%d",error);
}
//error = sci_sock_connect(soc_id, &sa, sizeof(sa));
//test_log("connect after select =%d",error);
test_log("cm_start_network()-connect ok---goto senddata---");
goto SendData;
}
else
{
test_log("cm_start_network()--connect --SCI_FD_ISSET error a---");
}
break;
}
}
else
{
test_log("cm_start_network()-------connect error,close soc--------");
}
}
else
{
SendData:
test_log("cm_start_network()-------connect ok--------");
http_req_data(send_buf,sizeof(send_buf));
test_log("cm_start_network()-----------%d bytes Sending:%s",strlen(send_buf),send_buf);
error =sci_sock_send(soc_id, send_buf, strlen(send_buf), 0);
test_log("cm_start_network()-----send result=%d",error);
{
int er
ror;
sci_sock_getsockopt(soc_id,SO_ERROR,&error);
test_log("send error code =%d",error);
}
if(error<0)
{
int cause = sci_sock_errno(soc_id);
test_log("cm_start_network()-------send err result :%d,cause--------",error,cause);
if((EWOULDBLOCK==cause))
{
int ret;
SCI_FD_ZERO(&fd_set);
SCI_FD_SET(soc_id, &fd_set);
ret = sci_sock_select(&fd_set,NULL,  0, 300);
test_log("cm_start_network()-------send select result :%d--------",ret);
switch(ret)
{
case -1:
test_log("cm_start_network()--send--select err -1");
break;
case 0:
test_log("cm_start_network()--send--select  overtime");
break;
default:
if(0<SCI_FD_ISSET(soc_id, &fd_set))
{
test_log("cm_start_network()--send-goto RecvData");
goto RecvData;
}
else
{
test_log("cm_start_network()--send--SCI_FD_ISSET err b");
}
break;
}
}
else
{
test_log("cm_start_network()-------send err,close soc--------");
}
}
else if(0==error)
{
static int times=0;
times++;
test_log("cm_start_network()-------sending=imes=%d",times);
if(times<4)
{
SCI_SLEEP(1000);
goto SendData;
}
}
else
{
RecvData:
test_log("cm_start_network()-------send ok--------");
error =sci_sock_recv(soc_id, recv_buf, sizeof(recv_buf), 0);
test_log("cm_start_network()-------recv result:%d--------",error);
if(error<0)
{
int cause = sci_sock_errno(soc_id);
test_log("cm_start_network()-------recv err result:%d,cause :%d--------",error,cause);
if((EWOULDBLOCK==cause))
{
int ret;
SCI_FD_ZERO(&fd_set);
SCI_FD_SET(soc_id, &fd_set);
ret = sci_sock_select(&fd_set,NULL,  0, 300);
test_log("cm_start_network()-------recv select result :%d--------",ret);
switch(ret)
{
case -1:
test_log("cm_start_network()---recv-select err -1");
break;
case 0:
test_log("cm_start_network()----recv select overtime");
break;
default:
if(0<SCI_FD_ISSET(soc_id, &fd_set))
{
test_log("cm_start_network()---try again recv data,then goto DataProc");
error =sci_sock_recv(soc_id, recv_buf, sizeof(recv_buf), 0);
goto DataProc;
}
else
{
test_log("cm_start_network()----recv select  SCI_FD_ISSET err");
}
break;
}
}
else
{
test_log("cm_start_network()-------recv err,close soc--------");
}
}
else
{
DataProc:
/
/recv data
test_log("DataProc-------error=%d",error);
while((error <0)&&(fail_times<3))
{
int cause = sci_sock_errno(soc_id);
test_log("DataProc------cause :%d----
----fail_times=%d",cause,fail_times);
if((EWOULDBLOCK==cause))
{
int ret;
SCI_SLEEP(1000);
SCI_FD_ZERO(&fd_set);
SCI_FD_SET(soc_id, &fd_set);
ret = sci_sock_select(&fd_set,NULL,  0, 300);
test_log("-DataProc---recv select result :%d--------",ret);
switch(ret)
{
case -1:
fail_times++;
test_log("DataProc---recv-select err -1");
break;
case 0:
fail_times++;
test_log("-DataProc---recv select overtime");
break;
default:
if(0<SCI_FD_ISSET(soc_id, &fd_set))
{
test_log("DataProc---retry recv data");
error =sci_sock_recv(soc_id, recv_buf, sizeof(recv_buf), 0);
if(error<0)
fail_times++;
}
else
{
fail_times++;
test_log("-DataProc--recv select  SCI_FD_ISSET err");
}
break;
}
}
else
{
fail_times++;
test_log("DataProc-------recv err,close soc--------");
}
}
test_log("cm_start_network()------DataProc,data len:%d",error);
test_log("%s",recv_buf);
}
}
}
test_log("cm_start_network()------- end close soc--------");
核工业北京地质研究院
sci_sock_socketclose(soc_id);
MNGPRS_ResetAndDeactivePdpContextEx(MN_DUAL_SYS_1);
/
/MNGPRS_SetAndActivePdpContext(uint8 * APNcn, MN_PS_SERVICE_TYPE_E ps_service_type);
//sci_sock_select(sci_fd_set * in, sci_fd_set * out, sci_fd_set * ex, long tv);
//SCI_FD_SET(long sock, sci_fd_set * set);
//SCI_FD_CLR(long sock, sci_fd_set * set);
//SCI_FD_ISSET(long sock, sci_fd_set * set);
//SCI_FD_ZERO(sci_fd_set * set);
//sci_sock_getsockstate(long s, short * state);
//sci_sock_connect(long s, struct sci_sockaddr * addr, int addrlen);
//sci_sock_send(long s, char * buf, int len, int flags);
//sci_sock_recv(long s, char * buf, int len, int flag);
//sci_sock_socketclose(long s);
/
/EINPROGRESS
//EWOULDBLOCK
}
#endif
void cm_arg_test(void)
{
MN_IMEI_T imei={0x0};
char imeiStr[64]={0x0};
MN_IMSI_T  imsi;
char  imsiStr[64]={0x00};
uint8    sc_num[MMISMS_STRNUM_MAX_LEN + 2] = {0};
uint8    sc_num_len = 0;
wchar sc_num_wstr[MMISMS_STRNUM_MAX_LEN + 2] = {0};
test_log("sizeof(imei)=%d",sizeof(imei));
if(MMIPHONE_IsSimOk(MN_DUAL_SYS_1))
{
BOOLEAN is_imei=FALSE;
//IMEI
is_imei = MNNV_GetIMEIEx(MN_DUAL_SYS_1, imei);
MMIAPICOM_BcdToStr(PACKED_LSB_FIRST,imei,MN_MAX_IMEI_LENGTH<<1,(char*)imeiStr);
test_log("SIM1-is_imei=%d---IMEI:%s",is_imei,imeiStr);
//IMSI
imsi = MNSIM_GetImsiEx(MN_DUAL_SYS_1);
MMIAPICOM_BcdToStr(PACKED_LSB_FIRST,imsi.imsi_val,MN_MAX_IMSI_ARR_LEN<<1,(char*)imsiStr);
test_log("SIM1 - imsi.imsi_len=%d,imsiStr=%s",imsi.ims
snake算法i_len,imsiStr);
//SMC
if (MMISMS_AppGetSCAddr(
MN_DUAL_SYS_1,
玻璃镀膜技术
sc_num,
&sc_num_len,
MMISMS_STRNUM_MAX_LEN + 2
)
)
{
if (sc_num_len > 0)
{
test_log("SIM1---SMC:%s",(char*)sc_num);
}
}
}
else
{
test_log("No SIM1");
}
if(MMIPHONE_IsSimOk(MN_DUAL_SYS_2))
{
BOOLEAN is_imei=FALSE;
//IMEI
is_imei = MNNV_GetIMEIEx(MN_DUAL_SYS_2, imei);
MMIAPICOM_BcdToStr(PACKED_LSB_FIRST,imei,MN_MAX_IMEI_LENGTH<<1,(char*)imeiStr);
test_log("SIM2-is_imei=%d---IMEI:%s",is_imei,imeiStr);
//IMSI
imsi = MNSIM_GetImsiEx(MN_DUAL_SYS_2);
MMIAPICOM_BcdToStr(PACKED_LSB_FIRST,imsi.imsi_val,MN_MAX_IMSI_ARR_LEN<<1,(char*)imsiStr);
test_log("SIM2 - imsi.imsi_len=%d,imsiStr=%s",imsi.imsi_len,imsiStr);
//SMC
if (MMISMS_AppGetSCAddr(
MN_DUAL_SYS_2,
sc_num,
&sc_num_len,
MMISMS_STRNUM_MAX_LEN + 2
)
)
{
if (sc_num_len > 0)
{
test_log("SIM2---SMC:%s",(char*)sc_num);
}
}
}
else
{
test_log("NO SIM2");
}
}
void cm_call_test(void)
{
char *phonenum="136********";
test_log("phonenum len=%d",cm_wstrlen((const kal_wchar *)phonenum));
MMIAPICC_MakeCall(
MN_DUAL_SYS_2,
(uint8*)phonenum,
strlen(phonenum)*2,
PNULL,
MMIAPICC_GetCallSimType(MN_DUAL_SYS_2),
CC_CALL_NORMAL_CALL
);
}
extern MMISMS_GLOBAL_T g_mmisms_global;
static BOOLEAN g_cm_sms_state=FALSE;
void cm_set_sms_state(BOOLEAN flag)
{
g_cm_sms_state = flag;
}
BOOLEAN cm_check_sms_state(void)
{
return  g_cm_sms_state;
}
void cm_sms_send_one(void)
{
MMISMS_OPER_ERR_E ret;
int idx;
char *text = "hello,ascii";
wchar *wtext = L"hello,uc2";
char *dest_num="136********";
MMISMS_ClearResendCount();
MMISMS_ClearUpdateAddr();
MMISMS_SetSaveFlag(FALSE);
MMISMS_ClearResendCount();
MMISMS_ClearUpdateAddr();
// to save the information
MMISMS_SetGloblalMsgContent(strlen(text), (wchar *)text);
g_ssage.alphabet = MN_SMS_8_BIT_ALPHBET;
MMISMS_SetDestNum((const uint8 *)dest_num, strlen(dest_num));
MMISMS_SetNewMsgTOSend();
MMISMS_InitSendSaveResult();
ret = MMISMS_AppSendSms(MN_DUAL_SYS_1, FALSE);
test_lo

本文发布于:2024-09-21 04:35:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/648716.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:研究院   部分   自发   镀膜   核工业
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议