Commit a5b432ab authored by 高士达's avatar 高士达

删除backup文件

parent 2aa0951e
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
//{0x450ul, 8ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
//{0x502ul, 98ul * 1000ul, 48ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_502},//̥ѹԤ
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_12B_RearVehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#ifndef CAN_COMMUNICATION_MATRIX_H_
#define CAN_COMMUNICATION_MATRIX_H_
#include "common.h"
#include "CAN_Lib.h"
typedef enum
{
ID_TCS_Count,
ID_ECU_Battery_Count,
ID_ISG_Count,
ID_ECU_Count,
ID_ECU_DTC_Count,
ID_ISG_BATT_Count,
ID_TOTAL_MAX,
} CAN_MSG_ID_t;
typedef enum
{
ID_ICM_SEND1 = 0,
ID_ICM_SEND2 ,
ID_ICM_SEND3 ,
ID_ICM_SEND4 ,
ID_ICM_SEND5 ,
ID_ICM_SEND6 ,
ID_ICM_SEND7 ,
ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define ID_TCS 0x125u
#define ID_ECU_Battery 0x401u
#define ID_ISG 0x111u
#define ID_ECU 0x101u
#define ID_ECU_DTC 0x402u
#define ID_ISG_BATT 0x113u
extern uint8_t Get_ID_125_Sig_TCS_SysState(void);
extern uint8_t Get_ID_125_Sig_TCS_WorkMode(void);
extern uint8_t Get_ID_125_Sig_TCS_WarningLamp(void);
extern uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void);
extern uint8_t Get_ID_111_Sig_ISG_SideStand(void);
extern uint8_t Get_ID_111_ISG_Power_Enable(void);
extern uint8_t Get_ID_111_ISG_Ready(void);
extern uint8_t Get_ID_101_ECU_Vehicle_Speed(void);
extern uint8_t Get_ID_12B_RearVehicle_Speed(void);
extern uint8_t Get_ID_12B_RearVehicle_Speed_Valid(void);
extern uint16_t Get_ID_101_ECU_Engine_Temperature(void);
extern uint8_t Get_ID_101_ECU_Engine_Temperature_State(void);
extern uint16_t Get_ID_402_ECU_DTCH1(void);
extern uint16_t Get_ID_402_ECU_DTCM1(void);
extern uint16_t Get_ID_402_ECU_DTCL1(void);
extern uint8_t Get_ID_402_ECU_DTC1Amnt(void);
extern uint16_t Get_ID_402_ECU_DTCH2(void);
extern uint16_t Get_ID_402_ECU_DTCM2(void);
extern uint16_t Get_ID_402_ECU_DTCL2(void);
extern uint8_t Get_ID_113_Tbatt(void);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
#endif
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
//{0x450ul, 8ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
//{0x502ul, 98ul * 1000ul, 48ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_502},//̥ѹԤ
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_12B_RearVehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH1(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u);
}
uint16_t Get_ID_402_ECU_DTCM1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 2u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH2(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u);
}
uint16_t Get_ID_402_ECU_DTCM2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 6u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
{0x450ul, 98ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
//{0x502ul, 98ul * 1000ul, 48ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_502},//̥ѹԤ
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_12B_RearVehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH1(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u);
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCM1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 2u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH2(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u);
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCM2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 6u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#ifndef CAN_COMMUNICATION_MATRIX_H_
#define CAN_COMMUNICATION_MATRIX_H_
#include "common.h"
#include "CAN_Lib.h"
typedef enum
{
ID_TCS_Count,
ID_ECU_Battery_Count,
ID_ISG_Count,
ID_ECU_Count,
ID_ECU_DTC_Count,
ID_ISG_BATT_Count,
ID_TOTAL_MAX,
} CAN_MSG_ID_t;
typedef enum
{
ID_ICM_SEND1 = 0,
ID_ICM_SEND2 ,
ID_ICM_SEND3 ,
ID_ICM_SEND4 ,
ID_ICM_SEND5 ,
ID_ICM_SEND6 ,
//ID_ICM_SEND7 ,
ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define ID_TCS 0x125u
#define ID_ECU_Battery 0x401u
#define ID_ISG 0x111u
#define ID_ECU 0x101u
#define ID_ECU_DTC 0x402u
#define ID_ISG_BATT 0x113u
extern uint8_t Get_ID_125_Sig_TCS_SysState(void);
extern uint8_t Get_ID_125_Sig_TCS_WorkMode(void);
extern uint8_t Get_ID_125_Sig_TCS_WarningLamp(void);
extern uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void);
extern uint8_t Get_ID_111_Sig_ISG_SideStand(void);
extern uint8_t Get_ID_111_ISG_Power_Enable(void);
extern uint8_t Get_ID_111_ISG_Ready(void);
extern uint8_t Get_ID_101_ECU_Vehicle_Speed(void);
extern uint16_t Get_ID_101_ECU_Engine_Temperature(void);
extern uint8_t Get_ID_101_ECU_Engine_Temperature_State(void);
extern uint16_t Get_ID_402_ECU_DTC1(void);
extern uint8_t Get_ID_402_ECU_DTC1Amnt(void);
extern uint16_t Get_ID_402_ECU_DTC2(void);
extern uint8_t Get_ID_113_Tbatt(void);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
#endif
#ifndef CAN_COMMUNICATION_MATRIX_H_
#define CAN_COMMUNICATION_MATRIX_H_
#include "common.h"
#include "CAN_Lib.h"
typedef enum
{
ID_TCS_Count,
ID_ECU_Battery_Count,
ID_ISG_Count,
ID_ECU_Count,
ID_ECU_DTC_Count,
ID_ISG_BATT_Count,
ID_TOTAL_MAX,
} CAN_MSG_ID_t;
typedef enum
{
ID_ICM_SEND1 = 0,
ID_ICM_SEND2 ,
ID_ICM_SEND3 ,
ID_ICM_SEND4 ,
ID_ICM_SEND5 ,
ID_ICM_SEND6 ,
//ID_ICM_SEND7 ,
ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define ID_TCS 0x125u
#define ID_ECU_Battery 0x401u
#define ID_ISG 0x111u
#define ID_ECU 0x101u
#define ID_ECU_DTC 0x402u
#define ID_ISG_BATT 0x113u
extern uint8_t Get_ID_125_Sig_TCS_SysState(void);
extern uint8_t Get_ID_125_Sig_TCS_WorkMode(void);
extern uint8_t Get_ID_125_Sig_TCS_WarningLamp(void);
extern uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void);
extern uint8_t Get_ID_111_Sig_ISG_SideStand(void);
extern uint8_t Get_ID_111_ISG_Power_Enable(void);
extern uint8_t Get_ID_111_ISG_Ready(void);
extern uint8_t Get_ID_101_ECU_Vehicle_Speed(void);
extern uint8_t Get_ID_12B_RearVehicle_Speed(void);
extern uint16_t Get_ID_101_ECU_Engine_Temperature(void);
extern uint8_t Get_ID_101_ECU_Engine_Temperature_State(void);
extern uint16_t Get_ID_402_ECU_DTC1(void);
extern uint8_t Get_ID_402_ECU_DTC1Amnt(void);
extern uint16_t Get_ID_402_ECU_DTC2(void);
extern uint8_t Get_ID_113_Tbatt(void);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
#endif
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
//{0x450ul, 8ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
{0x450ul, 98ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
//{0x502ul, 98ul * 1000ul, 48ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_502},//̥ѹԤ
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_12B_RearVehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_12B_RearVehicle_Speed_Valid(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 7u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH1(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u);
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCM1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL1(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 2u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
//((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCH2(void)
{
//return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u);
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCM2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint16_t Get_ID_402_ECU_DTCL2(void)
{
return ((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 6u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#include "CAN_Communication_Matrix.h"
#include "CAN_User.h"
#include "Menus.h"
/* 2022/01/19 15:02:57 */
const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] =
{
//{0x105ul, 6ul * 1000ul, 1ul, 0u,MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},//1
//{0x51Cul, 4ul * 1000ul, 3ul, 0u,MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},//1
//{0x522ul, 34ul * 1000ul, 5ul, 0u,MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},//1
//{0x523ul, 36ul * 1000ul, 7ul, 0u,MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},//1
//{0x510ul, 7ul * 1000ul, 1ul, 0u,MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},//20ms tsak
//{0x450ul, 3ul * 1000ul, 3ul, 0u,MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},//10ms task
//{0x515ul, 38ul * 1000ul, 11ul, 0u,MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},//1
{0x105ul, 8ul * 1000ul, 1ul, 0u, MSG_STD, 2u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_105},
{0x51Cul, 8ul * 1000ul, 3ul, 0u, MSG_STD, 3u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_51C},
{0x522ul, 48ul * 1000ul, 7ul, 0u, MSG_STD, 4u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_522},
{0x523ul, 48ul * 1000ul, 11ul, 0u, MSG_STD, 5u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_523},
{0x510ul, 18ul * 1000ul, 17ul, 0u, MSG_STD, 6u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_510},
{0x450ul, 8ul * 1000ul, 23ul, 0u, MSG_STD, 7u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_450},
{0x515ul, 48ul * 1000ul, 29ul, 0u, MSG_STD, 8u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_515},
};
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x125ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
1000ul,
0x113ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_125_Sig_TCS_SysState(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 3u) >> 0u) & 0x03u));
}
uint8_t Get_ID_125_Sig_TCS_WorkMode(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 2u) >> 3u) & 0x0Fu));
}
uint8_t Get_ID_125_Sig_TCS_WarningLamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_TCS_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Battery_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_ID_111_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_ID_111_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_ID_101_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_101_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(ID_ECU_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_ID_101_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_Count, 6u) >> 7u) & 0x01u));
}
uint16_t Get_ID_402_ECU_DTC1(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 1u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_402_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ECU_DTC_Count, 3u) >> 0u) & 0xFFu));
}
uint16_t Get_ID_402_ECU_DTC2(void)
{
return ((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(ID_ECU_DTC_Count, 5u) >> 0u) & 0xFFu);
}
uint8_t Get_ID_113_Tbatt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_ISG_BATT_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = ID_TOTAL_MAX;
switch (MsgID)
{
case ID_TCS:
u8Result = ID_TCS_Count;
break;
case ID_ECU_Battery:
u8Result = ID_ECU_Battery_Count;
break;
case ID_ISG:
u8Result = ID_ISG_Count;
break;
case ID_ECU:
u8Result = ID_ECU_Count;
break;
case ID_ECU_DTC:
u8Result = ID_ECU_DTC_Count;
break;
case ID_ISG_BATT:
u8Result = ID_ISG_BATT_Count;
break;
}
return u8Result;
}
#ifndef CAN_COMMUNICATION_MATRIX_H_
#define CAN_COMMUNICATION_MATRIX_H_
#include "common.h"
#include "CAN_Lib.h"
typedef enum
{
ID_TCS_Count,
ID_ECU_Battery_Count,
ID_ISG_Count,
ID_ECU_Count,
ID_ECU_DTC_Count,
ID_ISG_BATT_Count,
ID_TOTAL_MAX,
} CAN_MSG_ID_t;
typedef enum
{
ID_ICM_SEND1 = 0,
ID_ICM_SEND2 ,
ID_ICM_SEND3 ,
ID_ICM_SEND4 ,
ID_ICM_SEND5 ,
ID_ICM_SEND6 ,
//ID_ICM_SEND7 ,
ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define ID_TCS 0x125u
#define ID_ECU_Battery 0x401u
#define ID_ISG 0x111u
#define ID_ECU 0x101u
#define ID_ECU_DTC 0x402u
#define ID_ISG_BATT 0x113u
extern uint8_t Get_ID_125_Sig_TCS_SysState(void);
extern uint8_t Get_ID_125_Sig_TCS_WorkMode(void);
extern uint8_t Get_ID_125_Sig_TCS_WarningLamp(void);
extern uint8_t Get_ID_401_Sig_ECU_Battery_Voltage(void);
extern uint8_t Get_ID_111_Sig_ISG_SideStand(void);
extern uint8_t Get_ID_111_ISG_Power_Enable(void);
extern uint8_t Get_ID_111_ISG_Ready(void);
extern uint8_t Get_ID_101_ECU_Vehicle_Speed(void);
extern uint8_t Get_ID_12B_RearVehicle_Speed(void);
extern uint16_t Get_ID_101_ECU_Engine_Temperature(void);
extern uint8_t Get_ID_101_ECU_Engine_Temperature_State(void);
extern uint16_t Get_ID_402_ECU_DTC1(void);
extern uint8_t Get_ID_402_ECU_DTC1Amnt(void);
extern uint16_t Get_ID_402_ECU_DTC2(void);
extern uint8_t Get_ID_113_Tbatt(void);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
#endif
/*
* @Author: your name
* @Date: 2022-01-19 15:41:38
* @LastEditTime: 2022-01-22 13:54:50
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \QJ350GS_F_20220117_SW00_00_00_BackLight_ok\source\Application\APPCan\CAN_User.h
*/
#ifndef CAN_USER_H
#define CAN_USER_H
#include "common.h"
#include "CAN_Lib.h"
#include "System_Monitor.h"
/******************************************************************************
Bus-off
******************************************************************************/
#define RSCAN0_BUS_STABLE 0x00U
#define RSCAN0_BUS_OFF_LV1 0x01U
#define RSCAN0_BUS_OFF_LV2 0x02U
#define RSCAN00_BUS_LIMP 0x03U
/******************************************************************************
Bus-off
******************************************************************************/
#define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U
#define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U
typedef struct
{
uint8_t Status;
uint8_t Timer;
uint8_t Cnt;
uint8_t ReportDTCCnt;
} RSCAN0BusoffMonitorStruct;
typedef struct
{
uint32_t StructDtcCurFault;
uint32_t StructDtcHisFault;
} _DTCReturnVal;
typedef enum
{
BCM_UNKNOW = 0,
BCM_DELFU,
BCM_LIANDIAN,
} _BCM_Module;
void Set_Bcm_Module(_BCM_Module data);
_BCM_Module Get_Bcm_Module(void);
extern void Can_Set_Buff_105(uint8_t CopyData[]);
extern void Can_Set_Buff_51C(uint8_t CopyData[]);
extern void Can_Set_Buff_510(uint8_t CopyData[]);
extern void Can_Set_Buff_523(uint8_t CopyData[]);
extern void Can_Set_Buff_450(uint8_t CopyData[]);
extern void Can_Set_Buff_515(uint8_t CopyData[]);
extern void Can_Set_Buff_522(uint8_t CopyData[]);
extern void SetSendUdsTimeCount_190209(uint32_t data);
extern void SetSendUdsTimeCount_220005(uint32_t data);
extern void SetSendUdsTimeCount_0101(uint32_t data);
extern void Send_22_ID0005(void);
extern void Send_19_0209(void);
extern void Send_01_01(void);
void Diag_Req_Send(uint16_t Diag_Time_SendCn);
extern void CAN_SendAppMesageOpinion(void);
extern uint8_t Can_Write(st_CAN_Msg *Msg);
extern void APP_CAN_Init(void);
void CAN_RX_Tick(void);
void CAN_TX_Tick(void);
void Can_Receive_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]);
/* CAN Parometer */
void swap32(uint32_t *DwData);
_DTCReturnVal GetDtcFault(void);
void GetAllDtcFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void SetDtcFault(void);
void DtcFaultInit(void);
uint32_t GetDtcDispNum(uint8_t DispNum);
uint8_t GetDtcAmnt(void);
void DtcFaultTimeInit(void);
void LianDianModuleIn(void);
void DelfuModuleIn(void);
void CAN_Check_Liandian(void);
_BCM_Module Get_Bcm_Module(void);
void Reset_Mil_Signal_Time(void);
void Can_User_Time_Service(uint8_t deltaTime);
uint8_t Get_Mil_Signal_Connect(void);
uint16_t Get_TCS_WorkModeFlash(void);
void Set_TCS_WorkModeFlsh(uint16_t Time);
uint8_t get_ECU_Battery_Voltage(void);
uint8_t Get_LED_ECU_Battery_VoltageFlag(void);
void SET_LED_ECU_Battery_VoltageFlag(uint8_t Flag);
void CAN_LED_Check_50msTask(void);
int16_t get_CoolantTempVal(void);
int16_t get_ECU_Temperature_WaterVal(void);
int16_t get_ID_ISG_BATT(void);
int16_t get_ID_ISG_Power(void);
void Test(void);
void Can_BusOff_Fun(uint8_t deltaTime);
void Set_CanSleepDelayTime(uint32_t data);
uint32_t Get_CanSleepDelayTime(void);
void SetSendUdsTimeCount_190209(uint32_t data);
uint16_t Get_ReqSilentTimer(void );
void Set_ReqSilentTimer( uint16_t data);
void ReqSilentTimer100mSService(void);
uint8_t Get_RSCAN0Busoff_Status(void );
#endif
/*
* @Author: your name
* @Date: 2022-01-19 15:41:38
* @LastEditTime: 2022-01-22 13:54:50
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \QJ350GS_F_20220117_SW00_00_00_BackLight_ok\source\Application\APPCan\CAN_User.h
*/
#ifndef CAN_USER_H
#define CAN_USER_H
#include "common.h"
#include "CAN_Lib.h"
/******************************************************************************
Bus-off
******************************************************************************/
#define RSCAN0_BUS_STABLE 0x00U
#define RSCAN0_BUS_OFF_LV1 0x01U
#define RSCAN0_BUS_OFF_LV2 0x02U
#define RSCAN00_BUS_LIMP 0x03U
/******************************************************************************
Bus-off
******************************************************************************/
#define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U
#define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U
typedef struct
{
uint8_t Status;
uint8_t Timer;
uint8_t Cnt;
uint8_t ReportDTCCnt;
} RSCAN0BusoffMonitorStruct;
typedef struct
{
uint32_t StructDtcCurFault;
uint32_t StructDtcHisFault;
} _DTCReturnVal;
typedef enum
{
BCM_UNKNOW = 0,
BCM_DELFU,
BCM_LIANDIAN,
} _BCM_Module;
void Set_Bcm_Module(_BCM_Module data);
_BCM_Module Get_Bcm_Module(void);
extern void Can_Set_Buff_105(uint8_t CopyData[]);
extern void Can_Set_Buff_51C(uint8_t CopyData[]);
extern void Can_Set_Buff_510(uint8_t CopyData[]);
extern void Can_Set_Buff_523(uint8_t CopyData[]);
extern void Can_Set_Buff_450(uint8_t CopyData[]);
extern void Can_Set_Buff_515(uint8_t CopyData[]);
extern void Can_Set_Buff_522(uint8_t CopyData[]);
extern void SetSendUdsTimeCount_190209(uint32_t data);
extern void SetSendUdsTimeCount_220005(uint32_t data);
extern void SetSendUdsTimeCount_0101(uint32_t data);
extern void Send_22_ID0005(void);
extern void Send_19_0209(void);
extern void Send_01_01(void);
void Diag_Req_Send(uint16_t Diag_Time_SendCn);
extern void CAN_SendAppMesageOpinion(void);
extern uint8_t Can_Write(st_CAN_Msg *Msg);
extern void APP_CAN_Init(void);
void CAN_RX_Tick(void);
void CAN_TX_Tick(void);
void Can_Receive_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]);
/* CAN Parometer */
void swap32(uint32_t *DwData);
_DTCReturnVal GetDtcFault(void);
void GetAllDtcFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void SetDtcFault(void);
void DtcFaultInit(void);
uint32_t GetDtcDispNum(uint8_t DispNum);
uint8_t GetDtcAmnt(void);
void DtcFaultTimeInit(void);
void LianDianModuleIn(void);
void DelfuModuleIn(void);
void CAN_Check_Liandian(void);
_BCM_Module Get_Bcm_Module(void);
void Reset_Mil_Signal_Time(void);
void Can_User_Time_Service(uint8_t deltaTime);
uint8_t Get_Mil_Signal_Connect(void);
uint16_t Get_TCS_WorkModeFlash(void);
void Set_TCS_WorkModeFlsh(uint16_t Time);
uint8_t get_ECU_Battery_Voltage(void);
uint8_t Get_LED_ECU_Battery_VoltageFlag(void);
void SET_LED_ECU_Battery_VoltageFlag(uint8_t Flag);
void CAN_LED_Check_50msTask(void);
int16_t get_CoolantTempVal(void);
int16_t get_ECU_Temperature_WaterVal(void);
int16_t get_ID_ISG_BATT(void);
int16_t get_ID_ISG_Power(void);
void Test(void);
void Can_BusOff_Fun(uint8_t deltaTime);
void Set_CanSleepDelayTime(uint32_t data);
uint32_t Get_CanSleepDelayTime(void);
void SetSendUdsTimeCount_190209(uint32_t data);
uint16_t Get_ReqSilentTimer(void );
void Set_ReqSilentTimer( uint16_t data);
void ReqSilentTimer100mSService(void);
uint8_t Get_RSCAN0Busoff_Status(void );
#endif
#include "CalcFrequency.h"
#include "Common_Interface.h"
#include "tim4.h"
#include "MCU_Core_Protocol.h"
#include "CAN_Communication_Matrix.h"
#include "SEG_LCD.h"
//static uint16_t VehSpeedBuf[3];
//static uint8_t VehSpeedCount;
void CalcFreq_KL15_Init(void)
{
// E_Speed_Dir = E_SPEED_SEG_UP;
// EspeedBak = 0;
// E_Speed_Current_Bar = 0;
// CurEspeed = 0;
// DesEspeed = 0;
// VehSpeedBuf[0] = 0;
// VehSpeedBuf[1] = 0;
// VehSpeedBuf[2] = 0;
// VehSpeedCount = 0;
Capture_Init(40u);
RevFreInit(200u, 500000u, 1u);
//Capture_Init(40u);
//VehFreInit(360u, 500000u, 23616u); // 23637u); //20230602;
}
uint16_t DisVehDelay = 0;
void CalcFreqData(uint16_t deltaTime)
{
uint16_t RevSpeed = 0;
uint16_t VehSpeed = 0;
uint16_t DispVehSpeed = 0;
uint16_t RearVeh = 0;
uint16_t DispRearVeh = 0;
uint16_t temp16 = 0;
uint16_t tempR = 0;
uint8_t Valid = 0;
// _BCM_Module bcm_module_temp;
CalcRevFreqService(deltaTime);
//CalcVehFreqService(deltaTime);
/*转??*/
RevSpeed = Get_Rev_Speed();
if(RevSpeed > 18000){ /*输入频率大于300Hz,转速显?0*/
RevSpeed = 0;
}
else if(RevSpeed > 12000) RevSpeed = 12000;
if((RevSpeed < 12100)&&(Common_GetIgnOnTime() > IGON_SelfcheckingTimer)){ /*输入频率大于200HZ(小?300HZ)时,保持当前?显示??*/
Common_Set_Act_E_Speed(RevSpeed);
Common_Set_Act_E_Speed_Valid(COMMON_Valid);
Common_Set_Disp_E_Speed(RevSpeed);
Common_Set_Disp_E_Speed_Valid(COMMON_Valid);
}
/*车??*/
/*temp16 = Get_Veh_Speed();
if(temp16 >= 4344){
temp16 = 0;
}
VehSpeedBuf[VehSpeedCount] = temp16;
VehSpeedCount++;
if(VehSpeedCount >= 3){
VehSpeedCount = 0;
}
VehSpeed = (VehSpeedBuf[0] + VehSpeedBuf[1] + VehSpeedBuf[2])/3;
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
DisVehDelay += deltaTime;
if(DisVehDelay >= 200){
DisVehDelay = 0;
DispVehSpeed = ((uint32_t)VehSpeed*108)/100;
if(DispVehSpeed > 3600){
DispVehSpeed = 3600;
}
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
}*/
temp16 = Get_ID_101_ECU_Vehicle_Speed();
tempR = 0.08 * Get_ID_12B_RearVehicle_Speed();
Valid = Get_ID_12B_RearVehicle_Speed_Valid();
if ((temp16 < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
VehSpeed = 0;
DispVehSpeed = 0;
}
else
{
VehSpeed = temp16 * 10;
DispVehSpeed = temp16 * 108 / 10;
if (DispVehSpeed > 1990)
{
DispVehSpeed = 1990;
}
}
RearVeh = tempR * 10;
DispRearVeh = tempR * 108 / 10;
if( SEGLCDBackup.SetMode == 2)
{
if (DispRearVeh > 1990)
{
DispRearVeh = 1990;
}
}
else if(SEGLCDBackup.SetMode == 1)
{
if (DispRearVeh > 1230)
{
DispRearVeh = 1230;
}
}
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
if(Valid)
{
Common_Set_Act_RV_Speed(RearVeh);
Common_Set_Act_RV_Speed_Valid(COMMON_Valid);
Common_Set_Disp_RV_Speed(DispRearVeh);
Common_Set_Disp_RV_Speed_Valid(COMMON_Valid);
}
}
#include "CalcFrequency.h"
#include "Common_Interface.h"
#include "tim4.h"
#include "MCU_Core_Protocol.h"
#include "CAN_Communication_Matrix.h"
#include "SEG_LCD.h"
//static uint16_t VehSpeedBuf[3];
//static uint8_t VehSpeedCount;
void CalcFreq_KL15_Init(void)
{
// E_Speed_Dir = E_SPEED_SEG_UP;
// EspeedBak = 0;
// E_Speed_Current_Bar = 0;
// CurEspeed = 0;
// DesEspeed = 0;
// VehSpeedBuf[0] = 0;
// VehSpeedBuf[1] = 0;
// VehSpeedBuf[2] = 0;
// VehSpeedCount = 0;
Capture_Init(40u);
RevFreInit(200u, 500000u, 1u);
//Capture_Init(40u);
//VehFreInit(360u, 500000u, 23616u); // 23637u); //20230602;
}
uint16_t DisVehDelay = 0;
void CalcFreqData(uint16_t deltaTime)
{
uint16_t RevSpeed = 0;
uint16_t VehSpeed = 0;
uint16_t DispVehSpeed = 0;
uint16_t RearVeh = 0;
uint16_t DispRearVeh = 0;
uint16_t temp16 = 0;
uint16_t tempR = 0;
uint8_t Valid = 0;
// _BCM_Module bcm_module_temp;
CalcRevFreqService(deltaTime);
//CalcVehFreqService(deltaTime);
/*转??*/
RevSpeed = Get_Rev_Speed();
if(RevSpeed > 18000){ /*输入频率大于300Hz,转速显?0*/
RevSpeed = 0;
}
else if(RevSpeed > 12000) RevSpeed = 12000;
if((RevSpeed < 12100)&&(Common_GetIgnOnTime() > IGON_SelfcheckingTimer)){ /*输入频率大于200HZ(小?300HZ)时,保持当前?显示??*/
Common_Set_Act_E_Speed(RevSpeed);
Common_Set_Act_E_Speed_Valid(COMMON_Valid);
Common_Set_Disp_E_Speed(RevSpeed);
Common_Set_Disp_E_Speed_Valid(COMMON_Valid);
}
/*车??*/
/*temp16 = Get_Veh_Speed();
if(temp16 >= 4344){
temp16 = 0;
}
VehSpeedBuf[VehSpeedCount] = temp16;
VehSpeedCount++;
if(VehSpeedCount >= 3){
VehSpeedCount = 0;
}
VehSpeed = (VehSpeedBuf[0] + VehSpeedBuf[1] + VehSpeedBuf[2])/3;
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
DisVehDelay += deltaTime;
if(DisVehDelay >= 200){
DisVehDelay = 0;
DispVehSpeed = ((uint32_t)VehSpeed*108)/100;
if(DispVehSpeed > 3600){
DispVehSpeed = 3600;
}
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
}*/
temp16 = Get_ID_101_ECU_Vehicle_Speed();
tempR = 0.08 * Get_ID_12B_RearVehicle_Speed();
Valid = Get_ID_12B_RearVehicle_Speed_Valid();
if ((temp16 < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
VehSpeed = 0;
DispVehSpeed = 0;
}
else
{
VehSpeed = temp16 * 10;
DispVehSpeed = temp16 * 108 / 10;
if (DispVehSpeed > 1990)
{
DispVehSpeed = 1990;
}
}
if ((tempR < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
RearVeh = 0;
DispRearVeh = 0;
}
else
{
RearVeh = tempR * 10;
DispRearVeh = tempR * 108 / 10;
if( SEGLCDBackup.SetMode == 2)
{
if (DispRearVeh > 1990)
{
DispRearVeh = 1990;
}
}
else if(SEGLCDBackup.SetMode == 1)
{
if (DispRearVeh > 1230)
{
DispRearVeh = 1230;
}
}
}
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
if(Valid)
{
Common_Set_Act_RV_Speed(RearVeh);
Common_Set_Act_RV_Speed_Valid(COMMON_Valid);
Common_Set_Disp_RV_Speed(DispRearVeh);
Common_Set_Disp_RV_Speed_Valid(COMMON_Valid);
}
else
{
}
}
#include "CalcFrequency.h"
#include "Common_Interface.h"
#include "tim4.h"
#include "MCU_Core_Protocol.h"
#include "CAN_Communication_Matrix.h"
//static uint16_t VehSpeedBuf[3];
//static uint8_t VehSpeedCount;
void CalcFreq_KL15_Init(void)
{
// E_Speed_Dir = E_SPEED_SEG_UP;
// EspeedBak = 0;
// E_Speed_Current_Bar = 0;
// CurEspeed = 0;
// DesEspeed = 0;
// VehSpeedBuf[0] = 0;
// VehSpeedBuf[1] = 0;
// VehSpeedBuf[2] = 0;
// VehSpeedCount = 0;
Capture_Init(40u);
RevFreInit(200u, 500000u, 1u);
//Capture_Init(40u);
//VehFreInit(360u, 500000u, 23616u); // 23637u); //20230602;
}
uint16_t DisVehDelay = 0;
void CalcFreqData(uint16_t deltaTime)
{
uint16_t RevSpeed = 0;
uint16_t VehSpeed = 0;
uint16_t DispVehSpeed = 0;
uint16_t temp16 = 0;
// _BCM_Module bcm_module_temp;
CalcRevFreqService(deltaTime);
//CalcVehFreqService(deltaTime);
/*转速*/
RevSpeed = Get_Rev_Speed();
if(RevSpeed > 18000){ /*输入频率大于300Hz,转速显示0*/
RevSpeed = 0;
}
else if(RevSpeed > 12000) RevSpeed = 12000;
if((RevSpeed < 12100)&&(Common_GetIgnOnTime() > IGON_SelfcheckingTimer)){ /*输入频率大于200HZ(小于300HZ)时,保持当前值显示。*/
Common_Set_Act_E_Speed(RevSpeed);
Common_Set_Act_E_Speed_Valid(COMMON_Valid);
Common_Set_Disp_E_Speed(RevSpeed);
Common_Set_Disp_E_Speed_Valid(COMMON_Valid);
}
/*车速*/
/*temp16 = Get_Veh_Speed();
if(temp16 >= 4344){
temp16 = 0;
}
VehSpeedBuf[VehSpeedCount] = temp16;
VehSpeedCount++;
if(VehSpeedCount >= 3){
VehSpeedCount = 0;
}
VehSpeed = (VehSpeedBuf[0] + VehSpeedBuf[1] + VehSpeedBuf[2])/3;
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
DisVehDelay += deltaTime;
if(DisVehDelay >= 200){
DisVehDelay = 0;
DispVehSpeed = ((uint32_t)VehSpeed*108)/100;
if(DispVehSpeed > 3600){
DispVehSpeed = 3600;
}
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
}*/
temp16 = Get_ID_101_ECU_Vehicle_Speed();
if ((temp16 < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
VehSpeed = 0;
DispVehSpeed = 0;
}
else
{
VehSpeed = temp16 * 10;
DispVehSpeed = temp16 * 108 / 10;
if (DispVehSpeed > 1990)
{
DispVehSpeed = 1990;
}
}
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
}
#include "CalcFrequency.h"
#include "Common_Interface.h"
#include "tim4.h"
#include "MCU_Core_Protocol.h"
#include "CAN_Communication_Matrix.h"
#include "SEG_LCD.h"
//static uint16_t VehSpeedBuf[3];
//static uint8_t VehSpeedCount;
void CalcFreq_KL15_Init(void)
{
// E_Speed_Dir = E_SPEED_SEG_UP;
// EspeedBak = 0;
// E_Speed_Current_Bar = 0;
// CurEspeed = 0;
// DesEspeed = 0;
// VehSpeedBuf[0] = 0;
// VehSpeedBuf[1] = 0;
// VehSpeedBuf[2] = 0;
// VehSpeedCount = 0;
Capture_Init(40u);
RevFreInit(200u, 500000u, 1u);
//Capture_Init(40u);
//VehFreInit(360u, 500000u, 23616u); // 23637u); //20230602;
}
uint16_t DisVehDelay = 0;
void CalcFreqData(uint16_t deltaTime)
{
uint16_t RevSpeed = 0;
uint16_t VehSpeed = 0;
uint16_t DispVehSpeed = 0;
uint16_t RearVeh = 0;
uint16_t DispRearVeh = 0;
uint16_t temp16 = 0;
uint16_t tempR = 0;
// _BCM_Module bcm_module_temp;
CalcRevFreqService(deltaTime);
//CalcVehFreqService(deltaTime);
/*转??*/
RevSpeed = Get_Rev_Speed();
if(RevSpeed > 18000){ /*输入频率大于300Hz,转速显?0*/
RevSpeed = 0;
}
else if(RevSpeed > 12000) RevSpeed = 12000;
if((RevSpeed < 12100)&&(Common_GetIgnOnTime() > IGON_SelfcheckingTimer)){ /*输入频率大于200HZ(小?300HZ)时,保持当前?显示??*/
Common_Set_Act_E_Speed(RevSpeed);
Common_Set_Act_E_Speed_Valid(COMMON_Valid);
Common_Set_Disp_E_Speed(RevSpeed);
Common_Set_Disp_E_Speed_Valid(COMMON_Valid);
}
/*车??*/
/*temp16 = Get_Veh_Speed();
if(temp16 >= 4344){
temp16 = 0;
}
VehSpeedBuf[VehSpeedCount] = temp16;
VehSpeedCount++;
if(VehSpeedCount >= 3){
VehSpeedCount = 0;
}
VehSpeed = (VehSpeedBuf[0] + VehSpeedBuf[1] + VehSpeedBuf[2])/3;
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
DisVehDelay += deltaTime;
if(DisVehDelay >= 200){
DisVehDelay = 0;
DispVehSpeed = ((uint32_t)VehSpeed*108)/100;
if(DispVehSpeed > 3600){
DispVehSpeed = 3600;
}
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
}*/
temp16 = Get_ID_101_ECU_Vehicle_Speed();
tempR = Get_ID_12B_RearVehicle_Speed();
if ((temp16 < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
VehSpeed = 0;
DispVehSpeed = 0;
}
else
{
VehSpeed = temp16 * 10;
DispVehSpeed = temp16 * 108 / 10;
if (DispVehSpeed > 1990)
{
DispVehSpeed = 1990;
}
}
if ((tempR < 3) || (CAN_SIG_LOST == CAN_MSG_Status(ID_ECU_Count)))
{
RearVeh = 0;
DispRearVeh = 0;
}
else
{
RearVeh = tempR * 10;
DispRearVeh = tempR * 108 / 10;
if( SEGLCDBackup.SetMode == 1)
{
if (DispRearVeh > 1990)
{
DispRearVeh = 1990;
}
}
else
{
if (DispRearVeh > 1230)
{
DispRearVeh = 1230;
}
}
}
Common_Set_Act_V_Speed(VehSpeed);
Common_Set_Act_V_Speed_Valid(COMMON_Valid);
Common_Set_Disp_V_Speed(DispVehSpeed);
Common_Set_Disp_V_Speed_Valid(COMMON_Valid);
Common_Set_Act_RV_Speed(RearVeh);
Common_Set_Act_RV_Speed_Valid(COMMON_Valid);
Common_Set_Disp_RV_Speed(DispRearVeh);
Common_Set_Disp_RV_Speed_Valid(COMMON_Valid);
}
#ifndef _COMMON_INTERFACE_H_
#define _COMMON_INTERFACE_H_
#include "common.h"
void Common_DataInit(void);
extern void Common_Input_Para(void);
MSG_01_DISP_MODE_t Common_Get_DispMode(void);
void Common_Set_DispMode(MSG_01_DISP_MODE_t mode);
LANGUAGE_t Common_Get_Language(void);
COMMON_PowerStatus_t Common_Get_IG_Sts(void);
void Common_Set_IG_Sts(COMMON_PowerStatus_t Val);
uint16_t Common_Get_Act_V_Speed(void);
uint16_t Common_Get_Act_E_Speed(void);
uint16_t Common_Get_Disp_V_Speed(void);
uint16_t Common_Get_Disp_E_Speed(void);
uint16_t Common_Get_Gauges_Disp_E_Speed(void);
//×Ô¼ì
uint16_t Common_Get_E_Speed_TEST(void);
uint16_t Common_Get_V_Speed_TEST(void);
uint8_t Common_Get_Fuel_TEST(void);
uint8_t Common_Get_Temp_TEST(void);
DataValid_t Common_Get_Act_V_Speed_Valid(void);
DataValid_t Common_Get_Act_E_Speed_Valid(void);
DataValid_t Common_Get_Disp_V_Speed_Valid(void);
DataValid_t Common_Get_Disp_E_Speed_Valid(void);
void Common_Set_Act_V_Speed(uint16_t Val);
void Common_Set_Act_E_Speed(uint16_t Val);
void Common_Set_Disp_V_Speed(uint16_t Val);
void Common_Set_Disp_E_Speed(uint16_t Val);
void Common_Set_Gauges_E_Speed(uint16_t Val);
//×Ô¼ì
void Common_Set_E_Speed_Test(uint16_t Val);
void Common_Set_V_Speed_Test(uint16_t Val);
void Common_Set_Fuel_Test(uint8_t Val);
void Common_Set_Temp_Test(uint8_t Val);
void Common_Set_Act_V_Speed_Valid(DataValid_t Val);
void Common_Set_Act_E_Speed_Valid(DataValid_t Val);
void Common_Set_Disp_V_Speed_Valid(DataValid_t Val);
void Common_Set_Disp_E_Speed_Valid(DataValid_t Val);
uint16_t Common_Get_DispSpeed(void);
uint32_t Common_GetIgnOnTime(void); /*ms*/
uint32_t Common_GetIgnOffTime(void); /*ms*/
void Common_RollingCounterAdd(void);
void Common_RollingCounterClear(void);
void Common_BlockDelay(uint16_t m_MS);
uint16_t Common_ReadRollingCounter(void);
#endif
#include "Data_Gear.h"
#include "Line_in.h"
#include "Analog_Circuits.h"
#include "Analog_Signals.h"
#include "gpio.h"
static DATA_GEAR_VALUE Gear_Number = DIS_DATA_GEAR_UNKNOW;
/******************************************************************************
Function:Data_Gear_KL30_Init
Description:该服务函数首次KL30时调用一次
Input:
Output:
******************************************************************************/
void Data_Gear_KL30_Init(void)
{
}
/******************************************************************************
Function:Data_Gear_KL15_Init
Description:该服务函数首次KL15时调用一次
Input:
Output:
******************************************************************************/
void Data_Gear_KL15_Init(void)
{
Gear_Number = DIS_DATA_GEAR_UNKNOW;
}
/******************************************************************************
Function:Data_Service_Gear_Processing
Description:如果有特殊数据处理在此函数中进行处理
Input:
Output:
******************************************************************************/
_DATA_GEAR_AD_VALUE GEAR_AD_VALUE;
static const uint16_t GEAR_ADResultMIN[7]={4100, 3750, 3300, 2500, 1900, 1200, 500 };
static const uint16_t GEAR_ADResultMAM[7]={4500, 4000, 3650, 3100, 2300, 1700, 1000};
void Data_Service_Gear_Processing(void)
{
static uint8_t timeCount = 0;
uint8_t i ,j, position,activesum;
uint16_t temp8 ;
uint16_t GEARADResult[6] ;
GEAR_AD_VALUE.DATA_GEAR_Non++; //滚动纪录数据
if(GEAR_AD_VALUE.DATA_GEAR_Non>=6) GEAR_AD_VALUE.DATA_GEAR_Non = 0 ;
//GEAR_AD_VALUE.DATA_GEAR_ADResult[GEAR_AD_VALUE.DATA_GEAR_Non] = ADC_Read_Signal(ADC_CH_GEAR);
for (i = 0; i < 6; i++) //取值
{
GEARADResult[i] = GEAR_AD_VALUE.DATA_GEAR_ADResult[i];
}
for (i = 0; i < 6-1; i++) //冒泡排序
{
for (j = 0; j < 6-1-i; j++)
{
if(GEARADResult[j] > GEARADResult[j+1])
{
temp8 = GEARADResult[j] ;
GEARADResult[j] =GEARADResult[j+1];
GEARADResult[j+1] = temp8 ;
}
}
}
temp8 = 0;
for (i = 1; i < 5; i++) //求和
{
temp8 += GEARADResult[i] ;
}
temp8 >>= 2; //平均值
i=0; position = 0 ; //档位定位, 7组档位1-6、N
while(i < 7)
{
if(temp8 >= GEAR_ADResultMIN[i])
{
position = i ;
i=7;
}
i++ ;
}
activesum = 0;
for (i = 1; i < 5; i++) //中间4个数据,在一个档位范围内有效
{
if((GEARADResult[i] >= GEAR_ADResultMIN[position]) &&(GEARADResult[i] <= GEAR_ADResultMAM[position]))
activesum ++;
}
if((temp8 >= GEAR_ADResultMIN[0])&&(temp8 <= GEAR_ADResultMAM[0])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_1;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[1])&&(temp8 <= GEAR_ADResultMAM[1])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_N;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[2])&&(temp8 <= GEAR_ADResultMAM[2])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_2;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[3])&&(temp8 <= GEAR_ADResultMAM[3])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_3;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[4])&&(temp8 <= GEAR_ADResultMAM[4])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_4;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[5])&&(temp8 <= GEAR_ADResultMAM[5])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_5;
timeCount = 0;
}
else if((temp8 >= GEAR_ADResultMIN[6])&&(temp8 <= GEAR_ADResultMAM[6])&&(activesum >=4)){
Gear_Number = DIS_DATA_GEAR_6;
timeCount = 0;
}
else{
if(timeCount > 20){
Gear_Number = DIS_DATA_GEAR_UNKNOW;
}
else{
timeCount++;
}
}
}
/******************************************************************************
Function:Get_Gear_Mode_Number
Description:Get Gear 1/2/3/4/...
Input:
Output: 1/2/3/4/...
******************************************************************************/
uint8_t Get_Gear_Mode_Number(void)
{
return (uint8_t)Gear_Number;
}
This diff is collapsed.
This diff is collapsed.
#ifndef LINE_IN_H__
#define LINE_IN_H__
#include "common.h"
#include "string.h"
/*
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
*/
/*?有硬线输入的索引*/
typedef enum
{
LINE_IN_RightTurn = 0u,
LINE_IN_LeftTurn,
LINE_IN_HighBeam,
LINE_IN_ABS,
LINE_IN_AutoStarStop,
LINE_IN_TirePressure,
LINE_IN_OilPressure,
LINE_IN_OBD,
LINE_IN_NUMBER,
} Line_In_Channel_en_t;
/*获取实时硬线电平函数指针*/
typedef struct
{
LINE_IN_WorkSt_en_t enPowerStatus; /*硬线工作的电源状?*/
uint16_t u16ValidTime; /*从无效到有效的消抖时? ms*/
uint16_t u16InvalidTime; /*从有效到无效的消抖时?*/
uint8_t (*pfnLineIn_Read_Cbk)(void); /*获取实时电平的回调函?*/
} Line_In_Attribute_st_t;
extern void Line_In_SetPowerSt(LINE_IN_WorkSt_en_t u8PowerSt);
/*10ms调用*/
extern void Line_In_Debounce_Service(void);
extern LineIn_LogicLevel_en_t Line_In_Get_Status(uint8_t Channel);
extern void Line_In_KL30_Init(void);
extern void Line_In_KL15_ON_Init(void);
extern void Line_In_KL15_OFF_Init(void);
extern uint8_t LINE_IN_Get_RightTurn(void);
extern uint8_t LINE_IN_Get_LeftTurn(void);
extern uint8_t LINE_IN_Get_HighBeam(void);
extern uint8_t LINE_IN_Get_ABS(void);
extern uint8_t LINE_IN_Get_AutoStarStop(void);
extern uint8_t LINE_IN_Get_TirePressure(void);
extern uint8_t LINE_IN_Get_OilPressure(void);
extern uint8_t LINE_IN_Get_OBD(void);
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment