欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

奇怪的at指令,该如何解决

更新时间: 2014-01-05 02:26:44 责任编辑: Author_N1

 

奇怪的AT指令
计算机连了一个MAVECOM的GSM MODEM,拟用MSCOMM控件向串口发送AT指令并得到GSM MODEM的返回信息。
代码如下:
LOCAL aVzifua as String 

thisform.mycomm.portOpen=.T. 
        thisform.mycomm.input 
        thisform.mycomm.InBufferCount = 0  
*!*         thisform.mycomm.Output = [AT] + CHR(13)
        thisform.mycomm.Output = CREATEBINARY([AT] + CHR(13)) 
*!*         thisform.mycomm.Output = CREATEBINARY([AT]) + CHR(13)
                nVsj=SECONDS()+5

        DO  While  SECONDS() <=nVsj 

            If thisform.mycomm.InBufferCount > 0
                aVzifua =thisform.mycomm.Input
            ENDIF


        ENDDO 

thisform.text1.Value=aVzifua
thisform.mycomm.portOpen=.F.


运行后总是得不到返回信息。后来装了一个监视串口信息的serial monitor软件,发现这段代码总是要运行两次,端口才能返回“OK”,但我的文本框中两次都显示不出任何字符。

特请高手赐教:
1.为什么要运行两次才能“OK”?
2.如何得到返回信息

serial monitor给出的串口信息如下:

Read:
Port opened

Baud rate set to 9600

StopBits: 1 stop bit, Parity: No parity, WordLength: 8

Port closed

Port opened

Baud rate set to 9600

StopBits: 1 stop bit, Parity: No parity, WordLength: 8
0D 0A 4F 4B 0D 0A ..OK..
Port closed

Write:
Port opened

Baud rate set to 9600

StopBits: 1 stop bit, Parity: No parity, WordLength: 8
41 54 0D AT.
Port closed

Port opened

Baud rate set to 9600

StopBits: 1 stop bit, Parity: No parity, WordLength: 8
41 54 0D AT.
Port closed

--参考方法--
没用过这个。
试试

thisform.mycomm.Output = CREATEBINARY([AT] + CHR(13))  
改为
thisform.mycomm.Output = '0hAT'
thisform.mycomm.Output = '0h0D'
--参考方法--
厂家没有类似 DLL 可以直接调用的接口吗?
--参考方法--
短信猫?
网上的使用教程很多,只是没有看到用 vfp 操作的代码
但操控是一样的:用 AT 命令发送 pdu格式 内容,中文必须使用 ucs-2 编码的
--参考方法--
我用的是提供的 DLL,操作也很方便,不是楼主这种操作方式。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:44
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9845/
本文WWW.DOC100.NET DOC100.NET版权所有。