📄 smssend.txt
字号:
CString desPhoneNum;
CString smsContent;
GetDlgItemText(IDC_PHONENUM_EDIT,desPhoneNum);
GetDlgItemText(IDC_SMSCONTENT_EDIT,smsContent);
//填充SM_PARAM结构体内容
SM_PARAM smParam;
smParam = CreateSMPARAMStruct(desPhoneNum,smsContent);
//发送短信息
gsmSendMessage(smParam);
}
其中调用的gsmSendMessage函数体现了串口通信的核心内容,它按照第1节阐述的GSM模块发送短消息的串口控制流程进行短信的发送:
BOOL gsmSendMessage(const SM_PARAM *pSrc // pSrc: 源PDU参数指针)
{
int nPduLength; // PDU串长度
unsigned char nSmscLength; // SMSC串长度
int nLength; // 串口收到的数据长度
char cmd[16]; // 命令串
char pdu[512]; // PDU串
char ans[128]; //
应答串
nPduLength = gsmEncodePdu(pSrc, pdu); // 根据PDU参数,编码PDU串
strcat(pdu, "\x01a"); // 以Ctrl-Z结束
gsmString2Bytes(pdu, &nSmscLength, 2); // 取PDU串中的SMSC信息长度
nSmscLength++; // 加上长度字节本身
// 命令中的长度,不包括SMSC信息长度,以数据字节计
sprintf(cmd, "AT+CMGS=%d\r", nPduLength / 2-nSmscLength); // 生成命令
WriteComm(cmd, strlen(cmd)); // 先输出命令串
nLength = ReadComm(ans, 128); // 读应答数据
// 根据能否找到"\r\n> "决定成功与否
if (nLength == 4 && strncmp(ans, "\r\n> ", 4) == 0)
{
WriteComm(pdu, strlen(pdu)); // 得到肯定回答,继续输出PDU串
nLength = ReadComm(ans, 128); // 读应答数据
// 根据能否找到"+CMS ERROR"决定成功与否
if (nLength > 0 && strncmp(ans, "+CMS ERROR", 10) != 0)
{
return TRUE;
}
}
return FALSE;
}
读取短消息
点击"接收"按钮会通过gsmReadMessage函数的调用获得所有短消息,最后在列表控件中显示所有短信:
void CSMSControlDlg::OnRecvButton()
{
// TODO: Add your control notification handler code here
SM_PARAM smParam[100];//短信缓冲区
int smsNum;//短信条数
smsNum = gsmReadMessage(smParam);//读取短信
//显示短信
for(int i=0;i< P>
{
m_recvlist.AddString(CString(smsNum[i].TPA)+smsNum[i].TP_UD);
}
}
其中调用的gsmReadMessage函数完成最核心的短信接收功能,它按照第1节阐述的GSM模块接收短消息的串口控制流程进行短信的接收:
// 参数:pMsg 短消息缓冲区,必须足够大
// 返回:短消息条数
int gsmReadMessage(SM_PARAM* pMsg)
{
int nLength; // 串口收到的数据长度
int nMsg; // 短消息计数值
char* ptr; // 内部用的数据指针
char cmd[16]; // 命令串
char ans[1024]; // 应答串
nMsg = 0;
ptr = ans;
sprintf(cmd, "AT+CMGL\r"); // 生成命令,用+CMGL可一次性读出全部短消息
WriteComm(cmd, strlen(cmd)); // 输出命令串
nLength = ReadComm(ans, 1024); // 读应答数据
// 根据能否找到"+CMS ERROR"决定成功与否
if(nLength > 0 && strncmp(ans, "+CMS ERROR", 10) != 0)
<SPAN style="FONT-FAMILY: 宋体; mso-bidi-
分享(0) 评论(4) 分类:默认分类310次阅读 2007-04-21 20:48
下页 1/1上页 angel1984记下。。
回复 2008-06-27 11:25
讓妳寵①輩孓搞这个??你哪里上班??我泰尔的
回复 2008-04-01 11:24
网易博友31 上海 hen hao
very good
回复 2008-01-21 10:14
匿名 上海
祝福你!这里很不错!我的情感小站(asdfd.3126.com)支持你!gfhfh。(135508.125436.145869)
回复 2007-07-03 18:42
下页 1/1上页
我要登录 ->
公司简介- 联系方法- 招聘信息- 客户服务- 相关法律- 用户反馈- 举报不良信息-
网易公司版权所有 ©1997-2008
JSWindow
正在加载中... {if coms != null && coms.length != 0} <div id="comShowHeader_${parentId}" class="g_h_20 g_c_mgin"> <span class="g_p_right g_c_hand n_ n7" style="margin-left:10px" onclick="${containerObjName}.closeComments('${parentId}');return false;" title="关闭"> </span> <ul class="g_menu_09 g_w_at com_page"> <li> {if (coms != null) && (comCount > (commentRange * pageNum))} <a id="spnNextPage_${parentId}" class="g_c_noul c06" href="#" onclick="${containerObjName}.moveToPage(${pageNum} + 1, true);return false;">下页</a> {else}<span class="c09">下页</span>{/if} </li> <li><span class="ckck c07">${pageNum}/${totalPageNum}</span></li> <li> {if pageNum > 1} <a id="spnPrevPage_${parentId}" class="g_c_noul c06" href="#" onclick="${containerObjName}.moveToPage(${pageNum} - 1, true);return false;">上页</a> {else}<span class="c09">上页</span>{/if} </li> </ul> </div> <div class="g_p_hide g_c_mgin g_table" id="comShowContent_${parentId}"> {for com in coms} <table class="g_w_100 bd1b g_com_table" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="layout_l"> {if com.publisherName != null && com.publisherName != ""} <a href="http://${com.publisherName|parentDomain}${prefix}/" target="_blank"> {if com.publisherAvatar==null || com.publisherAvatar==0 || com.publisherAvatar==-1000} <img class="g_img_04 g_c_hand bd01" id="imgPubPic_${com.id}" src="${formatImageUrl(defaultVisitorAvatarUrl)}" onerror="this.src='http://st.blog.163.com/style/common/stranger.gif'"/> {else} <img class="g_img_04 g_c_hand bd01" id="imgPubPic_${com.id}" src="${formatImageUrl(com.publisherAvatarUrl)}" onerror="this.src='http://st.blog.163.com/style/common/stranger.gif'" /> {/if} </a> <div class="g_t_hide nick"><a id="aComPubName_${com.id}" class="g_p_block g_h_20 c05" href="http://${com.publisherName|parentDomain}${prefix}/" title="${com.publisherNickname|escape}" target="_blank"> {if com.publisherId == hostId}<span class="n_ m9com" title="博主"> </span>{/if}${com.publisherNickname|escape}</a></div> {else} <span class="g_p_block g_h_20 g_t_hide g_w_100 c08 t_12">${com.publisherNickname|escape}</span> <div class="c09 g_w_95 t_12" style="padding-top:8px">${com.ipName}</div> {/if} </td> <td class="layout_r"> <table class="g_w_100"> <tr> <td class="t"><div class="c g_t_wrap c07" id="comContent${com.id}">${com.content}</div></td> </tr> <tr> <td colspan="3" class="b"> {if supportDeleteComment == true && visitorId == hostId} <a class="c06 g_p_right g_c_ul" id="delcomm_${com.id}" onclick="${containerObjName}.deleteComment('${com.id}');return false;" href="#">删除</a> <nobr class="bd1c g_p_right md"> | </nobr> {/if} {if noCommentRight == false} {if com.publisherName != null && com.publisherName != ""} <a id="comReply_${com.id}" class="c06 g_p_right g_c_ul " onclick="${containerObjName}.reply('${com.id}',true,'${com.publisherNickname|escape|js_string}','${com.publisherName|parentDomain}${prefix}');return false;" href="#">回复</a> {else} <a id="comReply_${com.id}" class="c06 g_p_right g_c_ul " onclick="${containerObjName}.reply('${com.id}',false,'${com.publisherNickname|escape|js_string}','${com.ipName}');return false;" href="#">回复</a> {/if} {/if} <span class="g_p_right c09 tim md"> ${NetEase.DateTime.formatRecentDate(com.publishTime,"yyyy-MM-dd HH:mm")}</span> {if !isHomeModule && com.circleId>0}<span class="g_p_left c09">来源: <span class="c06">[</span><a class="c06" href="${circleBaseUrl}/${com.circleUrlName}/" target="_blank">${com.circleName}</a><span class="c06">]</span></span>{/if} </td> </tr> </table> </td> </tr> </table> {/for} </div> <div class="g_h_20 bd1b g_c_mgin"> <ul class="g_menu_09 g_w_at com_page"> <li> {if (coms != null) && (comCount > (commentRange * pageNum))} <a id="spnNextPage_${parentId}" class="g_c_noul c06" href="#" onclick="${containerObjName}.moveToPage(${pageNum} + 1, true);return false;">下页</a> {else}<span class="c09">下页</span>{/if} </li> <li><span class="ckck c07">${pageNum}/${totalPageNum}</span></li> <li> {if pageNum > 1} <a id="spnPrevPage_${parentId}" class="g_c_noul c06" href="#" onclick="${containerObjName}.moveToPage(${pageNum} - 1, true);return false;">上页</a> {else}<span class="c09">上页</span>{/if} </li> </ul> </div> {else} {if noCommentRight == false} <div id="comShowHeader_${parentId}" class="g_h_20 g_c_mgin"> <span class="g_p_right g_c_hand n_ n7" onclick="${containerObjName}.closeComments('${parentId}');return false;" title="关闭" > </span> </div> {/if} {/if} <div class="g_c_pdin"> {if (noCommentRight == true)} <div class="loginsection"> {if allowComment == 0} <span class="n_ n21"> </span>登录后你可以发表评论,请先登录。 </span><a href="#" onclick="showLoginDlg(DomainMap.serverHostName);return false;">登录>></a> {elseif allowComment == 100} {if visitorRank==-100} <span class="n_ n21"> </span>登录并添加博主为好友、通过对方确认后可以发表评论,请先登录。 <a href="#" onclick="showLoginDlg(DomainMap.serverHostName);return false;">登录>></a> {elseif visitorRank ==0} <span class="n_ n21"> </span>添加博主为好友、通过对方确认后可以发表评论,请先加为好友。 <a id="AComment${parentId}" href="#" onclick="pageTopBar.showAddFriend();return false;">加为好友>></a> {/if} {elseif allowComment == 10000} <span class="n_ n21"> </span>该内容仅供欣赏。 {/if} </div> {else} <div> {if visitorRank <= -100} <div class="g_layout_05 g_h_25 g_t_left" style="margin-bottom:7px;"> <input type="text" id="username${parentId}" style="width:170px;" class="bd01 g_t_disable nvb g_c_input" name="username${parentId}" value="${userName}" maxlength="18"/> <a class="c06" href="#" onclick="showLoginDlg(DomainMap.serverHostName);return false;">我要登录 -></a> </div> {else} <div class="g_layout_05"> <div class="l g_t_left"> {if visitorAvatarDefault == true} <img class="g_img_04 bd01" src="${formatImageUrl(defaultVisitorAvatarUrl)}" onerror="this.src='http://st.blog.163.com/style/common/stranger.gif'" width="60px" height="60px" title="显示头像"> {else} <img class="g_img_04 bd01" src="${formatImageUrl(visitorAvatar)}" onerror="this.src='http://st.blog.163.com/style/common/stranger.gif'" width="60px" height="60px" title="显示头像"> {/if} </div> <div class="r g_t_left"><input class="bd01 g_t_disable vb g_c_input" style="width:170px;" id="username${parentId}" name="username${parentId}" value="${userName}" type="text" maxlength="18"/></div> <div class="g_p_clear g_t_space"> </div> </div> {/if} <div class="g_c_smvdn bd01" id="edt${parentId}"></div> <div id="validCode${parentId}" class="g_c_mvdn g_t_left g_h_25" style="display:none;"></div> <div class="g_h_30 g_c_mvdn g_t_left g_w_100"> <input class="g_c_button bd01 butn" id="$$_pubbtn${parentId}" onclick="${containerObjName}.addComment('${parentId}'); return false;" type="submit" {if disabled == true}disabled="true" {/if} value="发表评论" {if hasCancelBtn==false}style="font-weight:700;"{/if}/> {if hasCancelBtn}<input class="g_c_button bd01 butn" id="$$_comcancelbtn${parentId}" onclick="${containerObjName}.closeComments('${parentId}');return false;" type="submit" {if disabled == true}disabled="true" {/if} value="取 消"/>{/if} <span id="$$_comsubmithint${parentId}" style="display:none;"></span> </div> </div> {/if} </div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -