75 lines
2.9 KiB
C
75 lines
2.9 KiB
C
|
|
/*
|
||
|
|
* 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
|