生物节律

更新时间:2022-11-24 09:20:21下载pdf

本文档主要针对照明的生物节律的一些常见问题,梳理出对应的问题排查指引,帮助您解决一些日常问题。

生物节律背景和功能有哪些?

为什么需要生物节律功能?

跨越一个世纪的前后有两项诺贝尔生理学及医学奖与健康照明有关,2017年三位美国科学家Jffrey C. Hall、Michael Rosbush和Michael W. Young,因发现了“控制昼夜节律的分子机制”获此殊荣。

众多研究表明,光照生物效应能控制人的昼夜节律,影响人眼瞳孔大小,从而对身体健康与工作效率产生影响。光环境的适宜变化”是保持身心健康的重要条件,通过光源色温和照度的变化,能调节人体的情绪,改善人的心理状态。
生物节律

生物节律支持哪些功能?

  1. 支持1路~5路灯(去除3路灯)。
  2. 支持1~8节点数。
  3. 支持设置时间点间隔15min ~ 24h。
  4. 支持选择变化模式。
  5. 支持选择 渐变效果

渐变效果有哪几类?

  • 直接渐变:变化时间为到达目标节点的后15分钟内,即每90秒变化10%的状态差值。例如:

    • 时间节点A(早上7:00,亮度值20% 色温值30%)。
    • 时间节点B (早上8:00,亮度值30% 色温值40%)。
    • 时间节点C(早上9:00,亮度值40% 色温值50%)从节点A状态变化到节点B状态(8:00-8:15 亮度20-30%渐变色温30%-40%渐变)

    备注逻辑:当前时间7:30,开启了生物节律,灯状态瞬态变化为节点A状态(亮度值20% 色温值30%)

  • 全程渐变:变化时间为两节点时间间隔,状态值线形变化(亮度/色温最小变化量为1,其实应为阶梯式的线性变化)。例如:

    • 时间节点A (早上7:00,亮度值20% 色温值30%)。
    • 时间节点B (早上8:00,亮度值30% 色温值40%)。
    • 时间节点C (早上9:00,亮度值40% 色温值50%)从节点A状态变化到节点B状态(7:00-8:00 亮度20-30%渐变色温30%-40%渐变)

    备注逻辑:当前时间7:30,开启了生物节律,灯状态瞬态变化为节点A状态-节点B状态之间的渐变值(亮度值25% 色温值35%)
    生物节律

支持的预设时间点如何设置?

对于一路灯和四路灯,预设的时间节点如下:

节点序号 节点名称 节点起始时间点 初始状态
1 唤醒 6:20 亮度20%
2 日光 10:00 亮度100%
3 舒适 20:00 亮度80%
4 夜灯 23:00 亮度5%

对于二路灯和五路灯,预设的时间节点如下:

节点序号 节点名称 节点起始时间点 初始状态
1 唤醒 6:30 色温25%,亮度20%
2 日光 10:30 色温100%,亮度100%
3 舒适 20:00 色温50%,亮度80%
4 夜灯 23:00 色温0%,亮度5%
  • 预设或者新建的时间节点均可以编辑与删除,在节点列表中有重置按钮,重置后会恢复成预设的4个节点状态,且状态值也恢复默认。
  • 支持单日、周期生效周一~周日可选择循环生效日期不生效日期默认关闭灯,若用户需要使用得重新开启灯且如要进入下一个生效日期 得重新打开生物节律功能。
  • 支持单个节点可通过任务开关按钮控制功能打开或关闭。

如何实现生物节律功能?

生物节律实现基本目标:随着时间的变化,按照用户设置的目标值进行亮度+色温的变化。
为了实现目标,需要基本实现如下几点:

  1. 获取当前时间节点(时间单位:小时、分钟、周几)。
  2. 获取设置的节点设置目标亮度和色温。
  3. 计算变化过程中的变化步进,并按照特定周期进行变化。核心代码程序逻辑框图如下:
    生物节律逻辑框图

生物节律功能协议如何实现?

