Commit ab34077c authored by 何锐's avatar 何锐

feat:实时读取UUID

parent 7c0f8b94
......@@ -706,7 +706,6 @@ void can_submit(void)
init_CAN_Frame(&m_msg8, 0x51B, 8, 1, data8);
break;
case 11:
begin714 = 0;
POWER_CTRL_KL30 = 0u; //B+
POWER_CTRL_KL15 = 0u; //KL15
break;
......@@ -864,10 +863,10 @@ void Get_SW_msg(void);
void Get_HW_msg(void);
void Get_PN_msg(void);
extern uint32_t send0x714time;
uint8_t begin714;
uint8_t begin714 = 0;;
uint8_t UIDdelay;
uint8_t SWINtestresult;
void send_0x714_fuc()
void Send_UDS_fuc()
{
CAN_Frame_st_t m_msg7;
......@@ -1013,46 +1012,51 @@ void send_0x714_fuc()
Get_SWIN_msg();
zhenduanstep++;
break;
case 11: //读取UID
if(writeflag == 0)
{
data7[0] = 0x03;
data7[1] = 0x22;
data7[2] = 0x50;
data7[3] = 0x01;
data7[4] = 0xAA;
data7[5] = 0xAA;
data7[6] = 0xAA;
data7[7] = 0xAA;
init_CAN_Frame(&m_msg7, 0x7A1, 8, 1, data7);
can_mid(m_msg7);
zhenduanstep++;
}
default:
begin714 = 1;
break;
case 12:
if(writeflag == 0)
{
Get_UID_msg();
data7[0] = 0x30;
data7[1] = 0x00;
data7[2] = 0x00;
data7[3] = 0xAA;
data7[4] = 0xAA;
data7[5] = 0xAA;
data7[6] = 0xAA;
data7[7] = 0xAA;
init_CAN_Frame(&m_msg7, 0x7A1, 8, 1, data7);
can_mid(m_msg7);
Get_UID_msg();
}
zhenduanstep++;
}
uint8_t readstep = 0;
void UIDRead(void)
{
CAN_Frame_st_t m_msg9;
uint8_t data9[8] = {0, 0, 0, 0, 0, 0, 0, 0};
switch(readstep)
{
case 0: //读取UID
data9[0] = 0x03;
data9[1] = 0x22;
data9[2] = 0x50;
data9[3] = 0x01;
data9[4] = 0xAA;
data9[5] = 0xAA;
data9[6] = 0xAA;
data9[7] = 0xAA;
init_CAN_Frame(&m_msg9, 0x7A1, 8, 1, data9);
can_mid(m_msg9);
readstep++;
break;
case 1:
data9[0] = 0x30;
data9[1] = 0x00;
data9[2] = 0x00;
data9[3] = 0xAA;
data9[4] = 0xAA;
data9[5] = 0xAA;
data9[6] = 0xAA;
data9[7] = 0xAA;
init_CAN_Frame(&m_msg9, 0x7A1, 8, 1, data9);
can_mid(m_msg9);
readstep++;
break;
default:
zhenduanstep = 11;
begin714 = 1;
readstep = 0;
break;
}
}
uint8_t UIDNumber[19] = {84,89,87,0,0,0,0,0,0,0,0,0,0,1,2,0,2,5,0xFF};
uint8_t UIDNumber2[15] = {0,5,2,2,0,0,0,0,0,0,0,0,0,0,0xFF};
......@@ -1062,10 +1066,22 @@ uint8_t UIDStep;
uint8_t seedresult[4] = {0};
void get_seed_msg(void);
uint8_t getseedresult = 0;
uint8_t waittime = 0;
void UIDWrite(void)
{
CAN_Frame_st_t m_msg8;
uint8_t data8[8] = {0, 0, 0, 0, 0, 0, 0, 0};
if(UIDStep == 2)
{
waittime++;
if(waittime > 3)
{
waittime = 0;
UIDStep = 0;
}
}
switch (UIDStep)
{
case 0:
......@@ -1103,6 +1119,7 @@ void UIDWrite(void)
}
break;
case 3:
waittime = 0;
data8[0] = 0x06;
data8[1] = 0x27;
data8[2] = 0x02;
......@@ -1212,7 +1229,6 @@ void UIDWrite(void)
break;
default:
writeflag = 0;
begin714 = 0;
UIDStep = 0;
writebeing = 1;
UIDresult = 0;
......@@ -1340,8 +1356,21 @@ void Get_PN_msg(void)
PNtestresult = 1;
}
}
uint8_t canlost;
uint8_t resettime = 0;
void uidreset(void)
{
if(resettime > 50)
{
UIDresult = 0;
resettime = 0;
Display_TFT_Clear_UID2();
canlost = 1;
}
}
uint8_t writebeing = 1;
uint8_t UIDresult = 0;
uint8_t UIDcode1last[33];
void Get_UID_msg(void)
{
u8get714msg[0] = Get_CAN_CH0_ID_7A9_byte0_Sig();
......@@ -1409,11 +1438,30 @@ void Get_UID_msg(void)
{
UIDcode1[31] = u8get714msg[1];
UIDcode1[32] = 0xFF;
UIDresult = 6;
if(writebeing)
UIDresult = 0;
resettime = 0;
if(canlost == 0)
{
for(int i = 0;i<33;i++)
{
if(UIDcode1last[i] != UIDcode1[i])
{
General_Number_Disp(UIDcode1, 95, 225);
writebeing = 0;
shouuid();
}
}
}
else
{
General_Number_Disp(UIDcode1, 95, 225);
shouuid();
canlost = 0;
}
for(int i = 0;i<33;i++)
{
UIDcode1last[i] = UIDcode1[i];
}
}
}
......@@ -1515,7 +1563,6 @@ uint8_t chaengUDSstep = 0;
uint8_t seednum[4] = {0};
uint32_t UDS_time = 0;
extern uint32_t fakedelay;
uint8_t resettime = 0;
extern uint32_t fakedelay;
uint32_t resetpowtime = 0;
uint32_t FUresetpowtime = 0;
......
......@@ -47,7 +47,7 @@ void Can_BusOffRecover(void);
uint8_t CrcCheckSum(uint8_t *data, uint8_t len);
void can_submit(void);
void Get_ID_0x794_Msg(void);
void send_0x714_fuc(void);
void Send_UDS_fuc(void);
extern uint8_t ruanjianbanbenhao[8];
void Get_PN_msg(void);
extern void Get_UID_msg(void);
......@@ -58,6 +58,8 @@ void UIDWrite(void);
extern void Get_SW_msg(void);
extern void Get_SWIN_msg(void);
extern void Get_HW_msg(void);
extern void UIDRead(void);
extern void uidreset(void);
extern uint8_t UIDcode1[33];
extern uint8_t UIDcode2[33];
extern uint8_t UIDNumber[19];
......@@ -73,4 +75,5 @@ extern uint8_t UIDdelay;
extern uint8_t SWINtestresult;
extern uint8_t SWtestresult;
extern uint8_t HWtestresult;
extern uint8_t resettime;
#endif
......@@ -3484,7 +3484,7 @@ void Display_TFT_Clear_UID(void)
void Display_TFT_Clear_UID2(void)
{
TFT_LCD_Draw_Box(0, 220, 300, 290, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
TFT_LCD_Draw_Box(0, 220, 239, 290, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
void Display_Add(void)
......@@ -4212,6 +4212,10 @@ void Get_static_Current(void)
}
}
void shouuid(void)
{
TFT_LCD_Draw_Bmp(3, 225, ( uint8_t * )gImage_JCT_08X0_Y0 ); //读取UID
}
const uint16_t testNum[] = {200,190,180};
// void Check_PWM(void)
// {
......@@ -4271,7 +4275,6 @@ void Display_Version_Info(uint32_t ON_OFF)
TFT_LCD_Draw_Bmp(3, 100, ( uint8_t * )gImage_Dyy_words_2X6_Y46 ); //硬件版本号
TFT_LCD_Draw_Bmp(3, 25, ( uint8_t * )gImage_JCT_01X0_Y0 ); //检测台版本号
TFT_LCD_Draw_Bmp(3, 120, ( uint8_t * )gImage_Dyy_words_3X6_Y75 ); //写入UID
TFT_LCD_Draw_Bmp(3, 225, ( uint8_t * )gImage_JCT_08X0_Y0 ); //读取UID
// TFT_LCD_Draw_Bmp(3, 70, ( uint8_t * )gImage_Dyy_words_3X6_Y75 ); //零件号
// TFT_LCD_Draw_Bmp(3, 90+30+30, ( uint8_t * )gImage_gImage_dianyuanwaifX6_Y165 ); //仪表电电源检测外发对比检验
......@@ -4295,7 +4298,7 @@ void Display_Version_Info(uint32_t ON_OFF)
// TFT_LCD_Draw_Bmp(3, 160, ( uint8_t * )gImage_Alarm_12_WordX6_Y165); //24脚输出占空比
// TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Alarm_13_ImageX222_Y166); //%
// TFT_LCD_Draw_Bmp(3, 290, ( uint8_t * )gImage_gImage_checkVX6_Y165 ); //检测台版本号
uint8_t mbuff [10] = {2,0,2,5,97,0,7,1,5,0xff};
uint8_t mbuff [10] = {2,0,2,5,97,0,9,2,3,0xff};
General_Number_Disp(mbuff, 115, 25); //检测台版本号
General_Number_Disp(UIDNumber, 85, 120); //固定UID数字
General_Number_Disp(UIDNumber2, 70, 146); //可调UID数字
......
......@@ -56,7 +56,7 @@ extern void HW_Static_Current_Check(uint32_t cmd);
void HW_Voltage_Check(uint32_t cmd);
void Display_TFT_Clear(void);
void Display_TFT_Clear_UID(void);
void Display_TFT_Clear_UID2(void);
extern void Display_TFT_Clear_UID2(void);
void Display_Add(void);
unsigned int Get_Display_Type(void);
void General_Number_Disp(unsigned char *p, unsigned short x, unsigned short y);
......@@ -77,6 +77,7 @@ void Buzzer_Start(void);
void Buzzer_Stop(void);
extern void Buzzer_Init(void);
extern void Buzzer_Warning(void);
extern void shouuid(void);
void Display_Send_Vspead(uint8_t menu);
extern void Get_static_Current(void);
......
......@@ -108,9 +108,7 @@ void Key_Operation_SW3(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
begin714 = 0;
UIDresult = 0;
writebeing = 1;
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{
......
......@@ -32,7 +32,6 @@ void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void)
// UDS_Server_Application_Service( );
TFT_LCD_Display_Update_Service( );
Get_PN_msg();
// Get_UID_msg();
if(SWINtestresult == 1)
{
Get_SWIN_msg();
......@@ -79,6 +78,16 @@ extern uint8_t fuelreset3;
extern uint8_t fuelreset4;
void Sys_Run_Mode_10ms_Tasks_Group(void)
{
if((resettime < 250) && (writeflag == 0))
{
resettime++;
}
if((writeflag == 0) && (begin714 == 1))
{
uidreset();
UIDRead();
}
if(MENU_CHECK_STEP == 1 && fuelreset1 == 0)
{
fuelreset1 = 1;
......@@ -129,7 +138,7 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
{
if(begin714 == 0)
{
send_0x714_fuc();
Send_UDS_fuc();
send0x714time = 0;
}
}
......@@ -190,7 +199,6 @@ void Sys_Run_Mode_50ms_Tasks_Group(void)
{
timer_100ms = 0;
}
// Get_UID_msg();
}
/*==============================================================================
......
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