Commit 1db795da authored by huangguoqing's avatar huangguoqing

feat:添加转向灯、远光灯、贴图

parent 7d6bd508
...@@ -55,5 +55,12 @@ ...@@ -55,5 +55,12 @@
"C_Cpp_Runner.useLeakSanitizer": false, "C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false, "C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false, "C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false "C_Cpp_Runner.msvcSecureNoWarnings": false,
"files.associations": {
"tft_lcd.h": "c",
"can_communication_matrix.h": "c",
"display_info.h": "c",
"com_can.h": "c",
"task.h": "c"
}
} }
\ No newline at end of file
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include "Analog_Signals.h" #include "Analog_Signals.h"
#include "RSCAN.h" #include "RSCAN.h"
#include "Key.h" #include "Key.h"
#include "Display_Info.h"
uint8_t CrcCheckSum(uint8_t *data, uint8_t len) uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
{ {
...@@ -283,3 +285,114 @@ void Can_Set_Buff_021(uint8_t CopyData []) ...@@ -283,3 +285,114 @@ void Can_Set_Buff_021(uint8_t CopyData [])
pCANMsg->Sig.Battery_temp = 1; pCANMsg->Sig.Battery_temp = 1;
} }
} }
//NFC
void Can_Set_Buff_284(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg284Union *pCANMsg;
pCANMsg = (CANMsg284Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(NFC_C_card == 1)
{
pCANMsg->Sig.NFC_C_card = 1;
//Display_Can_Receive_Data(20,240);
}
else if((NFC_C_card == 2))
{
pCANMsg->Sig.NFC_C_card = 2;
}
}
/*软件版本号*/
extern uint8_t Data_786_1[8]= {0x03,0x22,0x10,0x24,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_2[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
/*硬件版本号*/
extern uint8_t Data_786_3[8]= {0x03,0x22,0xF1,0x93,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_4[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
typedef struct {
uint8_t CANruanjian_ID1;
uint8_t CANruanjian_ID2;
uint8_t CANruanjian_ID3;
uint8_t CANruanjian_ID4;
uint8_t CANruanjian_ID5;
uint8_t CANruanjian_ID1_;
uint8_t CANruanjian_ID2_;
uint8_t CANruanjian_ID3_;
uint8_t CANruanjian_ID4_;
uint8_t CANruanjian_ID5_;
}CanData_step;
CanData_step CanData_step_={0};
void Can_Set_Buff_786(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg786Union *pCANMsg;
pCANMsg = (CANMsg786Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Diagnosis_banbenhao_flag == 1)
{
// pCANMsg->Sig.diagnosis0 = 0x03;
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_1[i];
}
Diagnosis_banbenhao_flag_=1;
// Get_CAN_CH4_ID_750_Diagnosis_return0();
}
if(Diagnosis_banbenhao_flag == 2)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_2[i];
}
Diagnosis_banbenhao_flag_=2;
}
else if(Diagnosis_banbenhao_flag == 3)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_3[i];
}
Diagnosis_banbenhao_flag_=3;
}
else if(Diagnosis_banbenhao_flag == 4)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_4[i];
}
Diagnosis_banbenhao_flag_=4;
}
}
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define _CAN_APP_H_ #define _CAN_APP_H_
#include "RSCAN.h" #include "RSCAN.h"
#include "Display_Info.h"
typedef union typedef union
{ {
...@@ -174,6 +175,68 @@ typedef union ...@@ -174,6 +175,68 @@ typedef union
} Sig; } Sig;
} CANMsg021Union; } CANMsg021Union;
//NFC
// typedef union
// {
// uint8_t Msg [ 8 ];
// struct
// {
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :7;
// uint64_t NFC_C_card:1;
// uint64_t :8;
// uint64_t :8;
// } Sig;
// } CANMsg284Union;
typedef union
{
uint8_t Msg[8];
struct
{
uint64_t NFC_C_card:8;
//uint64_t NFC_C_card:1;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg284Union;
//诊断
typedef union
{
uint8_t Msg[8];
struct
{
uint64_t diagnosis0:8;
uint64_t diagnosis1:8;
uint64_t diagnosis2:8;
uint64_t diagnosis3:8;
uint64_t diagnosis4:8;
uint64_t diagnosis5:8;
uint64_t diagnosis6:8;
uint64_t diagnosis7:8;
} Sig;
} CANMsg786Union;
void CAN_MSG_COUNTER_PLUS(void); void CAN_MSG_COUNTER_PLUS(void);
...@@ -188,5 +251,12 @@ void Can_Set_Buff_280(uint8_t CopyData []); ...@@ -188,5 +251,12 @@ void Can_Set_Buff_280(uint8_t CopyData []);
void Can_Set_Buff_202(uint8_t CopyData []); void Can_Set_Buff_202(uint8_t CopyData []);
void Can_Set_Buff_001(uint8_t CopyData []); void Can_Set_Buff_001(uint8_t CopyData []);
void Can_Set_Buff_021(uint8_t CopyData []); void Can_Set_Buff_021(uint8_t CopyData []);
void Can_Set_Buff_284(uint8_t CopyData []);
void Can_Set_Buff_786(uint8_t CopyData []);
extern void Get_CAN_CH4_ID_750_Diagnosis_return1();
extern void Get_CAN_CH4_ID_750_Diagnosis_return2();
extern uint8_t VSpeed; extern uint8_t VSpeed;
#endif #endif
#include "CAN_Communication_Matrix.h" #include "CAN_Communication_Matrix.h"
#include "CAN_APP.h" #include "CAN_APP.h"
#include "RSCAN.h" #include "RSCAN.h"
#include "Key.h"
/* 2022/11/19 14:29:55 */ /* 2022/11/19 14:29:55 */
st_CanMsgOp CAN_CH4_CanMsgOp; st_CanMsgOp CAN_CH4_CanMsgOp;
st_CanMsgTxOp CAN_CH4_CanMsgTxOp; st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
#define CAN_CH4 &CAN_CH4_CanMsgOp #define CAN_CH4 &CAN_CH4_CanMsgOp
uint8_t count = 0;
const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] = const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] =
{ {
...@@ -18,6 +20,8 @@ const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] = ...@@ -18,6 +20,8 @@ const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] =
{0x202, 100ul*1000ul, 35ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_10, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_202, (void *)0},//档位,续航里程,ready {0x202, 100ul*1000ul, 35ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_10, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_202, (void *)0},//档位,续航里程,ready
{0x001, 100ul*1000ul, 40ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_11, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_001, (void *)0},//电机过热 {0x001, 100ul*1000ul, 40ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_11, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_001, (void *)0},//电机过热
{0x021, 100ul*1000ul, 45ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_12, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_021, (void *)0},//电池过热 {0x021, 100ul*1000ul, 45ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_12, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_021, (void *)0},//电池过热
{0x284, 100ul*1000ul, 50ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_13, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_284, (void *)0},//NFC
{0x786, 100ul*1000ul, 55ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_14, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_786, (void *)0},//诊断
}; };
const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] = const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] =
...@@ -47,7 +51,17 @@ const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] = ...@@ -47,7 +51,17 @@ const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_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}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul, 5000ul,
0x45l, 0x451ul,
(( 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},
5000ul,
0x750ul,
(( void * )0), (( void * )0),
(( void * )0), (( void * )0),
(( void * )0), (( void * )0),
...@@ -60,16 +74,18 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID) ...@@ -60,16 +74,18 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID)
uint8_t u8Result = CAN_CH4_ID_TOTAL_MAX; uint8_t u8Result = CAN_CH4_ID_TOTAL_MAX;
switch (MsgID) switch (MsgID)
{ {
case CAN_CH4_ID_250_Msg_Count: case CAN_CH4_ID_250_Msg:
u8Result = CAN_CH4_ID_250_Msg; u8Result = CAN_CH4_ID_250_Msg_Count;
break; break;
case CAN_CH4_ID_450_Msg_Count: case CAN_CH4_ID_450_Msg:
u8Result = CAN_CH4_ID_450_Msg; u8Result = CAN_CH4_ID_450_Msg_Count;
break; break;
case CAN_CH4_ID_451_Msg_Count: case CAN_CH4_ID_451_Msg:
u8Result = CAN_CH4_ID_451_Msg; u8Result = CAN_CH4_ID_451_Msg_Count;
break;
case CAN_CH4_ID_750_Msg:
u8Result = CAN_CH4_ID_750_Msg_Count;
break; break;
default : default :
u8Result = CAN_CH4_ID_TOTAL_MAX; u8Result = CAN_CH4_ID_TOTAL_MAX;
break; break;
...@@ -77,3 +93,92 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID) ...@@ -77,3 +93,92 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID)
return u8Result; return u8Result;
} }
//TCS模式设置
uint8_t Get_CAN_CH4_ID_250_TCS(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_250_Msg_Count,0u) >> 5u)));
}
//小计
uint8_t Get_CAN_CH4_ID_450_Trip(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_450_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//总计
uint8_t Get_CAN_CH4_ID_450_Mileage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_450_Msg_Count, 3u) >> 0u) & 0xFFu));
}
//诊断返回信息1_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_5(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_6(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_7(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//诊断返回信息2_7
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_3(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_4(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 4u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_5(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_6(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_7(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//诊断返回信息3_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 1u) >> 0u) & 0xFFu));
// 读取CAN通道4,ID为750的消息的字节5
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_3(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 3u) >> 0u) & 0xFFu));
}
void Can_ID_750_Receive(uint8_t CopyData[])
{
Get_CAN_CH4_ID_750_Diagnosis_return1();
}
\ No newline at end of file
...@@ -7,13 +7,14 @@ ...@@ -7,13 +7,14 @@
extern st_CanMsgOp CAN_CH4_CanMsgOp; extern st_CanMsgOp CAN_CH4_CanMsgOp;
extern st_CanMsgTxOp CAN_CH4_CanMsgTxOp; extern st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
extern uint8_t count;
typedef enum typedef enum
{ {
CAN_CH4_ID_250_Msg_Count, CAN_CH4_ID_250_Msg_Count,
CAN_CH4_ID_450_Msg_Count, CAN_CH4_ID_450_Msg_Count,
CAN_CH4_ID_451_Msg_Count, CAN_CH4_ID_451_Msg_Count,
CAN_CH4_ID_750_Msg_Count,
CAN_CH4_ID_TOTAL_MAX, CAN_CH4_ID_TOTAL_MAX,
} CAN_CH4_CAN_MSG_ID_t; } CAN_CH4_CAN_MSG_ID_t;
...@@ -28,6 +29,8 @@ typedef enum ...@@ -28,6 +29,8 @@ typedef enum
CAN_CH4_ID_202, CAN_CH4_ID_202,
CAN_CH4_ID_001, CAN_CH4_ID_001,
CAN_CH4_ID_021, CAN_CH4_ID_021,
CAN_CH4_ID_284,
CAN_CH4_ID_786,
CAN_CH4_ID_SEND_TOTAL, CAN_CH4_ID_SEND_TOTAL,
} CAN_CH4_CAN_MSG_SEND_ID_t; } CAN_CH4_CAN_MSG_SEND_ID_t;
...@@ -35,9 +38,37 @@ typedef enum ...@@ -35,9 +38,37 @@ typedef enum
extern const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] ; extern const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] ; extern const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] ;
//小计
extern uint8_t Get_CAN_CH4_ID_450_Trip(void);
//TCS模式设置
extern uint8_t Get_CAN_CH4_ID_250_TCS(void);
//总计
extern uint8_t Get_CAN_CH4_ID_450_Mileage(void);
//诊断返回信息1
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_5(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_6(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_7(void);
//诊断返回信息2_7
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_1(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_2(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_3(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_4(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_5(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_6(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_7(void);
//诊断返回信息3_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_1(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_2(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_3(void);
static void Can_ID_750_Receive();
#define CAN_CH4_ID_250_Msg 0x250u #define CAN_CH4_ID_250_Msg 0x250u
#define CAN_CH4_ID_450_Msg 0x450u #define CAN_CH4_ID_450_Msg 0x450u
#define CAN_CH4_ID_451_Msg 0x451u #define CAN_CH4_ID_451_Msg 0x451u
#define CAN_CH4_ID_750_Msg 0x750u
extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID); extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID);
#endif #endif
...@@ -68,7 +68,15 @@ void Display_Init(void); ...@@ -68,7 +68,15 @@ void Display_Init(void);
extern void Send_ODO_Init(void); extern void Send_ODO_Init(void);
void Display_Send_ODO(uint8_t fuel); void Display_Send_ODO(uint8_t fuel);
void Display_Send_Vspead(uint8_t menu); void Display_flag(uint8_t Check_Steps);
void Display_buffer_Data(uint8_t buffer[] , uint16_t X,uint8_t Y);
void Display_Can_Data(uint8_t Data , uint16_t X,uint8_t Y);
void Display_buffer_ID(uint16_t X,uint8_t Y);
void Display_Chaka_Model(void);
void Display_interface_learning_card(uint16_t X,uint8_t Y);
//void Display_Can_Receive_Data(uint8_t Data[] , uint16_t X,uint8_t Y);
void Display_Can_Receive_Data(uint16_t X,uint8_t Y);
void Display_Set_Buff(void); void Display_Set_Buff(void);
extern void Send_Init(void); extern void Send_Init(void);
...@@ -97,6 +105,19 @@ extern uint32_t loc_Current_0; ...@@ -97,6 +105,19 @@ extern uint32_t loc_Current_0;
extern void Get_static_Current(void); extern void Get_static_Current(void);
extern uint32_t Get_Display_Type(void); extern uint32_t Get_Display_Type(void);
extern void Display_Num(uint16_t StartX, uint16_t StartY,uint16_t m_NUM,uint8_t CbkCycle); extern void Display_Num(uint16_t StartX, uint16_t StartY,uint16_t m_NUM,uint8_t CbkCycle);
void Get_CAN_CH4_ID_750_Diagnosis_return1();
void Get_CAN_CH4_ID_750_Diagnosis_return2();
extern const uint8_t *Num_15[]; extern const uint8_t *Num_15[];
typedef struct {
uint8_t going[5];
uint8_t succeed[7];
uint8_t fail[4];
uint8_t sameID[7];
} Learning_Card;
// extern uint8_t canData[3][8];
extern uint8_t canData2[14];
extern uint8_t canData3[10];
extern uint8_t canData4[8];
//extern u8_All_Flag_t All_Flag;
#define PCodeText_Space_size 2//故障文字 英文空格的像素数 #define PCodeText_Space_size 2//故障文字 英文空格的像素数
#endif #endif
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define KEY_H__ #define KEY_H__
#include "TYW_stdint.h" #include "TYW_stdint.h"
#include "Display_Info.h"
#define Check_KeepTime 3000 //每个步骤保持时间 #define Check_KeepTime 3000 //每个步骤保持时间
#define Check_Couont 11 //多少个步骤 #define Check_Couont 11 //多少个步骤
...@@ -73,6 +74,26 @@ typedef struct ...@@ -73,6 +74,26 @@ typedef struct
} Key_Attribute_st_t; } Key_Attribute_st_t;
typedef union
{
uint8_t u8flag[8];
struct
{
uint8_t u8_SW_2 : 1;
uint8_t u8_SW_6 : 1;
uint8_t u8_SW_7 : 1;
uint8_t u8_SW_8 : 1;
uint8_t u8_SW_10 : 1;
uint8_t : 3;
}KEY_flag;
} u8_All_Flag_t;
/*--------------------------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------------------------*/
extern const Key_Attribute_st_t stKeyAttribute [ KEY_NUM_MAX ]; extern const Key_Attribute_st_t stKeyAttribute [ KEY_NUM_MAX ];
extern Key_Real_Status_en_t enKeyLeftRealStatus; extern Key_Real_Status_en_t enKeyLeftRealStatus;
...@@ -102,7 +123,12 @@ extern uint8_t Cruiste; ...@@ -102,7 +123,12 @@ extern uint8_t Cruiste;
extern uint8_t Fault; extern uint8_t Fault;
extern uint8_t Motor_hert; extern uint8_t Motor_hert;
extern uint8_t Battery_temp; extern uint8_t Battery_temp;
extern uint8_t NFC_C_card;
extern u8_All_Flag_t All_Flag;
extern uint8_t Diagnosis_banbenhao_flag;
extern uint8_t Diagnosis_banbenhao_flag_;
extern uint16_t testtime;
......
...@@ -22,6 +22,21 @@ uint8_t Cruiste = 0; ...@@ -22,6 +22,21 @@ uint8_t Cruiste = 0;
uint8_t Fault = 0; uint8_t Fault = 0;
uint8_t Motor_hert = 0; uint8_t Motor_hert = 0;
uint8_t Battery_temp = 0; uint8_t Battery_temp = 0;
uint8_t NFC_C_card = 0;
uint8_t Diagnosis_banbenhao_flag = 0;
uint8_t Diagnosis_banbenhao_flag_ = 0;
uint8_t key_flag = 0;
u8_All_Flag_t All_Flag = {0};
// All_Flag.KEY.Key1 = 0;
uint8_t detection_protect = 0;
uint8_t Key10_Flag = 0;
uint8_t SW_Protect_flag[11]={0};
void Key_Operation_SW1(Key_Event_en_t enKeyEvent) void Key_Operation_SW1(Key_Event_en_t enKeyEvent)
{ {
/*清零ODO*/ /*清零ODO*/
...@@ -51,6 +66,11 @@ void Key_Operation_SW2(Key_Event_en_t enKeyEvent) ...@@ -51,6 +66,11 @@ void Key_Operation_SW2(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{ {
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[0] = 1;
Display_TFT_Clear();
Display_Chaka_Model();//查卡模式
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{ {
...@@ -111,6 +131,11 @@ void Key_Operation_SW6(Key_Event_en_t enKeyEvent) ...@@ -111,6 +131,11 @@ void Key_Operation_SW6(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{ {
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[1] = 1;
Check_Steps = 0;
Display_TFT_Clear();
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
...@@ -124,6 +149,12 @@ void Key_Operation_SW7(Key_Event_en_t enKeyEvent) ...@@ -124,6 +149,12 @@ void Key_Operation_SW7(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{ {
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[2] = 1;
Check_Steps = 0;
Display_TFT_Clear();
//界面学卡:
Display_interface_learning_card(20,80);
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{ {
...@@ -140,6 +171,16 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent) ...@@ -140,6 +171,16 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{ {
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[3] = 1;
Diagnosis_banbenhao_flag=1;
Display_TFT_Clear();
//版本号界面
//Display_Version_Info(1);
Display_Can_Receive_Data(5,50);
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
...@@ -188,13 +229,21 @@ void Key_Operation_SW10(Key_Event_en_t enKeyEvent) ...@@ -188,13 +229,21 @@ void Key_Operation_SW10(Key_Event_en_t enKeyEvent)
/*清零ODO*/ /*清零ODO*/
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{ {
memset(&All_Flag, 0, sizeof(All_Flag));
// All_Flag.u8flag[1] = 1;
All_Flag.u8flag[4] = 1;
if(Check_Control_Mode == 2) if(Check_Control_Mode == 2)
{
if((( All_Flag.u8flag[0] == 0) && ( All_Flag.u8flag[1] == 0)&& ( All_Flag.u8flag[2] == 0) && (( All_Flag.u8flag[3] == 0))))
{ {
Check_Steps++; Check_Steps++;
Display_flag(Check_Steps);
if(Check_Steps > Check_Couont) if(Check_Steps > Check_Couont)
{ {
Check_Steps = 0; Check_Steps = 0;
} }
}
} }
} }
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#include "api_RS485.h" #include "api_RS485.h"
#include "RTE_WDT.h" #include "RTE_WDT.h"
#include "R485_Communication_Matrix.h" #include "R485_Communication_Matrix.h"
#include "CAN_Communication_Matrix.h"
#include "CAN_APP.h"
/******************************************************************************* /*******************************************************************************
* * * *
* ϵͳ��������ģʽ(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )�����б� * * ϵͳ��������ģʽ(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )�����б� *
...@@ -119,11 +121,15 @@ uint16_t time5s = 0; ...@@ -119,11 +121,15 @@ uint16_t time5s = 0;
uint16_t IGFLAG = 0; uint16_t IGFLAG = 0;
uint16_t testtime = 0; uint16_t testtime = 0;
uint8_t can_flag = 100;
uint8_t *pcan_data = &can_flag;
uint8_t test[10] = {0x56,0x0B,0x0C,0x0D,0x1,0x2,0x3,0x4,0x05,0xFF};
void Sys_Run_Mode_100ms_Tasks_Group(void) void Sys_Run_Mode_100ms_Tasks_Group(void)
{ {
Display_PageNum(); Display_PageNum();
Display_Send_Vspead();
User_CheckMode_Service(100u); User_CheckMode_Service(100u);
//TFT_LCD_Draw_Bmp(3, 40, ( uint8_t * )gImage_Dsy_words_1X6_Y16); //TFT_LCD_Draw_Bmp(3, 40, ( uint8_t * )gImage_Dsy_words_1X6_Y16);
POWER_CTRL_KL30 = 1; POWER_CTRL_KL30 = 1;
......
...@@ -10,6 +10,12 @@ extern uint32_t bleOFFtoONtime; ...@@ -10,6 +10,12 @@ extern uint32_t bleOFFtoONtime;
extern uint8_t startONfalg; extern uint8_t startONfalg;
extern uint32_t startIGONtime; extern uint32_t startIGONtime;
extern uint8_t Openble[11]; extern uint8_t Openble[11];
extern uint8_t canData_banben[14];
extern uint16_t decimal_candata[14];
extern uint8_t can_flag;
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void); void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void);
void Sys_Run_Mode_2ms_Tasks_Group(void); void Sys_Run_Mode_2ms_Tasks_Group(void);
void Sys_Run_Mode_5ms_Tasks_Group(void); void Sys_Run_Mode_5ms_Tasks_Group(void);
......
...@@ -792,6 +792,80 @@ void RSCAN0_CH4_Receive(CAN_Frame_st_t *pstCANFrame) ...@@ -792,6 +792,80 @@ void RSCAN0_CH4_Receive(CAN_Frame_st_t *pstCANFrame)
if (g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack) if (g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack)
{ {
g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack(pstCANFrame->u32CANID, pstCANFrame->u8CANLEN, pstCANFrame->unCANData.u8CANData); g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack(pstCANFrame->u32CANID, pstCANFrame->u8CANLEN, pstCANFrame->unCANData.u8CANData);
if(Diagnosis_banbenhao_flag_==1)//准备接收第一段数据(软件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
/*第一步*/
canData2[0] = pstCANFrame->unCANData.u8CANData[5];
canData2[1] = pstCANFrame->unCANData.u8CANData[6];
canData2[2] = pstCANFrame->unCANData.u8CANData[7];
}
Diagnosis_banbenhao_flag=2;
}
if(Diagnosis_banbenhao_flag_==2)//准备接收第二段数据(软件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
/*第二步*/
if ((pstCANFrame->unCANData.u8CANData[0] == 0x21)&&(pstCANFrame->unCANData.u8CANData[1] == 0x30))
{
memcpy(canData1,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
}
for (uint8_t i = 0; i < 7; i++)
{
canData2[i + 3] = canData1[i+1];
}
/*第三步*/
canData2[10]=pstCANFrame->unCANData.u8CANData[1];
canData2[11]=pstCANFrame->unCANData.u8CANData[2];
canData2[12]=pstCANFrame->unCANData.u8CANData[3];
canData2[13]=0xFF;
}
Diagnosis_banbenhao_flag=3;
}
if(Diagnosis_banbenhao_flag_==3)//准备接收数据(硬件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
if ((pstCANFrame->unCANData.u8CANData[0] == 0x10)&&(pstCANFrame->unCANData.u8CANData[7] == 0x46))
{
memcpy(canData1,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
for (uint8_t i = 0; i < 3; i++)
{
canData3[i] = canData1[i+5];
}
}
}
Diagnosis_banbenhao_flag=4;
}
if(Diagnosis_banbenhao_flag_==4)
{
if(pstCANFrame->u32CANID==0x750u)
{
if ((pstCANFrame->unCANData.u8CANData[0] == 0x21)&&(pstCANFrame->unCANData.u8CANData[7] == 0xAA))
{
memcpy(canData4,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
// for (uint8_t i = 0; i < 6; i++)
// {
// canData3[i+3] = canData4[i+2];
// }
canData3[3] = canData4[1];
canData3[4] = canData4[2];
canData3[5] = canData4[3];
canData3[6] = canData4[4];
canData3[7] = canData4[5];
canData3[8] = canData4[6];
canData3[9]=0XFF;
}
}
}
} }
} }
void RSCAN0_CH5_Receive(CAN_Frame_st_t *pstCANFrame) void RSCAN0_CH5_Receive(CAN_Frame_st_t *pstCANFrame)
......
#new Option #new Option
#Mon Dec 16 20:50:58 CST 2024 #Thu Jun 05 08:24:11 CST 2025
IsSort=true IsSort=true
MergeFlashIsCompression=false MergeFlashIsCompression=false
ChangeAppFilePath= ChangeAppFilePath=
...@@ -31,7 +31,7 @@ IsMergeCreateBin=false ...@@ -31,7 +31,7 @@ IsMergeCreateBin=false
IsOverWrite=true IsOverWrite=true
DllFilePath= DllFilePath=
MergeAudioOutPutPath= MergeAudioOutPutPath=
MergeCanOutPutPath= MergeCanOutPutPath=D\:\\Desktop\\jiancetai
ChangeOutPutFilePath= ChangeOutPutFilePath=
MergeTelltalesOutPutPath= MergeTelltalesOutPutPath=
TTFExtractTXTpath= TTFExtractTXTpath=
......
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