生物节律的协议是用于App和SOC模组之间通信的约定。通信采用raw数据格式。生物节律DP点为:30。

  • 协议设计各个字段表示什么含义?

    版本号 任务开关 模式选择 日期设定 节点数 节点1 …… 节点N
    1byte 1byte 1byte 1byte 1byte 9byte 9byte
  • 协议字段数据说明

    字段 序号 长度(byte) 数据代表说明
    版本号 1 1 0x00:初始版本
    任务开关 2 1 0x00:任务关闭 0x01:任务打开
    模式选择 3 1 0x00:两节点之间一直渐变 0x0F:到达节点时间后开始渐变,渐变完成时间为该字段值。最小允许值15. 如:0x0F表示节点时间到达后15分钟完成渐变
    日期设定 4 1 解析具体的字节位,某天生效,相应位置1,见后文五说明
    节点个数 5 1 0x01:1个节点。范围允许值1~8
    节点开关 6 1 节点开关优先级低于任务开关, 只有任务开关开启的情况下才判断节点开关的状态 0x00:节点禁能,不生效 0x01:节点使能,生效
    小时 6 1 0x10:hex码,16点,范围允许值0~23。
    分钟 6 1 0x10:hex码,16分,范围允许值0~59
    色相 6 2 0x03, 0x10:hex码。大端格式,第一个字节表示百位,第二个字节表示十位,个位。 实际值表示316。范围允许值0~360。
    饱和度百分比 6 1 0x10:hex码,16%。范围允许值0~100
    明度百分比 6 1 0x10:hex码,16%,范围允许值1~100
    亮度百分比 6 1 0x10:hex码,16%,范围允许值1~100
    色温百分比 6 1 0x10:hex码,16%.范围允许值0~100
  • 协议日期字段说明

    如果全0,表示单次模式,只生效一次。否则为循环模式。

    判断相应位是否置1,位置1表示当天生效。

    例如:0x42表示任务在星期六和星期一生效(注意必须保证相应的任务开关是处于开启状态)

    保留 星期六 星期五 星期四 星期三 星期二 星期一 星期日
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
  • 需要哪些其他配置?

    使用生物节律的功能,PID下需要新增生物节律DP-30。需要使用配套面板如典雅清新系列面板。
    生物节律

生物节律基本操作逻辑如何交互与实现?

如何接收到生物节律数据?

当用户操作打开生物节律总开关,App会按照用户设置的时间节点按照时间前后进行排序,使用上一章节的协议下发到SOC模组,使用涂鸦SDK开发仅需要注册相关的raw接收处理函数,即可接收到相应的数据。

生物节律数据何时下发?

用户每次操作编辑生物节点中的时间、色温亮度、节点个数等,都会重新下发生物节律设置的数据。

接收到生物节律数据应该如何响应和处理?

当接收到新的生物节律数据之后,结合当前时间戳,渐变的方式,计算出初始状态,计算合理的步骤,然后周期的朝着目标值变化。

  • 如果是直接渐变,初始状态是直接变化成当前时间点前一个有效节点的状态,然后等待下一个有效节点的时间达到,进行15min的变化,不断如此的重复循环。
  • 如果是全程渐变,初始状态是线性插补前一个有效节点和下一个有效节点的中间状态,然后不断的周期按照步进进行变化。

本地上下电重置如何处理?

设备在生物节律有效的状态下,进行硬件断电上电,需要上电读取原先存储的生物节律的数据,并结合是否有效进行生物节律功能的初始化和启动,当设备成功联网之后(可以获取到当前时间戳之后)进行生物节律的变化。

生物节律渐变过程中上报处理和Flash存储如何处理?

当首次进入生物节律状态(生物节律数据下发时),需要回复生物节律的数据。

在生物节律变化的过程中时,由于该功能使用场景并不需要频繁周期上报,只有当节点中存在亮度为0使得灯出现开关变化时才会需要上报过程中的状态变化。生物节律变化过程中的灯光亮度、色温变化都是不需要保存到Flash中。

生物节律数据删除有哪些处理场景?

  • 进入产品成品产测。
  • 本地移除。
  • App恢复出厂设置或者移除设备。

生物节律功能同其他功能有哪些互斥关系?

生物节律变化过程中,用户操作App主动打断动作时会主动打断当天任务,当天任务不再执行,下一个循环周期继续执行。主动打断动作具体如下:

  • A. App开/关灯。
  • B. 调节颜色、亮度。
  • C. 切换模式。
  • D. 打开音乐灯。
  • E. 倒计时、定时。

定时会当定时时间点满足时,才会打断。倒计时是一旦设置就会打断。如果在生物节律过程渐变中,接收到实时调节DP-28只需要停止生物节律的渐变过程,且无需上报,只需等待新的生物节律设置数据下发,从而实现生物节律节点编辑中的预览效果。

生物节律设置有哪些特殊情况?

  • 生物节律有效节点只有一个时,生物节律的状态只需要保持有效节律的设置状态即可。
  • 生物节律设置的某一天不生效,如果设置的当天不在循环周期内,当天不执行生物节律,到达循环周期时间执行生物节律。
  • 生物节律设置的某一天不生效,如果从循环周期跨越到不在循环周期内的星期,灯光状态保持上一个循环周期最终的状态。