/*
 * @Name:
 * @Date: 2023-12-28 14:34:39
 * @Creator: LiDa
 * @Description:
 * @LastEditors: LiDa
 * @LastEditTime: 2024-01-29 09:40:43
 */

/*
    1、送样给客户最终版本代码
    2、20230613，取消代码中关中断操作
    3、20230614，取消RTC日历初始化，消除初始化过程中RTC写日历寄存器失败隐患
    4、20230620，ADC初始化while(1),里面加入超时判断
    5、20231010，刚上电检测电池电量，只有电池电量大于3V才执行后续代码。
    6、20231228，修改了NB发送失败，重发机制
*/
#include "app_main.h"

void App_Main(void)
{
    Svc_Clock_Init();
    Bsp_Lp_Init();
    Svc_Led_Init();
    App_Key_Init();
    // 1:生产测试代码 0:出厂代码
    if (Svc_Com_Work_Mode_Choose() == E_FactoryTestMode)
    {
        Svc_Log_Init();
        Svc_FactoryLog_Printf(LOG_INFO, "App_Main-> E_FactoryTestMode", __FUNCTION__);
        Svc_Timer_Init();
        Svc_Bat_Init();
        Svc_Flash_Init();
        Svc_Ir_Uart_Init();
        Svc_Nb_Init();
        Svc_Pulse_Init();
        Svc_Cloud_Post_Event(E_Cloud_Event_Upload);
        SR_Wm_LedSetWork(LED_NB_NET_INIT);
        SR_Wm_LedSetWork(LED_IR_OPEN);
        while (1)
        {
            App_Nb_Task();
            App_FactoryTest_Task();
            App_Ir_Task();
        }
    }
#if LOG_FUNC_ENABLE
    Svc_Log_Init();
#endif
    Svc_Rtc_Init();
    Svc_Timer_Init();
    Svc_Bat_Init();
    Svc_Flash_Init();
    Svc_Com_Project_Info_Out();
    Svc_Pulse_Init();
    Svc_Ir_Uart_Init();
    Svc_Cloud_Init();
    Svc_Nb_Init();
    Bsp_Iwdg_Config();
//    Svc_Key_Set_IrNbopen_State();
//    Svc_Cloud_Post_Event(E_Cloud_Event_Upload);
    while (1)
    {
        App_Nb_Task();
        App_Ir_Task();
        App_Key_Task();
        App_Cloud_Task();
        App_Bat_Task();
        App_Pulse_Task();
        App_Ir_OtaTask();
        App_Lp_Task();
        App_Factory_Task();
    }
}
