杰理可视化工具中可以配置LED的硬件配置和LED状态配置, 在可视化工具中的LED配置选项中设置
硬件配置可设置LED名, 推LED使用的IO口以及LED的点亮方式
SDK发布的标准原理图推荐使用一个IO口使用PWM的方式控制两个LED灯, 使用这种连接方式, 两个LED配置为相同的IO, 并配置使用PWM作为驱动方式, 其中蓝灯BLUE选择PWM低电平, 红灯(RED)选择PWM高电平
LED状态配置是用户定义不同UI的闪烁方式, 并在后续情景配置中调用该闪烁方式
一个完整的LED显示UI可能会包含多个子状态, 子状态在时间轴上切换, 可以设置LED单次显示或循环显示
LED显示原理示例如下
工具中的配置项可以配置的参数如下
状态名:定义LED UI状态的名称,用户根据UI特征命名即可,该名称在情景配置中 LED显示 中被引用;
LED名:LED硬件配置中定义的名称;
状态:当前时刻设置的LED状态,可设置为亮和灭 ;
时间:设置当前状态持续时间,单位为毫秒(ms);
亮度:设置当前状态亮度,该配置当状态设置为 亮 时起作用,设置为 灭 是无效;
呼吸速率:设置为0时,是普通亮灭效果,设置为非0时,是呼吸效果,值越大,呼吸速率越快,从没到亮的时间越短;
与下一时刻的关系 :支持如下选择:
等待:当时间设置为非0,且不是最后一个子状态时,需要设置为等待,表示在设置为指定状态需要持续一段时间,才切换到下一个子状态;
继续:当时间设置为0,且不是最后一个子状态时,需要设置为继续,表示在设置为指定状态后立即切换到下一个子状态;
结束:当子状态是最后一个子状态,且该UI状态只显示一次,需要配置为结束;
循环:当子状态是最后一个子状态,且该UI状态循环显示,需要配置为循环;
设置好了LED配置之后还需要设置LED显示的配置, LED显示配置是指基于系统事件触发对应LED状态显示的功能
配置界面在情景配置->LED配置选项框中配置
LED显示配置界面有多个场景编辑卡组成,可以点击右上角的“增加”按键添加,或者点击卡片内的“X”删除,每个卡片可以配置1组事件和UI显示状态的对应关系
LED任务中的UI显示列表在 LED状态配置中定义, UI从一种状态切换到另外一种状态有2种逻辑:
开机的时候从cfg_tools.bin文件中读取工具里面的配置项
APP发送事件消息, 以APP发送开机事件为例
实际就是往”app_core”线程, 发送了类型为MSG_FROM_APP, payload为2个字节的消息
在”app_core”线程 app_task_loop()中处理这个消息
进入注册的handler->handler()
在app_ability.c中有注册app_scene_msg_entry的MSG_HANDLER
所以这里handler->handler()实际上是进入到了app_scene_msg_handler() 函数
msg_handler中会根据UUID等信息, 判断可视化工具中情景配置是否有配置, 若有配置则选择对应的action进行LED的操作
这个action则为工具中配置的LED是按照哪个处理逻辑(切换或打断)去做处理led_ability的action