zoukankan      html  css  js  c++  java
  • CMPP3.0实现物联网卡通讯

    当下物联网发展迅猛,物联网卡可以接受短信指令,实现千里之外尽可掌控。本人做过一个这类项目,把相关经验记录下来,分享给需要的人。

    物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网卡位数为13位,未测试CMPP2.0是否支持,直接保险一点用的CMPP3.0协议。

    因为CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。

    Dest_terminal_Id

    32*DestUsr_tl

    Octet String

    接收短信的MSISDN号码。

    Dest_terminal_type

    1

    Unsigned Integer

    接收短信的用户的号码类型,0:真实号码;1:伪码。

    可以是用CMPP3.0协议,也就是说发送短信到物联网卡、从物联网卡回复短信回来,都可以直接用这套CMPP3.0协议。那么跟发手机短信有何不同之处呢,以下就是几点不同:

    1.关于编码格式

    目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0

    Msg_Fmt

    1

    Unsigned 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  是物联网卡没开通短信功能造成的。

    这就是开发物联网通讯过程中的经验。经过一番努力,程序已支持:

    1、支持Cmpp2.0、3.0协议;

    2、支持一般的短信发送、上行短信接收、状态报告;

    3、支持长短信,包括下发长短信、上行接收长短信;

    4、支持Ms Sql数据库、MySql数据库;

    5、支持普通手机号和物联网卡;

    6、集成了邮件群发功能;

    7、全套源码Win服务、全套数据库源码;

    提纲

    1 物联网数据卡系统源码——前篇

    1.1 物联网技术架构图

    1.2 物联网的主要应用领域

    2 物联网数据卡系统源码——通信模块

    2.1 通信模块整体概述

    2.2 协议封装和实现

    2.3 长短信

    2.4 粘包的处理

    2.5 物联网通讯与普通短信通讯的区别和要注意的地方

    3 物联网数据卡系统源码——Windows服务模块

    3.1 Windows服务模块概述

    3.2 Windows服务模块实现

    3.3 高并发回调处理

    3.4 部署安装

  • 相关阅读:
    每日一练之动态算法
    001之IP基础对话框
    mysql的一些操作
    logcat 提示 Unable to open log device '/dev/log/main': No such file or directory
    之前接触过的测试的相关工具
    SAP内存、ABAP内存
    模块化程序—函数 function
    模块化程序-子例程
    模块化程序-宏
    传输请求的管理
  • 原文地址:https://www.cnblogs.com/tuyile006/p/5783405.html
Copyright © 2011-2022 走看看