#define GLOBALS_APP_TEST #include "../App_Headers/includes.h" #include "../Library/TimeCtrl.h" #define STEP_MAX 34//���� void All_Lamp_TurnOn(void); void APP_Test_Init(void){ Key.StepAuto = null; Key.CAN_Step = null; Key.CAN_Step = null; // CurValueStr[ENUM_BatteryCurrent].val = 0; //CurValueStr[CoolTemp].val = 0; //CurValueStr[VehSpeed].val = 0; //CurValueStr[AD_Blue].val = 0; // CurValueStr[ENUM_BatteryCurrent].fval = Value_Plus; //CurValueStr[CoolTemp].fval = Value_Plus; //CurValueStr[VehSpeed].fval = Value_Plus; //CurValueStr[AD_Blue].fval = Value_Plus; //CanMessageID18F00029.Msg[1] = 0x7D; //LDW Open //CanMessageID18FE5BE8.Msg[0] |= 0x40; //FCW Open // CanMessageID0CF02FA0.Msg[0] |= 0x03; //AutoLwBm Open // CanMessageID18FF0B21.Msg[5] |= 0x10; EOLMode = 1; EOLStep = 0; EOLError = 0; } unsigned int count_flag_a =0; unsigned int speed_value = 0; void APP_Button_Proc(void){ /*if(Key.PushTime_1 > T_3s){ Key.StepAuto = 1; } if(Key.PushTime_2 > T_3s){ Key.StepAuto = 2; }*/ if((Key.PushTime_2 > T_2s) || (Key.PushTime_1 > T_2s)){ Key.StepAuto = 1; } if(pSB1 == 1){ if((Key.PushTime_1 > T_50ms) && (!Key.StepAuto)){ count_flag_a = 1; // Key.CAN_Step++; // if(Key.CAN_Step > STEP_MAX){ // Key.CAN_Step = 0; // } } Key.PushTime_1 = null; } if(pSB2 == 1){ if((Key.PushTime_2 > T_50ms) && (!Key.StepAuto)){ count_flag_a = 0; // if(Key.CAN_Step > 0){ // Key.CAN_Step--; // }else{ // Key.CAN_Step = STEP_MAX; // } } Key.PushTime_2 = null; } } #define TirePressure(value) CurValueStr[ENUM_TirePressure_LF].val = value; CurValueStr[ENUM_TirePressure_RF].val = value; CurValueStr[ENUM_TirePressure_LR].val = value; CurValueStr[ENUM_TirePressure_RR].val = value; #define TireTemp(value) CurValueStr[ENUM_TireTemp_LF ].val = value; CurValueStr[ENUM_TireTemp_RF ].val = value; CurValueStr[ENUM_TireTemp_LR ].val = value; CurValueStr[ENUM_TireTemp_RR ].val = value; unsigned int lost_flag = 0; unsigned int CAN_init_flag = 0; unsigned int CAN_lost_flag = 0; unsigned int water_value = 0; void APP_ICM_Proc(void) /*zh321*/ /*FS04*/ { // if(CAN_init_flag==1) // { // Api_CAN_Init(); // CAN_init_flag=0; // } // if(CAN_lost_flag ==1) // { // Disable_CAN_Tx(); // CAN_lost_flag = 0; // } if(count_flag_a==1) { { //CurValueStr[ENUM_VSpeed ].val = 0;//���� CurValueStr[ENUM_RSpeed ].val = 0;//ת�� CurValueStr[ENUM_WaterTemp ].val = 0;//ˮ�� CurValueStr[ISG_Ready ].val = 0; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 0; switch(Key.CAN_Step) { case 1: { CurValueStr[ENUM_WaterTemp ].val = 20;//water_value;//ˮ�� CurValueStr[TCS_Warning_Lamp ].val = 0; CurValueStr[ABS_Warning_Lamp ].val = 0; CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ENUM_VSpeed ].val = 20*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 1000;//ת�� //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� //CurValueStr[ECU_Warning_Lamp ].val = 1; if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 2: { CurValueStr[ENUM_VSpeed ].val = 40*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 2000;//ת�� //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; // CurValueStr[TCS_Warning_Lamp ].val = 1; // CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; //CurValueStr[TCS_Warning_Lamp ].val = 0; // CurValueStr[TCS_Work_Mode ].val = 1; } }break; case 3: { CurValueStr[ABS_Warning_Lamp ].val = 0; CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ENUM_VSpeed ].val = 60*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 3000;//ת�� //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; // CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 4: {CurValueStr[ENUM_WaterTemp ].val = 20;//water_value;//ˮ�� CurValueStr[ENUM_VSpeed ].val = 80*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 4000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� CurValueStr[ABS_Warning_Lamp ].val = 1; CurValueStr[ECU_Warning_Lamp ].val = 1; if(direction_espeed==1) { CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; // CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; } }break; case 5: { CurValueStr[ABS_Warning_Lamp ].val = 0; CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ENUM_VSpeed ].val = 100*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 5000; CurValueStr[ENUM_WaterTemp ].val = 130;//water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 6: {CurValueStr[ENUM_WaterTemp ].val = 20;//water_value;//ˮ�� CurValueStr[ENUM_VSpeed ].val = 120*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 6000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; // CurValueStr[TCS_Warning_Lamp ].val = 1; // CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } }break; case 7: { CurValueStr[ENUM_VSpeed ].val = 140*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 7000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� CurValueStr[TCS_Warning_Lamp ].val = 0; if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; // CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; // CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 8: { CurValueStr[ENUM_VSpeed ].val = 160*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 8000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� CurValueStr[TCS_Warning_Lamp ].val = 0; if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; // CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } }break; case 9: { CurValueStr[ENUM_VSpeed ].val = 180*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 10000; CurValueStr[ENUM_WaterTemp ].val = 20;//water_value;//ˮ�� CurValueStr[TCS_Warning_Lamp ].val = 1; CurValueStr[ABS_Warning_Lamp ].val = 0; CurValueStr[ECU_Warning_Lamp ].val = 0; if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; // CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; // CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; // CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; //CurValueStr[TCS_Warning_Lamp ].val = 1; // CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 10: { CurValueStr[ENUM_VSpeed ].val = 199;//*100/108;//speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 12000; CurValueStr[ENUM_WaterTemp ].val = 130;//water_value;//ˮ�� CurValueStr[TCS_Warning_Lamp ].val = 1; CurValueStr[ABS_Warning_Lamp ].val = 1; CurValueStr[ECU_Warning_Lamp ].val = 1; if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; // CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } }break; case 11: { CurValueStr[ENUM_VSpeed ].val = speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 11000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 2; // CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } else { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 1; CurValueStr[ISG_Power_Enable ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } }break; case 12: { CurValueStr[ENUM_VSpeed ].val = speed_value;//���� CurValueStr[ENUM_RSpeed ].val = 12000; //CurValueStr[ENUM_WaterTemp ].val = water_value;//ˮ�� if(direction_espeed==1) { //CurValueStr[ABS_Warning_Lamp ].val = 1; //CurValueStr[ECU_Warning_Lamp ].val = 1; CurValueStr[ISG_Power ].val = 0; CurValueStr[ISG_Power_Enable ].val = 0; //CurValueStr[TCS_Warning_Lamp ].val = 1; //CurValueStr[TCS_Work_Mode ].val = 0; } else { //CurValueStr[ABS_Warning_Lamp ].val = 0; //CurValueStr[ECU_Warning_Lamp ].val = 0; CurValueStr[ISG_Ready ].val = 1; //CurValueStr[TCS_Warning_Lamp ].val = 0; //CurValueStr[TCS_Work_Mode ].val = 1; } }break; } } } } void Message_ClearDatas(CAN_message *Message, unsigned char StartByte, unsigned char StartBit, unsigned char len, unsigned char Format){ unsigned char pBit, pByte, i; pBit = StartBit; pByte = StartByte; switch(Format){ case Motorola:{ for(i = 0; i < len; i++){ __RESET_WATCHDOG(); Message->Msg[pByte] &= ~(1 << pBit); pBit++; if(pBit >= 8){ pBit = 0; if(pByte > 0){ pByte--; }else{ break; } } } }break; case Intel:{ for(i = 0; i < len; i++){ __RESET_WATCHDOG(); Message->Msg[pByte] &= ~(1 << pBit); pBit++; if(pBit >= 8){ pBit = 0; if(pByte < 7){ pByte++; }else{ break; } } } }break; default:{ ; } } } void Message_FillDatas(CAN_message *Message, unsigned char StartByte, unsigned char StartBit, unsigned char len, unsigned char Format, unsigned long MessageValue){ unsigned char pBit, pByte, i; pBit = StartBit; pByte = StartByte; MessageValue = MessageValue << pBit; switch(Format){ case Motorola:{ for(i = 0; i < len; i++){ __RESET_WATCHDOG(); Message->Msg[pByte] |= MessageValue & (1 << pBit); pBit++; if(pBit >= 8){ pBit = 0; if(pByte > 0){ pByte--; MessageValue = MessageValue >> 8; }else{ break; } } } }break; case Intel:{ for(i = 0; i < len; i++){ __RESET_WATCHDOG(); Message->Msg[pByte] |= MessageValue & (1 << pBit); pBit++; if(pBit >= 8){ pBit = 0; if(pByte < 7){ pByte++; MessageValue = MessageValue >> 8; }else{ break; } } } }break; default:{ ; } } } void Message_Value_Calculate(s_CAN_List list) { CAN_message *CanMessage; INT8U Start_Byte, Start_Bit, len, Offset_Flag, Format_Flag; INT16U Offset, Factor_1, Factor_2, CurValue, Value_Flag; INT32U temp; INT32U Message_Clear; INT8U Byte_Count; INT8U i; CanMessage = list.canMsg; Start_Byte = list.StartByte; Start_Bit = list.StartBit; len = list.SignalLen; Offset_Flag = list.fOffset; Format_Flag = list.fFormat; Offset = list.Offset; Factor_1 = list.Factor_1; Factor_2 = list.Factor_2; CurValue = list.CurValue->val; Value_Flag = list.CurValue->fval; temp = CurValue; //计算偏移�?? if(Offset != 0){ if(Offset_Flag == Offset_Minus){ if(Value_Flag == Value_Minus){ if(temp > Offset){ temp = 0; //错�??,所要实现的值小于物理最小�? }else{ temp = Offset - temp; } }else if(Value_Flag == Value_Plus){ temp += Offset; }else{;} }else if(Offset_Flag == Offset_Plus){ if(temp < Offset){ temp = 0; //错�??,所要实现的值小于物理最小�? }else{ temp -= Offset; } } } temp = temp * Factor_1 / Factor_2; //temp = temp << Start_Bit; Byte_Count = len / 8; if((len % 8) != 0){ Byte_Count += 1; } //清脏数据 Message_ClearDatas(CanMessage, Start_Byte, Start_Bit, len, Format_Flag); Message_FillDatas(CanMessage, Start_Byte, Start_Bit, len, Format_Flag, temp); } void FT_VehSpeedCalc(unsigned char spd){ unsigned long wTemp; wTemp = spd; } /*zh:*/ /*------------------------------------------------------------------------------------------------ * function name : Bits_Operation * parameter value range : StartByte(0~7) StartBit(0~7) Length(1~8) Value(0~255) * notice : Do not span bytes. * author : zhouhang * date :2022.01.18 --------------------------------------------------------------------------------------------------*/ void Bits_Operation(CAN_message *Message, unsigned char StartByte, unsigned char StartBit, unsigned char Length, unsigned char Value) /*Do not span bytes*/ { unsigned char i; for (i = 0; i < Length; i++) { Message->Msg[StartByte] &= (~(1 << (i + StartBit))); } Message->Msg[StartByte] |= (Value << StartBit); } /*:zh*/ void All_Lamp_TurnOn(void) { ; }