/*
 * @Description:
 * @Author: yangsw
 * @Date: 2022-07-20 17:25:16
 * @LastEditTime: 2022-08-17 16:15:38
 * @LastEditors: 002389 yangsw@lierda.com
 * @Reference:
 */
#include "app_pulse.h"
#include "../../log/svc/svc_log.h"
#include "../../pulse/svc/svc_pulse_protocol.h"
#include "../svc/svc_pulse.h"
void App_Pulse_Task(void)
{
  S_Pulse *ps_pulse;
  ps_pulse = Svc_Pulse_Get_Data();
  S_Pulse_Data_Ack *ps_pulse_ack;
  ps_pulse_ack = Svc_Get_Pulse_Protocol_Ack();
  Bsp_Iwdg_Feed();
  if (ps_pulse->u8TimeMeasureCnt == 0)
  {
    if ((ps_pulse->s_pulse_para.ePulseMode != E_Pulse_Mode_Sleep) && (ps_pulse->s_pulse_para.ePulseMode != E_Pulse_Mode_Zerocorrect))
    {
      Svc_Pulse_Protocol_Send_Cmd(CMD_C1_QUERY_USAGE_DATA, FUNC_20_QUERY_CURRENT_USAGE);
      ps_pulse->u8TimeMeasureCnt = 1;
    }
  }
  Svc_Pulse_Uart_Recv();
  if ((ps_pulse_ack->u8ack == 0x01) && (ps_pulse_ack->e_comm_result_pulse == COMM_00_PULSE_NORMAL))
  {
    if ((ps_pulse_ack->e_cmd_code_pulse == CMD_C1_QUERY_USAGE_DATA) && (ps_pulse_ack->e_func_code_pulse == FUNC_20_QUERY_CURRENT_USAGE))
    {
      if (ps_pulse->s_pulse_para.ePulseMode != E_Pulse_Mode_Calibra)
      {
        Svc_Pulse_Flow_Check(ps_pulse);
        Svc_Pulse_Usage_Record(ps_pulse);       
      }
      Svc_Pulse_Alarm_Record(ps_pulse);
      Svc_Pulse_Temp_Check(ps_pulse);
      ps_pulse_ack->u8ack = 0;
    }
  }
}
