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、串口是两根数据传输线,不是一根。一根用于发送数据,一根用于接收数据。

  • 相关阅读:
    红黑树
    二叉搜索树
    散列表
    基本数据结构
    顺序统计量
    RabbitMQ一些实用方法
    (转)elasticsearch连接不到head插件解决方案
    (转)如何优雅的使用rabbit mq
    (转)elasticsearch6.0版本安装head插件
    Rabbit MQ一些参数解释
  • 原文地址:https://www.cnblogs.com/hjblog/p/2013467.html
Copyright © 2011-2022 走看看