您的位置:首页 > 大数据 > 物联网

用CMPP3.0实现物联网卡通讯

2017-03-24 12:08 513 查看
当下物联网发展迅猛,物联网卡可以接受短信指令,实现千里之外尽可掌控。本人做过一个这类项目,把相关经验记录下来,分享给需要的人。物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网卡位数为13位,用的CMPP3.0协议,可以完美支持物联网卡通信。因为CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。
Dest_terminal_Id32*DestUsr_tlOctet String接收短信的MSISDN号码。
Dest_terminal_type1Unsigned Integer接收短信的用户的号码类型,0:真实号码;1:伪码。
可以是用CMPP3.0协议,也就是说发送短信到物联网卡、从物联网卡回复短信回来,都可以直接用这套CMPP3.0协议。那么跟发手机短信有何不同之处呢,以下就是几点不同: 1.关于编码格式目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0
Msg_Fmt1Unsigned Integer信息格式:0:ASCII串;3:短信写卡操作;4:二进制信息;8:UCS2编码;15:含GB汉字。。。。。。
如果是发送中文内容,则只支持UCS2编码,即Msg_Fmt必须设置成8另外有个特别费解的问题是,如果是发中文内容,短信网关会自动在短信后面加上一串尾巴,类似【ayf】等。这个问题在开发的时候必须注意,以免发送的指令不能解析,需要做一些逻辑处理把尾巴去掉。 2.关于长短信我们知道一条短信只能发140个字节的内容,如果实际要发的内容超过这个数,就必须拆成多条发送,这样会有一些影响。为了发长短信,我们的CMPP发送程序必须做一些改造,具体请参考我的另一篇博文CMPP3.0 长短信实现方案而对于物联网卡来说,收发长短信必须使用  7 位的协议头格式:06 08 04 XX XX MM NN这也是要注意的一点,否则解析发送都会出错。 3.关于用户号码类型物联网的用户号码类型选择Dest_terminal_type=0即可。若选择1会报错。其他如遇到短信网关返回码,可查询以下网址看返回码解释 http://www.cnblogs.com/tuyile006/p/5849722.html常见返回码:173  是物联网卡没开通短信功能造成的。这就是开发物联网通讯过程中的经验。最终将该通讯模块做成了一个windows服务,在系统中稳定运行,支持每天百万级的信息发送接收。经过一番努力,对程序进行功能扩展,目前已支持:1、支持Cmpp2.0、3.0协议;2、支持一般的短信发送、上行短信接收、状态报告;3、支持长短信,包括下发长短信、上行接收长短信;4、支持Ms Sql数据库、MySql数据库;5、支持普通手机号和物联网卡;6、集成了邮件群发功能;7、全套源码Win服务、全套数据库源码;


      程序的设计原理是直接读取数据库中的待发信息,由Windows短信服务负责发送和接收信息,并将是否发送成功的状态回写到数据库。且如果有上行短信,也会接收后保存到上行短信表中。所有,这套程序已经可以支持任何语言,因为你只需要与数据库打交道。-----------------------------------------------------------------短信程序源码Win服务版(CMPP3.0/CMPP2.0协议)
移动物联网卡短信源码(CMPP3.0协议,支持MsSql/MySql数据库)
联通Sgip1.2短信源码
彩信MM7协议C#版客户端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: