|
@@ -39,18 +39,33 @@ GiantControlParams_Struct_t stGiantControlParams;
|
|
|
Subroutine Call: N/A;
|
|
|
Reference: N/A
|
|
|
****************************************************************/
|
|
|
+void giant_Init(void)
|
|
|
+{
|
|
|
+ stGiantControlParams.RidingModeEn = 0;
|
|
|
+ stGiantControlParams.AdjustingMode = 0x0B;//check mode
|
|
|
+}
|
|
|
void giant_10msTask(void)
|
|
|
{
|
|
|
static UBYTE giant_10mscount = 0;
|
|
|
|
|
|
+ if(power_stPowStateOut.powerstate == POWER_OFF)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
giant_10mscount++;
|
|
|
if(giant_10mscount >= 5)
|
|
|
{
|
|
|
giant_10mscount = 0;
|
|
|
- for(int i=0;i<9;i++)
|
|
|
- {
|
|
|
- giant_SendDriveChainActiveData(FG_NORMALDATA, i);
|
|
|
- }
|
|
|
+
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x0);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x1);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x2);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x3);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x4);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x6);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x7);
|
|
|
+ giant_SendDriveChainActiveData(FG_NORMALDATA, 0x8);
|
|
|
giant_SendDriveChainActiveData(FG_NORMALDATA, 0xF);
|
|
|
}
|
|
|
}
|
|
@@ -125,26 +140,6 @@ void giant_DataProcess(void)
|
|
|
|
|
|
stGiantControlParams.RidingModeEn = ((pRxMsg2->rx_data[3] & 0x80)>>7);//Riding mode
|
|
|
stGiantControlParams.AdjustingMode = (pRxMsg2->rx_data[3] & 0x1F);//Adjusting mode
|
|
|
- if((stGiantControlParams.AdjustingMode >= 0x6) && (stGiantControlParams.AdjustingMode <= 0xA))//Service mode
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- else if(stGiantControlParams.AdjustingMode == 0xB)//Check mode
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- else if(stGiantControlParams.AdjustingMode == 0xC)//Off mode
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- else if(stGiantControlParams.AdjustingMode == 0xD)//error state
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
|
|
|
if((pRxMsg2->rx_data[4] & 0x04) == 0x04)//Reset odometer distance and odometer time
|
|
|
{
|
|
@@ -285,10 +280,15 @@ void giant_DataProcess(void)
|
|
|
}
|
|
|
case MG_ACTIVEDATA1:
|
|
|
{
|
|
|
- for(int i=0;i<8;i++)
|
|
|
+ for(int i=0;i<5;i++)
|
|
|
{
|
|
|
giant_SendDriveChainActiveData(FG_RESPONSEDATA, i);
|
|
|
}
|
|
|
+
|
|
|
+ for(int j=6;j<8;j++)
|
|
|
+ {
|
|
|
+ giant_SendDriveChainActiveData(FG_RESPONSEDATA, j);
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
case MG_ACTIVEDATA2:
|
|
@@ -386,15 +386,7 @@ void giant_SendDriveChainPassiveData(UBYTE remoteMG, UBYTE DataAddr)
|
|
|
{
|
|
|
len = 4;
|
|
|
data[0] = 0x1;//success
|
|
|
- if(remoteMG == MG_HEARTBEAT)
|
|
|
- {
|
|
|
- data[1] = 0x00;
|
|
|
- data[2] = 0x00;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- memcpy(&data[1], &ass_stParaCong.uwWheelPerimeter, 2);//circumference
|
|
|
- }
|
|
|
+ memcpy(&data[1], &stGiantControlParams.WheelCircumference, 2);//circumference
|
|
|
data[3] = (UBYTE)ass_stParaCong.swDeltPerimeter;
|
|
|
break;
|
|
|
}
|
|
@@ -555,17 +547,44 @@ void giant_SendDriveChainActiveData(UBYTE functiongroup, UBYTE dataaddr)
|
|
|
CAN_SendData(ID, data, len);
|
|
|
}
|
|
|
|
|
|
-void giant_CanProcess(void)
|
|
|
+void giant_CANRxData_Process(void)
|
|
|
{
|
|
|
if(stGiantControlParams.RefreshFlag)
|
|
|
{
|
|
|
stGiantControlParams.RefreshFlag = FALSE;
|
|
|
|
|
|
- if((stGiantControlParams.AdjustingMode == 0xC) || (stGiantControlParams.ManualSleepEn) || (stGiantControlParams.AutomaticSleepEn) || ((cp_ulSystickCnt - ulOBC_ComTimeOutCount) < 3000))//Off state
|
|
|
+ if((stGiantControlParams.AdjustingMode == 0xC) || (stGiantControlParams.ManualSleepEn) || (stGiantControlParams.AutomaticSleepEn) || ((cp_ulSystickCnt - ulOBC_ComTimeOutCount) < 1500))//Off state
|
|
|
{
|
|
|
power_stPowStateOut.powerstate = POWER_OFF;
|
|
|
power_stPowStateOut.blPowerStartupFlg = FALSE;
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ if((stGiantControlParams.AdjustingMode >= AD_SERVICEMODE) && (stGiantControlParams.AdjustingMode <= AD_ERRORMODE))
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_OFF;
|
|
|
+ }
|
|
|
+ else if(stGiantControlParams.AssistRatio == 0)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_OFF;
|
|
|
+ }
|
|
|
+ else if(stGiantControlParams.RidingModeEn == 0)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_OFF;
|
|
|
+ }
|
|
|
+ else if(stGiantControlParams.WalkEn == 1)
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_WALK;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MC_ControlCode.GearSt = MC_GearSt_Torque_ECO;
|
|
|
+ }
|
|
|
+ MC_RunInfo.GearSt = (UBYTE)MC_ControlCode.GearSt;
|
|
|
+
|
|
|
+ if(stGiantControlParams.AdjustingMode == AD_CHECKMODE)
|
|
|
+ {
|
|
|
+ ass_stParaCong.uwWheelPerimeter = stGiantControlParams.WheelCircumference;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
/*************************************************************************
|