|
@@ -198,7 +198,92 @@ void KM5S_USART_RxData_Process(USART_Buf_TypeDef* ptUartTx, UBYTE* buf, UWORD da
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+void KM5S_MingruiTxErrorCodeUpdata(void)
|
|
|
+{
|
|
|
+#if(MINGRUI_ENABLE == 1)
|
|
|
+ if(1 == MC_ErrorCode.ERROR_Bit.Protect_OverVoltage)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x26;//过压保护
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Protect_UnderVoltage)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x11;//欠压保护
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Protect_LockRotor)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x29;//电机堵转保护
|
|
|
+ }
|
|
|
+ else if((1 == MC_ErrorCode.ERROR_Bit.Protect_OverTemp) || (1 == MC_ErrorCode.ERROR_Bit.Protect_MotorOverTemp))
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x13;//控制器或电机过温
|
|
|
+ }
|
|
|
+ /*else if(0)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x17;//飞车保护
|
|
|
+ }*/
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Fault_CadenceSensor)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x18;//踏频传感器故障
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Fault_BikeSpdSensor)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x19;//电机测速传感器故障
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Protect_OverCurrent)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x21;//控制器过流
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Fault_Throttle)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x22;//转把故障
|
|
|
+ }
|
|
|
+ else if(1 == MC_ErrorCode.ERROR_Bit.Fault_HallSensor)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x24;//电机霍尔故障
|
|
|
+ }
|
|
|
+ else if(1 == alm_unBikeCode.bit.Brake)
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x25;//刹车异常
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ stMC2OBC_RRunInfo.ErrorCode = 0x00;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+}
|
|
|
+void KM5S_MingruiRxGearStUpdata(void)
|
|
|
+{
|
|
|
+#if(MINGRUI_ENABLE == 1)
|
|
|
+ if(stOBC_RunInfo.ucWalk == 1)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_WALK;
|
|
|
+ }
|
|
|
+ else if(stOBC_RunInfo.ucPWM == 0x11)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_ECO;
|
|
|
+ }
|
|
|
+ else if(stOBC_RunInfo.ucPWM == 0x22)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_NORM;
|
|
|
+ }
|
|
|
+ else if(stOBC_RunInfo.ucPWM == 0x33)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_SPORT;
|
|
|
+ }
|
|
|
+ else if(stOBC_RunInfo.ucPWM == 0x44)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_TURBO;
|
|
|
+ }
|
|
|
+ else if(stOBC_RunInfo.ucPWM == 0x55)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_SMART;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_OFF;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+}
|
|
|
void KM5S_USART_DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD Addr, UBYTE Mode, UBYTE Length, UBYTE* Data)
|
|
|
{
|
|
|
UWORD uwCmd,uwID;
|
|
@@ -257,6 +342,7 @@ void KM5S_USART_DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD Addr, UBYTE Mode,
|
|
|
MC_ControlCode.GearSt = MC_GearSt_SMART;
|
|
|
}
|
|
|
|
|
|
+ KM5S_MingruiRxGearStUpdata();
|
|
|
|
|
|
if(stOBC_RunInfo.ucLightSwitch == 1) //大灯
|
|
|
{
|
|
@@ -274,7 +360,7 @@ void KM5S_USART_DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD Addr, UBYTE Mode,
|
|
|
}
|
|
|
else if((Mode == 0x53) && (Length == 0x07)) //参数设置
|
|
|
{
|
|
|
-// KM5S_OBCSetPara(Data);
|
|
|
+ KM5S_OBCSetPara(Data);
|
|
|
KM5S_SendData_OBC(ptUartTx, Mode, 0x05, stOBC_SetInfo.ucShakingCode);
|
|
|
}
|
|
|
}
|
|
@@ -1437,6 +1523,11 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
stOBC_SetInfo.ucSpeedLimiation = ((Data[10] & 0xF8)>>3) + 10;//km/h
|
|
|
stOBC_SetInfo.ucWheelDiameterCode = (Data[10] & 0x07);
|
|
|
|
|
|
+#if(MINGRUI_ENABLE == 1)
|
|
|
+ stOBC_SetInfo.ucSpeedLimiation = ((Data[10] & 0xF8)>>3) + 20;//km/h
|
|
|
+#endif
|
|
|
+
|
|
|
+#if(0)
|
|
|
/*低压保护阈值更新*/
|
|
|
if(MC_UpcInfo.stMContorlInfo.uwAlamUVolV != (UWORD)(stOBC_SetInfo.uwUnderVoltageBase + stOBC_SetInfo.swUnderVoltageBias))
|
|
|
{
|
|
@@ -1447,7 +1538,7 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
cp_stFlg.ParaMCInfoUpdateFlg = TRUE;
|
|
|
cp_stFlg.ParaMotorDriveUpdateFinishFlg = TRUE;
|
|
|
}
|
|
|
-
|
|
|
+#endif
|
|
|
/*功率限幅阈值更新*/
|
|
|
// #if (IPM_VOLTAGE_SEL == IPM_VOLTAGE_48V)
|
|
|
// UWORD uwVolt = 480;
|
|
@@ -1456,6 +1547,7 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
// #else
|
|
|
// UWORD uwVolt = 360;
|
|
|
// #endif
|
|
|
+#if(0)
|
|
|
UWORD uwVolt =cp_stMotorPara.swRUdcV;
|
|
|
if(MC_UpcInfo.stTestParaInfo.uwPwrLimit != ((stOBC_SetInfo.ucCurrentLimiation*uwVolt>>1) + 500))
|
|
|
{
|
|
@@ -1464,9 +1556,12 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
cp_stFlg.ParaSaveEEFlg = TRUE;
|
|
|
cp_stFlg.ParaUpdateFlg = TRUE;
|
|
|
cp_stFlg.TestParaInfoUpdateFlg = TRUE;
|
|
|
+ ]
|
|
|
cp_stFlg.ParaMotorDriveUpdateFinishFlg = TRUE;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
+#if(0)
|
|
|
/*限速阈值更新*/
|
|
|
if(MC_UpcInfo.stAssistInfo.uwAssistLimitBikeSpdStart != stOBC_SetInfo.ucSpeedLimiation)
|
|
|
{
|
|
@@ -1481,7 +1576,9 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
cp_stFlg.ParaBikeInfoUpdateFlg = TRUE;
|
|
|
cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
+#if(0)
|
|
|
/*轮径更新*/
|
|
|
if(stOBC_SetInfo.ucWheelDiameterCode <= 5)
|
|
|
{
|
|
@@ -1504,6 +1601,7 @@ void KM5S_OBCSetPara(UBYTE* Data)
|
|
|
cp_stFlg.ParaBikeInfoUpdateFlg = TRUE;
|
|
|
cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
|
|
|
}
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
void KM5S_SendData_OBC(USART_Buf_TypeDef* ptUartTx, UBYTE Mode, UBYTE Length, UBYTE checknum)
|
|
@@ -1551,15 +1649,17 @@ void KM5S_SendData_OBC(USART_Buf_TypeDef* ptUartTx, UBYTE Mode, UBYTE Length, UB
|
|
|
{
|
|
|
stMC2OBC_RRunInfo.ErrorCode = 0x24;//电机霍尔异常
|
|
|
}
|
|
|
- /*else if(0)
|
|
|
+ else if(1 == alm_unBikeCode.bit.Brake)
|
|
|
{
|
|
|
stMC2OBC_RRunInfo.ErrorCode = 0x25;//刹车异常
|
|
|
- }*/
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
stMC2OBC_RRunInfo.ErrorCode = 0x00;
|
|
|
}
|
|
|
|
|
|
+ KM5S_MingruiTxErrorCodeUpdata();
|
|
|
+
|
|
|
databuf[0] = UARTFRAME_BEGIN;
|
|
|
databuf[1] = UARTADDR_OBC;
|
|
|
databuf[2] = Mode;
|