1003 ComEvntDSRTO Data Set Ready信号超时。
1004 ComEvntFrame 帧错误。
1006 ComEvntOverrun 串口超速。
1007 ComEvntCDTO 载波检测超时。
1008 ComEvntRxOver 接受缓冲区溢出,缓冲区中已没有空间。
1009 ComEvntRxParity 奇偶校验错误。
1010 ComEvntTxFull 发送缓冲区溢出,缓冲区中已没有空间。
1011 ComEvntDCB 检索串口的设备控制块时发生错误。
MSCOMM控件进行串行通信的一般步骤为:
1) 设置通信对象、通信端口号及其他属性;
2) 设定通信协议;
3) 打开通信端口,进行数据的传送;
4) 关闭通信端口。
3.3.2 串口通信的程序设计
(1) 发送短信的串口通信程序
短信发送通过向串口发送“AT+CMGS= <length>”指令触发MSCOMM串口控件的OnComm事件。在OnComm事件中定义一个长整形变量s。当终端设备反馈一个OK确认信号。当Buffer收到这个确认信号后,加上Buffer的初值赋值给Buffer,再把Buffer的长度赋值给长整型变量s。再判断返回值是否是OK,是的话那么取消回显,状态为"AT指令初始化成功",然后清空Buffer。依次使用一个If的条件句,直到反馈回来第四个OK时,系统才会提示你"设备打开成功"。当反馈到一个“>”和OK后,就显示"短信发送成功"。这个程序和控件的特点就是提高了程序的性能和效率。短信发送原理如图3.3所示。
在程序运行时,短信发送的动作流程如下:
点击“设备连接”按钮向串口发送“AT”,设置“Status = ""”,MSCOMM控件的input接到数据,达到Rthreshold的阀值触发OnComm事件;
在OnComm事件中如果返回的是“OK”,进入条件判断,发送“ATE0”,设置“Status ="AT指令初始化成功"”,否则在达到Timmer1的设置值后进入Timmer1的条件判断,弹出“AT指令初始化失败,请重新打开设备”提示;
成功设置“Status =" AT指令初始化成功"”后进入下一条件判断,如果返回
图3.3 短信发送原理图
的是“OK”,发送“AT+CMGF=0”,设置“Status ="回显取消成功"”,否则在达到Timmer1的设置值后进入Timmer1的条件判断,弹出“取消回显失败,请重新打开设备”提示;
成功设置“Status ="回显取消成功"”后进入下一条件判断,如果返回的是
“OK”,设置“Status ="短信模式发送成功"”,弹出“设备打开成功”提示,
否则在达到Timmer1的设置值后进入Timmer1的条件判断,弹出“短信模式发送失败,请重新打开设备”提示;
成功设备成功打开后点击发送按钮,向串口发送“AT+CMGS= <length>”指令,如果返回的是“>”,则进入条件判断,发送编码好的PDU串,设置“Status ="短信长度发送成功"”,否则在达到Timmer2的设置值后进入Timmer2的条件判断,弹出“短信长度发送失败,请重新发送”提示;
成功设置“Status ="短信长度发送成功"”后进入下一条件判断,如果返回的是“OK”,设置“Status ="短信模式发送成功"”,弹出“短信发送成功”提示,否则在达到Timmer2的设置值后进入Timmer2的条件判断,弹出“短信发送失败,请重新发”提示。 SIM300模块GSM数据采集管理系统设计(9):http://www.youerw.com/tongxin/lunwen_3182.html