#include "soft_timer.h"
#include "main.h"
#include "stdbool.h"
#include "soft_flow.h"
#include "soft_can.h"
#include "tim.h"
#include "can_debug.h"
#include "soft_p_2_c.h"

extern uint32_t user_timer_cnt;

/**
  * @file    timer_function
  * @brief   发送给控制的定时器
  * @param    
  * @details 
  * @author  Zhang Sir 
 **/
bool vol_flag = false, devtype_flag = false, engine_flag = false,
     can_debug_flag = false, dev_version_flag = false, mimo360_radar_flag = false,DM_radar_flag = false,
     pmu_heart_flag = false;

Dev_timer devinfo_time;
void timer_function()
{
    static uint32_t time_1hz = 0;
    static uint32_t time_2hz = 0;
    static uint32_t time_5hz = 0;
    static uint32_t time_10hz = 0;
    static uint32_t time_20hz = 0;
    static uint32_t time_50hz = 0;
    static uint32_t time_100hz = 0;
    static uint32_t time_200hz = 0;

    if (  Check_Timer_Ready(&time_1hz,_1_HZ_) )
    {
        devinfo_time.arm = true;
        devinfo_time.tempSensor = true;
    }
    if (  Check_Timer_Ready(&time_2hz,_2_HZ_) )
    {
        devinfo_time.pump = true;
        devinfo_time.nozzle = true;
        devinfo_time.seed = true;
        devinfo_time.checklow = true;
        devinfo_time.current = true;
        dev_version_flag = true;
    }
    if ( Check_Timer_Ready(&time_5hz,_5_HZ_))
    {
        engine_flag = true;
        devinfo_time.bms = true;

        if(planep.Candebug_flag == true)
        {
            can_debug_flag = true;
        }
        else
        {
            can_debug_flag = false;
        }
    }
    if (  Check_Timer_Ready(&time_10hz,_10_HZ_) )
    {
    }
    if ( Check_Timer_Ready(&time_20hz,_20_HZ_) )
    {
        vol_flag = true;
        mimo360_radar_flag = true;
        
        devinfo_time.weight = true;
        devinfo_time.L_pump1 = true;
        devinfo_time.L_pump2 = true;

        devinfo_time.radar = true;
        devinfo_time.part_radar = true;
        devinfo_time.part_Fradar = true;
        devinfo_time.flow = true;

    }
    if ( Check_Timer_Ready(&time_50hz,_50_HZ_) )
    {
        DM_radar_flag = true;
    }
    if(Check_Timer_Ready(&time_100hz,_100_HZ_))
    {
    }
    if(Check_Timer_Ready(&time_200hz,_200_HZ_))
    {
        devtype_flag = true;
    }
}

/**
  * @file    Get_Systimer_Us
  * @brief   获取系统当前时间us
  * @param    
  * @details 
  * @author  Zhang Sir 
 **/
uint32_t Get_Systimer_Us(void)
{
    //return htim4.Instance->CNT + user_timer_cnt * 0xffff;
    return htim4.Instance->CNT + user_timer_cnt * 20000;
}

