|
|
|
@ -328,135 +328,70 @@ static void Robot_Move_Right(void) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef IS_TABLE |
|
|
|
const ActionFunc g_ActionTable[KEY_MAX][MODE_MAX][SUB_MODE_MAX] = { |
|
|
|
[E_STOP] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = E_Robot_Stop, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = E_Robot_Stop, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = E_Robot_Stop, |
|
|
|
}, |
|
|
|
#ifndef TREE_SUPPORT_NULL |
|
|
|
const TKeyForest g_ActionTable = { |
|
|
|
.E_Stop = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, E_Robot_Stop}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, E_Robot_Stop}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, E_Robot_Stop} |
|
|
|
}, |
|
|
|
[KEY_SA_UP] = { |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Right_To_Left_UP_Control, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Left_To_Right_UP_Control, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[KEY_SA_DOWN] = { |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Right_To_Left_Down_Control, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Left_To_Right_Down_Control, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[KEY_SA_DEFAULT] = { |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Lane_Change_State_Reset, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Lane_Change_State_Reset, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[KEY_SB_UP] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward_PID, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward_PID, |
|
|
|
} |
|
|
|
}, |
|
|
|
[KEY_SB_DOWN] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward_PID, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward_PID, |
|
|
|
} |
|
|
|
}, |
|
|
|
[KEY_SC_DOWN] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Paint_OFF, |
|
|
|
} |
|
|
|
}, |
|
|
|
[KEY_SC_DEFAULT] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Paint_OFF, |
|
|
|
} |
|
|
|
}, |
|
|
|
[KEY_SC_UP] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Paint_ON, |
|
|
|
} |
|
|
|
}, |
|
|
|
[JOY_DEFAULT] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Stop, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Stop_After, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Stop_After, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[JOY_LEFT_UP] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward_PID, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Forward_PID, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[JOY_LEFT_DWON] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward_PID, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Backward_PID, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[JOY_LEFT_LEFT] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Left, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Left, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Left, |
|
|
|
}, |
|
|
|
}, |
|
|
|
[JOY_LEFT_RIGHT] = { |
|
|
|
[MODE_DEFAULT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Right, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_LEFT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Right, |
|
|
|
}, |
|
|
|
[MODE_VERTICAL_RIGHT] = { |
|
|
|
[SUB_MODE_DEFAULT] = Robot_Move_Right, |
|
|
|
}, |
|
|
|
} |
|
|
|
.SA_Up = { |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Right_To_Left_UP_Control}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Left_To_Right_UP_Control} |
|
|
|
}, |
|
|
|
.SA_Down = { |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Right_To_Left_Down_Control}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Left_To_Right_Down_Control} |
|
|
|
}, |
|
|
|
.SA_Default = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Lane_Change_State_Reset}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Lane_Change_State_Reset}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Lane_Change_State_Reset} |
|
|
|
}, |
|
|
|
.SB_Up = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Forward}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID} |
|
|
|
}, |
|
|
|
.SB_Down = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Backward}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID} |
|
|
|
}, |
|
|
|
.SC_Up = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_ON} |
|
|
|
}, |
|
|
|
.SC_Down = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_OFF} |
|
|
|
}, |
|
|
|
.SC_Default = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_OFF} |
|
|
|
}, |
|
|
|
.Joy_Default = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Stop}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Stop_After}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Stop_After} |
|
|
|
}, |
|
|
|
.Joy_Left_Up = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Forward}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID} |
|
|
|
}, |
|
|
|
.Joy_Left_Down = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Backward}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID} |
|
|
|
}, |
|
|
|
.Joy_Left_Left = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Left}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Left}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Left} |
|
|
|
}, |
|
|
|
.Joy_Left_Right = { |
|
|
|
{MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Right}, |
|
|
|
{MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Right}, |
|
|
|
{MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Robot_Move_Right} |
|
|
|
} |
|
|
|
}; |
|
|
|
#else |
|
|
|
|
|
|
|
|