inwudriver-weibo/app/mrs/sta/mrs_sta_power_failure.h

75 lines
2.9 KiB
C
Raw Normal View History

/*
* Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved.
* Description: MRS STA POWER FAILURE report.
*/
#ifndef __MRS_STA_POWER_FAILURE_H__
#define __MRS_STA_POWER_FAILURE_H__
#include "mrs_common_plc.h"
#include "mrs_msg.h"
#include "mrs_sta_srv.h"
#include "mrs_sta_evt.h"
#include "mrs_common_power_failure.h"
#include "soc_mdm_power_failure.h"
#ifdef __cplusplus
extern "C" {
#endif
#if defined(PRODUCT_CFG_PRODUCT_TYPE_STA)
/************************************************************
Macro Definition
************************************************************/
#define STA_DEFAULT_SEND_CNT 10
#define PWF_SELF_CHECK_STATE 0 /* Self-check Status */
#define PWF_POWER_UP_STATE 1 /* Power-on Status */
#define PWF_POWER_FAILURE_STATE 2 /* Power-off Status */
#define PWF_FAILURE_RECOVER_THD 180 /* Power-failure protection threshold,unit:second */
/************************************************************
structs
************************************************************/
typedef struct {
td_u16 my_tei;
td_bool device_power_failure;
td_bool device_pull_reset;
td_bool is_plug_module;
td_u8 pad[3]; /* reserved 3 bytes */
} mrs_power_failure_rcv_report;
typedef struct {
td_bool pwf_switch; /* Power outage detection switch */
td_u8 pwf_state; /* Power outage detection status */
td_u16 power_failure_recover_thd; /* Threshold for forcibly clearing the power failure (configured by the APP
parameter) */
td_u32 pwf_power_failure_time; /* Start time of a power outage, in seconds. */
} power_failure_ctrl_st;
mrs_power_failure_rcv_report *mrs_get_power_failure_report_info(td_void);
td_u32 mrs_sta_handle_local_power_failure(td_void);
td_void mrs_sta_create_power_failure_frame_proc(td_void);
td_u32 mrs_sta_create_power_failure_frame(td_u8 event_type);
td_void mrs_sta_power_failure_set_send_info(td_u8 event_type, mrs_plc_frame_data *power_frame);
td_void mrs_sta_handle_wait_power_failure_ack(td_void);
td_u32 mrs_sta_send_power_failure_frame(EXT_CONST mrs_plc_frame_data *power_frame);
td_u32 mrs_handle_others_power_failure_frame(td_void);
td_u32 mrs_sta_handle_power_failue_ack(td_u16 seq);
td_void mrs_sta_update_normal_bitmap(td_u8 *bitmap_in, td_u8 *bitmap_out, td_u16 bitmap_len);
td_void mrs_sta_power_failure_info_erase(mrs_power_failure_ctrl_st *power_failure_info);
td_void mrs_sta_reset_handle(td_void);
td_void mrs_power_failure_pull_rst_handle(td_void);
td_void mrs_pwf_init(td_void);
td_void mrs_pwf_check_main(td_void);
td_u8 mrs_pwf_self_check_state(td_bool is_power_failure);
td_u8 mrs_pwf_power_on_state(td_bool is_power_failure);
td_u8 mrs_pwf_power_failure_state(td_bool is_power_failure);
#endif
#ifdef __cplusplus
}
#endif
#endif