#ifndef PFM_CPUUSAGE_H
#define PFM_CPUUSAGE_H
#include "CM_Types.h"
#include "CM_Convert.h"
#include "CM_MultiThread.h"
#if QNX
#include <sys/neutrino.h>
#endif
#ifdef __cplusplus
extern "C"
{
#endif

extern CM_FLOAT32  g_CpuTotal_Usage;
extern CM_FLOAT32  g_Cpu0_Usage[6];
#define LINE_LEN (128u)
#define FIELD_LEN (30u)

/**
* @brief CPU使用率获取函数（子进程调用）
* @param arg 指向STRU_CFM_RECV_CTRL的指针
* @details
*/
ENUM_CM_RETURN PFM_CPUUsageCTest(void);

/**
* @brief CPU使用率获取函数（子进程调用）
* @param arg 指向STRU_CFM_RECV_CTRL的指针
* @details
*/
ENUM_CM_RETURN PFM_CPUUsageC(void);

/**
* @brief CPU使用率获取函数（父进程调用）
* @param arg 指向STRU_CFM_RECV_CTRL的指针
* @details
*/
ENUM_CM_RETURN PFM_CPUUsageP(void);

/**
* @brief CPU使用率获取线程（子进程调用）
* @param arg 指向STRU_CFM_RECV_CTRL的指针
* @details
*/
CM_THREAD_FUNC_T t_CpuUsage_GetC(IN CM_Thread_Arg_Struct_T* arg);

/**
* @brief CPU使用率获取线程（父进程调用）
* @param arg 指向STRU_CFM_RECV_CTRL的指针
* @details
*/
CM_THREAD_FUNC_T t_CpuUsage_GetP(IN CM_Thread_Arg_Struct_T* arg);

/**
* @breif CPU使用率获取初始化
* @details
*/
void PFM_CpuUsage_Init(void);

/**
* @brief 获取CPU合计使用率
* @return CPU合计使用率，范围为0到100
*/
CM_FLOAT32 PFM_GetTotalCpuUsagePara(void);

/**
* @brief 获取指定CPU使用率
* @param 获取指定CPU使用率,值的范围为0到5
* @return 指定CPU使用率，范围为0到100
*/
CM_FLOAT32 PFM_GetAppointCpuUsagePara(CM_UINT8 CpuIndex);
/**
* @brief CPU全部使用率暗文日志发送
* @return 无
*/
void PFM_GetAllCpuUsageInterface(void);

#ifdef __cplusplus
}
#endif
#endif
