电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

利用GSM模块SIM100开发短信收发系统VIP免费

利用GSM模块SIM100开发短信收发系统_第1页
1/6
利用GSM模块SIM100开发短信收发系统_第2页
2/6
利用GSM模块SIM100开发短信收发系统_第3页
3/6
利用GSM模块SIM100开发短信收发系统利用GSM模块SIM100开发短信收发系统一.引言在开发远程通讯控制系统时,利用现有的GSM网络是一个很不错的选择。这里利用PC串口控制GSMSIM100模块进行收发短消息来实现远程通讯。二.SIM100通讯协议1.COM1或COM2以9600,N,8,1格式通讯2.DTR和RTS须置有效。3.打开监控软件后,须对TE(terminalequipment)初始化。ATCR(0x0d),LF(0x0a)反馈:xxOKxxATE0CR(0x0d),LF(0x0a)反馈:xxOKxxATS0=0CR(0x0d),LF(0x0a)反馈:xxOKxxAT+COPS?(0x0d),LF(0x0a)反馈:中查到"CHINAMOBILE"AT+CSCS="GSM"CR(0x0d),LF(0x0a)反馈:xxOKxxAT+CMGF=1CR(0x0d),LF(0x0a)反馈:xxOKxxAT+CCLK="05/08/23,17:34:59+02"CR(0x0d),LF(0x0a)反馈:xxOKxx4.发送短消息发送:AT+CMGS="13815806478"CR(0x0d),LF(0x0a)反馈中查0X3E(>,再发:CNT28SET193022301935224519402255,0X1A,0X0D,0X0A反馈:xxOKxx5.接收短消息xxxCMTI,"SM",Nxxx,并在X的位置查到N,AT+CMGR=NCR(0x0d),LF(0x0a)反馈:+CMGR,"SM",1,30,"+8613912345678","05/08/03.15:34:32+02"MESSAGEOK6.删除短消息AT+CMGD=NCR(0x0d),LF(0x0a)反馈:xxxxOKxx三.PC上位机例程1.初始化CMainInfoView::OnInitUpdate(){m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,78313);m_MSComm.SetCommPort(nCom+1);m_MSComm.SetInBufferSize(2048);m_MSComm.SetOutBufferSize(1024);m_MSComm.SetInputMode(1);m_MSComm.SetSettings("9600,n,8,1";m_MSComm.SetRThreshold(0);m_MSComm.SetSThreshold(0);m_MSComm.SetHandshaking(0);m_MSComm.SetInBufferCount(0);m_MSComm.SetRTSEnable(true);m_MSComm.SetDTREnable(true);pFrame->m_wndStatusBar.SetPaneText(2,strCOM+":没有打开!";if(!m_MSComm.GetPortOpen()){m_MSComm.SetPortOpen(true);m_bPortOpen=true;pFrame->m_wndStatusBar.SetPaneText(2,strCOM+":已就绪!";}}2.读缓冲区长度shortCMainInfoView::GetBufferSize(void){returnm_MSComm.GetInBufferCount();}3.读缓冲区内容CStringCMainInfoView::GetBufferString(void){VARIANTvariant_inp;COleSafeArraysafearray_inp;LONGlen,k;BYTErxdata[2048];variant_inp=m_MSComm.GetInput();safearray_inp=variant_inp;len=safearray_inp.GetOneDimSize();for(k=0;k0){Sleep(100);strReceive=GetBufferString();if(-1!=strReceive.Find('>')){strSend=strMsg+strMsgCR;m_MSComm.GetInput();m_MSComm.SetOutput(COleVariant(strSend));Sleep(500);for(j=0;j<50;j++){Sleep(100);if(GetBufferSize()>=2){Sleep(200);strReceive=GetBufferString();if(-1!=strReceive.Find("OK"){//"发送短消息成功!"returntrue;}else{break;}}else{continue;}}//发送短消息失败:没有OK"returnfalse;}else{break;}}else{continue;}}//"发送短消息失败:没有>"returnfalse;}5.阅读短消息boolCMainInfoView::ReadShortMessage(CString&strReceived,intnLocation){if(nLocation<0||nLocation>9){MessageBox("Error:ReadShortMessage:nLocationerror!";returnfalse;}CMainFrame*pFrame=(CMainFrame*)AfxGetMainWnd();charchCMGR[20]={'A','T','+','C','M','G','R','=','0',0x0d,0x0a,0x00};CStringstrTemp;chCMGR[8]='0'+nLocation;CStringstrSend=CString(chCMGR);m_MSComm.GetInput();m_MSComm.SetOutput(COleVariant(strSend));Sleep(400);for(inti=0;i<20;i++){Sleep(100);if(GetBufferSize()>=2){Sleep(500);strReceived=GetBufferString();if(-1!=strReceived.Find("CMGR"&&-1!=strReceived.Find("OK"{//"读短消息成功!"}else{//"读短消息失败:空信息!"}returntrue;}}//"读短消息失败:没有回应!"returnfalse;}6.删除boolCMainInfoView:eleteShortMessage(intnLocation){if(nLocation<0||nLocation>9){MessageBox("Error:ReadShortMessage:nLocationerror!";returnfalse;}charchCMGD[20]={'A','T','+','C','M','G','D','=','0',0x0d,0x0a,0x00};CStringstrReceive;chCMGD[8]='0'+nLocation;CStringstrSend=CString(chCMGD);m_MSComm.SetOutput(COleVariant(strSend));Sleep(100);for(inti=0;i<20;i++){Sleep(100);if(GetBufferSize()>=2){Sleep(100);strReceive=GetBufferString();if(-1!=strReceive.Find("OK"){//"删除短消息:OK"}else{//"删除短消息:ERROR321!"}returntrue;}continue;}//"删除短消息:超时!"returnfalse;}

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

利用GSM模块SIM100开发短信收发系统

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部