杰理701N可视化SDK之LED的配置和代码浅析

本文详细介绍了杰理701N可视化工具中LED的硬件配置、状态配置(包括闪烁方式、持续时间和亮度等)以及情景配置,涉及LED状态的切换逻辑和SDK中的相关代码实现。
摘要由CSDN通过智能技术生成

杰理可视化工具中可以配置LED的硬件配置和LED状态配置, 在可视化工具中的LED配置选项中设置

LED硬件配置

硬件配置可设置LED名, 推LED使用的IO口以及LED的点亮方式
LED配置选项
SDK发布的标准原理图推荐使用一个IO口使用PWM的方式控制两个LED灯, 使用这种连接方式, 两个LED配置为相同的IO, 并配置使用PWM作为驱动方式, 其中蓝灯BLUE选择PWM低电平, 红灯(RED)选择PWM高电平
LED硬件原理图

LED状态配置

LED状态配置是用户定义不同UI的闪烁方式, 并在后续情景配置中调用该闪烁方式
一个完整的LED显示UI可能会包含多个子状态, 子状态在时间轴上切换, 可以设置LED单次显示或循环显示
LED显示原理示例如下
杰理LED显示原理
工具中的配置项可以配置的参数如下
杰理LED配置
状态名:定义LED UI状态的名称,用户根据UI特征命名即可,该名称在情景配置中 LED显示 中被引用;
LED名:LED硬件配置中定义的名称;
状态:当前时刻设置的LED状态,可设置为亮和灭 ;
时间:设置当前状态持续时间,单位为毫秒(ms);
亮度:设置当前状态亮度,该配置当状态设置为 亮 时起作用,设置为 灭 是无效;
呼吸速率:设置为0时,是普通亮灭效果,设置为非0时,是呼吸效果,值越大,呼吸速率越快,从没到亮的时间越短;
与下一时刻的关系 :支持如下选择:
等待:当时间设置为非0,且不是最后一个子状态时,需要设置为等待,表示在设置为指定状态需要持续一段时间,才切换到下一个子状态;
继续:当时间设置为0,且不是最后一个子状态时,需要设置为继续,表示在设置为指定状态后立即切换到下一个子状态;
结束:当子状态是最后一个子状态,且该UI状态只显示一次,需要配置为结束;
循环:当子状态是最后一个子状态,且该UI状态循环显示,需要配置为循环;

LED状态情景配置

设置好了LED配置之后还需要设置LED显示的配置, LED显示配置是指基于系统事件触发对应LED状态显示的功能
配置界面在情景配置->LED配置选项框中配置
LED状态配置
LED显示配置界面有多个场景编辑卡组成,可以点击右上角的“增加”按键添加,或者点击卡片内的“X”删除,每个卡片可以配置1组事件和UI显示状态的对应关系
场景编辑
LED任务中的UI显示列表在 LED状态配置中定义, UI从一种状态切换到另外一种状态有2种逻辑:

  1. 状态切换: 新的UI状态会覆盖当前的UI状态,举例说明:
    上一次的UI状态是;红灯慢闪;
    新的UI状态是;红灯闪3下;
    切换结果:红灯闪3下,结束后LED处于熄灭状态;
  2. 打断执行: 新的UI状态会打断当前UI状态执行,并在执行完成后,会恢复上一次UI的状态,举例说明
    上一次的UI状态是;红灯慢闪;
    新的UI状态是;红灯闪3下;
    切换结果:红灯闪3下,结束后会恢复红灯慢闪的UI状态;
    前提是需要满足如下约束条件:
    上一次的UI状态是一个周期性显示的UI;
    新的UI状态是一个单次显示的UI;
    如果不满足上述条件,将按照 状态切换 逻辑处理

LED在SDK中相关代码

开机的时候从cfg_tools.bin文件中读取工具里面的配置项
读取LED配置项
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->handler()实际上是进入到了app_scene_msg_handler() 函数
msg_handler中会根据UUID等信息, 判断可视化工具中情景配置是否有配置, 若有配置则选择对应的action进行LED的操作
情景匹配
这个action则为工具中配置的LED是按照哪个处理逻辑(切换或打断)去做处理led_ability的action
LED action

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的代码里面挖呀挖呀挖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值