短信猫开发经验归纳

最近为一家代价公司做一个软件,其中需要用到话务系统集成,其余倒还罢了,就是短信猫不好搞,因为卖家居然没有提供动态链接库的接口,所以没办法,就只得写实现与硬件的交互相关操作的代码了。首先看看所用到的东西。

  第一:at指令

  第二:串口通讯,我用的c#,里面有类支持

  其中at指令最麻烦,要是细节搞不好的话,很麻烦的,所以需要一个好的调试器。

  我们都知道吧,xp自带了一个超级终端,对了,就是 开始->程序—>附件->通讯->超级终端。

  这个的用法很简单的,创建相对应的针对com端口的连接,然后就可以输入命令了。

  这里不说别的了,就直接说下at指令的注意点

  1 执行命令的时候,最后必须要有/r。

  2 在发送短信的时候,pud支持汉字最好,所以一般都是pud模式发送。发送短信的格式如下:

AT+CMGS=【pud格式的字符串个数】

> 23232 ^z

 很多网上的control+z是^z,但是我放在c#中不对,最后没办法,根据内码查出来对应ascall码值,然后抓换为char类型的,这样才实现了。语句是:convert.tochar(26)这个放到最后,当然也要一个换行/r

 最好在超级终端上把需要功能的命令都调试通了,再放到代码中。

 至于在代码中注意的就是,一般命令的话,比如获取短信猫品牌,设置发送短信类型【text,pud】的时候一般情况下都是让线程sleep(1000)后才获取返回值,而发短信的话,最好sleep(3000)才可以获取返回值。

   我的解决方案是发送后,不停地扫描缓存区,直到有正常值,因为也有可能移动或者联通服务商信号有问题,导致发送短信时间过长。而写指定时间获取的话,这样很不灵活了。

   再看类,完成这个功能只需用两个类,一个是 操作at指令类,一个是pud生成类【这个是别人提供的,感谢他把我从繁杂的pud格式中解救出来,哈哈哈哈哈哈】,其中pud类最方便,你如果有幸看到pud生成的麻烦,就会有这种感觉。它可以根据短信中心号码,接受号码,内容,就可以生成发送的pud字符串了,你在后面加上结束符convert.tochar(26)和/r。恭喜,你可以发送短信了。

   以后我会把相关代码贴出来,以及超级终端的用法也会贴。但是需要等到项目完成后再说。。。

 

 

 随便提一点,这个软件的设计可真垃圾,当然是我设计的,可维护性是负数级。哈哈。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值