智能家居通用管理平台 - 通信协议
Posted ionfox
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能家居通用管理平台 - 通信协议相关的知识,希望对你有一定的参考价值。
各厂商设备的状态数据和控制参数千差万别,为了规范驱动程序、客户端应用中使用数据的标准,我们制定了统一的数据格式,按照统一的协定,SHP就可以统一的模式管理所有的设备了。
除了串口通信外,消息的传递采用stringJson对象。前面提到过,它实质是一个数据字典,可以存储任何内容。但存储的内容,必须按照SHP的协议读写。协议规定:
1、所有消息体内容(以后简称Json),必须含“cmd”词条(简称指令)。cmd的值,决定了消息的意义和使用方法,常用指令定义在SHProtocol 类中,目前还不是很完善,参见下面的代码:
public class SHProtocol //智能家居通信协议
public static string LOGIN = "500"; //客户登录SHS,只有登录成功才能访问SHS
public static string APPSTATE = "501"; //获取所有SHM程序状态[stream=文件内容]
public static string STARTAPP = "502"; //通知启动或结束SHM程序,需要权限[appid=?][start=1][rights=NNNNNNNNNNNNNNN]
public static string SHOWSHMUI = "503"; //通知SHM程序显示或隐藏[visible=1]显示,否则隐藏
public static string SHASTATE = "504"; //获取某个SHA系统的所有设备[appid=N]
public static string SHACTRL = "505"; //给某个SHA系统的设备发指令[appid=N][devid=M][subid=X][type=Y][act=K]
public static string DEVSTATE = "506"; //某个SHA系统的设备的子设备状态数据[appid=N][devid=M][type=Y][subid=X][value=V]
public static string GETTASK = "507"; //获取智能家居的任务数据
public static string MENDTASK = "508"; //修改智能家居的任务数据
public static string RUNTASK = "509"; //通知SHS执行某个任务[taskid=?]
public static string GETALARM = "510"; //获取智能家居的监控设置
public static string MENDALARM = "511"; //修改智能家居的监控设置
public static string TEXT = "512"; //SHA发给SHM、SHS、CLIENT的文本通知信息
public static string CAMERA = "513"; //有关摄像头操作
public static string SCREEM = "514"; //获取SHS屏幕图像
2、Json中的所有词条,都是小写英文字母,便于记忆
3、一个Json包含多个词条,由cmd指令决定。可以包含无关的词条,不影响操控,但会增加数据传输量。厂家也可以增加自己的特殊词条,形成特有平台的功能。但SHP不提倡。
每个Json可携带的词条及其意义,以后将会以表格的形式严格规范出来。
目前最重要的三个指令是LONGIN(500)、SHACTRL(505)、DEVSTATE(506)。
500指令用于客户端、智能设备登录SHP,是安全的保障。
505是客户端或服务器发给设备系统的指令,根据六类子设备的不同,带有不同的参数
506是设备系统返回状态数据的指令。
其他指令携带的参数,在实际的开发中,将不断完善。
下节介绍SHP平台的即插即用机制。
以上是关于智能家居通用管理平台 - 通信协议的主要内容,如果未能解决你的问题,请参考以下文章