本帖最后由 ddllxxrr 于 2015-10-14 19:00 编辑
注意:空中更新(Over-the-Air OTAU)丛也在BitCloud中支持,然而硬件, ATSAMR21-LED-Driver,板子上没有保存更新的固件外部Flash。
2.6.4 应用代码流程 下列流程图展示了关于灯的所有应用的代码流程
2.6.5 灯的远程控制 从远程控制灯发生在client-server模式。这个按照Zigbee Cluster Library(ZCL)协议。灯掌握着相关数据(属性)是服务端。远程的客户端通过命令操作灯的属性。
例如:从AVR477远程控制,改变灯的亮暗级别。
Move to Level命令是控制丛的一部分。这个命令从远程发送到灯带有level和transition time 参数。当灯接收到这个命令时,它将在协议的传输结束后变到新的电平。
上边的例子是通过空中命令从远程到灯改变灯的亮度的。灯需要转换接收的级别到PWM值提供给LED驱动器,用来使LED达到正确的亮度。下列API执行流程如下图展示:
当无线命令改变到新的级别到达ATSAMR21单片机时,它到达应用,从应用的栈的低层。moveToLevelInd()函数(在lightLevelControlCluster.c)是一个指示函数用来通知应用一个新moveToLevel命令被接收。
这个命令被应用处理并且通过APP_PWMMoveToLevel()(在lightPwm.c)提供给LED驱动。此函数将值的值与脉宽调制的占空比值,并启动一个定时器,以周期性地移动一级。
这样做是为了在前个传输时间结束时新级别完成。
|