Commit b8f8d517 authored by 何锐's avatar 何锐

feat:完成按键设置主机蓝牙配置

parent aff013f0
...@@ -189,12 +189,17 @@ interrupt void Api_CAN_Rev_isr(void) ...@@ -189,12 +189,17 @@ interrupt void Api_CAN_Rev_isr(void)
INT32U stand_id; INT32U stand_id;
INT8U m_dlc; INT8U m_dlc;
stand_id = bsp_GET_EXTEND_ID((INT8U*)&CANRXIDR0); stand_id = Api_GET_STAND_ID((INT8U*)&CANRXIDR0);
m_dlc = CANRXDLR_DLC; m_dlc = CANRXDLR_DLC;
if ((stand_id == 0x380)||(stand_id == 0x402))
switch(stand_id) {
;
}
else
{
switch(stand_id)
{ {
case 0x18DAF917: //车速 case 0x782: //车速
if(m_dlc == 8) if(m_dlc == 8)
{ {
...@@ -205,6 +210,8 @@ interrupt void Api_CAN_Rev_isr(void) ...@@ -205,6 +210,8 @@ interrupt void Api_CAN_Rev_isr(void)
; ;
} }
}
CANRFLG_RXF = ClearFlag; CANRFLG_RXF = ClearFlag;
} }
\ No newline at end of file
...@@ -46,47 +46,64 @@ void Api_LCD_Init(void) ...@@ -46,47 +46,64 @@ void Api_LCD_Init(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void Api_LCD_Display(void) void Api_LCD_Display(void)
{ {
LCDFP11BP = Matrix1[(Key.CAN_Step / 10) %10]>>4; if (MP5_Flag == 0 )//0,空
LCDFP12BP = Matrix1[(Key.CAN_Step / 10) %10]; {
LCDFP13BP = Matrix1[(0)]>>4;
LCDFP14BP = Matrix1[(0)];
}
else if (MP5_Flag == 1)//1,无
{
LCDFP13BP = Matrix1[(1)]>>4;
LCDFP14BP = Matrix1[(1)];
}
else if (MP5_Flag == 2)//2,有
{
LCDFP13BP = Matrix1[(2)]>>4;
LCDFP14BP = Matrix1[(2)];
}
LCDFP13BP = Matrix1[(Key.CAN_Step % 10)]>>4;
LCDFP14BP = Matrix1[(Key.CAN_Step % 10)]; // LCDFP11BP = Matrix1[(Key.CAN_Step / 10) %10]>>4;
// LCDFP12BP = Matrix1[(Key.CAN_Step / 10) %10];
// LCDFP13BP = Matrix1[(Key.CAN_Step % 10)]>>4;
// LCDFP14BP = Matrix1[(Key.CAN_Step % 10)];
if(RunStep > 23) // if(RunStep > 23)
{ // {
LCDFP19BP = Matrix1[((Key.CAN_Step -24) / 10) %10]>>4; // LCDFP19BP = Matrix1[((Key.CAN_Step -24) / 10) %10]>>4;
LCDFP20BP = Matrix1[((Key.CAN_Step -24) / 10) %10]; // LCDFP20BP = Matrix1[((Key.CAN_Step -24) / 10) %10];
LCDFP21BP = Matrix1[((Key.CAN_Step -24) % 10)]>>4; // LCDFP21BP = Matrix1[((Key.CAN_Step -24) % 10)]>>4;
LCDFP22BP = Matrix1[((Key.CAN_Step -24) % 10)]; // LCDFP22BP = Matrix1[((Key.CAN_Step -24) % 10)];
} // }
else // else
{ // {
LCDFP19BP = Matrix1[0]>>4; // LCDFP19BP = Matrix1[0]>>4;
LCDFP20BP = Matrix1[0]; // LCDFP20BP = Matrix1[0];
LCDFP21BP = Matrix1[0]>>4; // LCDFP21BP = Matrix1[0]>>4;
LCDFP22BP = Matrix1[0]; // LCDFP22BP = Matrix1[0];
} // }
//L //L
LCDFP18BP |= 0x08; // LCDFP18BP |= 0x08;
LCDFP20BP |= 0x08; // LCDFP20BP |= 0x08;
LCDFP22BP |= 0x08; // LCDFP22BP |= 0x08;
//E //E
LCDFP5BP |= 0x0f; // LCDFP5BP |= 0x0f;
LCDFP6BP |= 0x01; // LCDFP6BP |= 0x01;
//D //D
LCDFP7BP |= 0x0d; // LCDFP7BP |= 0x0d;
LCDFP8BP |= 0x07; // LCDFP8BP |= 0x07;
//- //-
LCDFP9BP |= 0x02; // LCDFP9BP |= 0x02;
//Z // //Z
LCDFP15BP |= Matrix1[2]>>4; // LCDFP15BP |= Matrix1[2]>>4;
LCDFP16BP |= Matrix1[2]; // LCDFP16BP |= Matrix1[2];
//H // //H
LCDFP17BP |= 0x07; // LCDFP17BP |= 0x07;
LCDFP18BP |= 0x0e; // LCDFP18BP |= 0x0e;
LCDRAM2_FP4BP = LCDFP4BP; LCDRAM2_FP4BP = LCDFP4BP;
LCDRAM2_FP5BP = LCDFP5BP; LCDRAM2_FP5BP = LCDFP5BP;
......
...@@ -99,16 +99,19 @@ void Format_CAN_Msg() ...@@ -99,16 +99,19 @@ void Format_CAN_Msg()
CanMsg_600.ID = 0x600; CanMsg_600.ID = 0x600;
CanMsg_611.ID = 0x611; CanMsg_611.ID = 0x611;
CanMsg_610.ID = 0x610; CanMsg_610.ID = 0x610;
CanMsg_702.ID = 0x702;
CanMsg_101.Length = 8; CanMsg_101.Length = 8;
CanMsg_067.Length = 8; CanMsg_067.Length = 8;
CanMsg_600.Length = 8; CanMsg_600.Length = 8;
CanMsg_611.Length = 8; CanMsg_611.Length = 8;
CanMsg_610.Length = 8; CanMsg_610.Length = 8;
CanMsg_702.Length = 8;
CanMsg_101.ID_EN = 1; CanMsg_101.ID_EN = 1;
CanMsg_067.ID_EN = 1; CanMsg_067.ID_EN = 1;
CanMsg_600.ID_EN = 1; CanMsg_600.ID_EN = 1;
CanMsg_611.ID_EN = 1; CanMsg_611.ID_EN = 1;
CanMsg_610.ID_EN = 1; CanMsg_610.ID_EN = 1;
CanMsg_702.ID_EN = 1;
} }
void Disable_CAN_Tx(void) void Disable_CAN_Tx(void)
...@@ -118,6 +121,7 @@ void Disable_CAN_Tx(void) ...@@ -118,6 +121,7 @@ void Disable_CAN_Tx(void)
CanMsg_600.ID_EN = 0; CanMsg_600.ID_EN = 0;
CanMsg_611.ID_EN = 0; CanMsg_611.ID_EN = 0;
CanMsg_610.ID_EN = 0; CanMsg_610.ID_EN = 0;
CanMsg_702.ID_EN = 0;
} }
void Set_Pin(INT16U pin) void Set_Pin(INT16U pin)
...@@ -146,7 +150,9 @@ void App_Can_Proc(void) ...@@ -146,7 +150,9 @@ void App_Can_Proc(void)
if(GetCtrlTime(CANMsgSend_10ms) >= 10){ if(GetCtrlTime(CANMsgSend_10ms) >= 10){
ClearCtrlTime(CANMsgSend_10ms); ClearCtrlTime(CANMsgSend_10ms);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_702);
Clear_CAN_Msg((CAN_message *)&CanMsg_702);
} }
if(GetCtrlTime(CANMsgSend_20ms) >= 20){ if(GetCtrlTime(CANMsgSend_20ms) >= 20){
...@@ -157,6 +163,7 @@ void App_Can_Proc(void) ...@@ -157,6 +163,7 @@ void App_Can_Proc(void)
Clear_CAN_Msg((CAN_message *)&CanMsg_067); Clear_CAN_Msg((CAN_message *)&CanMsg_067);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_610); bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_610);
Clear_CAN_Msg((CAN_message *)&CanMsg_610); Clear_CAN_Msg((CAN_message *)&CanMsg_610);
} }
if(GetCtrlTime(CANMsgSend_50ms) >= 50){ if(GetCtrlTime(CANMsgSend_50ms) >= 50){
...@@ -219,6 +226,14 @@ void App_Can_Proc(void) ...@@ -219,6 +226,14 @@ void App_Can_Proc(void)
CurValueStr[Battery_status ].val = 0; CurValueStr[Battery_status ].val = 0;
CurValueStr[Battery_Current ].val = 0; CurValueStr[Battery_Current ].val = 0;
CurValueStr[Battery_SOC ].val = 0; CurValueStr[Battery_SOC ].val = 0;
// CurValueStr[UDS0 ].val = 0;
// CurValueStr[UDS1 ].val = 0;
// CurValueStr[UDS2 ].val = 0;
// CurValueStr[UDS3 ].val = 0;
// CurValueStr[UDS4 ].val = 0;
// CurValueStr[UDS5 ].val = 0;
// CurValueStr[UDS6 ].val = 0;
// CurValueStr[UDS7 ].val = 0;
CurValueStr[ENUM_VSpeed ].fval = Value_Plus; CurValueStr[ENUM_VSpeed ].fval = Value_Plus;
CurValueStr[ECM_FaultIndicator ].fval = Value_Plus; CurValueStr[ECM_FaultIndicator ].fval = Value_Plus;
...@@ -237,6 +252,14 @@ void App_Can_Proc(void) ...@@ -237,6 +252,14 @@ void App_Can_Proc(void)
CurValueStr[Battery_status ].fval = Value_Plus; CurValueStr[Battery_status ].fval = Value_Plus;
CurValueStr[Battery_Current ].fval = Value_Plus; CurValueStr[Battery_Current ].fval = Value_Plus;
CurValueStr[Battery_SOC ].fval = Value_Plus; CurValueStr[Battery_SOC ].fval = Value_Plus;
CurValueStr[UDS0 ].fval = Value_Plus;
CurValueStr[UDS1 ].fval = Value_Plus;
CurValueStr[UDS2 ].fval = Value_Plus;
CurValueStr[UDS3 ].fval = Value_Plus;
CurValueStr[UDS4 ].fval = Value_Plus;
CurValueStr[UDS5 ].fval = Value_Plus;
CurValueStr[UDS6 ].fval = Value_Plus;
CurValueStr[UDS7 ].fval = Value_Plus;
// CurVehSpeed = 0; // CurVehSpeed = 0;
//LDW Open //LDW Open
......
...@@ -60,86 +60,102 @@ INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len) ...@@ -60,86 +60,102 @@ INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len)
} }
return Check; return Check;
} }
INT8U key_1[4];
void App_Uds_Calc_Key(INT32U seed) INT8U key_2[4];
INT8U key_3[8];
INT8U key_4 = 0;
void App_Uds_Calc_Key(INT8U seed[4])
{ {
aaaa = 0xb5;//00000000 00000000 00000000 10110101 INT8U Xor[4] = {0x56,0x45,0x73,0x54};
bbbb = 0xa3;//00000000 00000000 00000000 10100011 INT8U Cal[4];
cccc = 0xf1;//00000000 00000000 00000000 11110001
dddd = 0x36;//00000000 00000000 00000000 00110110 Cal[0] = seed[0] ^ Xor[0];
Cal[1] = seed[1] ^ Xor[1];
dwSeed4 = (INT8U)( seed & 0x000000ff); //00000000 00000000 00000000 000000ff Cal[2] = seed[2] ^ Xor[2];
dwSeed3 = (INT8U)((seed & 0x0000ff00) >> 8); //00000000 00000000 0000ff00 00000000 Cal[3] = seed[3] ^ Xor[3];
dwSeed2 = (INT8U)((seed & 0x00ff0000) >> 16); //00000000 00ff0000 00000000 00000000
dwSeed1 = (INT8U)((seed & 0xff000000) >> 24); //ff000000 00000000 00000000 00000000 key_1[0] = ((Cal[0] & 0x0f) << 4) | (Cal[1] & 0xf0);
key_1[1] = ((Cal[1] & 0x0f) << 4) | ((Cal[2] & 0xf0)>>4);
key_1[2] = (Cal[2] & 0xf0) | ((Cal[3] & 0xf0) >>4);
dwKey1 = (INT8U)((aaaa * (dwSeed1 * dwSeed1)) + (bbbb * (dwSeed2 * dwSeed2)) + (cccc * (dwSeed1 * dwSeed2))); key_1[3] = ((Cal[3] & 0x0f) << 4) | (Cal[0] & 0x0f);
dwKey2 = (INT8U)((aaaa * dwSeed1) + (bbbb * dwSeed2) + (dddd * (dwSeed1 * dwSeed2)));
dwKey3 = (INT8U)((aaaa * (dwSeed3 * dwSeed4)) + (bbbb * (dwSeed4 * dwSeed4)) + (cccc * (dwSeed3 * dwSeed4)));
dwKey4 = (INT8U)((aaaa * (dwSeed3 * dwSeed4)) + (bbbb * dwSeed4) + (dddd * (dwSeed3 * dwSeed4)));
CalcKey = (dwKey1 << 24UL) | (dwKey2 << 16UL) | (dwKey3 << 8UL) | dwKey4;
} }
void UDS_Receive_Main(unsigned char *buf) void UDS_Receive_Main(unsigned char *buf)
{ {
switch(EOLStep) switch(EOLStep)
{ {
case 0: case 0:
{ {
if((buf[1] == 0x62) && (buf[2] == 0x02) && (buf[3] == 0x1F) && (buf[4] != EOLMode)) if((buf[1] == 0x50) && (buf[2] == 0x03))
{ {
EOLStep = 1; EOLStep = 2;
CurValueStr[UDS0 ].val = 0x02;//扩展模式
CurValueStr[UDS1 ].val = 0x27;
CurValueStr[UDS2 ].val = 0x01;
CurValueStr[UDS3 ].val = 0x55;
CurValueStr[UDS4 ].val = 0x55;
CurValueStr[UDS5 ].val = 0x55;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
EOLError = 0;
} }
else else
{ {
EOLStep = 0; // EOLStep = 0;
EOLError = 0; // EOLError = 0;
} }
} }
break; break;
case 1: case 1:
{ {
if((buf[1] == 0x50) && (buf[2] == 0x03))
{ EOLStep = 2;
EOLStep = 2; EOLError = 0;
EOLError = 0;
}
else
{
EOLError++;
}
} }
break; break;
case 2: case 2://解密并发送密钥
{ {
if((buf[1] == 0x67) && (buf[2] == 0x01)) if((buf[1] == 0x67) && (buf[2] == 0x01))
{ {
GetSeed = buf[3]; key_2[0] = buf[3];
GetSeed = GetSeed << 8; key_2[1] = buf[4];
GetSeed |= buf[4]; key_2[2] = buf[5];
GetSeed = GetSeed << 8; key_2[3] = buf[6];
GetSeed |= buf[5]; App_Uds_Calc_Key(key_2);
GetSeed = GetSeed << 8; CurValueStr[UDS0 ].val = 0x06;//解密
GetSeed |= buf[6]; CurValueStr[UDS1 ].val = 0x27;
CurValueStr[UDS2 ].val = 0x02;
CurValueStr[UDS3 ].val = key_1[0];
CurValueStr[UDS4 ].val = key_1[1];
CurValueStr[UDS5 ].val = key_1[2];
CurValueStr[UDS6 ].val = key_1[3];
CurValueStr[UDS7 ].val = 0x55;
EOLStep = 3; EOLStep = 3;
EOLError = 0; EOLError = 0;
} }
else else
{ {
EOLError++; EOLError++;
} }
} }
break; break;
case 3: case 3:
{ {
if((buf[1] == 0x67) && (buf[2] == 0x02)) if((buf[1] == 0x67) && (buf[2] == 0x02))//请求读取配置
{ {
CurValueStr[UDS0 ].val = 0x03;
CurValueStr[UDS1 ].val = 0x22;
CurValueStr[UDS2 ].val = 0xf0;
CurValueStr[UDS3 ].val = 0x10;
CurValueStr[UDS4 ].val = 0x55;
CurValueStr[UDS5 ].val = 0x55;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
EOLStep = 4; EOLStep = 4;
EOLError = 0; EOLError = 0;
} }
...@@ -152,8 +168,20 @@ void UDS_Receive_Main(unsigned char *buf) ...@@ -152,8 +168,20 @@ void UDS_Receive_Main(unsigned char *buf)
case 4: case 4:
{ {
if((buf[1] == 0x6E) && (buf[2] == 0x02) && (buf[3] == 0x1F)) if((buf[1] == 0x0b) && (buf[2] == 0x62) && (buf[3] == 0xf0))//读取配置项前3位
{ {
key_3[0] = buf[5];
key_3[1] = buf[6];
key_3[2] = buf[7];
CurValueStr[UDS0 ].val = 0x30;//流控
CurValueStr[UDS1 ].val = 0x00;
CurValueStr[UDS2 ].val = 0x32;
CurValueStr[UDS3 ].val = 0xf1;
CurValueStr[UDS4 ].val = 0x40;
CurValueStr[UDS5 ].val = 0x55;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
EOLStep = 5; EOLStep = 5;
EOLError = 0; EOLError = 0;
} }
...@@ -164,10 +192,81 @@ void UDS_Receive_Main(unsigned char *buf) ...@@ -164,10 +192,81 @@ void UDS_Receive_Main(unsigned char *buf)
} }
break; break;
case 5: case 5://读取配置项后5位
{
if((buf[0] == 0x21)&&(buf[1] == 0x84))
{
key_3[3] = buf[1];
key_3[4] = buf[2];
key_3[5] = buf[3];
key_3[6] = buf[4];
key_3[7] = buf[5];
CurValueStr[UDS0 ].val = 0x10;//写入前三位
CurValueStr[UDS1 ].val = 0x0b;
CurValueStr[UDS2 ].val = 0x2e;
CurValueStr[UDS3 ].val = 0xf0;
CurValueStr[UDS4 ].val = 0x10;
CurValueStr[UDS5 ].val = 0x28;
CurValueStr[UDS6 ].val = 0xc0;
CurValueStr[UDS7 ].val = 0x80;
EOLStep = 6;
EOLError = 0;
}
else
{
EOLError++;
}
}
case 6:
{
if((buf[0] == 0x30)&&(buf[1] == 0x0f))//流控
{
if(key_3[6]&0x04)//如果无主机雷达则改为有
{
CurValueStr[UDS0 ].val = 0x21;
CurValueStr[UDS1 ].val = 0x84;
CurValueStr[UDS2 ].val = 0xcc;
CurValueStr[UDS3 ].val = 0xcc;
CurValueStr[UDS4 ].val = 0xc8;
CurValueStr[UDS5 ].val = 0xcc;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
MP5_Flag = 2;
}
else
{
CurValueStr[UDS0 ].val = 0x21;
CurValueStr[UDS1 ].val = 0x84;
CurValueStr[UDS2 ].val = 0xcc;
CurValueStr[UDS3 ].val = 0xcc;
CurValueStr[UDS4 ].val = 0xcc;
CurValueStr[UDS5 ].val = 0xcc;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
MP5_Flag = 1;
}
EOLStep = 7;
EOLError = 0;
}
else
{
EOLError++;
}
}
break;
case 7:
{ {
if((buf[1] == 0x51) && (buf[2] == 0x01)) if((buf[0] == 0x03)&&(buf[1] == 0x7f))//等待
{ {
CurValueStr[UDS0 ].val = 0x02;
CurValueStr[UDS1 ].val = 0x3e;
CurValueStr[UDS2 ].val = 0x00;
CurValueStr[UDS3 ].val = 0x55;
CurValueStr[UDS4 ].val = 0x55;
CurValueStr[UDS5 ].val = 0x55;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
EOLStep = 0; EOLStep = 0;
EOLError = 0; EOLError = 0;
} }
......
...@@ -33,6 +33,7 @@ void APP_Test_Init(void){ ...@@ -33,6 +33,7 @@ void APP_Test_Init(void){
EOLMode = 1; EOLMode = 1;
EOLStep = 0; EOLStep = 0;
EOLError = 0; EOLError = 0;
MP5_Flag = 0;
} }
unsigned int Self_propelled_flag = 0;//自走 unsigned int Self_propelled_flag = 0;//自走
unsigned int Key_Dodging_flag = 1;//按键打点 unsigned int Key_Dodging_flag = 1;//按键打点
...@@ -62,7 +63,17 @@ void APP_Button_Proc(void){ ...@@ -62,7 +63,17 @@ void APP_Button_Proc(void){
{ {
Key.CAN_Step++; Key.CAN_Step++;
} }
if(EOLStep ==0 )//扩展会话
{
CurValueStr[UDS0 ].val = 0x02;
CurValueStr[UDS1 ].val = 0x10;
CurValueStr[UDS2 ].val = 0x03;
CurValueStr[UDS3 ].val = 0x55;
CurValueStr[UDS4 ].val = 0x55;
CurValueStr[UDS5 ].val = 0x55;
CurValueStr[UDS6 ].val = 0x55;
CurValueStr[UDS7 ].val = 0x55;
}
// Key.CAN_Step++; // Key.CAN_Step++;
// if(Key.CAN_Step > STEP_MAX){ // if(Key.CAN_Step > STEP_MAX){
...@@ -78,9 +89,10 @@ void APP_Button_Proc(void){ ...@@ -78,9 +89,10 @@ void APP_Button_Proc(void){
{ {
Key.CAN_Step--; Key.CAN_Step--;
} }
MP5_Flag = 0;
} }
Key.PushTime_2 = null; Key.PushTime_2 = null;
} }
} }
...@@ -97,27 +109,29 @@ unsigned int CAN_lost_flag = 0; ...@@ -97,27 +109,29 @@ unsigned int CAN_lost_flag = 0;
unsigned int water_value = 0; unsigned int water_value = 0;
void APP_ICM_Proc(void) /*zh321*/ /*FS04*/ void APP_ICM_Proc(void) /*zh321*/ /*FS04*/
{ {
//if(Self_propelled_flag==1) //if(Self_propelled_flag==1)
{ {
{ {
CurValueStr[ENUM_VSpeed ].val = 0; CurValueStr[ENUM_VSpeed ].val = 1;
CurValueStr[ECM_FaultIndicator ].val = 0; CurValueStr[ECM_FaultIndicator ].val = 1;
CurValueStr[ECM_StautsInvalid ].val = 0; CurValueStr[ECM_StautsInvalid ].val = 1;
CurValueStr[ECM_MotorOver ].val = 0; CurValueStr[ECM_MotorOver ].val = 1;
CurValueStr[ECM_ReadyIndicator ].val = 0; CurValueStr[ECM_ReadyIndicator ].val = 1;
CurValueStr[ECM_ChargeStatus ].val = 0; CurValueStr[ECM_ChargeStatus ].val = 1;
CurValueStr[ECM_CruiseStatus ].val = 0; CurValueStr[ECM_CruiseStatus ].val = 1;
CurValueStr[ECM_GearPositionStatus ].val = 0; CurValueStr[ECM_GearPositionStatus ].val = 1;
CurValueStr[PFC_Relag ].val = 0; CurValueStr[PFC_Relag ].val = 1;
CurValueStr[LLC_UnderOutput ].val = 0; CurValueStr[LLC_UnderOutput ].val = 1;
CurValueStr[LLC_OverOutput ].val = 0; CurValueStr[LLC_OverOutput ].val = 1;
CurValueStr[LLC_OutPut ].val = 0; CurValueStr[LLC_OutPut ].val = 1;
CurValueStr[PFC_LLC_Interal_Communication].val = 0; CurValueStr[PFC_LLC_Interal_Communication].val = 1;
CurValueStr[LLC_Temp ].val = 0; CurValueStr[LLC_Temp ].val = 1;
CurValueStr[Battery_status ].val = 0; CurValueStr[Battery_status ].val = 1;
CurValueStr[Battery_Current ].val = 0; CurValueStr[Battery_Current ].val = 1;
CurValueStr[Battery_SOC ].val = 0; CurValueStr[Battery_SOC ].val = 1;
#if 1 #if 1
switch(Key.CAN_Step) switch(Key.CAN_Step)
{ {
......
...@@ -27,7 +27,92 @@ ...@@ -27,7 +27,92 @@
EXTERN_APP_PROCESS void App_Load_Data(void); EXTERN_APP_PROCESS void App_Load_Data(void);
EXTERN_APP_PROCESS void App_State_Init(void); EXTERN_APP_PROCESS void App_State_Init(void);
EXTERN_APP_PROCESS INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len); EXTERN_APP_PROCESS INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len);
EXTERN_APP_PROCESS void UDS_Receive_Main(unsigned char *buf); EXTERN_APP_PROCESS void UDS_Receive_Main(unsigned char *buf);
EXTERN_APP_PROCESS void UDS_Service_Main(void); EXTERN_APP_PROCESS void UDS_Service_Main(void);
#endif /* APP_DATA_PROCESS_H_ */ #endif /* APP_DATA_PROCESS_H_ */
// typedef struct
// {
// _Subnet Node; //F010
// INT8U Checkflag;
// INT8U VehIde[12]; //F187 vehicleManufacturerSparePartNumberDataIdentifier
// INT8U SupplierIde[4]; //F18A systemSupplierIdentifierDataIdentifier
// INT8U SystemName[10]; //F197
// INT8U EcuHardwIde[2]; //F193
// INT8U EcuSoftwIde[2]; //F195
// INT8U EcuSerialNum[8]; //F18C
// INT8U VIN[17]; //F190
// INT8U ECUDate[4]; //F18B
// INT8U Reserved0;
// INT8U Reserved1;
// INT8U Reserved2;
// INT8U CheckSun;
// }_ProductInfo;
// EXTERN_USER_DEF volatile _ProductInfo ProductInfo;
// typedef union
// {
// struct
// {
// //byte0 //YZHD
// INT8U Cruise :1; //xun hang //IC
// INT8U StarAndStop :1; //qi ting kong zhi //IC
// INT8U Engine_type :5; //fa dong ji lei xing
// INT8U Headlight_delay :1; //7 da deng yan shi
// //byte1
// INT8U ECU_Type :5;//ECU lei xing
// INT8U Engine_Prevention :1;//13 fa dong ji fang dao //IC
// INT8U FAN_PWM_CON_BIT :1;//PWM wu ji feng shan kong zhi
// INT8U GSM :1;//dian zi huan dang kong zhi qi
// //byte2
// INT8U Reserved5 :2;
// INT8U GrearBoxType :3; //bian su xiang lei xing //IC
// INT8U Reserved6 :3;
// //byte3
// INT8U BreakSysSel :1; //24//0,ABS,1,ESP //IC
// INT8U Steering_system :2; //EPS
// INT8U AirbagCtrl :2; //an quan qi nang
// INT8U Reserved9 :1; //29
// INT8U Radar_Before :1; //30
// INT8U Reserved10 :1; //31
// //byte4
// INT8U Car_DVR :1; //32//xing che ji lu yi
// INT8U Parking_sensors :1; //33//dao che lei da
// INT8U RVC :1; //34//dao che ying xiang
// INT8U Front_Fog_Lamp :1; //35//qian wu deng
// INT8U DRL :1; //36//ri jian xing che deng
// INT8U Sun_rain_sensor :1; //37//yang guang yu liang chuan gan qi
// INT8U Clamp :1; //38//fang jia kong zhi qi
// INT8U skylight :1; //39//tian chuang kong zhi qi
// //byte5
// INT8U Byte5_bit0 :1;
// INT8U Byte5_bit1 :1;//41//zuo qian men tian xian
// INT8U Byte5_bit2 :1;//42//fu shou xiang tian xian
// INT8U Byte5_bit3 :1;//43//wei men tian xian
// INT8U Byte5_bit4 :1;//44//hou zuo yi tian xian 1
// INT8U Byte5_bit5 :1;//45//
// INT8U Byte5_bit6 :1;//46//hou zuo yi tian xian 2
// INT8U Byte5_bit7 :1;//47//
// //byte6
// INT8U PEPS_Sel :1; //48 //IC
// INT8U Byte6_bit1 :1; //49//quan jing bo che kong zhi qi
// INT8U MP5_Sel :1; //50//GPS dao hang //IC
// INT8U EPB_Sel :1; //51//dian zi shou sha //IC
// INT8U TPMS_Sel :1; //52//tai ya jian ce //IC
// INT8U Car_type_H :3; //car type
// //byte7
// INT8U Car_type_L :1;//56 //IC
// INT8U Reserved24 :2;//57
// INT8U Reserved25 :1;//59
// INT8U HUD :1;//60 tai tou xian shi //IC
// INT8U Reserved26 :1;//61
// INT8U Reserved27 :1;//62
// INT8U Reserved28 :1;//63
// }bits;
// INT8U Subnet[8];
// }_Subnet;
// #define MP5_model 0
// #define MP3_model 1
\ No newline at end of file
...@@ -58,6 +58,14 @@ enum ...@@ -58,6 +58,14 @@ enum
Battery_status, Battery_status,
Battery_Current, Battery_Current,
Battery_SOC, Battery_SOC,
UDS0,
UDS1,
UDS2,
UDS3,
UDS4,
UDS5,
UDS6,
UDS7,
CAN_List_Num, CAN_List_Num,
}; };
...@@ -82,6 +90,15 @@ static const s_CAN_List CAN_List[] = ...@@ -82,6 +90,15 @@ static const s_CAN_List CAN_List[] =
{&CanMsg_610, 0, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[Battery_status ], Motorola}, {&CanMsg_610, 0, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[Battery_status ], Motorola},
{&CanMsg_610,2,0, 16,255,Offset_Minus, 10, 1, &CurValueStr[Battery_Current ], Motorola}, {&CanMsg_610,2,0, 16,255,Offset_Minus, 10, 1, &CurValueStr[Battery_Current ], Motorola},
{&CanMsg_611, 0, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[Battery_SOC ], Motorola}, {&CanMsg_611, 0, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[Battery_SOC ], Motorola},
{&CanMsg_702, 0, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS0 ], Motorola},
{&CanMsg_702, 1, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS1 ], Motorola},
{&CanMsg_702, 2, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS2 ], Motorola},
{&CanMsg_702, 3, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS3 ], Motorola},
{&CanMsg_702, 4, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS4 ], Motorola},
{&CanMsg_702, 5, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS5 ], Motorola},
{&CanMsg_702, 6, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS6 ], Motorola},
{&CanMsg_702, 7, 0, 8,0,Offset_Plus, 1, 1, &CurValueStr[UDS7 ], Motorola},
}; };
extern unsigned int Key_Dodging_flag; extern unsigned int Key_Dodging_flag;
extern unsigned int lost_flag; extern unsigned int lost_flag;
......
...@@ -113,12 +113,14 @@ ...@@ -113,12 +113,14 @@
EXTERN_VAR CAN_message CanMsg_600; EXTERN_VAR CAN_message CanMsg_600;
EXTERN_VAR CAN_message CanMsg_611; EXTERN_VAR CAN_message CanMsg_611;
EXTERN_VAR CAN_message CanMsg_610; EXTERN_VAR CAN_message CanMsg_610;
EXTERN_VAR CAN_message CanMsg_702;
extern CAN_message CanMsg_101; extern CAN_message CanMsg_101;
extern CAN_message CanMsg_067; extern CAN_message CanMsg_067;
extern CAN_message CanMsg_600; extern CAN_message CanMsg_600;
extern CAN_message CanMsg_611; extern CAN_message CanMsg_611;
extern CAN_message CanMsg_610; extern CAN_message CanMsg_610;
extern CAN_message CanMsg_702;
/**/ /**/
/*:zh*/ /*:zh*/
...@@ -181,5 +183,7 @@ ...@@ -181,5 +183,7 @@
EXTERN_VAR volatile INT8U EOLMode; EXTERN_VAR volatile INT8U EOLMode;
EXTERN_VAR volatile INT8U EOLStep; EXTERN_VAR volatile INT8U EOLStep;
EXTERN_VAR volatile INT8U EOLError; EXTERN_VAR volatile INT8U EOLError;
EXTERN_VAR volatile INT8U MP5_Flag;;
#endif /* GLOBALS_VAR_H_ */ #endif /* GLOBALS_VAR_H_ */
...@@ -10,7 +10,7 @@ Target=TBDML ...@@ -10,7 +10,7 @@ Target=TBDML
Layout=C_layout.hwl Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main" LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12 CPU=HC12
MainFrame=0,1,-32000,-32000,-1,-1,412,144,1341,862 MainFrame=2,3,-1,-1,-1,-1,162,143,1434,863
TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806 TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
AEFWarningDialog=FALSE AEFWarningDialog=FALSE
Configuration=TBDML.hwc Configuration=TBDML.hwc
...@@ -42,7 +42,7 @@ CHIPSECURE=CHIPSECURE SETUP 0xFF0F 0x3 0x2 ...@@ -42,7 +42,7 @@ CHIPSECURE=CHIPSECURE SETUP 0xFF0F 0x3 0x2
DBG0=DBG GENERAL DISARM_ON PROTECT_OFF ANALYZE_ON STEPATRUN_ON DBG0=DBG GENERAL DISARM_ON PROTECT_OFF ANALYZE_ON STEPATRUN_ON
DBG1=DBG PREDEFINED SELECT 0 DBG1=DBG PREDEFINED SELECT 0
DBG2=DBG PREDEFINED DBGENGINE TRACE ENABLE RECORDAFTER PUREPC DBG2=DBG PREDEFINED DBGENGINE TRACE ENABLE RECORDAFTER PUREPC
NV_PARAMETER_FILE=D:\Program Files (x86)\Freescale\CWS12v5.1\prog\FPP\mcu02F2.fpp NV_PARAMETER_FILE=D:\xhy\prog\FPP\mcu02F2.fpp
NV_SAVE_WSP=0 NV_SAVE_WSP=0
NV_AUTO_ID=1 NV_AUTO_ID=1
COMDEVICE=SETCOMM COMPORT LPT "TBDML #1" COMDEVICE=SETCOMM COMPORT LPT "TBDML #1"
...@@ -82,9 +82,17 @@ File2= ...@@ -82,9 +82,17 @@ File2=
File3= File3=
[Recent HI-WAVE FindProcedure Search] [Recent HI-WAVE FindProcedure Search]
Search0=APP_ICM_Proc Search0=APP_Button_Proc
Search1=App_Can_Proc Search1=UDS_Receive_Main
Search2=main Search2=Api_CAN_Rev_isr
Search3=EOLStep
Search4=APP_ICM_Proc
Search5=App_Can_Proc
Search6=main
[Turbo_BDM_Light] [Turbo_BDM_Light]
TARGET_FREQUENCY_RATIO=2000000 TARGET_FREQUENCY_RATIO=2000000
......
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