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://blog.baiduola.com/1017/

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

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

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

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

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

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

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

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

时间: 2024-10-01 21:17:38

CMPP3.0实现物流网卡通讯的相关文章

redhat Linux 5.0 如何识别网卡和安装驱动

如何查看网卡是否安装 1  ifconfig -a 如果没有ethX 就很可能是网卡没有安装,至少可以断定网卡没有自动加载. 如果这时输入 ifconfig eth0 xxxx.xxxx.xxxx.xxxx 系统会提示没有eth0 该设备. 2  可以用 dmesg | grep ethx 来查看系统能不能检查到该模块.如果能会返回 ATL2: eth0NIC Link  is up <100M full duplex> 否则没反应 3  用lsmod 查看开机时是否有加载如果有的,会有atl

C# Socket通讯 本机多网卡,指定网卡通讯

IPAddress ip = IPAddress.Parse("192.168.0.188"); IPAddress IPLocal = IPAddress.Parse("192.168.0.110"); Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { clientSocket.Bind(new IPEnd

DICOM医学图像处理:全面分析DICOM3.0标准中的通讯服务模块

背景: 最近在做关于PACS终端与RIS系统之间进行worklist查询的相关调试工作,因此又重新对DICOM3.0标准中关于网络传输的部分进行了阅读,在此将本周的工作进行一下总结,以加深对DICOM3.0标准的认识,从底层更加清晰的了解worklist查询.C-STORE.C-FIND等各种服务. 要点: 1)名词简称 该部分中会出现很多的常见名词的缩写,因此为了更好的理解其含义,先给出各个名词所对应的全称,这里没有用中文进行翻译原因有二,其一是因为英文很简单,而且表意很清楚,其二是因为目前D

普通PC安装ESXI6.0无法识别网卡驱动问题

VMware官方镜像中没有封装普通网卡的驱动,无法识别REALTEK RTL 8111E等.需要通过ESXi-Customizer-v2.7.2工具将驱动程序封装到安装镜像里面,在网上收了一些资料,借鉴网友的一些操作,终于搞定. 1.下载ESXi-Customizer-v2.7.2工具,http://www.computertechblog.com/adding-realtek-r8168-driver-to-an-esxi-6-0-iso/#comment-9169 下载:http://www

在红帽RHEL7.0里配置网卡的四种方法

第一种方法 :采用vim编辑器来配置: 1.  如下图的步骤所示: 2.  输入这个命令后进行配置成下方图片里的内容: 3.  然后退出vim 编辑器,然后重新启动一下网络服务配置: 4.这些配置完后,我们现在可以来看看是否能够来连通主机,在这之前,我要在物理机上进行网络适配器更改: 5.出现步骤四中的第三张图片所示的情况,这就说明网卡配置成功了.注意这里我配置网卡是网络适配器在仅主机模式下进行实验的. 第二种方法:1.使用nmtui命令来配置 2.配置好上述图示的步骤后,最好是检查一下ONBO

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

CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡. Dest_terminal_Id 32*DestUsr_tl Octet String 接收短信的MSISDN号码. Dest_terminal_type 1 Unsigned Integer 接收短信的用户的号码类型,0:真实号码:1:伪码. 可是用CMPP3.0协议,也就是说发送短信到物联网卡.从物联网卡回复短信回来,都可以直接用这套CMPP3.0协议.那么跟发手机短信有何不同之处呢,以下就是几点不同:

DTcmsV4.0分析学习——(1)数据库结构分析:表结构

数据库名:DTcmsdb4 DTcmsV4.0共35张表(33张表+2张插件表) dt_article 内容管理 dt_article_albums 图片相册 dt_article_attach 附件表 dt_article_attribute_field 扩展属性表 dt_article_attribute_value 扩展属性表 dt_article_category 栏目类别 dt_article_comment 评论 dt_channel 系统频道表 dt_channel_field 频

Linux下双网卡绑定(bonding技术)

http://www.cnblogs.com/qmfsun/p/3810905.html Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的网卡绑定模式,Linux bonding驱动提供了一个把多个网络接口设备捆绑为单个网络接口设置来使用,用于网络负载均衡及网络冗余.当然现在网卡产商也会出一些针对windows操作系统网卡管理软件来做网卡绑定(win

ifconfig修改网卡相关问题

inux命令之ifconfig详细解释 许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具.依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置. 1.命令格式: ifconfig [网络设备]