在此链路下,系统状态主要分工作状态和警报状态两种。工作状态下整个系统会进入一个高等级的戒备,当主人不在家时,门窗传感器被触发,系统便会发出报警,并通过手机应用做提醒,这是布防状态。但是如果主人在家时,系统便会进入一种低等级的撤防状态,即使传感器被触发,系统也不会给发出报警。
整个安防系统中HarmonyOS 应用和HarmonyOS设备的交互主要分为四大流程:
•首先是设备发现流程:让HarmonyOS应用去发现HarmonyOS设备;
•其次是设备上报流程:HarmonyOS设备能够把数据上传到HarmonyOS应用上;
•第三是设备控制流程:HarmonyOS应用能够控制系统中的设备;
•最后是应答流程:应用和设备间发送的数据和指令可以相互应答,保证通信完整。
为了满足系统的应用场景,系统中用TLV协议作为通信协议。它的数据格式主要分为三大部分,第一部分是协议标题,大概有12个字节,往下是数据长度,占了4个字节,接下来是数据内容。数据内容采用了JSON的数据格式。
设备发现流程主要是分为两种情况,在HarmonyOS应用没有设备信息时,它会在局域网对外发送一个广播,然后HarmonyOS设备收到广播后,会把设备ID和一些相关信息返回给应用,最后应用去发动一个连接的请求,设备这边响应请求。如果HarmonyOS应用有设备信息时,它就可以直接发送请求,设备做相应的应答即可。
设备上报流程也很简单,设备上报一个JSON字段的数据解析给到应用,应用做相应的应答即可。通过应用还可以控制系统中的设备,例如控制灯的打开和关闭。
在整个安防系统中,设备开发有三个比较重要的点。一个是无线技术,保证HarmonyOS设备可以和无线传感器进行通信;第二个是传感器,例如烟感、红外等;第三是网络通信能力,让设备和应用进行通信。
设备开发流程分为设备启动并初始化,初始化后创建串口线程和网络线程。串口线程的作用是和无线模块进行通信,判断传感器的类型,然后把传感器信息上报给应用。网络线程主要是接收应用发来的数据,读取网络数据,然后解析数据格式,执行相应的指令。