|
@@ -144,6 +144,8 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
|
|
|
memcpy(PBU_CheckInfo.CheckCode, Data, DataLength);
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ #if 1
|
|
|
//PBU/OBC发送给MC的指令
|
|
|
case 0x3002://控制电机指令
|
|
|
{
|
|
@@ -159,7 +161,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
|
|
|
IsComOK_PBU.IsOK_Flag = TRUE;
|
|
|
IsComOK_PBU.OK_TrigTime = HAL_GetTick();
|
|
|
break;
|
|
|
- }
|
|
|
+ }
|
|
|
case 0x3105://PBU在线检测反馈
|
|
|
{
|
|
|
if(strncmp("READY", (char*)Data, DataLength) == 0)
|
|
@@ -210,6 +212,52 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ #else //针对ECU的指令
|
|
|
+ case 0x3300://ECU查询用户参数
|
|
|
+ {
|
|
|
+ GetParamFromEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_CONFIG_PARAM1, sizeof(MC_ConfigParam1), (uint8_t*)&MC_ConfigParam1.GasCtrlMode_Flag);
|
|
|
+ Data[0] = MC_ConfigParam1.WheelSize; //轮胎默认周长
|
|
|
+ Data[1] = MC_ConfigParam1.SpeedLimit; //限速值
|
|
|
+ Data[2] = 0x18; //低压保护阈值 31000mV
|
|
|
+ Data[3] = 0x79;
|
|
|
+ SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5410, Data);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 0x3708://ECU控制指令
|
|
|
+ {
|
|
|
+ if(MC_WorkMode == MC_WorkMode_Run)
|
|
|
+ {
|
|
|
+ memcpy(&MC_ControlCode.GearSt, Data, 2);
|
|
|
+ Update_MC_ControlCode_Back();
|
|
|
+ }
|
|
|
+ MC_RunInfo.GearSt = MC_ControlCode.GearSt;//当前助力档位更新
|
|
|
+ MC_RunInfo.LightSwitch = MC_ControlCode.LightSwitch;
|
|
|
+ SendData(ID_MC_BC, MODE_REPORT, 0x1020, (uint8_t*)&MC_RunInfo.BikeSpeed);
|
|
|
+ //PBU通信正常标志置位
|
|
|
+ IsComOK_PBU.IsOK_Flag = TRUE;
|
|
|
+ IsComOK_PBU.OK_TrigTime = HAL_GetTick();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 0x3810://ECU设置用户参数
|
|
|
+ {
|
|
|
+ MC_ConfigParam1.WheelSize = Data[0];
|
|
|
+ MC_ConfigParam1.SpeedLimit = Data[1];
|
|
|
+ //Data[2]和Data[3]低压保护值暂不处理
|
|
|
+ SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_CONFIG_PARAM1, sizeof(MC_ConfigParam1), (uint8_t*)&MC_ConfigParam1.GasCtrlMode_Flag);
|
|
|
+ SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5303, (uint8_t*)"ACK");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ #endif
|
|
|
+
|
|
|
+ case 0x3900://ECU查询版本信息
|
|
|
+ {
|
|
|
+ ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MODE, (uint8_t*)MC_VerInfo.Mode, 16);
|
|
|
+ ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_SN, (uint8_t*)MC_VerInfo.SN_Num, 16);
|
|
|
+ SendData(ID_MC_BC, MODE_REPORT, 0x1240, (uint8_t*)MC_VerInfo.Mode);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
default:break;
|
|
|
}
|
|
|
break;
|
|
@@ -288,6 +336,8 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
|
|
|
MC_RunInfo.Ride_Time = 0;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
default:break;
|
|
|
}
|
|
|
break;
|