利用GSM模块SIM100开发短信收发系统.doc_第1页
利用GSM模块SIM100开发短信收发系统.doc_第2页
利用GSM模块SIM100开发短信收发系统.doc_第3页
利用GSM模块SIM100开发短信收发系统.doc_第4页
利用GSM模块SIM100开发短信收发系统.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用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) 反馈:中查到CHINAMOBILEAT+CSCS=GSMCR(0x0d),LF(0x0a) 反馈:xxOKxxAT+CMGF=1CR(0x0d),LF(0x0a) 反馈:xxOKxxAT+CCLK=05/08/23,17:34:59+02CR(0x0d),LF(0x0a) 反馈:xxOKxx4.发送短消息发送:AT+CMGSR(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+02MESSAGEOK6.删除短消息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;BYTErxdata2048;variant_inp=m_MSComm.GetInput();safearray_inp=variant_inp;len=safearray_inp.GetOneDimSize();for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k);CStringstrTmp,strRecv;for(k=0;klen;k+)BYTEbt=*(char*)(rxdata+k);strTmp.Format(%c,bt);strRecv+=strTmp;returnstrRecv;4.发送短消息boolCMainInfoView:SendShortMessage(CStringstrNum,CStringstrMsg)inti,j;CStringstrReceive;charch110=0x0d,0x0a,0x00;CStringstrNumCR=CString(ch1);charch210=0x1a,0x0d,0x0a,0x00;CStringstrMsgCR=CString(ch2);CStringstrSend;strSend=AT+CMGS=+strNum+strNumCR;m_MSComm.GetInput();m_MSComm.SetOutput(COleVariant(strSend);Sleep(100);for(i=0;i0)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=2)Sleep(200);strReceive=GetBufferString();if(-1!=strReceive.Find(OK)/发送短消息成功! returntrue;elsebreak;elsecontinue;/发送短消息失败:没有OKreturnfalse;elsebreak;elsecontinue;/发送短消息失败:没有 returnfalse;5.阅读短消息boolCMainInfoView:ReadShortMessage(CString&strReceived,intnLocation) if(nLocation9)MessageBox(Error:ReadShortMessage:nLocationerror!;returnfalse;CMainFrame*pFrame=(CMainFrame*)AfxGetMainWnd(); charchCMGR20=A,T,+,C,M,G,R,=,0,0x0d,0x0a,0x00; CStringstrTemp; chCMGR8=0+nLocation;CStringstrSend=CString(chCMGR);m_MSComm.GetInput();m_MSComm.SetOutput(COleVariant(strSend); Sleep(400);for(inti=0;i=2)Sleep(500);strReceived=GetBufferString(); if(-1!=strReceived.Find(CMGR&-1!=strReceived.Find(OK/读短消息成功!else/读短消息失败:空信息! returntrue; /读短消息失败:没有回应! returnfalse;6.删除boolCMainInfoView:eleteShortMessage(intnLocation)if(nLocation9)MessageBox(Error:ReadShortMessage:nLocationerror!;returnfalse; charchCMGD20=A,T,+,C,M,G,D,=,0,0x0d,0x0a,0x00;CStringstrReceive; chCMGD8=0+nLocation;CString strSend=CString(chCMGD);m_MSComm.SetOutput(COleVariant

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论