基于智能家居控制系统的网络通讯方法

文档序号:8342607阅读:346来源:国知局
基于智能家居控制系统的网络通讯方法
【技术领域】
[0001]本发明涉及一种网络通讯方法,具体地,涉及一种基于智能家居控制系统的网络通讯方法。
【背景技术】
[0002]对于智能家居远程控制系统来说,网络通讯是不可或缺的一部分。应用程序的网络通讯一般是通过Socket (套接字)来实现的,即手机客户端APP通过Socket通信连接服务器,并进行信息的有效交换,实现远程控制的功能。
[0003]然而Socket通信有不同的通讯协议,而且实现功能的多样化常?;岬贾峦ㄑ陡袷椒浅8丛?,且不易实现设备的可拓展性,严重影响系统的运行效率。

【发明内容】

[0004]针对现有技术中的缺陷,本发明的目的是提供一种基于智能家居控制系统的网络通讯方法,其通讯速度快、效率高,通讯格式简洁明了,可拓展性强。
[0005]根据本发明的一个方面,提供一种基于智能家居控制系统的网络通讯方法,其特征在于,包括以下步骤:
[0006]步骤一,客户端向服务器发送一个心跳包,用于检测网络连接情况;服务器收到心跳包后,依次返回各个已连接设备的状态信息;客户端一直未收到服务器返回的设备状态信息,则需一直向服务器发送心跳包;如果客户端收到服务器返回的设备状态信息,则执行步骤二、步骤三、步骤四;
[0007]步骤二,刷新客户端的设备状态信息;
[0008]步骤三,客户端向服务器发送控制指令;服务器收到控制指令后进行判断并回复客户端设备状态信息,控制设备运行;
[0009]步骤四,用户请求设备运行时的详细电能信息时,向服务器发送请求指令;服务器收到请求指令后,返回该设备实时的电能数据。
[0010]优选地,所述设备状态信息的通讯格式形式包括三段:第一段是固定的头部;第二段是信息类型,用数字字符表示;第三段是设备的身份标识号码,由数字字符组成。
[0011]优选地,所述客户端是通过Socket通信向服务器发送一个心跳包。
[0012]优选地,所述客户端是通过Socket通信向服务器发送查询详细电能信息的请求指令。
[0013]与现有技术相比,本发明具有如下的有益效果:一,选择UDP通讯协议,通讯效率高;二,通讯格式简洁明了,客户端可以有效远程控制设备,并查询设备实时电能数据,实现功能多样化;三,可拓展性强,增加设备时只需要在服务端程序处增加设备的ID,添加设备相关代码。
【附图说明】
[0014]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0015]图1为本发明基于智能家居控制系统的网络通讯方法的流程图。
【具体实施方式】
[0016]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的?;し段?。
[0017]Socket通信分为UDP和TCP两种。TCP (传输控制协议)是一种面向连接的协议,能保证写入流的数据按顺序被读出来,可靠性高,效率低。UDP(用户数据报协议)是一种无连接的协议,不保证报文到达的先后顺序,不保证是否有报文丢失,效率高,可靠性低。由于智能家居控制系统需要通过网络传输的是设备状态以及控制信息,不需要保证报文的先后顺序,且TCP通信过程较为复杂,影响系统的简单易用性,因此本发明选择UDP协议。
[0018]如图1所示,本发明基于智能家居控制系统的网络通讯方法包括以下步骤:
[0019]步骤一,客户端(比如手机客户端)启动的头2秒内,每半秒通过Socket通信向服务器发送一个心跳包(心跳包的格式如下:“SH\n 2”),用于检测网络连接情况;服务器收到心跳包后,依次返回各个已连接设备状态信息(状态信息的通讯格式如下:SH\nl\n唯一ID\n类型\n名称\n房间\n其他数据)。之所以在头2秒内多次发送心跳包,是因为经验表明头几个UDP包的丢包率略高??突Ф耸盏椒衿鞣祷氐男畔?,首先判断信息开头是否是“SH”,若不是,则此信息为无用信息,弃置;若是,则读取第一个换行符之后的数据“ I ”,判断为服务器发送的设备信息指令,则需依次读取各个换行符之后的ID、类型、名称、房间和其他数据信息,并显示在客户端上。若在两秒的时间内客户端一直未收到服务器返回的设备状态信息,则需一直向服务器发送心跳包,并显示错误提示信息,提示用户检查客户端与服务器的网络连接情况;如果客户端收到服务器返回的设备状态信息,则执行步骤二、步骤三、步骤四。
[0020]其中,设备状态信息的通讯格式形式具体说明如下:每条信息会被\n (换行符)分割为不定长的多段,其中第一段是固定的头部,内容为2个字符一一SH。第二段是信息类型,用数字字符表示,I表示这是个包含设备状态的信息。2表示这是个心跳包,3表示这是个包含电能数据的信息,4表示这是个控制指令,5表示这是个请求电能数据的信息。具体而言,当表示设备信息时,格式为“SH\n l\n唯一 ID\n类型\n名称\n房间\n其他数据”,其中唯一的ID为设备在服务器端编程使用的ID,由数字字符组成,范围为O到2147483648 ;类型包括开关、日光灯等,可以在服务器端进行添加,通常也用数字字符来表示;名称为设备名称,房间为设备所在房间名;其他数据主要包含设备的某些特定信息,对于智能家居控制系统而言,绝大多数设备最重要的状态信息就是设备的开关状态,因此这里可以设置I表示打开,O表示关闭,通讯格式则大大简化。当表示心跳包时,格式只需设置为“SH\n 2”,因为它不包含任何信息,只是为了检测网络连接状况。当表示电能数据时,格式为“SH\n3\nID\n有功功率\n电流\n电压\n频率”,其中第三段是设备的身份标识号码(ID),由数字字符组成,指明这条信息所指的设备,而有功功率、电流、电压、频率都由数字字符组成。一个设备的功率信息的长度最好不要超过1400个字符,因为大部分网络设备的MTU的大小在1400到1500之间。超过MTU大小的数据包会被拆成多个小于MTU的包发送
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
imtoken助记词怎么填-imtoken钱包没有收益-imtoken矿工费太贵了-im钱包官网:token.im