洛达应用层开发教程系列16-LED配置2

本节通过讲解LED代码处理流程,主要是为了让大家明白三个点:

  1. 理解代码处理流程,更加深入理解LED,查看log更加方便
  2. LED模式:闪烁和呼吸模式是如何切换的
  3. LED显示优先级

模式

首先明白的是,一共有两种LED设置模式:

  1. foreground(前台)
    此模式下优先级高,需要超时周期作为参数(声明意思呢?就是此模式下LED的运行时间,运行完了之后,就会重新运行当前状态的后台LED)
  2. backgroud(后台)
    后台模式优先级低于前台,可以随意被前台中断,主要接收APPS_EVENTS_INTERACTION_UPDATE_LED_BG_PATTERN事件设置。
  3. API
    • bool apps_config_set_backgroud_led_pattern(uint8_t index, bool need_sync,
      apps_config_led_manager_aws_sync_priority_t priority): set background LED pattern
    • bool apps_config_set_foreground_led_pattern(uint8_t index, uint16_t timeout, bool need_sync): set foreground LED pattern.
  4. 使用场景
    简单说一个两个使用场景,前台:开机灯,关机灯等这种不需要一直显示的灯,后台:闲置灯,播放音乐灯等需要一直显示的灯。

代码处理流程

// 我们以前台模式为例
bool apps_config_set_foreground_led_pattern(uint8_t index, uint16_t timeout, bool need_sync)
{
    // 上面
}