Commit ee2b9e9e authored by 李向行's avatar 李向行

feat:易行T06_检测台初版

parent aa623c40
......@@ -102,9 +102,9 @@ void SendCan0Message(void)
//20ms
SendCanMessage20msTimer = Timer10msCnts;
InitBuf();
CanSendCan0Msg(0x610, MOT_610 , 8,1);
CanSendCan0Msg(0x067, MOT_67 , 8,1);
CanSendCan0Msg(0x101, MOT_101 , 8,1);
// CanSendCan0Msg(0x610, MOT_610 , 8,1);
// CanSendCan0Msg(0x067, MOT_67 , 8,1);
// CanSendCan0Msg(0x101, MOT_101 , 8,1);
// CanSendCan0Msg(0x391, BCM_1_Door_Light, 8,1);
// CanSendCan0Msg(0x176, OBC_CC_ConnectSts, 8,1);
// CanSendCan0Msg(0x177, BMS_ChargeStatus, 8,1);
......@@ -118,13 +118,15 @@ void SendCan0Message(void)
//TimeoutMessagePro();
// CanSendCan0Msg(0x480, PEPS_1, 8,1);
CanSendCan0Msg(0x0A10FFE0, YX_0x0A10FFE0, 8,1);
CanSendCan0Msg(0x0A10FFE1, YX_0x0A10FFE1, 8,1);
}
if ((Timer10msCnts > SendCanMessage100msTimer) && ((Timer10msCnts - SendCanMessage100msTimer) >= 98)) {
//100 ms
SendCanMessage100msTimer = Timer10msCnts;
InitBuf();
CanSendCan0Msg(0x600, MOT_600 , 8,1);
// CanSendCan0Msg(0x600, MOT_600 , 8,1);
// CanSendCan0Msg(0x315, VCU_4_ICMDisp, 8,1);
// CanSendCan0Msg(0x449, AVAS_SwitchFb, 8,1 );
// CanSendCan0Msg(0x3A5, VCU_RegenerationLevelSts ,8,1);
......@@ -136,6 +138,12 @@ void SendCan0Message(void)
// if((g_Stage == STAGE_Other) && ((HJ_OtherKeyCurrent.count == 2) || (HJ_OtherKeyCurrent.count >= 3))) {
// CanSendCan0Msg(0x401, ECU_401 ,8,1);
// }
CanSendCan0Msg(0x0A33FFE3, YX_0x0A33FFE3 ,8,1);
CanSendCan0Msg(0x0A20FFE2, YX_0x0A20FFE2 ,8,1);
CanSendCan0Msg(0x0A30FFE8, YX_0x0A30FFE8 ,8,1);
CanSendCan0Msg(0x0A30FFE3, YX_0x0A30FFE3 ,8,1);
CanSendCan0Msg(0x0A22FFE2, YX_0x0A22FFE2 ,8,1);
YX_0x0A20FFE2.msg.bits.P_File_Status = 2;
......@@ -145,12 +153,17 @@ void SendCan0Message(void)
SendCanMessage200msTimer = Timer10msCnts;
InitBuf();
// CanSendCan0Msg(0x50E, CGW6, 8,1);
CanSendCan0Msg(0x0A32FFE4, YX_0x0A32FFE4 ,8,1);
CanSendCan0Msg(0x0A30DDE8, YX_0x0A30DDE8 ,8,1);
CanSendCan0Msg(0x0A37FFE3, YX_0x0A37FFE3 ,8,1);
CanSendCan0Msg(0x0A18FFE0, YX_0x0A18FFE0 ,8,1);
YX_0x0A37FFE3.msg.bits.Telephone_Reminder = 1; //鏉ョ數鏄剧ず
}
if ((Timer10msCnts > SendCanMessage500msTimer) && ((Timer10msCnts - SendCanMessage500msTimer) >= 500)) {
// 500ms
SendCanMessage500msTimer = Timer10msCnts;
InitBuf();
CanSendCan0Msg(0x611, MOT_611 , 8,1);
// CanSendCan0Msg(0x611, MOT_611 , 8,1);
// CanSendCan0Msg(0x5D1, MCU_MotorTempWarning, 8,1);
// CanSendCan0Msg(0x51B, TPMS_TirePressureSystemFailSts, 8,1);
// CanSendCan0Msg(0x31C, ABM_AirBagFailSts, 8,1);
......
This diff is collapsed.
......@@ -430,7 +430,7 @@ void CheckRecvCan0Frame(stc_canfd_msg_t *stc_msg)//C CAN ��Ϣ���ջص
#if (CAN_3RD)
#endif
/* UDS */
if (stc_msg->stcIdentifier.u32Identifier == 0x789)
if (stc_msg->stcIdentifier.u32Identifier == 0x725)
{
data.DataLen = CanDlcInCanFDDlc[stc_msg->stcData.u8DataLengthCode];
Can_Clear((uint8_t*)&Receive_7CE_Data.data,sizeof(Receive_7CE_Data));
......@@ -456,7 +456,7 @@ void CheckRecvCan0Frame(stc_canfd_msg_t *stc_msg)//C CAN ��Ϣ���ջص
{
RxFinish = UNFINISH;
bufSend[0]= 0x30;
CanFD_Send_StandMsg(CANFD0_Type, 0x781, BUF_40, TX_ISR_EN, (uint8_t*)&bufSend, 8);
CanFD_Send_StandMsg(CANFD0_Type, 0x705, BUF_40, TX_ISR_EN, (uint8_t*)&bufSend, 8);
}
else
{
......
......@@ -141,9 +141,9 @@ void Api_GPIO_Init(void)
Port_SetPinConfig(1, 19, &stc_OUT_pin_config); // S
Port_SetPinConfig(1, 20, &stc_OUT_pin_config); // D
Port_SetPinConfig(2, 0, &stc_OUT_pin_config); //CSB0LCD_OUT
Port_SetPinConfig(1, 13, &stc_OUT_pin_config); //����ʻ��ȫ����Ϣ
Port_SetPinConfig(2, 1, &stc_OUT_pin_config); //WaterSeparator
Port_SetPinConfig(2, 0, &stc_OUT_pin_config); //左转
Port_SetPinConfig(1, 13, &stc_OUT_pin_config); //右转
Port_SetPinConfig(2, 1, &stc_OUT_pin_config); //远光
Port_SetPinConfig(1, 21, &stc_OUT_pin_config);
Port_SetPinConfig(1, 22, &stc_OUT_pin_config);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -3,13 +3,13 @@
#define LED_MAX_NUM 120
extern ST_FUNC_OUT g_stLedOut[LED_MAX_NUM];
extern void HJ_VSpeed(uint8_t VSpeedNum);//车?
extern void HJ_ESpeed(uint16_t ESpeedNum);//??
extern void HJ_VSpeed(uint8_t VSpeedNum);//车?
extern void HJ_ESpeed(uint16_t ESpeedNum);//�?�?
extern void HJ_SetLeftLed(en_port_gpio_level_t LedState);//左转
extern void HJ_SetRightLed(en_port_gpio_level_t LedState);//右转
extern void HJ_SetHightLed(en_port_gpio_level_t LedState);//远光
extern void HJ_ECU_Warning_Lamp(void);//电喷故障指示?
extern void HJ_VoltageNumLamp(void);//电压指示?
extern void HJ_ECU_Warning_Lamp(void);//电喷故障指示?
extern void HJ_VoltageNumLamp(void);//电压指示?
extern void HJ_FuelFun(HJ_FuelScale OilNum);
extern void HJ_SWPush(HJ_SwitchOutPut SWitchSate, uint8_t SwPushCount, uint8_t SwSep);//按键
extern void ClearOtherSWFlagFun();
......@@ -19,30 +19,30 @@ void Gear_R();
void Gear_N();
void Gear_D();
void Gear_OUT();
// void SafetyBelt();//安全?
// void SafetyBelt();//安全?
void PowerLimitDisp();//驱动功率限制指示
void SwitchFb();//低速报警关?指示
void SmartSystemWarning();//智能钥匙检测提?
void LHTurnlightSts();//左转向指示,危险?
void SwitchFb();//低速报警关?指示
void SmartSystemWarning();//智能钥匙检测提?
void LHTurnlightSts();//左转向指示,危险?
void HighBeamSts();//远光指示
void DRLSts();//日?灯指示
void DRLSts();//日�?�灯指示
void ParkLightSts();//小灯指示
void RearFogLightSts();//后雾?指示
void RegenerationLevelSts1();//能量回收等级显示1?
void RegenerationLevelSts2();//能量回收等级显示2?
void RegenerationLevelSts3();//能量回收等级显示3?
void RHTurnlightSt();//右转向指?
void RearFogLightSts();//后雾?指示
void RegenerationLevelSts1();//能量回收等级显示1?
void RegenerationLevelSts2();//能量回收等级显示2?
void RegenerationLevelSts3();//能量回收等级显示3?
void RHTurnlightSt();//右转向指?
void BatTmpHiInd();//动力电池温度过高
void LowSOCWarnLampSts();//低荷电状态报警指?
void ThermalCtrlWarning();//动力电池?失控报?提?
void LowSOCWarnLampSts();//低荷电报警指�?
void ThermalCtrlWarning();//动力电池�?失控报�?�提�?
void MotorTempWarning();//电机及控制器过热
void DCDCLVSysFltInd();//DCDC故障指示
void ElectricDriveSysFaultDisp();//电驱动系统故障指?
void ElectricDriveSysFaultDisp();//电驱动系统故障指?
void TirePressureSystemFailSts();//胎压故障指示
void SteeringAngleCalibrationSts();//EPS故障指示
void AuthFailWarn();//防盗指示
void SystemFaultDisp();//整车系统故障报?指?
void IsoResisLw();//绝缘故障?
void SystemFaultDisp();//整车系统故障报�?�指�?
void IsoResisLw();//绝缘故障?
void ReadySts();//Ready
void ECOPlus();//ECOPlus
void ECO();//ECO
......@@ -51,10 +51,10 @@ void SPT();//SPT
void AirBagFailSts();//安全气囊指示
void ABS_FailSts();//ABS
void DriverDoorSts();//门开指示
void HVBatDiscWarn();//动力电池?开指示
void HVBatDiscWarn();//动力电池?开指示
void PowerBattFaultDisp();//动力电池故障指示
void VacuumPresWarn();//真空助力系统故障
void ConnectSts();//充电线连接指?
void ConnectSts();//充电线连接指?
void SmartSystemWarning_3_1();//PEPS
......
......@@ -2550,6 +2550,8 @@ void ExecSemiAutomaticCheck(uint8_t uiCallType)
}
#endif
uint8_t HJ_CurvSpeedNum = 0;
uint8_t PowerLevel1 = 0; //电池电量1
uint8_t PowerLevel2 = 0; //电池电量2
uint8_t HJ_FrontOtherKeyCurrent = 0;
uint16_t HJ_CureSpeedNum = 0;
uint8_t HJ_CurFuelNum = 0;
......@@ -2563,6 +2565,8 @@ uint8_t HJ_SetTimeFinish = 0;
void ClearOtherFlagFun()
{
HJ_CurvSpeedNum = 0;
PowerLevel1 = 0; //电池电量1
PowerLevel2 = 0; //电池电量2
HJ_FrontOtherKeyCurrent = 0;
//HJ_CureSpeedNum = 0;
//HJ_CurFuelNum = 0;
......@@ -2624,45 +2628,33 @@ void HJ_SwitchSecondPage()
{
g_Stage = STAGE_Other;
//VSPEED
// if(HJ_OtherKeyCurrent.count <= 10) {
// HJ_CurvSpeedNum = ((((HJ_OtherKeyCurrent.count - 1) * 20 )*100)/105) + 1;
// if(HJ_CurvSpeedNum < 25)
// HJ_CurvSpeedNum-=1;
// } else {
// HJ_CurvSpeedNum = 199;
// }
// VSPEED
if(HJ_OtherKeyCurrent.count < 10) {
HJ_CurvSpeedNum = (HJ_OtherKeyCurrent.count ) * 20 ;
} else {
HJ_CurvSpeedNum = 199;
}
if(HJ_OtherKeyCurrent.count == 0)
{
PowerLevel1 = 0; //电池电量1
PowerLevel2 = 0; //电池电量2
}
else if(HJ_OtherKeyCurrent.count == 1)
{
PowerLevel1 = 0; //电池电量1
PowerLevel2 = 100; //电池电量2
}
else if((HJ_OtherKeyCurrent.count > 1) && (HJ_OtherKeyCurrent.count < 10))
{
PowerLevel1 = (HJ_OtherKeyCurrent.count - 1) * 10;
// //Gear
// if(HJ_OtherKeyCurrent.count <= 7) {
// HJ_SettingNum = (HJ_OtherKeyCurrent.count-1);}
// else if(HJ_OtherKeyCurrent.count == 8 ) {
// HJ_SettingNum = 0;
// } else{
// HJ_SettingNum = 15 - HJ_OtherKeyCurrent.count;
// }
// //ESPEED
// if(HJ_OtherKeyCurrent.count <= 9) {
// HJ_CureSpeedNum = ((HJ_OtherKeyCurrent.count - 1) * 1000) ;
// } else if(HJ_OtherKeyCurrent.count == 10 ) {
// HJ_CureSpeedNum = 10000;
// } else if((HJ_OtherKeyCurrent.count == 11) ) {
// HJ_CureSpeedNum = 12000;
// }else {
// HJ_CureSpeedNum = 0;
// }
// HJ_VSpeed(HJ_CurvSpeedNum);
// HJ_ESpeed(HJ_CureSpeedNum * 4);
// if(HJ_OtherKeyCurrent.count <= 7) {
// HJ_SetGear(PortGpioHigh, HJ_OtherKeyCurrent.count - 1);
// } else {
//HJ_SetGear();
// }
// if(HJ_OtherKeyCurrent.count == 1) {
// Speed_Output_Update(PWMCH_SPEED_OUT, 1500, 50);
// }
PowerLevel2 = (11 - HJ_OtherKeyCurrent.count) * 10;
}
else if(HJ_OtherKeyCurrent.count == 10)
{
PowerLevel1 = 100; //电池电量1
PowerLevel2 = 0; //电池电量2
}
HJ_LED(PortGpioHigh);
// if(FortOthercount != Othercount)
......@@ -2856,8 +2848,8 @@ void Stage_Manage()
// UserPressEOL();//��������
g_Stage = STAGE_Other;
if (HJ_OtherKeyCurrent.count == 0) {
HJ_OtherKeyCurrent.count = 12;
if (HJ_OtherKeyCurrent.count <= 1) {
HJ_OtherKeyCurrent.count = 10;
} else {
HJ_OtherKeyCurrent.count --;
}
......@@ -3006,14 +2998,26 @@ void Stage_Manage()
//UserPressKeyElse();//��������
// DOWNKeyCurrent.count ++;
g_Stage = STAGE_Other;
HJ_OtherKeyCurrent.count ++;
ClearOtherSWFlagFun();
ClearOtherFlagFun();
Othercount = 0;
if(HJ_OtherKeyCurrent.count > 12) {
// HJ_OtherKeyCurrent.count ++;
// ClearOtherSWFlagFun();
// ClearOtherFlagFun();
// Othercount = 0;
// if(HJ_OtherKeyCurrent.count > 10) {
// HJ_OtherKeyCurrent.count = 1;
// }
if(HJ_OtherKeyCurrent.count < 10) {
HJ_OtherKeyCurrent.count ++;
}
else
{
HJ_OtherKeyCurrent.count = 1;
}
ClearOtherSWFlagFun();
ClearOtherFlagFun();
Othercount = 0;
#endif
}
......
......@@ -20,7 +20,7 @@ extern uint8_t HJYB_Data[10];
extern uint8_t DAY_Data[10];
extern uint8_t NUM1_Data[10];
extern uint8_t NUM2_Data[10];
extern uint8_t NUM3_Data[10];
extern uint8_t NUM3_Data[20];
extern uint8_t NUM4_Data[21];
extern uint8_t NUM5_Data[10];
extern uint8_t NUM6_Data[10];
......@@ -133,6 +133,8 @@ extern uint8_t Write2EStep;
extern uint8_t ReceiveData[8];
extern uint8_t UdsKeyData[8];
extern uint8_t HJ_CurvSpeedNum;
extern uint8_t PowerLevel1;
extern uint8_t PowerLevel2;
extern uint16_t HJ_CureSpeedNum;
extern uint8_t HJ_CurFuelNum;
extern uint8_t HJ_SettingNum;
......
......@@ -50,13 +50,13 @@ static stc_canfd_instance_data_t m_astcCanFDInstanceDataLut[] =
/**
*****************************************************************************
** 主要是用于CAN初始化滤波器
** ��Ҫ������CAN��ʼ���˲���
**
**
*****************************************************************************/
typedef struct stc_canfd_standardFilter
{
uint16_t standardFilter[127]; //标准滤波器数组
uint16_t standardFilter[127]; //��׼�˲�������
} stc_canfd_standardFilter_t;
#define BUF_0 0
......@@ -111,7 +111,7 @@ typedef struct stc_canfd_standardFilter
/**
*****************************************************************************
** CanFD数据长度转换普通数据长度
** CanFD���ݳ���ת����ͨ���ݳ���
**
**
*****************************************************************************/
......@@ -137,25 +137,25 @@ static const int CanTxBufferDataFieldSize[] = {
};
extern volatile uint8_t Can0_busoffTime;
extern void CanFD_Drive_Init(pstc_canfd_type_t pstcCanFD,stc_canfd_standardFilter_t* filterConfig); //CAN0-CAN5 初始化
extern void CanFD_Drive_Init(pstc_canfd_type_t pstcCanFD,stc_canfd_standardFilter_t* filterConfig); //CAN0-CAN5 ��ʼ��
extern void BSP_CAN0_Init(void);
extern void CAN0_Wakup_Init(void);
extern void CAN0_Rx_CallBack(stc_canfd_msg_t* stc_msg); //接收中断回调函数
extern void CAN0_Tx_CallBack(void); //发送中断回调函数
extern void CAN0_Error_CallBack(en_canfd_error_t en_canfd_err); //错误中断回调函数
extern void CAN0_Rx_CallBack(stc_canfd_msg_t* stc_msg); //�����жϻص�����
extern void CAN0_Tx_CallBack(void); //�����жϻص�����
extern void CAN0_Error_CallBack(en_canfd_error_t en_canfd_err); //�����жϻص�����
static void CAN0_Wakup_CallBack(uint8_t channel);
extern void CAN0_FIFO_0_CallBack(stc_canfd_msg_t* stc_msg);
extern void CanFD_Busoff_Recover(uint8_t ch); //CAN BUSOFF 恢复函数
extern void CanFD_Busoff_Recover(uint8_t ch); //CAN BUSOFF �ָ�����
extern void CAN1_Wakup_Init(void);
extern void CAN1_Rx_CallBack(stc_canfd_msg_t* stc_msg); //接收中断回调函数
extern void CAN1_Tx_CallBack(void); //发送中断回调函数//发送中断回调函数
extern void CAN1_Error_CallBack(en_canfd_error_t en_canfd_err); //错误中断回调函数//错误中断回调函数
extern void CAN1_Rx_CallBack(stc_canfd_msg_t* stc_msg); //�����жϻص�����
extern void CAN1_Tx_CallBack(void); //�����жϻص�����//�����жϻص�����
extern void CAN1_Error_CallBack(en_canfd_error_t en_canfd_err); //�����жϻص�����//�����жϻص�����
static void CAN1_Wakup_CallBack(uint8_t channel);
extern void CAN1_FIFO_0_CallBack(stc_canfd_msg_t* stc_msg);
extern void CanFD_Send_StandMsg(pstc_canfd_type_t pstcCanFD,uint16_t id,uint8_t bufIndex,uint8_t tx_isr_en,uint8_t* msg,uint8_t dlc); //发送标准帧消息函数
extern void CanFD_Send_StandMsg(pstc_canfd_type_t pstcCanFD,uint32_t id,uint8_t bufIndex,uint8_t tx_isr_en,uint8_t* msg,uint8_t dlc); //���ͱ�׼֡��Ϣ����
//extern void Can2FD_Send_StandMsg(pstc_canfd_type_t pstcCanFD,uint16_t id,uint8_t bufIndex,uint8_t tx_isr_en,uint8_t* msg,uint8_t dlc); //发送标准帧消息函数
//extern void Can2FD_Send_StandMsg(pstc_canfd_type_t pstcCanFD,uint16_t id,uint8_t bufIndex,uint8_t tx_isr_en,uint8_t* msg,uint8_t dlc); //���ͱ�׼֡��Ϣ����
extern void Copy_RxBufToRam(uint8_t* msg,stc_canfd_msg_t* stc_msg);
extern void Copy_RxFIFOToRam(uint8_t* msg,stc_canfd_msg_t* stc_msg);
......
......@@ -310,11 +310,11 @@ enum {
#define CAN_2P5 0
#define CAN_3RD 0
#define RELEASE_VERS "V1.02"
#define RELEASE_VERS "V1.03"
//#if (SEMI_AUTOMATIC_STAGE)
//#define RELEASE_DATE_TIME "2023/04/15 16:00:00"
//#else
#define RELEASE_DATE_TIME "2024/06/18 17:10:00"
#define RELEASE_DATE_TIME "2025/01/10 00:00:00"
//#endif
#define PRO_CONFIG_CHECK_APPLY_TYPE1 1 //��׼���̨
......
......@@ -18,7 +18,7 @@ void UDS_Backdoor()
}
}
void UDS_Unlock(void)//写
void UDS_Unlock(void)//�
{
switch (Key27Step)
{
......@@ -37,7 +37,7 @@ void UDS_Unlock(void)//写
case 1:
if (RxFinish == FINISH)
{
//解锁算
//�����㷨
#if (PRO_SQFL)
Delay(50);//50ms
EOL_UDS_Key27Step_1_2(0x02);
......@@ -110,7 +110,7 @@ void UDS_2E_F18C_F187(void)
UDS_Backdoor();
if(Flag_SaveDate == 1)
{
CANSendEnable = OFF; //关闭其他报文发送
CANSendEnable = OFF; //�ر��������ķ���
//APP_EOL();
UDS_Unlock();
#if ((PRO_SQFL) || (PRO_CN7C))
......@@ -185,13 +185,13 @@ void UDS_2E_F18C_F187(void)
}
else if(Flag_SaveDate == 3)
{
if((Receive_7CE_Data.data[1] == 0x6E) && (Receive_7CE_Data.data[2] == 0xF1) && (Receive_7CE_Data.data[3] == 0x8C))//判断反馈
if((Receive_7CE_Data.data[1] == 0x6E) && (Receive_7CE_Data.data[2] == 0xF1) && (Receive_7CE_Data.data[3] == 0x8C))//�жϷ���
{
Flag_SaveDate = 4;
Key27Step = 0;
Can_Clear((uint8_t*)&Receive_7CE_Data.data,sizeof(Receive_7CE_Data));
}
else if((Receive_7CE_Data.data[1] == 0x7F) && (Receive_7CE_Data.data[2] == 0x2E))//判断反馈
else if((Receive_7CE_Data.data[1] == 0x7F) && (Receive_7CE_Data.data[2] == 0x2E))//�жϷ���
{
Flag_SaveDate = 0;
Key27Step = 0;
......@@ -244,7 +244,7 @@ void UDS_2E_F18C_F187(void)
}
else if(Flag_SaveDate == 6)
{
CANSendEnable = OFF; //关闭其他报文发送
CANSendEnable = OFF; //�ر��������ķ���
//APP_EOL();
UDS_Unlock();
#if ((PRO_SQFL) || (PRO_CN7C))
......@@ -311,13 +311,13 @@ void UDS_2E_F18C_F187(void)
}
else if(Flag_SaveDate == 8)
{
if((Receive_7CE_Data.data[1] == 0x6E) && (Receive_7CE_Data.data[2] == 0xF1) && (Receive_7CE_Data.data[3] == 0x87))//判断反馈
if((Receive_7CE_Data.data[1] == 0x6E) && (Receive_7CE_Data.data[2] == 0xF1) && (Receive_7CE_Data.data[3] == 0x87))//�жϷ���
{
Flag_SaveDate = 9;
Key27Step = 0;
Can_Clear((uint8_t*)&Receive_7CE_Data.data,sizeof(Receive_7CE_Data));
}
else if((Receive_7CE_Data.data[1] == 0x7F) && (Receive_7CE_Data.data[2] == 0x2E))//判断反馈
else if((Receive_7CE_Data.data[1] == 0x7F) && (Receive_7CE_Data.data[2] == 0x2E))//�жϷ���
{
Flag_SaveDate = 0;
SetClusterState = 4;
......
......@@ -49,10 +49,10 @@ void InitDiagnostic(void)
uint8_t CheckVoltage(void)
{
if (CurIgnVoltage >= 1600) {
/*ѹ쳣*/
/*��ѹ�쳣������*/
return 1;
} else if (CurIgnVoltage <= 900) {
/*ѹ쳣*/
/*��ѹ�쳣������*/
return 2;
}
return 0;
......
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