Files
JBao_Heat_Lamp_FW/apps/usr_app/app_light_life.h
T

66 lines
2.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/******************************************************************************
* @file app_light_life.h
* @brief 灯泡剩余寿命(规格书 13.2 节,DP2/DP3/DP4/DP25
* @author cyWu <1917507415@qq.com>
* @date 2026.09.08
* @version V1.0.0
*
* @note 额定工时 2592000s(30 天),按继电器**实际吸合**每秒扣 1;
* 扣到 0 停住不回绕,置 alarm_code=1(灯泡到期告警,粘住)但**不互锁**,
* 灯仍可手动/定时/联动再开(第 12 章仲裁不参与)。
* DP3 上报节流:平时满 60s 才同步一次 gDevData(协议层 2s 防抖后
* 自然最多 60s 一包);到期 / DP4 / APP 写 DP3 / 出厂复位走边沿
* **立刻**同步 + 落盘(任务上下文,禁止 ISR 写 VM)。
* 剩余寿命持久化随运行记录 item(与 runrec 同写节奏 600s,边沿立刻)。
******************************************************************************/
#ifndef __APP_LIGHT_LIFE_H__
#define __APP_LIGHT_LIFE_H__
#include <stdint.h>
/**
* @brief 初始化剩余寿命:RAM 复位为额定值,告警按值推导
* @note 之后 app_nvm_load 若 VM 有效会调 app_light_life_set_remain 覆盖
* @return 无
*/
void app_light_life_init(void);
/**
* @brief 20ms 业务节拍(中断上下文):实际吸合才折秒扣减
* @param dt 距上次调用的毫秒数
* @note ISR 只碰 s_lifeRAM);gDevData 同步 / 落盘 / 上报在 app_light_life_loop
* @return 无
*/
void app_light_life_tick(uint16_t dt);
/**
* @brief 500ms 任务上下文:60s 节流同步 DP3、边沿立刻同步 + 落盘、推导告警
* @return 无
*/
void app_light_life_loop(void);
/**
* @brief 设置剩余寿命(APP 写 DP3 / VM 恢复 / 出厂复位共用,任务上下文)
* @param remain 剩余寿命秒,范围 0~0xFFFFFFFF 不封顶
* @note 立刻生效:同步 gDevData + 推导 alarm_code + 立刻落盘 + 变化上报由
* 协议层差分自动发出(2s 防抖后);remain>0 清到期告警,=0 置告警
* @return 无
*/
void app_light_life_set_remain(uint32_t remain);
/**
* @brief 灯泡复位(DP4 写 1):剩余寿命回到额定值、告警清 0
* @note WO 不上报;由 jb_product DP4 调用;边沿立刻落盘
* @return 无
*/
void app_light_life_reset(void);
/**
* @brief 查询剩余寿命
* @return 剩余寿命秒
*/
uint32_t app_light_life_get_remain(void);
#endif /* __APP_LIGHT_LIFE_H__ */