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;
uint8_t clearOdoFlag = 0;
uint8_t connectbleFlag = 0;
uint8_t Auto_ONOFF = 0;
uint32_t key_value;
uint8_t key_array[4];
uint8_t seed_value[4];
uint8_t zhenduansendStep = 0;
......@@ -51,14 +51,14 @@ uint8_t blename[5];
uint16_t lightnumber = 0;
void get_key(void)
{
key_array[0] = seed_value[0] | seed_value[3];
key_array[1] = (seed_value[1] >> 1) | (seed_value[2] << 1);
key_array[2] = (seed_value[2] >> 2) | (seed_value[1] << 2);
key_array[3] = (seed_value[3] >> 3) | (seed_value[0] << 3);
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[2] << 8U);
key_value = key_value | (uint32_t)key_array[3];
// key_array[0] = seed_value[0] | seed_value[3];
// key_array[1] = (seed_value[1] >> 1) | (seed_value[2] << 1);
// key_array[2] = (seed_value[2] >> 2) | (seed_value[1] << 2);
// key_array[3] = (seed_value[3] >> 3) | (seed_value[0] << 3);
// 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[2] << 8U);
// key_value = key_value | (uint32_t)key_array[3];
}
void datacheck(void)
{
......
......@@ -6,8 +6,8 @@
#include "RSCAN.h"
#include "Key.h"
#include "Display_Info.h"
#include "string.h"
#include "RSCAN.h"
uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
{
uint8_t crc = 0xff;
......@@ -121,23 +121,25 @@ void Can_Set_Buff_042(uint8_t CopyData [])
pCANMsg->Msg [ i ] = 0u;
}
}
if(Tcs == 1)/**/
if(Tcs == 1)/*TCS指示灯开启*/
{
pCANMsg->Sig.TCS = 1;
pCANMsg->Sig.Tcs_mode = 0;
pCANMsg->Sig.Tcs_Control = 0;
pCANMsg->Sig.TCS = 0;
pCANMsg->Sig.Tcs_mode = 1;
}
else if(Tcs == 2)/**/
else if(Tcs == 2)/*禁止TCS指示灯开启*/
{
pCANMsg->Sig.TCS = 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_mode = 0;
pCANMsg->Sig.Tcs_Control = 0;
}
else/*熄灭*/
{
pCANMsg->Sig.TCS = 1;
pCANMsg->Sig.Tcs_mode = 1;
}
pCANMsg->Msg[7] = 0xff;
}
......@@ -206,10 +208,10 @@ void Can_Set_Buff_280(uint8_t CopyData [])
;
}
if(Tcs == 1)
{
pCANMsg->Sig.Tcs_Status = 1;
}
// if(Tcs == 1)
// {
// pCANMsg->Sig.Tcs_Status = 1;
// }
if(Side_bracket == 1)
{
pCANMsg->Sig.Side_bracket280 = 1;
......@@ -283,7 +285,7 @@ void Can_Set_Buff_202(uint8_t CopyData [])
if(Side_bracket == 1)
{
pCANMsg->Sig.Side_bracket202 = 1;
pCANMsg->Sig.Side_bracket202 = 0;
}
// pCANMsg->Msg[1]=0Xff;
}
......@@ -306,11 +308,14 @@ void Can_Set_Buff_001(uint8_t CopyData [])
{
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;
}
if(motor_hot == 1)
{
pCANMsg->Sig.Msg_0x001_2b4t = 1;
}
}
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};
/*硬件版本号*/
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};
/*解锁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 [])
{
uint8_t i = 0u;
......@@ -525,11 +564,146 @@ void Can_Set_Buff_786(uint8_t CopyData [])
pCANMsg->Msg[i] = Data_786_4[i];
}
Diagnosis_banbenhao_flag_ = 4;
Diagnosis_banbenhao_flag = 5;
Diagnosis_banbenhao_flag_= 4;
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 [])
......@@ -547,18 +721,25 @@ void Can_Set_Buff_207(uint8_t CopyData [])
pCANMsg->Msg [ i ] = 0u;
}
}
if(Tcs == 1)
if(Tcs == 1) //TCS
{
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
//uint64_t :8;/*2byte*/
uint64_t :3;
uint64_t Msg_0x001_2b3t:1;
uint64_t :4;
uint64_t Msg_0x001_2b4t:1;
uint64_t :3;
uint64_t :8;
uint64_t :8;
......@@ -246,6 +247,8 @@ typedef union
{
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t TCS:4;
uint64_t :2;
......@@ -255,11 +258,10 @@ typedef union
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg207Union;
extern uint8_t UIDNumber[15];
void CAN_MSG_COUNTER_PLUS(void);
uint8_t CrcCheckSum(uint8_t *data, uint8_t len);
......@@ -279,9 +281,12 @@ void Can_Set_Buff_786(uint8_t CopyData []);
void Can_Set_Buff_207(uint8_t CopyData []);
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 Student_Card;
extern uint8_t UIDStep;
extern uint8_t writeflag;
// uint8_t Student_Card_Last;
#endif
......@@ -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_451_Msg 0x451u
#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);
......
......@@ -32,7 +32,7 @@ uint16_t decimal_candata[14];
uint8_t canData1[8];//暂存软件版本号数据用
uint8_t canData4[8];//暂存硬件版本号数据用
uint8_t canData2[14];
uint8_t canData3[10];
uint8_t canData3[20];
uint8_t can_car_Data[8];
......@@ -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,
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输出电压:
const unsigned char gImage_Dyy_words_6X6_Y165[]={/*Byte Size204*/
101U,16U,
......@@ -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,
0X08U,0X08U,0X08U,0X08U,0X0fU,0X07U,0X03U,0X00U,};
const unsigned char gImage_gImage_TCS1X6_Y16[]={/*Byte Size82*/
20U,32U,
0X00U,0X00U,0X00U,0X08U,0Xc8U,0Xe8U,0X68U,0X7fU,0X7fU,0X7fU,0X7fU,0X7fU,0X68U,0Xe8U,0Xc8U,0X08U,
0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0XffU,0XffU,0Xf0U,0X60U,0Xa0U,0Xa0U,0Xa0U,0X60U,
0Xe0U,0XffU,0XffU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X80U,0X80U,0X80U,0Xc3U,0Xc3U,0Xc3U,0Xc0U,
0X5fU,0X5fU,0X1fU,0X0fU,0X00U,0X03U,0X03U,0X00U,0X00U,0X00U,0X00U,0X00U,0X03U,0X03U,0X03U,0X03U,
0X03U,0X07U,0X07U,0X06U,0X26U,0X26U,0X26U,0X26U,0X36U,0X3eU,0X1cU,0X1cU,0X1cU,0X1cU,0X1cU,0X08U,
};
const unsigned char gImage_icon_14X0_Y0[]={/*Byte Size128*/
42U,24U,
0X00U,0X18U,0X18U,0X18U,0X18U,0X18U,0Xf8U,0Xf8U,0X18U,0X18U,0X18U,0X18U,0X18U,0X00U,0X00U,0X00U,
0Xc0U,0Xe0U,0X70U,0X30U,0X18U,0X18U,0X18U,0X18U,0X18U,0X30U,0X30U,0X00U,0X00U,0X00U,0Xe0U,0Xf0U,
0X30U,0X18U,0X18U,0X18U,0X18U,0X18U,0X30U,0X30U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,
0XffU,0XffU,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X00U,0X7eU,0XffU,0X81U,0X00U,0X00U,0X00U,0X00U,
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*/
28U,32U,
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*/
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*/
28U,32U,
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)
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)
{
Display_Menu_Type++;
......@@ -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};
uint8_t Detecting_Set_Version[5]={0x56, 0x31, 0x30, 0x32, 0xff};
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(canData3, X+70, Y +50);
......@@ -4699,7 +4750,7 @@ void Display_flag(uint8_t Check_Steps)
case 2://远光\TCS
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(80, 50, ( uint8_t * )gImage_gImage_TCS1X6_Y16);
TFT_LCD_Draw_Bmp(20, 100, ( uint8_t * )gImage_icon_14X0_Y0);
break;
case 3://TCS关闭 电池温度过高
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)
case 5://能源回收(白) 边撑
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(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;
case 6://能源回收(蓝) 定速巡航
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)
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(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(20, 120, ( uint8_t * )gImage_dianchiguoreX0_Y0_);
......@@ -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(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(20, 210, ( uint8_t * )gImage_gImage_zcguzhang1X6_Y16);
......
......@@ -52,10 +52,12 @@ extern uint32_t odo_val_Back ;
void GeneralInfoDisp(unsigned char *p, unsigned short x, unsigned short y);
void Display_Title_Info(void);
void Display_Version_Info(uint32_t ON_OFF);
extern void UIDDisplay();
extern void HW_Static_Current_Check(uint32_t cmd);
void HW_Voltage_Check(uint32_t cmd);
void Display_TFT_Clear(void);
extern void Display_SUCCESS_Clear(void);
void Display_Add(void);
unsigned int Get_Display_Type(void);
void General_Number_Disp(unsigned char *p, unsigned short x, unsigned short y);
......@@ -114,9 +116,11 @@ typedef struct {
} Learning_Card;
extern uint8_t canData1[8];
extern uint8_t canData2[14];
extern uint8_t canData3[10];
extern uint8_t canData3[20];
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];
#define PCodeText_Space_size 2//故障文字 英文空格的像素数
#endif
......@@ -123,6 +123,7 @@ extern uint16_t Eletricity;
extern uint8_t Hour;
extern uint8_t Tcs;
extern uint8_t Energy_recovery;
extern uint8_t motor_hot;
extern uint8_t Gear;
extern uint8_t Ready;
extern uint8_t Cruiste;
......@@ -135,6 +136,7 @@ extern uint8_t Hill_Descent_control;
extern uint8_t bluetooth_phone;
extern uint8_t key_flag;
extern uint8_t UIDMondel;
extern u8_All_Flag_t All_Flag;
extern uint8_t Diagnosis_banbenhao_flag;
......@@ -143,7 +145,7 @@ extern uint16_t testtime;
extern uint8_t canData1[8];
extern uint8_t canData2[14];
extern uint8_t canData3[10];
extern uint8_t canData3[20];
extern uint8_t canData4[8];
extern uint32_t Quiescent_Current[5];
......@@ -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_2X6_Y46[];
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 Require_card_flag;
extern uint8_t writeflag;
extern uint8_t uidwriteStep;
#endif
......@@ -7,24 +7,157 @@
#include "RSCAN_Table.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监控结构体
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监控结构体
void BusOff_Init(void)
{
//重置相关信息
BusOffMonitor.Status = BUS_OFF_STATUS_STABLE;
BusOffMonitor.Timer = 0;
BusOffMonitor.Cnt = 0;
BusOffCnt = 0;
BusOffMonitor.Timer = 0;
BusOffMonitor.Cnt = 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的判断,只需判断无需进行恢复操作
void BusOff_Service(void)
{
RSCAN0_CH4_Busoff_Recover( );
RSCAN0_CH1_Busoff_Recover( );
RSCAN0_CH2_Busoff_Recover( );
if (GetBusOffState() != 0u)
{
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***/
void Can_Init(void)
......@@ -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
uint8_t Status; //当前所处Bus Off 状态
uint8_t Timer; // Bus Off计时器
uint8_t Cnt; // Bus Off尝试恢复次数
uint8_t RecoverCnt;
} BusOffMonitorStruct;
typedef enum
{
......@@ -77,4 +78,5 @@ void Can_SetTx_St(Can_SendType Status);
void Can_SetRx_St(Can_ReceiveType Status);
void Can_Abort_All(void);
void Can_Uds_Abort(void);
void Can_QuickTimer_Init(void);
#endif
......@@ -199,7 +199,12 @@ void RTE_GPIO_Init(void)
gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1;
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;
......
......@@ -73,7 +73,7 @@
#define NEG_2_Ctrl GPIO_OUT_PORT09_PIN05
#define NEG_3_Ctrl GPIO_OUT_PORT09_PIN04
#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_7_Ctrl GPIO_OUT_PORT10_PIN07
#define NEG_8_Ctrl GPIO_OUT_PORT10_PIN03
......@@ -85,7 +85,7 @@
#define LINE_SafeBelt_2 NEG_2_Ctrl
#define LINE_SafeBelt_3 NEG_3_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_3_press NEG_7_Ctrl
......
......@@ -90,7 +90,7 @@ uint8_t sartigon = 0;
uint8_t sendflag = 0;
void Sys_Run_Mode_10ms_Tasks_Group(void)
{
// BusOff_Service( );
BusOff_Service( );
Key_Service( );
Recv_Byte();
}
......@@ -143,7 +143,10 @@ void Sys_Run_Mode_100ms_Tasks_Group(void)
Display_Can_Receive_Data(5,50);
Display_interface_learning_card(0,50);
Display_Chaka_Model();//查卡模式
if(UIDMondel)
{
UIDDisplay();
}
}
/*=================================================================*/
......
This diff is collapsed.
......@@ -212,5 +212,5 @@ extern uint8_t Student_Card_can_command;
extern uint8_t Query_Card_can_command;
extern uint8_t can_car_return_Data[8];
extern uint8_t canData_card[8];
extern uint8_t seedresult[4];
#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