/*
 * @Description: 按键模块-app层
 * @Author: yangsw
 * @Date: 2021-06-11 09:49:42
 * @LastEditTime: 2023-10-13 11:27:20
 * @LastEditors: LiDa
 * @Reference:
 */
#include "app_key.h"
#include "../../log/svc/svc_log.h"
#include "../../cloud/svc/svc_cloud_protocol.h"
#include "param/svc/svc_flash.h"
#include "../../ir/svc/svc_ir_uart.h"
#include "../../cloud/svc/svc_cloud.h"
#include "../../led/app/app_led.h"
#include "../../ir/svc/svc_ir_protocol.h"
// #include "../../iwdg/bsp/bsp_iwdg.h"
#include "hci/led/app/sr_app_led.h"
#include "hci/key/app/sr_app_key.h"

static void Key_Open_NB_Report(void);
static void Key_Magnetic_Alarm(void);

/**
 * @brief: 按键模块线程
 * @param  {void}
 * @return {void}
 * @note:
 * @see:
 */
void App_Key_Task(void)
{
  Bsp_Iwdg_Feed();
  SR_KEY_TYPE_E keyType;
  keyType=SR_Wm_Key_Task();
  switch (keyType)
  {
  case E_KEY_INIT_STATE:
    /* code */
    break;
  case E_KEY_OPEN_IR:
  { // 打开红外
    SR_Wm_ClaerKeyType();
    SR_AppLedClearWork(LED_IR_START);
    SR_AppLedClearWork(LED_NB_START);
    SR_AppLedSetWork(LED_IR_OPEN);
    SR_AppLedSetWork(LED_NB_NET_INIT);
    if (Svc_Ir_Core_Get_Cur_State() == E_IR_OFF)
    {
      Svc_Ir_WakeUp_Init();
    }
    Key_Open_NB_Report();
  }
  break;
  case E_KEY_OPNE_NB:
    /* code */
    break;
  case E_KEY_MAGNETIC:
  { // 磁干扰
    Key_Magnetic_Alarm();
     SR_Wm_ClaerKeyType();
    SR_AppLedClearWork(LED_IR_OPEN);
    SR_AppLedClearWork(LED_NB_START);
  }
  break;
  default:
    break;
  }
}

/**
 * @brief: NB上报
 * @param  {void}
 * @return {void}
 * @note:
 * @see:
 */
static void Key_Open_NB_Report(void)
{
  Svc_Log_Printf(LOG_DEBUG, "%s \r\n", __FUNCTION__);
  Svc_Cloud_Resend_Reset();
  Svc_Cloud_Post_Event(E_Cloud_Event_Upload);
}

/**
 * @name: 磁干扰报警
 * @return {*}
 * @note:
 */
static void Key_Magnetic_Alarm(void)
{
  S_Flash_Data *ps_flash;
  ps_flash = Svc_Flash_Get_Data();
  ps_flash->s_usage_info.s_usage_alarm.u8MagneticAlarm = 1;
  Svc_Log_Printf(LOG_WARNING, "%s->u8MagneticAlarm!!", __FUNCTION__);
}

/**
 * @brief: 按键模块初始化
 * @param  {void}
 * @return {void}
 * @note:
 * @see:
 */
void App_Key_Init(void)
{
  SR_Wm_KeyInit();
}