Browse Source

副模式默认使用默认而不是空

master
Lizongdi 1 week ago
parent
commit
47e13ef015
  1. 25
      controller/include/msp_MK32.h
  2. 126
      project/paint_robot_new/paint_robot_new.c

25
controller/include/msp_MK32.h

@ -76,6 +76,7 @@ typedef enum {
typedef enum { typedef enum {
SUB_MODE_NULL = 0, SUB_MODE_NULL = 0,
SUB_MODE_DEFAULT,
SUB_MODE_MAX SUB_MODE_MAX
} E_BHBF_RBSubMode; } E_BHBF_RBSubMode;
@ -160,21 +161,21 @@ static inline void SafeDispatch(const TKeyTree *table, int count, int mode, int
} }
} }
// for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
// { {
// if (table[i].m_iMode == mode && table[i].m_iSubMode == SUB_MODE_NULL) if (table[i].m_iMode == mode && table[i].m_iSubMode == SUB_MODE_DEFAULT)
// { {
// if (table[i].m_ptFunc != NULL) if (table[i].m_ptFunc != NULL)
// { {
// table[i].m_ptFunc(); table[i].m_ptFunc();
// } }
// return; return;
// } }
// } }
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
if (table[i].m_iMode == MODE_DEFAULT && table[i].m_iSubMode == SUB_MODE_NULL) if (table[i].m_iMode == MODE_DEFAULT && table[i].m_iSubMode == SUB_MODE_DEFAULT)
{ {
if (table[i].m_ptFunc != NULL) if (table[i].m_ptFunc != NULL)
{ {

126
project/paint_robot_new/paint_robot_new.c

@ -332,129 +332,129 @@ static void Robot_Move_Right(void)
const ActionFunc g_ActionTable[KEY_MAX][MODE_MAX][SUB_MODE_MAX] = { const ActionFunc g_ActionTable[KEY_MAX][MODE_MAX][SUB_MODE_MAX] = {
[E_STOP] = { [E_STOP] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = E_Robot_Stop, [SUB_MODE_DEFAULT] = E_Robot_Stop,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = E_Robot_Stop, [SUB_MODE_DEFAULT] = E_Robot_Stop,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = E_Robot_Stop, [SUB_MODE_DEFAULT] = E_Robot_Stop,
}, },
}, },
[KEY_SA_UP] = { [KEY_SA_UP] = {
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Vertical_Lane_Change_From_Right_To_Left_UP_Control, [SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Right_To_Left_UP_Control,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Vertical_Lane_Change_From_Left_To_Right_UP_Control, [SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Left_To_Right_UP_Control,
}, },
}, },
[KEY_SA_DOWN] = { [KEY_SA_DOWN] = {
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Vertical_Lane_Change_From_Right_To_Left_Down_Control, [SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Right_To_Left_Down_Control,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Vertical_Lane_Change_From_Left_To_Right_Down_Control, [SUB_MODE_DEFAULT] = Vertical_Lane_Change_From_Left_To_Right_Down_Control,
}, },
}, },
[KEY_SA_DEFAULT] = { [KEY_SA_DEFAULT] = {
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Lane_Change_State_Reset, [SUB_MODE_DEFAULT] = Lane_Change_State_Reset,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Lane_Change_State_Reset, [SUB_MODE_DEFAULT] = Lane_Change_State_Reset,
}, },
}, },
[KEY_SB_UP] = { [KEY_SB_UP] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Forward, [SUB_MODE_DEFAULT] = Robot_Move_Forward,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Forward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Forward_PID,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Forward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Forward_PID,
} }
}, },
[KEY_SB_DOWN] = { [KEY_SB_DOWN] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Backward, [SUB_MODE_DEFAULT] = Robot_Move_Backward,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Backward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Backward_PID,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Backward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Backward_PID,
} }
}, },
[KEY_SC_DOWN] = { [KEY_SC_DOWN] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Paint_OFF, [SUB_MODE_DEFAULT] = Robot_Paint_OFF,
} }
}, },
[KEY_SC_DEFAULT] = { [KEY_SC_DEFAULT] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Paint_OFF, [SUB_MODE_DEFAULT] = Robot_Paint_OFF,
} }
}, },
[KEY_SC_UP] = { [KEY_SC_UP] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Paint_ON, [SUB_MODE_DEFAULT] = Robot_Paint_ON,
} }
}, },
[JOY_DEFAULT] = { [JOY_DEFAULT] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Stop, [SUB_MODE_DEFAULT] = Robot_Stop,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Stop_After, [SUB_MODE_DEFAULT] = Robot_Stop_After,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Stop_After, [SUB_MODE_DEFAULT] = Robot_Stop_After,
}, },
}, },
[JOY_LEFT_UP] = { [JOY_LEFT_UP] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Forward, [SUB_MODE_DEFAULT] = Robot_Move_Forward,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Forward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Forward_PID,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Forward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Forward_PID,
}, },
}, },
[JOY_LEFT_DWON] = { [JOY_LEFT_DWON] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Backward, [SUB_MODE_DEFAULT] = Robot_Move_Backward,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Backward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Backward_PID,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Backward_PID, [SUB_MODE_DEFAULT] = Robot_Move_Backward_PID,
}, },
}, },
[JOY_LEFT_LEFT] = { [JOY_LEFT_LEFT] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Left, [SUB_MODE_DEFAULT] = Robot_Move_Left,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Left, [SUB_MODE_DEFAULT] = Robot_Move_Left,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Left, [SUB_MODE_DEFAULT] = Robot_Move_Left,
}, },
}, },
[JOY_LEFT_RIGHT] = { [JOY_LEFT_RIGHT] = {
[MODE_DEFAULT] = { [MODE_DEFAULT] = {
[SUB_MODE_NULL] = Robot_Move_Right, [SUB_MODE_DEFAULT] = Robot_Move_Right,
}, },
[MODE_VERTICAL_LEFT] = { [MODE_VERTICAL_LEFT] = {
[SUB_MODE_NULL] = Robot_Move_Right, [SUB_MODE_DEFAULT] = Robot_Move_Right,
}, },
[MODE_VERTICAL_RIGHT] = { [MODE_VERTICAL_RIGHT] = {
[SUB_MODE_NULL] = Robot_Move_Right, [SUB_MODE_DEFAULT] = Robot_Move_Right,
}, },
} }
}; };
@ -462,61 +462,61 @@ const ActionFunc g_ActionTable[KEY_MAX][MODE_MAX][SUB_MODE_MAX] = {
const TKeyForest g_ActionTable = { const TKeyForest g_ActionTable = {
.E_Stop = { .E_Stop = {
{MODE_DEFAULT, SUB_MODE_NULL, E_Robot_Stop} {MODE_DEFAULT, SUB_MODE_DEFAULT, E_Robot_Stop}
}, },
.SA_Up = { .SA_Up = {
{MODE_DEFAULT, SUB_MODE_NULL, NULL}, {MODE_DEFAULT, SUB_MODE_DEFAULT, NULL},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Vertical_Lane_Change_From_Right_To_Left_UP_Control}, {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Right_To_Left_UP_Control},
{MODE_VERTICAL_RIGHT, SUB_MODE_NULL, Vertical_Lane_Change_From_Left_To_Right_UP_Control} {MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Left_To_Right_UP_Control}
}, },
.SA_Down = { .SA_Down = {
{MODE_DEFAULT, SUB_MODE_NULL, NULL}, {MODE_DEFAULT, SUB_MODE_DEFAULT, NULL},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Vertical_Lane_Change_From_Right_To_Left_Down_Control}, {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Right_To_Left_Down_Control},
{MODE_VERTICAL_RIGHT, SUB_MODE_NULL, Vertical_Lane_Change_From_Left_To_Right_Down_Control} {MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, Vertical_Lane_Change_From_Left_To_Right_Down_Control}
}, },
.SA_Default = { .SA_Default = {
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Lane_Change_State_Reset} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Lane_Change_State_Reset}
}, },
.SB_Up = { .SB_Up = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Forward}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Forward},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Robot_Move_Forward_PID} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID}
}, },
.SB_Down = { .SB_Down = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Backward}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Backward},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Robot_Move_Backward_PID} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID}
}, },
.SC_Up = { .SC_Up = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Paint_ON}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_ON},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, NULL}, {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, NULL},
{MODE_VERTICAL_RIGHT, SUB_MODE_NULL, NULL} {MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, NULL}
}, },
.SC_Down = { .SC_Down = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Paint_OFF}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_OFF},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, NULL}, {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, NULL},
{MODE_VERTICAL_RIGHT, SUB_MODE_NULL, NULL} {MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, NULL}
}, },
.SC_Default = { .SC_Default = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Paint_OFF}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Paint_OFF},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, NULL}, {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, NULL},
{MODE_VERTICAL_RIGHT, SUB_MODE_NULL, NULL} {MODE_VERTICAL_RIGHT, SUB_MODE_DEFAULT, NULL}
}, },
.Joy_Default = { .Joy_Default = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Stop}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Stop},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Robot_Stop_After} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Stop_After}
}, },
.Joy_Left_Up = { .Joy_Left_Up = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Forward}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Forward},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Robot_Move_Forward_PID} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Forward_PID}
}, },
.Joy_Left_Down = { .Joy_Left_Down = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Backward}, {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Backward},
{MODE_VERTICAL_LEFT, SUB_MODE_NULL, Robot_Move_Backward_PID} {MODE_VERTICAL_LEFT, SUB_MODE_DEFAULT, Robot_Move_Backward_PID}
}, },
.Joy_Left_Left = { .Joy_Left_Left = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Left} {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Left}
}, },
.Joy_Left_Right = { .Joy_Left_Right = {
{MODE_DEFAULT, SUB_MODE_NULL, Robot_Move_Right} {MODE_DEFAULT, SUB_MODE_DEFAULT, Robot_Move_Right}
} }
}; };
#endif #endif
@ -961,7 +961,7 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg)
Move_Halt_AngleError(); Move_Halt_AngleError();
MK32_Key_Func(&g_stMK32, g_stPV.RunMode, SUB_MODE_NULL); MK32_Key_Func(&g_stMK32, g_stPV.RunMode, SUB_MODE_DEFAULT);
break; break;
} }
case CMD_SHOW_INFO: case CMD_SHOW_INFO:

Loading…
Cancel
Save