- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件概要
当今时代,互联网越来越普及, \t /_blank 物联网更是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。新的事物将不断替代旧事物,在过去,关于房屋火灾报警只是一个安装在天花板的报警器,如果发生火灾但没人在家时也无法预防,这安全性是远远不够的。如今,随着社会发展、生活质量的提高,人们越来越重视安防这一模块。技术的发展将火灾烟雾报警器也往物联网方向发展。为了实现火灾烟雾报警器智能报警,实现即使人不在家也可以收到火灾警报的目的,我司研发了一款智能烟雾报警器设备,配合此款设备的使用,还需要一款wifi控制中心设备,负责烟雾报警器和网络的通信,二者是通过2.4G频段来交互的。在以上的前提下,我司自主开发了一款系统软件,包括App客户端和服务器。此款软件实现了烟雾报警器设备的配置网络、添加到数据库、查看设周围烟雾浓度备实时状态、查看烟雾是否超标的历史纪录、设置报警微信推送、自定义设备报警时段等功能,还有注册、登录、忘记密码以及系统设置等基本功能。
软件设计
2.1 APP和服务器的通信指令设计
此软件APP和服务器之间的通信采用收发指令来传输所需的数据,按照以上协议,通过把指令转成json格式传给服务器解析,服务器记录所需的数据。
设备数据格式:{
id:00112233445566 (String [原类型7bytes 数组])
pid:00112233445566 (String[父设备id,原类型7bytes 数组])
name:烟雾报警器 (String)
place:客厅 (String)
version:0 (Integer)
type:0 (Integer)
online:true (Boolean)在线
iscenter:false (Boolean)
power:[{way:0, on:false}] (Array[false:关])电源
“devdata”:”” (String)设备状态用16进制表示 0x16525300000001~0x165253FFFFFFFF
}
指令一般一应一答成对出现。
指令编码中,奇数为服务器发送到客户端的指令,偶数为客户端发送到服务器的指令。
2.2 APP和服务器的通信规则
2.2.1 App指令顺序注意点:
(1)app和服务器建立连接之后,向服务器发送0号指令,服务器返回1号指令给app,由于1号指令里面存放了流水号和key,用于辨别指令真伪。所以,app只有在收到1号指令之后,才能开始发送其他指令给服务器,否则服务器收到该指令,会以错误指令的处理方式,不予任何处理。
(2)app收到1号指令之后,必须向服务器发送73号指令,用于设置语言等等的一系列参数。
2.2.2 App指令参数注意点:
指令中设置deviceId(设备的mac值)时,若设备是wifi设备,deviceId为00加上wifi设备的mac值,则deviceId的长度为14。若设备是2.4设备,deviceId为该设备的sn值,则deviceI的长度也为14。
2.3部分指令列表
FF:服务器返回的异常包 异常信息
FE:客户端发送心跳数据包 无内容
FD:服务器端返回设备列表状态无变化数据包 无内容
FC:服务器返回部分设备状态变化信息列 数组[设备信息]
FB:服务器端发送心跳数据包 无内容
00:客户端启动连接数据包 无内容
01:服务器发送登陆许可
{
key:xxxxxxxxxxx(String)
ip:5
}
02:客户端发送用户名和密码登陆信息 用户信息
03:服务器指示是否用户登陆成功
{
result:true (Boolean)
info:用户信息
}
04:客户端获取用户的所有设备列表
{“hash”:“FF00FFFD23404782394703”} (最后一条05指令解密后JSON串的大写的 md5串。””强制取列表)
05:服务器返回用户的所有设备列表 (设备信息数组)[设备信息1,设备信息2]
06:客户端查询单个设备状态
{
devid:00112233445566(String)
}
07:服务器返回单个设备状态 设备信息
08:客户端发送对某个设备信息指令 设备信息
09:服务器返回控制结果 设备信息
0A:客户端向服务器发送用户注册请求 用户信息
0B:服务器返回用户注册请求结果
{
result:true (Boolean)
info:用户信息
}
0C:客户端发送添加WiFi设备信息指令
{
pass:123
文档评论(0)