zoukankan      html  css  js  c++  java
  • 短信猫编程注意事项

    刚刚把手机短信功能加到了公司OA系统中,短信猫足以满足公司目前的业务需要。遇到了一些问题和疑惑记录下来备忘。

    原理说白了就是串口编程:.net 提供的SerialPort类很好的抽象了此类编程,write写数据到串口,read从串口读数据;相应的OutBuffer就是输出缓冲区,InBuffer就是输入缓冲区。只不过短信猫接受的是AT命令。

    注意事项:

    1、短信猫是一个设备,有他自己的状态。具体体现在AT+CMGS命令上,这个命令就是用于具体发送短信的,也是最复杂的一个命令,需要与设备有两次交互:(1)首先写串口数据:AT+CMGS=<短信长度>/r;这是读串口数据到">",大于号其实是一个提示符,是短信猫提示我们要输入真正的短信内容了。(2)写短信内容到串口,以char26结尾。

    问题就在于他需要2步完成,如果在第一步完成后接着出错了,设备就进入假死状态了:再给他发什么命令,都只会收到大于号">"。解决方法是:发送esc(27)取消上次短信发送。

    2、串口编程的特性同时只允许一个线程读写串口。如果一个线程在发送短信时,另一个线程随便发送一个数据到串口。发送短信的线程一定会收到“error"消息。

    我们只能把所有的数据放到队列中,一个一个顺序发送。

    3、串口是两根数据传输线,不是一根。一根用于发送数据,一根用于接收数据。

  • 相关阅读:
    muduo库源码剖析(一) reactor模式
    POSIX 线程编程(二)线程建立与终止
    visual assist常用快捷键
    Linux下 静态链接库 和 动态链接库
    linux(Ubuntu)下mysql字符集完美解决
    共享内存解读
    hdu2829
    hdu3525
    2013ACM-ICPC亚洲区南京站现场赛G题
    poj1487
  • 原文地址:https://www.cnblogs.com/hjblog/p/2013467.html
Copyright © 2011-2022 走看看