您的位置:首页 > 其它

智能家居通用管理平台(六) - 通信协议

2014-07-25 15:55 134 查看
各厂商设备的状态数据和控制参数千差万别,为了规范驱动程序、客户端应用中使用数据的标准,我们制定了统一的数据格式,按照统一的协定,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平台的即插即用机制。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