Commit 6c62f4f5 authored by huangguoqing's avatar huangguoqing

Merge branch 'honda_2kfa_H_UIDWrite-16843' of...

Merge branch 'honda_2kfa_H_UIDWrite-16843' of http://tyw-server.synology.me:12345/chenjiale/jiancetai into honda_2kfa&2kga-16843
parents a7f134b1 d1704fb8
...@@ -39,7 +39,7 @@ uint8_t zhenduanflag = 0; ...@@ -39,7 +39,7 @@ uint8_t zhenduanflag = 0;
uint8_t clearOdoFlag = 0; uint8_t clearOdoFlag = 0;
uint8_t connectbleFlag = 0; uint8_t connectbleFlag = 0;
uint8_t Auto_ONOFF = 0; uint8_t Auto_ONOFF = 0;
uint32_t key_value;
uint8_t key_array[4]; uint8_t key_array[4];
uint8_t seed_value[4]; uint8_t seed_value[4];
uint8_t zhenduansendStep = 0; uint8_t zhenduansendStep = 0;
...@@ -51,14 +51,14 @@ uint8_t blename[5]; ...@@ -51,14 +51,14 @@ uint8_t blename[5];
uint16_t lightnumber = 0; uint16_t lightnumber = 0;
void get_key(void) void get_key(void)
{ {
key_array[0] = seed_value[0] | seed_value[3]; // key_array[0] = seed_value[0] | seed_value[3];
key_array[1] = (seed_value[1] >> 1) | (seed_value[2] << 1); // key_array[1] = (seed_value[1] >> 1) | (seed_value[2] << 1);
key_array[2] = (seed_value[2] >> 2) | (seed_value[1] << 2); // key_array[2] = (seed_value[2] >> 2) | (seed_value[1] << 2);
key_array[3] = (seed_value[3] >> 3) | (seed_value[0] << 3); // key_array[3] = (seed_value[3] >> 3) | (seed_value[0] << 3);
key_value = ((uint32_t)key_array[0] << 24U); // key_value = ((uint32_t)key_array[0] << 24U);
key_value = key_value | ((uint32_t)key_array[1] << 16U); // key_value = key_value | ((uint32_t)key_array[1] << 16U);
key_value = key_value | ((uint32_t)key_array[2] << 8U); // key_value = key_value | ((uint32_t)key_array[2] << 8U);
key_value = key_value | (uint32_t)key_array[3]; // key_value = key_value | (uint32_t)key_array[3];
} }
void datacheck(void) void datacheck(void)
{ {
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
#include "RSCAN.h" #include "RSCAN.h"
#include "Key.h" #include "Key.h"
#include "Display_Info.h" #include "Display_Info.h"
#include "string.h"
#include "RSCAN.h"
uint8_t CrcCheckSum(uint8_t *data, uint8_t len) uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
{ {
uint8_t crc = 0xff; uint8_t crc = 0xff;
...@@ -121,23 +121,25 @@ void Can_Set_Buff_042(uint8_t CopyData []) ...@@ -121,23 +121,25 @@ void Can_Set_Buff_042(uint8_t CopyData [])
pCANMsg->Msg [ i ] = 0u; pCANMsg->Msg [ i ] = 0u;
} }
} }
if(Tcs == 1)/**/ if(Tcs == 1)/*TCS指示灯开启*/
{ {
pCANMsg->Sig.TCS = 1; pCANMsg->Sig.TCS = 0;
pCANMsg->Sig.Tcs_mode = 0; pCANMsg->Sig.Tcs_mode = 1;
pCANMsg->Sig.Tcs_Control = 0;
} }
else if(Tcs == 2)/**/ else if(Tcs == 2)/*禁止TCS指示灯开启*/
{ {
pCANMsg->Sig.TCS = 0;//
pCANMsg->Sig.Tcs_mode = 0; pCANMsg->Sig.Tcs_mode = 0;
pCANMsg->Sig.Tcs_Control = 0; pCANMsg->Sig.TCS = 1;
} }
else else if(Tcs == 3)/*全亮*/
{ {
pCANMsg->Sig.TCS = 0; pCANMsg->Sig.TCS = 0;
pCANMsg->Sig.Tcs_mode = 0; pCANMsg->Sig.Tcs_mode = 0;
pCANMsg->Sig.Tcs_Control = 0; }
else/*熄灭*/
{
pCANMsg->Sig.TCS = 1;
pCANMsg->Sig.Tcs_mode = 1;
} }
pCANMsg->Msg[7] = 0xff; pCANMsg->Msg[7] = 0xff;
} }
...@@ -206,10 +208,10 @@ void Can_Set_Buff_280(uint8_t CopyData []) ...@@ -206,10 +208,10 @@ void Can_Set_Buff_280(uint8_t CopyData [])
; ;
} }
if(Tcs == 1) // if(Tcs == 1)
{ // {
pCANMsg->Sig.Tcs_Status = 1; // pCANMsg->Sig.Tcs_Status = 1;
} // }
if(Side_bracket == 1) if(Side_bracket == 1)
{ {
pCANMsg->Sig.Side_bracket280 = 1; pCANMsg->Sig.Side_bracket280 = 1;
...@@ -283,7 +285,7 @@ void Can_Set_Buff_202(uint8_t CopyData []) ...@@ -283,7 +285,7 @@ void Can_Set_Buff_202(uint8_t CopyData [])
if(Side_bracket == 1) if(Side_bracket == 1)
{ {
pCANMsg->Sig.Side_bracket202 = 1; pCANMsg->Sig.Side_bracket202 = 0;
} }
// pCANMsg->Msg[1]=0Xff; // pCANMsg->Msg[1]=0Xff;
} }
...@@ -306,11 +308,14 @@ void Can_Set_Buff_001(uint8_t CopyData []) ...@@ -306,11 +308,14 @@ void Can_Set_Buff_001(uint8_t CopyData [])
{ {
pCANMsg->Sig.Motor_hert = 1; pCANMsg->Sig.Motor_hert = 1;
} }
if( Energy_recovery== 2)/*能量回收*/ if(( Energy_recovery== 2) || ( Energy_recovery== 1) || ( Energy_recovery== 3))/*能量回收*/
{ {
pCANMsg->Sig.Msg_0x001_2b3t = 1; pCANMsg->Sig.Msg_0x001_2b3t = 1;
} }
if(motor_hot == 1)
{
pCANMsg->Sig.Msg_0x001_2b4t = 1;
}
} }
void Can_Set_Buff_021(uint8_t CopyData []) void Can_Set_Buff_021(uint8_t CopyData [])
...@@ -468,8 +473,42 @@ extern uint8_t Data_786_2[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA}; ...@@ -468,8 +473,42 @@ 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_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}; extern uint8_t Data_786_4[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
/*解锁UID*/
extern uint8_t Data_786_5[8]= {0x02,0x10,0x02,0xAA,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_6[8]= {0x02,0x27,0x05,0xAA,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_7[8]= {0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_8[8]= {0x10,0x23,0x2E,0x10,0x88,0x32,0x30,0x30};
extern uint8_t Data_786_9[8]= {0x21,0x30,0x30,0x30,0x30,0x30,0x30,0x30};
extern uint8_t Data_786_10[8]= {0x22,0x30,0x31,0x32,0x30,0x32,0x35,0x30};
extern uint8_t Data_786_11[8]= {0x23,0x36,0x31,0x39,0x30,0x30,0x30,0x30};
extern uint8_t Data_786_12[8]= {0x24,0x30,0x30,0x30,0x30,0x30,0x30,0x31};
extern uint8_t Data_786_13[8]= {0x25,0x31,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_14[8]= {0x03,0x22,0x10,0x88,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_15[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_16[8]= {0x02,0x3E,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
uint8_t UIDStep;
uint8_t uidWrite;
uint8_t UIDGetstep = 0;
uint8_t u8getUIDmsg[8];
uint8_t UIDNumber[15] = {2,0,0,0,0,0,0,0,0,0,0,1,2,0,0xFF};
void get_seed_msg(void);
void UID_ADD(void)
{
for(uint8_t i = 17; i > 1; i--)
{
if(UIDNumber2[i] < 9)
{
UIDNumber2[i] += 1;
return;
}
else
{
UIDNumber2[i] = 0;
}
}
}
uint8_t uidwriteStep = 0;
void Can_Set_Buff_786(uint8_t CopyData []) void Can_Set_Buff_786(uint8_t CopyData [])
{ {
uint8_t i = 0u; uint8_t i = 0u;
...@@ -525,11 +564,146 @@ void Can_Set_Buff_786(uint8_t CopyData []) ...@@ -525,11 +564,146 @@ void Can_Set_Buff_786(uint8_t CopyData [])
pCANMsg->Msg[i] = Data_786_4[i]; pCANMsg->Msg[i] = Data_786_4[i];
} }
Diagnosis_banbenhao_flag_ = 4; Diagnosis_banbenhao_flag_= 4;
Diagnosis_banbenhao_flag = 5; Diagnosis_banbenhao_flag = 0;
}
if(uidWrite == 1)
{
switch (UIDStep)
{
case 0:
// for(uint8_t i = 0;i < 8;i++)
// {
// pCANMsg->Msg[i] = Data_786_5[i];
// }
UIDStep++;
break;
case 1:
// for(uint8_t i = 0;i < 8;i++)
// {
// pCANMsg->Msg[i] = Data_786_6[i];
// }
UIDStep++;
break;
case 2:
// if(UIDGetstep == 1)
// {
// Data_786_7[0] = 0x06;
// Data_786_7[1] = 0x27;
// Data_786_7[2] = 0x06;
// Data_786_7[3] = seedresult[0];
// Data_786_7[4] = seedresult[1];
// Data_786_7[5] = seedresult[2];
// Data_786_7[6] = seedresult[3];
// Data_786_7[7] = 0xAA;
// for(uint8_t i = 0;i < 8;i++)
// {
// pCANMsg->Msg[i] = Data_786_7[i];
// }
UIDStep++;
UIDGetstep = 2;
// }
break;
case 3:
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_8[i];
}
UIDStep++;
break;
case 4:
if(UIDGetstep == 3)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_9[i];
}
UIDStep++;
}
break;
case 5:
Data_786_10[5] = 0x30 + UIDNumber2[0];
Data_786_10[6] = 0x30 + UIDNumber2[1];
Data_786_10[7] = 0x30 + UIDNumber2[2];
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_10[i];
}
UIDStep++;
break;
case 6:
Data_786_11[1] = 0x30 + UIDNumber2[3];
Data_786_11[2] = 0x30 + UIDNumber2[4];
Data_786_11[3] = 0x30 + UIDNumber2[5];
Data_786_11[4] = 0x30 + UIDNumber2[6];
Data_786_11[5] = 0x30 + UIDNumber2[7];
Data_786_11[6] = 0x30 + UIDNumber2[8];
Data_786_11[7] = 0x30 + UIDNumber2[9];
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_11[i];
}
UIDStep++;
break;
case 7:
Data_786_12[1] = 0x30 + UIDNumber2[10];
Data_786_12[2] = 0x30 + UIDNumber2[11];
Data_786_12[3] = 0x30 + UIDNumber2[12];
Data_786_12[4] = 0x30 + UIDNumber2[13];
Data_786_12[5] = 0x30 + UIDNumber2[14];
Data_786_12[6] = 0x30 + UIDNumber2[15];
Data_786_12[7] = 0x30 + UIDNumber2[16];
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_12[i];
}
UIDStep++;
break;
case 8:
Data_786_13[1] = 0x30 + UIDNumber2[17];
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_13[i];
}
UIDGetstep = 4;
UIDStep++;
break;
default:
UIDStep = 0;
break;
}
} }
if(writeflag == 1)
{
switch (uidwriteStep)
{
case 0:
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_14[i];
}
break;
case 1:
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_15[i];
}
break;
default:
break;
// case 6:
// for(uint8_t i = 0;i < 8;i++)
// {
// pCANMsg->Msg[i] = Data_786_16[i];
// }
// writeflag = 0;
// break;
}
}
} }
void Can_Set_Buff_207(uint8_t CopyData []) void Can_Set_Buff_207(uint8_t CopyData [])
...@@ -547,18 +721,25 @@ void Can_Set_Buff_207(uint8_t CopyData []) ...@@ -547,18 +721,25 @@ void Can_Set_Buff_207(uint8_t CopyData [])
pCANMsg->Msg [ i ] = 0u; pCANMsg->Msg [ i ] = 0u;
} }
} }
if(Tcs == 1) if(Tcs == 1) //TCS
{ {
pCANMsg->Sig.Tcs_mode = 1; pCANMsg->Sig.Tcs_mode = 1;
pCANMsg->Sig.Tcs_Control = 1; pCANMsg->Sig.TCS = 0;
} }
else if(Tcs == 2) else if(Tcs == 2) //禁止TCS
{ {
pCANMsg->Sig.Tcs_Control = 1; pCANMsg->Sig.Tcs_mode = 0;
pCANMsg->Sig.TCS = 1;
} }
else else if(Tcs == 3) //禁止TCS
{ {
; pCANMsg->Sig.Tcs_mode = 0;
pCANMsg->Sig.TCS = 0;
}
else //熄灭
{
pCANMsg->Sig.Tcs_mode = 1;
pCANMsg->Sig.TCS = 1;
} }
} }
......
...@@ -164,7 +164,8 @@ typedef union ...@@ -164,7 +164,8 @@ typedef union
//uint64_t :8;/*2byte*/ //uint64_t :8;/*2byte*/
uint64_t :3; uint64_t :3;
uint64_t Msg_0x001_2b3t:1; uint64_t Msg_0x001_2b3t:1;
uint64_t :4; uint64_t Msg_0x001_2b4t:1;
uint64_t :3;
uint64_t :8; uint64_t :8;
uint64_t :8; uint64_t :8;
...@@ -246,6 +247,8 @@ typedef union ...@@ -246,6 +247,8 @@ typedef union
{ {
uint64_t :8; uint64_t :8;
uint64_t :8; uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t TCS:4; uint64_t TCS:4;
uint64_t :2; uint64_t :2;
...@@ -255,11 +258,10 @@ typedef union ...@@ -255,11 +258,10 @@ typedef union
uint64_t :8; uint64_t :8;
uint64_t :8; uint64_t :8;
uint64_t :8; uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig; } Sig;
} CANMsg207Union; } CANMsg207Union;
extern uint8_t UIDNumber[15];
void CAN_MSG_COUNTER_PLUS(void); void CAN_MSG_COUNTER_PLUS(void);
uint8_t CrcCheckSum(uint8_t *data, uint8_t len); uint8_t CrcCheckSum(uint8_t *data, uint8_t len);
...@@ -279,9 +281,12 @@ void Can_Set_Buff_786(uint8_t CopyData []); ...@@ -279,9 +281,12 @@ void Can_Set_Buff_786(uint8_t CopyData []);
void Can_Set_Buff_207(uint8_t CopyData []); void Can_Set_Buff_207(uint8_t CopyData []);
void CAN_Msg_Steps_100ms(); void CAN_Msg_Steps_100ms();
extern void UID_ADD(void);
extern uint8_t uidWrite;
extern uint8_t UIDGetstep;
extern uint8_t VSpeed; extern uint8_t VSpeed;
extern uint8_t Student_Card; extern uint8_t Student_Card;
extern uint8_t UIDStep;
extern uint8_t writeflag;
// uint8_t Student_Card_Last; // uint8_t Student_Card_Last;
#endif #endif
...@@ -51,6 +51,7 @@ extern uint8_t Get_CAN_CH4_ID_450_Mileage(void); ...@@ -51,6 +51,7 @@ extern uint8_t Get_CAN_CH4_ID_450_Mileage(void);
#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 #define CAN_CH4_ID_750_Msg 0x750u
#define CAN_CH4_ID_786_Msg 0x786u
extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID); extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID);
......
...@@ -32,7 +32,7 @@ uint16_t decimal_candata[14]; ...@@ -32,7 +32,7 @@ uint16_t decimal_candata[14];
uint8_t canData1[8];//暂存软件版本号数据用 uint8_t canData1[8];//暂存软件版本号数据用
uint8_t canData4[8];//暂存硬件版本号数据用 uint8_t canData4[8];//暂存硬件版本号数据用
uint8_t canData2[14]; uint8_t canData2[14];
uint8_t canData3[10]; uint8_t canData3[20];
uint8_t can_car_Data[8]; uint8_t can_car_Data[8];
...@@ -209,6 +209,17 @@ const unsigned char gImage_Dyy_words_5X6_Y137[]={/*Byte Size204*/ ...@@ -209,6 +209,17 @@ const unsigned char gImage_Dyy_words_5X6_Y137[]={/*Byte Size204*/
0X78U,0X00U,0X00U,0X18U,0X38U,0X38U,0X10U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U, 0X78U,0X00U,0X00U,0X18U,0X38U,0X38U,0X10U,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,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,};
//UID写入
const unsigned char gImage_Dyy_words_3X6_Y88[]={/*Byte Size204*/
62U,16U,
0X10U,0Xf0U,0X10U,0X00U,0X10U,0Xf0U,0X10U,0X00U,0X10U,0Xf0U,0X10U,0X00U,0X10U,0Xf0U,0X10U,0X00U,
0X10U,0X10U,0Xf0U,0X10U,0X10U,0X00U,0X10U,0Xf0U,0X10U,0X10U,0X10U,0X20U,0Xc0U,0X00U,0X0cU,0X04U,
0X84U,0X74U,0X24U,0X24U,0X24U,0X24U,0X24U,0X24U,0X24U,0X04U,0X0cU,0X00U,0X00U,0X00U,0X00U,0X00U,
0X02U,0XccU,0X30U,0Xc0U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X80U,0X80U,0X00U,0X1fU,
0X20U,0X20U,0X20U,0X1fU,0X00U,0X00U,0X00U,0X1fU,0X20U,0X20U,0X20U,0X1fU,0X00U,0X00U,0X20U,0X20U,
0X3fU,0X20U,0X20U,0X00U,0X20U,0X3fU,0X20U,0X20U,0X20U,0X10U,0X0fU,0X00U,0X08U,0X08U,0X09U,0X09U,
0X09U,0X09U,0X09U,0X09U,0X09U,0X49U,0X41U,0X3fU,0X00U,0X00U,0X40U,0X20U,0X10U,0X0cU,0X03U,0X00U,
0X00U,0X00U,0X03U,0X0cU,0X10U,0X20U,0X40U,0X00U,0X00U,0X00U,0X31U,0X31U,};
//10V输出电压: //10V输出电压:
const unsigned char gImage_Dyy_words_6X6_Y165[]={/*Byte Size204*/ const unsigned char gImage_Dyy_words_6X6_Y165[]={/*Byte Size204*/
101U,16U, 101U,16U,
...@@ -1587,15 +1598,16 @@ const unsigned char gImage_gImage_SV1X6_Y16[]={/*Byte Size458*/ ...@@ -1587,15 +1598,16 @@ const unsigned char gImage_gImage_SV1X6_Y16[]={/*Byte Size458*/
0X00U,0X00U,0X00U,0X08U,0X1fU,0X0fU,0X0cU,0X06U,0X07U,0X03U,0X01U,0X00U,0X00U,0X07U,0X0fU,0X08U, 0X00U,0X00U,0X00U,0X08U,0X1fU,0X0fU,0X0cU,0X06U,0X07U,0X03U,0X01U,0X00U,0X00U,0X07U,0X0fU,0X08U,
0X08U,0X08U,0X08U,0X08U,0X0fU,0X07U,0X03U,0X00U,}; 0X08U,0X08U,0X08U,0X08U,0X0fU,0X07U,0X03U,0X00U,};
const unsigned char gImage_gImage_TCS1X6_Y16[]={/*Byte Size82*/ const unsigned char gImage_icon_14X0_Y0[]={/*Byte Size128*/
20U,32U, 42U,24U,
0X00U,0X00U,0X00U,0X08U,0Xc8U,0Xe8U,0X68U,0X7fU,0X7fU,0X7fU,0X7fU,0X7fU,0X68U,0Xe8U,0Xc8U,0X08U, 0X00U,0X18U,0X18U,0X18U,0X18U,0X18U,0Xf8U,0Xf8U,0X18U,0X18U,0X18U,0X18U,0X18U,0X00U,0X00U,0X00U,
0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0XffU,0XffU,0Xf0U,0X60U,0Xa0U,0Xa0U,0Xa0U,0X60U, 0Xc0U,0Xe0U,0X70U,0X30U,0X18U,0X18U,0X18U,0X18U,0X18U,0X30U,0X30U,0X00U,0X00U,0X00U,0Xe0U,0Xf0U,
0Xe0U,0XffU,0XffU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X80U,0X80U,0X80U,0Xc3U,0Xc3U,0Xc3U,0Xc0U, 0X30U,0X18U,0X18U,0X18U,0X18U,0X18U,0X30U,0X30U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,
0X5fU,0X5fU,0X1fU,0X0fU,0X00U,0X03U,0X03U,0X00U,0X00U,0X00U,0X00U,0X00U,0X03U,0X03U,0X03U,0X03U, 0XffU,0XffU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X7eU,0XffU,0X81U,0X00U,0X00U,0X00U,0X00U,
0X03U,0X07U,0X07U,0X06U,0X26U,0X26U,0X26U,0X26U,0X36U,0X3eU,0X1cU,0X1cU,0X1cU,0X1cU,0X1cU,0X08U, 0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X01U,0X07U,0X06U,0X0cU,0X1cU,0X18U,0X18U,0X38U,
}; 0X70U,0Xe0U,0Xc0U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X1fU,0X1fU,0X00U,0X00U,0X00U,0X00U,
0X00U,0X00U,0X00U,0X00U,0X03U,0X07U,0X0eU,0X0cU,0X18U,0X18U,0X18U,0X18U,0X18U,0X0cU,0X0eU,0X04U,
0X00U,0X04U,0X0eU,0X0cU,0X18U,0X18U,0X18U,0X18U,0X18U,0X18U,0X0cU,0X0fU,0X03U,0X00U,};
const unsigned char gImage_gImage_turnLeft1X6_Y16[]={/*Byte Size114*/ const unsigned char gImage_gImage_turnLeft1X6_Y16[]={/*Byte Size114*/
28U,32U, 28U,32U,
0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X80U,0Xc0U,0Xe0U,0Xf0U,0Xf8U,0XfcU,0XfeU,0XffU,0XffU,0X80U, 0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X80U,0Xc0U,0Xe0U,0Xf0U,0Xf8U,0XfcU,0XfeU,0XffU,0XffU,0X80U,
...@@ -1607,6 +1619,31 @@ const unsigned char gImage_gImage_turnLeft1X6_Y16[]={/*Byte Size114*/ ...@@ -1607,6 +1619,31 @@ const unsigned char gImage_gImage_turnLeft1X6_Y16[]={/*Byte Size114*/
0X01U,0X03U,0X03U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U, 0X01U,0X03U,0X03U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,
}; };
const unsigned char gImage_icon_16X0_Y0[]={/*Byte Size350*/
116U,24U,
0X00U,0X00U,0X80U,0Xe0U,0XfeU,0X04U,0Xf8U,0Xf8U,0X08U,0Xc8U,0Xc8U,0X08U,0Xf8U,0Xf8U,0X00U,0X00U,
0Xf0U,0Xf0U,0X00U,0X00U,0XfcU,0XfcU,0X00U,0X00U,0X40U,0X40U,0X40U,0XfeU,0XfeU,0X40U,0X40U,0Xf0U,
0Xf0U,0X96U,0X9cU,0X90U,0X90U,0X9eU,0X9eU,0X90U,0X90U,0X98U,0X9eU,0X14U,0Xf2U,0Xf0U,0X00U,0X40U,
0X40U,0X40U,0XfeU,0XfeU,0X40U,0X40U,0X40U,0X00U,0XfeU,0XfeU,0X20U,0X30U,0X30U,0X30U,0X10U,0X18U,
0X18U,0X08U,0X08U,0Xc8U,0Xc0U,0X00U,0X00U,0X00U,0X00U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,
0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0X00U,0X00U,0X00U,0X00U,0X00U,0Xe0U,0Xe0U,
0X00U,0XfeU,0XfeU,0X00U,0X80U,0Xe0U,0X20U,0X08U,0X08U,0X08U,0X08U,0X08U,0X08U,0Xf8U,0Xf8U,0X08U,
0X08U,0X08U,0X08U,0X00U,0X08U,0X1eU,0X07U,0XffU,0XffU,0X00U,0XffU,0XffU,0X00U,0XffU,0XffU,0X00U,
0XffU,0XffU,0X00U,0X00U,0XffU,0XffU,0X00U,0X00U,0XffU,0XffU,0X00U,0X00U,0X60U,0X70U,0X30U,0XffU,
0XffU,0X18U,0X08U,0X80U,0X90U,0X97U,0X97U,0X94U,0X94U,0Xf4U,0Xf4U,0X94U,0X94U,0X97U,0X8fU,0X88U,
0X90U,0X80U,0X20U,0Xc0U,0X60U,0X60U,0XffU,0XffU,0X30U,0X30U,0X18U,0X00U,0Xe1U,0Xe3U,0X22U,0X22U,
0X22U,0X22U,0X22U,0X22U,0X22U,0X22U,0Xe2U,0Xe3U,0X01U,0X00U,0X02U,0X02U,0X02U,0X82U,0Xf2U,0X62U,
0X02U,0X02U,0X02U,0X02U,0XfeU,0XfeU,0X02U,0X02U,0X02U,0X22U,0X72U,0Xe2U,0X82U,0X02U,0X02U,0X02U,
0X00U,0X0eU,0X0fU,0X01U,0Xc0U,0XffU,0XffU,0X82U,0X07U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,
0X00U,0XffU,0XffU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X7fU,0X7fU,0X00U,0X43U,0X23U,
0X18U,0X0fU,0X01U,0X18U,0X33U,0X63U,0X40U,0X00U,0X03U,0X43U,0X40U,0X40U,0X7fU,0X3fU,0X00U,0X00U,
0X40U,0X40U,0X40U,0X7fU,0X7fU,0X00U,0X00U,0X04U,0X04U,0X04U,0X44U,0X44U,0X44U,0X7fU,0X7fU,0X04U,
0X04U,0X04U,0X04U,0X04U,0X04U,0X04U,0X04U,0X40U,0X40U,0X40U,0X7fU,0X7fU,0X00U,0X00U,0X00U,0X00U,
0X7fU,0X7fU,0X22U,0X22U,0X22U,0X22U,0X22U,0X22U,0X22U,0X22U,0X7fU,0X7fU,0X00U,0X00U,0X08U,0X1cU,
0X07U,0X03U,0X01U,0X00U,0X20U,0X20U,0X20U,0X20U,0X3fU,0X3fU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,
0X03U,0X1fU,0X0cU,0X00U,0X00U,0X30U,0X38U,0X1eU,0X0fU,0X03U,0X00U,0X03U,0X07U,0X0eU,0X04U,0X00U,
0X20U,0X20U,0X20U,0X20U,0X20U,0X3fU,0X1fU,0X00U,0X00U,0X00U,0X00U,0X00U,};
const unsigned char gImage_gImage_turnRight1X6_Y16[]={/*Byte Size114*/ const unsigned char gImage_gImage_turnRight1X6_Y16[]={/*Byte Size114*/
28U,32U, 28U,32U,
0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0XffU,0XffU,0XfeU,0XfcU, 0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0X80U,0XffU,0XffU,0XfeU,0XfcU,
...@@ -3060,6 +3097,11 @@ void Display_TFT_Clear(void) ...@@ -3060,6 +3097,11 @@ void Display_TFT_Clear(void)
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR); TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
} }
void Display_SUCCESS_Clear(void)
{
TFT_LCD_Draw_Box(0, 200, 239, 225, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
void Display_Add(void) void Display_Add(void)
{ {
Display_Menu_Type++; Display_Menu_Type++;
...@@ -4073,8 +4115,17 @@ void Display_Version_Info(uint32_t ON_OFF) ...@@ -4073,8 +4115,17 @@ void Display_Version_Info(uint32_t ON_OFF)
} }
uint8_t UUIDX = 170;
uint8_t UIDNumber2[19] = {2,5,0,6,1,9,0,0,0,0,0,0,0,0,0,0,1,1,0xFF};
uint8_t UIDNumberread[33];
void UIDDisplay(void)
{
General_Number_Disp(UIDNumber, 3, 50); //固定UID数字
General_Number_Disp(UIDNumber2, 3, 75); //可调UID数字
uint8_t UUIDS[2] = {45,0xFF};
General_Number_Disp(UUIDS, UUIDX, 90); //UID下——
TFT_LCD_Draw_Bmp(3, 25, ( uint8_t * )gImage_Dyy_words_3X6_Y88 ); //UID写入
}
...@@ -4644,7 +4695,7 @@ const uint16_t CurrentDigitNum15PosX_2[] = {108, 98}; ...@@ -4644,7 +4695,7 @@ const uint16_t CurrentDigitNum15PosX_2[] = {108, 98};
uint8_t Detecting_Set_Version[5]={0x56, 0x31, 0x30, 0x32, 0xff}; uint8_t Detecting_Set_Version[5]={0x56, 0x31, 0x30, 0x32, 0xff};
void Display_Can_Receive_Data(uint16_t X,uint8_t Y) void Display_Can_Receive_Data(uint16_t X,uint8_t Y)
{ {
if(canData3[9] == 0XFF && canData2[13] == 0XFF && All_Flag.u8flag[8] == 1) if(canData3[19] == 0XFF && canData2[13] == 0XFF && All_Flag.u8flag[8] == 1)
{ {
General_Number_Disp(canData2, X+70, Y); General_Number_Disp(canData2, X+70, Y);
General_Number_Disp(canData3, X+70, Y +50); General_Number_Disp(canData3, X+70, Y +50);
...@@ -4699,7 +4750,7 @@ void Display_flag(uint8_t Check_Steps) ...@@ -4699,7 +4750,7 @@ void Display_flag(uint8_t Check_Steps)
case 2://远光\TCS case 2://远光\TCS
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮 TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮
TFT_LCD_Draw_Bmp(20, 50, ( uint8_t * )gImage_gImage_highBeanX6_Y165); TFT_LCD_Draw_Bmp(20, 50, ( uint8_t * )gImage_gImage_highBeanX6_Y165);
TFT_LCD_Draw_Bmp(80, 50, ( uint8_t * )gImage_gImage_TCS1X6_Y16); TFT_LCD_Draw_Bmp(20, 100, ( uint8_t * )gImage_icon_14X0_Y0);
break; break;
case 3://TCS关闭 电池温度过高 case 3://TCS关闭 电池温度过高
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮 TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮
...@@ -4714,7 +4765,9 @@ void Display_flag(uint8_t Check_Steps) ...@@ -4714,7 +4765,9 @@ void Display_flag(uint8_t Check_Steps)
case 5://能源回收(白) 边撑 case 5://能源回收(白) 边撑
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮 TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮
TFT_LCD_Draw_Bmp(20, 50, ( uint8_t * )gImage_jct_nenglianghuishouX0_Y0_); TFT_LCD_Draw_Bmp(20, 50, ( uint8_t * )gImage_jct_nenglianghuishouX0_Y0_);
TFT_LCD_Draw_Bmp(80, 60, ( uint8_t * )gImage_gImage_BianchengX6_Y165); // TFT_LCD_Draw_Bmp(80, 60, ( uint8_t * )gImage_gImage_BianchengX6_Y165);
TFT_LCD_Draw_Bmp(20, 100, ( uint8_t * )gImage_icon_16X0_Y0);
break; break;
case 6://能源回收(蓝) 定速巡航 case 6://能源回收(蓝) 定速巡航
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮 TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);//清除全亮
...@@ -4750,7 +4803,7 @@ void Display_flag(uint8_t Check_Steps) ...@@ -4750,7 +4803,7 @@ void Display_flag(uint8_t Check_Steps)
TFT_LCD_Draw_Bmp(140, 40, ( uint8_t * )gImage_gImage_turnRight1X6_Y16); TFT_LCD_Draw_Bmp(140, 40, ( uint8_t * )gImage_gImage_turnRight1X6_Y16);
TFT_LCD_Draw_Bmp(20, 80, ( uint8_t * )gImage_gImage_highBeanX6_Y165); TFT_LCD_Draw_Bmp(20, 80, ( uint8_t * )gImage_gImage_highBeanX6_Y165);
TFT_LCD_Draw_Bmp(80, 80, ( uint8_t * )gImage_gImage_TCS1X6_Y16); TFT_LCD_Draw_Bmp(80, 80, ( uint8_t * )gImage_icon_14X0_Y0);
TFT_LCD_Draw_Bmp(140,80, ( uint8_t * )gImage_jct_TCS_closeX0_Y0_); TFT_LCD_Draw_Bmp(140,80, ( uint8_t * )gImage_jct_TCS_closeX0_Y0_);
TFT_LCD_Draw_Bmp(20, 120, ( uint8_t * )gImage_dianchiguoreX0_Y0_); TFT_LCD_Draw_Bmp(20, 120, ( uint8_t * )gImage_dianchiguoreX0_Y0_);
...@@ -4758,7 +4811,7 @@ void Display_flag(uint8_t Check_Steps) ...@@ -4758,7 +4811,7 @@ void Display_flag(uint8_t Check_Steps)
TFT_LCD_Draw_Bmp(140,120, ( uint8_t * )gImage_CHONGDIAN_X0_Y0_); TFT_LCD_Draw_Bmp(140,120, ( uint8_t * )gImage_CHONGDIAN_X0_Y0_);
TFT_LCD_Draw_Bmp(20, 160, ( uint8_t * )gImage_jct_nenglianghuishouX0_Y0_); TFT_LCD_Draw_Bmp(20, 160, ( uint8_t * )gImage_jct_nenglianghuishouX0_Y0_);
TFT_LCD_Draw_Bmp(80, 165, ( uint8_t * )gImage_gImage_BianchengX6_Y165); TFT_LCD_Draw_Bmp(20, 280, ( uint8_t * )gImage_icon_16X0_Y0);
TFT_LCD_Draw_Bmp(140,170, ( uint8_t * )gImage_gImage_READY1X6_Y16); TFT_LCD_Draw_Bmp(140,170, ( uint8_t * )gImage_gImage_READY1X6_Y16);
TFT_LCD_Draw_Bmp(20, 210, ( uint8_t * )gImage_gImage_zcguzhang1X6_Y16); TFT_LCD_Draw_Bmp(20, 210, ( uint8_t * )gImage_gImage_zcguzhang1X6_Y16);
......
...@@ -52,10 +52,12 @@ extern uint32_t odo_val_Back ; ...@@ -52,10 +52,12 @@ extern uint32_t odo_val_Back ;
void GeneralInfoDisp(unsigned char *p, unsigned short x, unsigned short y); void GeneralInfoDisp(unsigned char *p, unsigned short x, unsigned short y);
void Display_Title_Info(void); void Display_Title_Info(void);
void Display_Version_Info(uint32_t ON_OFF); void Display_Version_Info(uint32_t ON_OFF);
extern void UIDDisplay();
extern void HW_Static_Current_Check(uint32_t cmd); extern void HW_Static_Current_Check(uint32_t cmd);
void HW_Voltage_Check(uint32_t cmd); void HW_Voltage_Check(uint32_t cmd);
void Display_TFT_Clear(void); void Display_TFT_Clear(void);
extern void Display_SUCCESS_Clear(void);
void Display_Add(void); void Display_Add(void);
unsigned int Get_Display_Type(void); unsigned int Get_Display_Type(void);
void General_Number_Disp(unsigned char *p, unsigned short x, unsigned short y); void General_Number_Disp(unsigned char *p, unsigned short x, unsigned short y);
...@@ -114,9 +116,11 @@ typedef struct { ...@@ -114,9 +116,11 @@ typedef struct {
} Learning_Card; } Learning_Card;
extern uint8_t canData1[8]; extern uint8_t canData1[8];
extern uint8_t canData2[14]; extern uint8_t canData2[14];
extern uint8_t canData3[10]; extern uint8_t canData3[20];
extern uint8_t canData4[8]; extern uint8_t canData4[8];
extern uint8_t UUIDX;
extern uint8_t UIDNumber2[19];
extern uint8_t UIDNumberread[33];
extern uint8_t can_car_return_Data[8]; extern uint8_t can_car_return_Data[8];
#define PCodeText_Space_size 2//故障文字 英文空格的像素数 #define PCodeText_Space_size 2//故障文字 英文空格的像素数
#endif #endif
...@@ -123,6 +123,7 @@ extern uint16_t Eletricity; ...@@ -123,6 +123,7 @@ extern uint16_t Eletricity;
extern uint8_t Hour; extern uint8_t Hour;
extern uint8_t Tcs; extern uint8_t Tcs;
extern uint8_t Energy_recovery; extern uint8_t Energy_recovery;
extern uint8_t motor_hot;
extern uint8_t Gear; extern uint8_t Gear;
extern uint8_t Ready; extern uint8_t Ready;
extern uint8_t Cruiste; extern uint8_t Cruiste;
...@@ -135,6 +136,7 @@ extern uint8_t Hill_Descent_control; ...@@ -135,6 +136,7 @@ extern uint8_t Hill_Descent_control;
extern uint8_t bluetooth_phone; extern uint8_t bluetooth_phone;
extern uint8_t key_flag; extern uint8_t key_flag;
extern uint8_t UIDMondel;
extern u8_All_Flag_t All_Flag; extern u8_All_Flag_t All_Flag;
extern uint8_t Diagnosis_banbenhao_flag; extern uint8_t Diagnosis_banbenhao_flag;
...@@ -143,7 +145,7 @@ extern uint16_t testtime; ...@@ -143,7 +145,7 @@ extern uint16_t testtime;
extern uint8_t canData1[8]; extern uint8_t canData1[8];
extern uint8_t canData2[14]; extern uint8_t canData2[14];
extern uint8_t canData3[10]; extern uint8_t canData3[20];
extern uint8_t canData4[8]; extern uint8_t canData4[8];
extern uint32_t Quiescent_Current[5]; extern uint32_t Quiescent_Current[5];
...@@ -153,7 +155,10 @@ extern uint8_t can_car_Data[8]; ...@@ -153,7 +155,10 @@ extern uint8_t can_car_Data[8];
extern const unsigned char gImage_Dyy_words_1X6_Y16[]; extern const unsigned char gImage_Dyy_words_1X6_Y16[];
extern const unsigned char gImage_Dyy_words_2X6_Y46[]; extern const unsigned char gImage_Dyy_words_2X6_Y46[];
extern const unsigned char gImage_Dyy_words_5X6_Y137[]; extern const unsigned char gImage_Dyy_words_5X6_Y137[];
extern const unsigned char gImage_Dyy_words_3X6_Y88[];
extern uint8_t Study_Flag; extern uint8_t Study_Flag;
extern uint8_t Require_card_flag; extern uint8_t Require_card_flag;
extern uint8_t writeflag;
extern uint8_t uidwriteStep;
#endif #endif
...@@ -7,24 +7,157 @@ ...@@ -7,24 +7,157 @@
#include "RSCAN_Table.h" #include "RSCAN_Table.h"
#include "Check_Ctrl.h" #include "Check_Ctrl.h"
#define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 100U /* Bus-off ???100ms */
#define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U /* Bus-off???1000ms */
void RSCAN0_CH4_Abort_All(void)
{
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_0);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_1);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_2);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_3);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_4);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_5);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_6);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_7);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_8);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_9);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_10);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_11);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_12);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_13);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_14);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_15);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_16);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_17);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_18);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_19);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_20);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_21);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_22);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_23);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_24);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_25);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_26);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_27);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_28);
RSCAN0_CH4_Abort(RSCAN_CHANNEL_BUF_29);
}
BusOffMonitorStruct BusOffMonitor; // BusOff监控结构体 BusOffMonitorStruct BusOffMonitor; // BusOff监控结构体
static uint8_t BusOffCnt = 0u; // static uint8_t BusOffCnt = 0u;
// //初始化Bus Off监控结构体
// void BusOff_Init(void)
// {
// //重置相关信息
// BusOffMonitor.Status = BUS_OFF_STATUS_STABLE;
// BusOffMonitor.Timer = 0;
// BusOffMonitor.Cnt = 0;
// BusOffCnt = 0;
// }
uint8_t UDS_DtcBusoffCnt;
static uint8_t BusOffCnt = 0u;
// OSEK BusOff的判断,只需判断无需进行恢复操作
//初始化Bus Off监控结构体 //初始化Bus Off监控结构体
void BusOff_Init(void) void BusOff_Init(void)
{ {
//重置相关信息 //重置相关信息
BusOffMonitor.Status = BUS_OFF_STATUS_STABLE; BusOffMonitor.Status = BUS_OFF_STATUS_STABLE;
BusOffMonitor.Timer = 0; BusOffMonitor.Timer = 0;
BusOffMonitor.Cnt = 0; BusOffMonitor.Cnt = 0;
BusOffCnt = 0; BusOffCnt = 0;
UDS_DtcBusoffCnt = 0u;
// end
} }
void Can_BusOffRecover(void)
{
BusOffMonitor.Cnt = 0u;
BusOffMonitor.Status = 0u;
BusOffMonitor.Timer = 0u;
UDS_DtcBusoffCnt = 0u;
}
uint8_t GetBusOffState(void)
{
uint8_t rscan_st;
rscan_st = RSCAN0_CH4_Get_Busoff_Status();
return rscan_st;
}
void CanBusoffRecover(void)
{
RSCAN0_CH4_Busoff_Recover();
}
// OSEK BusOff的判断,只需判断无需进行恢复操作 // OSEK BusOff的判断,只需判断无需进行恢复操作
void BusOff_Service(void) void BusOff_Service(void)
{ {
RSCAN0_CH4_Busoff_Recover( ); if (GetBusOffState() != 0u)
RSCAN0_CH1_Busoff_Recover( ); {
RSCAN0_CH2_Busoff_Recover( ); RSCAN0_CH4_Abort_All();
BusOffMonitor.RecoverCnt = 0u;
if (BusOffMonitor.Status == BUS_OFF_STATUS_STABLE)
{
BusOffMonitor.Status = BUS_OFF_STATUS_LV1;
}
if (BusOffMonitor.Status == BUS_OFF_STATUS_LV1)
{
BusOffMonitor.Timer++;
if (BusOffMonitor.Timer >= RSCAN0_BUS_OFF_LV1_RECOVERY_TIME / 10U)
{
BusOffMonitor.Timer = 0U;
Can_QuickTimer_Init();
CanBusoffRecover();
if(UDS_DtcBusoffCnt <= 100u)
{
UDS_DtcBusoffCnt ++;
}
BusOffMonitor.Cnt++;
if (BusOffMonitor.Cnt >= 10U)
{
BusOffMonitor.Cnt = 0U;
BusOffMonitor.Status = BUS_OFF_STATUS_LV2;
}
}
}
else if (BusOffMonitor.Status == BUS_OFF_STATUS_LV2)
{
BusOffMonitor.Timer++;
if (BusOffMonitor.Timer >= RSCAN0_BUS_OFF_LV2_RECOVERY_TIME / 10U)
{
BusOffMonitor.Timer = 0U;
Can_QuickTimer_Init();
CanBusoffRecover();
if(UDS_DtcBusoffCnt <= 100u)
{
UDS_DtcBusoffCnt ++;
}
}
}
}
else
{
if(BusOffMonitor.RecoverCnt < 2u)
{
BusOffMonitor.RecoverCnt ++;
}
else
{
BusOffMonitor.Cnt = 0u;
BusOffMonitor.Status = 0u;
BusOffMonitor.Timer = 0u;
UDS_DtcBusoffCnt = 0u;
}
}
} }
/***Middle***/ /***Middle***/
void Can_Init(void) void Can_Init(void)
...@@ -199,3 +332,13 @@ void Can_Confirm(uint32_t Identifier, uint8_t TransferStatus) ...@@ -199,3 +332,13 @@ void Can_Confirm(uint32_t Identifier, uint8_t TransferStatus)
{ {
} }
} }
void Can_QuickTimer_Init(void)
{
uint32_t i = 0u;
for ( i = 0u; i < CAN_CH4_ID_SEND_TOTAL; i++ )
{
// Can_Msg_TX_FastInitCycle(&CAN_CH4_CanMsgTxOp, i, CAN_CH4_CANSendAttr [ i ].u32MsgCycleOffset);
}
}
...@@ -8,6 +8,7 @@ typedef struct ...@@ -8,6 +8,7 @@ typedef struct
uint8_t Status; //当前所处Bus Off 状态 uint8_t Status; //当前所处Bus Off 状态
uint8_t Timer; // Bus Off计时器 uint8_t Timer; // Bus Off计时器
uint8_t Cnt; // Bus Off尝试恢复次数 uint8_t Cnt; // Bus Off尝试恢复次数
uint8_t RecoverCnt;
} BusOffMonitorStruct; } BusOffMonitorStruct;
typedef enum typedef enum
{ {
...@@ -77,4 +78,5 @@ void Can_SetTx_St(Can_SendType Status); ...@@ -77,4 +78,5 @@ void Can_SetTx_St(Can_SendType Status);
void Can_SetRx_St(Can_ReceiveType Status); void Can_SetRx_St(Can_ReceiveType Status);
void Can_Abort_All(void); void Can_Abort_All(void);
void Can_Uds_Abort(void); void Can_Uds_Abort(void);
void Can_QuickTimer_Init(void);
#endif #endif
...@@ -199,7 +199,12 @@ void RTE_GPIO_Init(void) ...@@ -199,7 +199,12 @@ void RTE_GPIO_Init(void)
gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1; gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1;
GPIO_Config(&gpio_temp); GPIO_Config(&gpio_temp);
GPIO_Config(&gpio_temp);
gpio_temp.enGPIOPort = GPIO_PORT_GROUP_9;
gpio_temp.enGPIOPIN = GPIO_PIN_2;
gpio_temp.enGPIOMode = GPIO_MODE_PORT;
gpio_temp.enGPIODir = GPIO_DIR_OUT;
gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1;
queren = 0; queren = 0;
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
#define NEG_2_Ctrl GPIO_OUT_PORT09_PIN05 #define NEG_2_Ctrl GPIO_OUT_PORT09_PIN05
#define NEG_3_Ctrl GPIO_OUT_PORT09_PIN04 #define NEG_3_Ctrl GPIO_OUT_PORT09_PIN04
#define NEG_4_Ctrl GPIO_OUT_PORT09_PIN03 #define NEG_4_Ctrl GPIO_OUT_PORT09_PIN03
#define NEG_5_Ctrl GPIO_OUT_PORT09_PIN02 // #define NEG_5_Ctrl GPIO_OUT_PORT09_PIN02
// #define NEG_6_Ctrl GPIO_OUT_PORT09_PIN01 // #define NEG_6_Ctrl GPIO_OUT_PORT09_PIN01
#define NEG_7_Ctrl GPIO_OUT_PORT10_PIN07 #define NEG_7_Ctrl GPIO_OUT_PORT10_PIN07
#define NEG_8_Ctrl GPIO_OUT_PORT10_PIN03 #define NEG_8_Ctrl GPIO_OUT_PORT10_PIN03
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
#define LINE_SafeBelt_2 NEG_2_Ctrl #define LINE_SafeBelt_2 NEG_2_Ctrl
#define LINE_SafeBelt_3 NEG_3_Ctrl #define LINE_SafeBelt_3 NEG_3_Ctrl
#define LINE_SafeBelt_4 NEG_4_Ctrl #define LINE_SafeBelt_4 NEG_4_Ctrl
#define LINE_SafeBelt_5 NEG_5_Ctrl // #define LINE_SafeBelt_5 NEG_5_Ctrl
// #define LINE_SafeBelt_2_press NEG_6_Ctrl // #define LINE_SafeBelt_2_press NEG_6_Ctrl
#define LINE_SafeBelt_3_press NEG_7_Ctrl #define LINE_SafeBelt_3_press NEG_7_Ctrl
......
...@@ -90,7 +90,7 @@ uint8_t sartigon = 0; ...@@ -90,7 +90,7 @@ uint8_t sartigon = 0;
uint8_t sendflag = 0; uint8_t sendflag = 0;
void Sys_Run_Mode_10ms_Tasks_Group(void) void Sys_Run_Mode_10ms_Tasks_Group(void)
{ {
// BusOff_Service( ); BusOff_Service( );
Key_Service( ); Key_Service( );
Recv_Byte(); Recv_Byte();
} }
...@@ -143,7 +143,10 @@ void Sys_Run_Mode_100ms_Tasks_Group(void) ...@@ -143,7 +143,10 @@ void Sys_Run_Mode_100ms_Tasks_Group(void)
Display_Can_Receive_Data(5,50); Display_Can_Receive_Data(5,50);
Display_interface_learning_card(0,50); Display_interface_learning_card(0,50);
Display_Chaka_Model();//查卡模式 Display_Chaka_Model();//查卡模式
if(UIDMondel)
{
UIDDisplay();
}
} }
/*=================================================================*/ /*=================================================================*/
......
This diff is collapsed.
...@@ -212,5 +212,5 @@ extern uint8_t Student_Card_can_command; ...@@ -212,5 +212,5 @@ extern uint8_t Student_Card_can_command;
extern uint8_t Query_Card_can_command; extern uint8_t Query_Card_can_command;
extern uint8_t can_car_return_Data[8]; extern uint8_t can_car_return_Data[8];
extern uint8_t canData_card[8]; extern uint8_t canData_card[8];
extern uint8_t seedresult[4];
#endif #endif
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