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

在这个万物互联的时代,物联网应用以及深入到我们生活的方方面面,大到智慧城市、智能交通,小到行车记录仪,各种穿戴设备,智能家居,都有物联网应用的身影,让我们感受到生活品质和档次的提升。

那么作为程序员的我们,物联网通信到底如何做呢?

本系列文章即将带您一起走进物联网系统开发的世界。也希望同行一起分享和讨论物联网相关知识和开发经验。

首先看一下物联网系统的整体架构,看上一篇文章:物联网数据卡系统源码——整体架构

本篇将讲解物联网系统中的通信模块实现原理及相关内容

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

1.通信模块的功能

系统发送指令信息到物联网卡,物联网卡接收到指令后做相应逻辑处理,并返回信息给系统。

2.通信模块实现的原理

一般是通过运营商(移动、联通、电信)提供的短信网关通信协议,来给物联网数据卡发送信息。

三大运营商使用的协议不同,分别是:中国移动CMPP协议、联通SGIP协议、电信SMGP协议。

具体的协议介绍这里就不展开了,参考阅读:协议介绍

3.使用中国移动CMPP协议实现物联网通信模块

物联网卡选任何一家运营商合作都没有关系(但个人经验,移动的信号是最好的。^_^根据自己情况选择)

移动使用的是CMPP协议,此协议2001年出了CMPP2.0版,之后持续升级过CMPP2.1,到2002年出了CMPP3.0版之后就未升级过,一直很稳定,能满足各种应用需求。CMPP3.0扩展手机号为32位,增加了号码类型和linkid等字段,做物联网卡当然选择支持扩展更多且最稳定的CMPP3.0版本。

下面介绍一款程序,此程序为中国移动CMPP协议程序接口,适合在中国移动申请了短信发送端口的公司使用。

本程序功能包括:

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

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

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

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

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

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

7、支持扩展号;比如你的发送号码是1008622,可以扩展成100862201、100862202等

程序适用于Cmpp3.0、Cmpp2.0协议,可用.Net任何版本编译。短信Win服务程序+MsSql/MySql数据库源码,直接配置好win服务并启动,自己只需往数据库里面写入数据就可以发送短信,接收的短信保存在另一张表中,读取即可收到上行短信。

4.设计原则

短信通信模块本身是可以不带任何业务逻辑的,所以可以也必须设计成与其他业务处理模块分开,实现松耦合,独立分布式部署。

通信模块每天的发送量比较大,每时每刻都在持续运行,这就必须能实现独立部署,提高性能,同时也不影响其他业务功能的性能。

5.程序实现

程序设计成一个Windows服务的形式,可以安全的驻存在系统中稳定运行,防止人为因数关闭程序。同时设计成支持Sql Server和MySql两种数据库,且可以通过修改配置项来实时切换。

根据功能不同又可以细分成专门负责实现CMPP协议格式,与移动网关通信的模块,和专门读取数据库数据,处理发送任务的Windows服务模块。

上图代码为短信win服务代码截图,相关代码模块解释:

Xiaoy.SMS项目:为短信组件源码,负责实现CMPP协议并与短信网关通信.
SMSWinService项目: 短信服务源码,负责读取数据库待发短信并发送以及上行短信的接收,当然还包括windows服务的安装等功能.
SMSTest项目:短信测试程序源码,Windows桌面程序,用于短信调试.

上图为短信调试小程序截图。短信程序开发好之后,联调是一个繁琐的工作,因为协议参数就有几十个,任何一个参数填写错误都有可能导致短信发送不成功,这就需要有一款调试工具来帮忙了,有时候不是你的程序编码有问题,而是移动运营商那边没帮你配置好,或者你填的参数输入错误,造成了发送失败。遇到这种情况,可以通过发送后返回的状态(见上图中红色日志)来判断是哪里的问题。

短信发送流程如下:

第一步:程序发送Submit包到网关,网关会返回SubmitResp包,根据包中的Result的值来判断是否发送成功。

result=0代表发送成功,其他代表失败,失败的原因可以查询返回码的意义:返回码说明

这时候只是发送到了网关,至于网关是否成功发送到用户手机或物联网卡,尚不知道。比如用户手机关机,或物联网卡未插入设备中则收不到短信。

第二步:当短信网关成功发送短信到用户手机卡或物联网卡上时,会返回状态报告给SP端(即本程序)。

如果状态报告中的结果是DELIVRD,则证明信息已经成功发送到物联网卡,并成功接收到。

也就是说,当第一步result=0的时候,基本SP的发送任务完成了,如果收不到也是卡的问题(欠费、关机、未插卡等)。

第二步是更精确的知道卡是否收到信息,但有可能一两天才会返回。要接收状态报告,需要在提交Submit包的时候把“RegisteredDelivery”字段设为1。

上图为短信网关模拟器工具截图。在本地测试需要用到短信网关模拟器。

由于篇幅有限,本文从整体讲解一个大概,未完待续。

本系列文章将继续开新篇讲解CMPP协议模块的实现,和SMSWindows服务模块的实现,欢迎持续关注。

时间: 2024-12-16 13:08:13

物联网数据卡系统源码——通信模块的相关文章

Android系统源码阅读(13):Input消息的分发过程

