System_Monitor.h 3.38 KB
Newer Older
罗洪旭's avatar
罗洪旭 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

#ifndef SYSTEM__MONITOR__H
#define SYSTEM__MONITOR__H

/* #define Platform_16Bit
 #define Platform_32Bit*/

#ifdef Platform_16Bit
    #define monitorlib_uint8_t  unsigned char
    #define monitorlib_uint16_t unsigned int
    #define monitorlib_uint32_t unsigned long

#else

    #define monitorlib_uint8_t  unsigned char
    #define monitorlib_uint16_t unsigned short
    #define monitorlib_uint32_t unsigned int
    #define monitorlib_uint64_t unsigned long long
#endif

/*
     0 ----1st-------6500   不可运行   1
  6500 ----2st-------7000   回差段     2

  7000 ----3st-------9000   低压段     3
  9000 ----4st-------9500   回差段     4
  9500-----5st------16000   正常段     5
  16000----6st------16500   回差段     6

  16500----7st------18000   高压段     7
  18000----8st------18500   回差段     8
  18500----9st------65535   高压段     9

    0-----6.5   不可运行--ALL----------限制
  6.5-----9     除电机外均可运行--------正常
    9-----16.5  均可运行---------------正常
 16.5-----18.5  只有CAN可运行----------限制
 18.8-----65535 不可运行--ALL----------限制

6.5-18.5  CAN 可运行区间

*/
typedef monitorlib_uint8_t (*Get_Voltage_Vaild)(void);
typedef monitorlib_uint16_t (*Get_Voltage_Value)(void);
typedef monitorlib_uint8_t (*Get_LineInStatus)(void);
typedef void (*COMMON_Delay)(monitorlib_uint32_t mMs);
typedef void (*pfunLogic)(void);

typedef struct
{
    Get_Voltage_Vaild SysGet_KL30_Valid;
    Get_Voltage_Vaild SysGet_KL15_Valid;
    Get_Voltage_Value SysGet_KL30_value_Force;
    Get_Voltage_Value SysGet_KL15_value_Force;
    Get_Voltage_Value SysGet_KL30_value;
    Get_Voltage_Value SysGet_KL15_value;
    Get_LineInStatus  SysGet_KL15Line;
    COMMON_Delay      COM_Delay;
    pfunLogic         SysMonitorLogic;
} MonitorExt_st;

/* SYS RUN Status */
#define SYS_OPR_STAT_RUN  ((System_FUN_KL30_Status_Get( ) > 3u) && (System_FUN_KL30_Status_Get( ) <= 7u))
#define SYS_OPR_STAT_HALT (((System_FUN_KL30_Status_Get( ) <= 3u) && (System_FUN_KL30_Status_Get( ) > 0)) || (System_FUN_KL30_Status_Get( ) > 7u))

#define SYS_OPR_STAT_LIM_LVP (System_FUN_KL30_Status_Get( ) == 1U)
#define SYS_OPR_STAT_LIM_OVP (System_FUN_KL30_Status_Get( ) > 7u)

/*fun status*/
#define SYS_OPR_STAT_IGN_ON  (System_FUN_KL15_Status_Get( ) == 1U)
#define SYS_OPR_STAT_IGN_OFF (System_FUN_KL15_Status_Get( ) == 0U)

/*nm run status*/
#define SYS_OPR_STAT_IGN_OFF_NM (System_NM_KL15_Status_Get( ) == 0U)
#define SYS_OPR_STAT_IGN_ON_NM  (System_NM_KL15_Status_Get( ) == 1U)

/*nm status*/
#define SYS_OPR_STAT_RUN_NM  ((System_NM_KL30_Status_Get( ) > 1u) && (System_NM_KL30_Status_Get( ) < 9u))
#define SYS_OPR_STAT_HALT_NM ((System_NM_KL30_Status_Get( ) == 9u) || (System_NM_KL30_Status_Get( ) == 1u))

monitorlib_uint8_t  Read_KL30_ConvertFinish(void);
monitorlib_uint16_t Get_Sysmonitor_Version(void);

void Sys_Status_Update_Service(void);
void Sys_Set_Pata(const monitorlib_uint16_t FUN_Vol [], MonitorExt_st *pfunc);
void System_Monitor_KL30Init(void);
void System_Monitor_WakeupInit(void);
void System_XHY_CheckWakeup(void);

monitorlib_uint8_t System_FUN_KL30_Status_Get(void);
monitorlib_uint8_t System_FUN_KL15_Status_Get(void);
monitorlib_uint8_t System_NM_KL15_Status_Get(void);
monitorlib_uint8_t System_NM_KL30_Status_Get(void);
void Set_UDS_KL30_Valid(void);  //1表示在15电正常时30电异常  0表示退出此状态
monitorlib_uint8_t Get_UDS_KL30_Abnormal_Status(void);

#endif