Android系统源码阅读(13):Input消息的分发过程 请对照AOSP版本:6.0.1_r50.学校电脑好渣,看源码时卡半天 先回顾一下前两篇文章.在设备没有事件输入的时候,InputReader和InputDispatcher都处于睡眠状态.当输入事件发生,InputReader首先被激活,然后发送读取消息,激活Dispatcher.Dispatcher被激活以后,将消息发送给当前激活窗口的主线程,然后睡眠等待主线程处理完这个事件.主线程被激活后,会处理相应的消息,处理完毕后反馈给Dis

资深程序员告诉你:直播系统源码开发“四部曲”

你是怎么开始接触直播APP的? 你是通过什么渠道接触直播APP? 你观看直播的频率是多长? 你使用直播APP是为了什么? 直播APP 经常使用直播APP的你这些问你都有认真想过吗?直播不仅丰富了我们的日常生活,也让企业有了一个宣传自己的渠道,依附于其他平台的直播都有局限性,因此很多垂直行业都会选择自己开发直播平台,下面同创天达小编就简单介绍一下直播系统源码开发的"四部曲". 第一步,采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别

小说分销系统,微信小说分销,类掌中云小说系统,类818tu系统源码

[演示站参数][][][][][][][][][][][] [后 台 地 址]     http://xiaoshuo.qqsiot.cn/manager          [] [管理员账号]     admin                                                     [] [渠道商账号]     channel                                                  [] [代理商账号]     age

校园网站群系统源码

校园网站系统源码  点击下载源码 源码描述: 校园网站群系统结合学校现代信息化发展需要以及学校需求而开发的一套人性化校园网站群系统.有效的提供了学校的宣传以及校园学习环境和校园信息互动,以及数据的安全处理. 适合:学校单位使用,技术人员开发与学习. 特点:可创建多个学校门户网站:学校聚合页面人性化整合:强大的管理后台:内容标签便捷式建站群 功能描述: 1.学校网站群聚合功能: <1>网站首页:显示最新统计数据,如:学校,信息,图片,下载:最新公告:最新信息:学校列表:图片信息:下载信息: &l

微信排号管理系统 B/S微排号系统源码 微信排队系统源码 微排队系统,会员远程预约排号

 哈林电子会员卡软件,升级会员微信预约排号功能,商家会员无需等待,远程预约排号,微排号系统源码 2015年1月4日,哈林科技旗下的电子会员卡管理软件,如期完成会员微信预约排队功能的升级,以下简称[微排队] 本软件的开发旨在给商家提供一个实用,可操作性强的电子会员卡管理平台. 微排队功能的推出主要实现以下功能: 1.商家可以在电子会员卡软件中心实时查看会员近5天内的微信预约,帮助商家合理调配人力 2.电子会员卡软件提供给商家自定义设定每个消费项目每天能服务预约的人数限制 3.商家可以通过软件合

移动pc多平台运营级家校互动平台系统源码转让

产品包含WEB端/android/IOS端 功能完善, 具体请联系团队 QQ  2768232187 "学校信息"是一个为学校.校长.老师.家长解决信息获取.风险防控.资讯发布.招生宣传.家校交流等一系列学校信息化问题的整体解决方案.产品整合学校官方网站.慈航家委会.校讯通以及其他信息化系统的功能与数据,通过大数据分析以PC网站+手机客户端两种形式为学校.校领导.老师.家长提供信息服务. 产品为学校提供资讯发布.信息展示.招生宣传等服务,用于学校对外宣传. 产品为学校领导提供教育信息分

哈林电子会员卡软件,升级会员微信预约排号功能,商家会员无需等待,远程预约排号,微排号系统源码

 哈林电子会员卡软件,升级会员微信预约排号功能,商家会员无需等待,远程预约排号,微排号系统源码 2015年1月4日,哈林科技旗下的电子会员卡管理软件,如期完成会员微信预约排队功能的升级,以下简称[微排队] 本软件的开发旨在给商家提供一个实用,可操作性强的电子会员卡管理平台. 微排队功能的推出主要实现以下功能: 1.商家可以在电子会员卡软件中心实时查看会员近5天内的微信预约,帮助商家合理调配人力 2.电子会员卡软件提供给商家自定义设定每个消费项目每天能服务预约的人数限制 3.商家可以通过软件合

出售高质量数字校园系统源码

出售高质量数字校园系统源码,包含单点登录.基础数据平台.通用数据接口.综合信息门户.OA办公.人力资源.后勤.教科研.设备资产.教师成长.教学教务.教育质量检测.招生管理.学生管理.住宿管理.学生缴费.顶岗实习与就业等全功能模块,模块化设计,可独立使用,联系QQ:564073314,电话:15623092511

微信智能排号系统,哈林电子会员卡软件 微信智能排队系统 微排队系统源码

 哈林电子会员卡软件,升级会员微信预约排号功能,商家会员无需等待,远程预约排号,微排号系统源码 2015年1月4日,哈林科技旗下的电子会员卡管理软件,如期完成会员微信预约排队功能的升级,以下简称[微排队] 本软件的开发旨在给商家提供一个实用,可操作性强的电子会员卡管理平台. 微排队功能的推出主要实现以下功能: 1.商家可以在电子会员卡软件中心实时查看会员近5天内的微信预约,帮助商家合理调配人力 2.电子会员卡软件提供给商家自定义设定每个消费项目每天能服务预约的人数限制 3.商家可以通过软件合