From a71799675ba27d5d2fdc9e757d5c1ba7995679b2 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Thu, 17 Sep 2026 14:17:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=A4=9A=E4=BD=99=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=B9=B6=E5=B0=86=E5=81=9C=E6=AD=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=BD=92=E4=B8=80=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RBcore/BHBF.c | 5 ++- RBcore/include/BHBF.h | 1 - project/paint_robot_new/paint_robot_new.c | 39 ++++--------------- .../paint_robot_new/paint_robot_new_motors.c | 5 --- 4 files changed, 10 insertions(+), 40 deletions(-) diff --git a/RBcore/BHBF.c b/RBcore/BHBF.c index 255870a..d6ad62a 100644 --- a/RBcore/BHBF.c +++ b/RBcore/BHBF.c @@ -61,8 +61,9 @@ static void RBcore_ModuleHandler(const Msg_t *pstMsg) { case RBCORE_CMD_STOP_ALL: { - MsgCenter_SendTo(MODULE_NAME_MOTOR, COMMON_CMD_STOP_ALL, NULL, 0); - MsgCenter_SendTo(MODULE_NAME_CUSTOM, COMMON_CMD_STOP_ALL, NULL, 0); + aiMotorSpeed[0] = 0; + aiMotorSpeed[1] = 0; + MsgCenter_SendTo(MODULE_NAME_MOTOR, MOTOR_SET_SPEED, aiMotorSpeed, sizeof(aiMotorSpeed)); break; } case RBCORE_CMD_MANUAL_FORWARD: diff --git a/RBcore/include/BHBF.h b/RBcore/include/BHBF.h index ab5f3e6..16575a8 100644 --- a/RBcore/include/BHBF.h +++ b/RBcore/include/BHBF.h @@ -76,7 +76,6 @@ extern "C"{ typedef enum { COMMON_CMD_SHOW_INFO, // 终端信息展示 - COMMON_CMD_STOP_ALL, // 机器人停止(建议各个控制硬件的模块都要实现) MOTOR_START = 0x0100, // *电机命令开始* MOTOR_SET_SPEED, // 设置速度 MOTOR_POWER_ENABLE, // 电机上电 diff --git a/project/paint_robot_new/paint_robot_new.c b/project/paint_robot_new/paint_robot_new.c index 2cdcfe7..530b1b9 100644 --- a/project/paint_robot_new/paint_robot_new.c +++ b/project/paint_robot_new/paint_robot_new.c @@ -47,7 +47,6 @@ static uint32_t g_uiCustomModuleID = 0; static SP_MSP_MK32_Button g_stMK32; static PV_struct_define g_stPV; static IV_struct_define g_stIV; -static int g_RB_State = 0; // 机器人状态,1表示处于竖直行走模式下 static int g_Paint_State = -1; // 喷枪状态,0表示打开,1表示关闭 static int g_angle_protect_lock = 0; // 为1表示角度异常,触发停车逻辑Move_Halt_AngleError static int g_ipaintOffCount = 0; // Move_Halt_AngleError中的计时,即角度偏移超过多少时间触发停枪 @@ -76,16 +75,11 @@ static void Move_Halt_AngleError(void) return; } - if (0 == g_RB_State) - { - return; - } - if (1 == g_angle_protect_lock) { if (Rd_GetTime() - uiLastTime >= 600 * g_stCV.Paint_Gun_Shutdown_Distance / g_stIV.RobotMoveSpeed) { - MsgCenter_SendTo(MODULE_NAME_MOTOR, COMMON_CMD_STOP_ALL, NULL, 0); + MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_STOP_ALL, NULL, 0); } return; } @@ -98,7 +92,8 @@ static void Move_Halt_AngleError(void) { if(Rd_GetTime() - g_ipaintOffCount > 1000) { - MsgCenter_SendTo(MODULE_NAME_CUSTOM, COMMON_CMD_STOP_ALL, NULL, 0);//先关枪 + g_Paint_State = 1; + MsgCenter_SendTo(MODULE_NAME_CUSTOM, CUSTOM_CMD_PAINTGUN, &g_Paint_State, sizeof(int)); g_angle_protect_lock = 1; return; } @@ -245,12 +240,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) } break; } - case COMMON_CMD_STOP_ALL: - { - HAL_GPIO_WritePin(OUT_1_GPIO_Port, OUT_1_Pin, 1); - g_Paint_State = 1; - break; - } case CUSTOM_CMD_PAINTGUN: { int paintstate = -1; @@ -290,7 +279,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) { MsgCenter_SendTo(MODULE_NAME_MOTOR, MOTOR_POWER_DISABLE, NULL, 0); MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_STOP_ALL, NULL, 0); - g_RB_State = 0; g_Is_All_Button_Reset = 0; break; } @@ -335,7 +323,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) iTargetAngle = g_stCV.RobotRightAngleValue; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_TURN_ANGLE, &iTargetAngle, sizeof(iTargetAngle)); } - g_RB_State = 0; break; } else if (g_stMK32.CH4_SA == -1000) @@ -350,7 +337,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) iTargetAngle = g_stCV.RobotLeftAngleValue; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_TURN_ANGLE, &iTargetAngle, sizeof(iTargetAngle)); } - g_RB_State = 0; break; } else // 重置前进计时器以便下一次换道重新计数 @@ -358,7 +344,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) if (g_stPV.RunMode == 2 || g_stPV.RunMode == 3) { MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_RESET_STRAIGHT, NULL, 0); - g_RB_State = 0; } } @@ -377,7 +362,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) g_Paint_State = 1; MsgCenter_SendTo(MODULE_NAME_CUSTOM, CUSTOM_CMD_PAINTGUN, &g_Paint_State, sizeof(int)); } - g_RB_State = 0; } else if(g_stPV.RunMode == 2 || g_stPV.RunMode == 3) { @@ -391,7 +375,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) } } CH13_S2_Value = g_stMK32.CH13_S2; - g_RB_State = 0; } } @@ -414,7 +397,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) }; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_STRAIGHT_DRIVE, &stCmd, sizeof(stCmd)); } - g_RB_State = 1; } break; } @@ -436,7 +418,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) }; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_STRAIGHT_DRIVE, &stCmd, sizeof(stCmd)); } - g_RB_State = 1; } break; } @@ -444,8 +425,7 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) // 【注意!!!】摇杆行程死区判断开始,除摇杆以外按键在上边都处理完,不然走不下去 if (abs(g_stMK32.CH2_LY_V) <= g_stCV.Joy_Sticker_Value_Allowance && abs(g_stMK32.CH3_LY_H) <= g_stCV.Joy_Sticker_Value_Allowance) { - MsgCenter_SendTo(MODULE_NAME_MOTOR, COMMON_CMD_STOP_ALL, NULL, 0); - g_RB_State = 0; + MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_STOP_ALL, NULL, 0); break; } // 【注意!!!】摇杆行程死区判断结束,摇杆处理都放在这以后,否则行程死区可能不生效 @@ -471,7 +451,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) }; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_STRAIGHT_DRIVE, &stCmd, sizeof(stCmd)); } - g_RB_State = 1; } } else if (abs(angle - (-90)) <= g_stCV.Joy_Sticker_Angle_Allowance) @@ -492,23 +471,19 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) }; MsgCenter_SendTo(MODULE_NAME_TIMER, TIMER_CMD_STRAIGHT_DRIVE, &stCmd, sizeof(stCmd)); } - g_RB_State = 1; } } else if (abs(angle - 0) <= g_stCV.Joy_Sticker_Angle_Allowance) { MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_MANUAL_TURNRIGHT, NULL, 0); - g_RB_State = 0; } else if (abs(angle - 180) <= g_stCV.Joy_Sticker_Angle_Allowance || abs(angle - (-180)) <= g_stCV.Joy_Sticker_Angle_Allowance) { MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_MANUAL_TURNLEFT, NULL, 0); - g_RB_State = 0; } else { - MsgCenter_SendTo(MODULE_NAME_MOTOR, COMMON_CMD_STOP_ALL, NULL, 0); - g_RB_State = 0; + MsgCenter_SendTo(MODULE_NAME_RBCORE, RBCORE_CMD_STOP_ALL, NULL, 0); } break; } @@ -534,8 +509,8 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg) lua_print("PV Info\n"); lua_print("{%d, %d, %d, %d, %d, %ld}\n", g_stPV.RunMode, g_stPV.RobotSpeed, g_stPV.LaneChangeDistance, (int)g_stPV.Vertical_Calibration, g_stPV.IV_IsRestart_Notified, (long long)g_stPV.TimeStamp); - lua_print("g_RB_State = %d\ng_Paint_State = %d\ng_angle_protect_lock = %d\ng_ipaintOffCount = %d\ng_Is_All_Button_Reset = %d\n", - g_RB_State, g_Paint_State, g_angle_protect_lock, g_ipaintOffCount, g_Is_All_Button_Reset); + lua_print("\ng_Paint_State = %d\ng_angle_protect_lock = %d\ng_ipaintOffCount = %d\ng_Is_All_Button_Reset = %d\n", + g_Paint_State, g_angle_protect_lock, g_ipaintOffCount, g_Is_All_Button_Reset); break; } default: diff --git a/project/paint_robot_new/paint_robot_new_motors.c b/project/paint_robot_new/paint_robot_new_motors.c index d17cb9b..5697d7d 100644 --- a/project/paint_robot_new/paint_robot_new_motors.c +++ b/project/paint_robot_new/paint_robot_new_motors.c @@ -83,11 +83,6 @@ static void Motor_ModuleHandler(const Msg_t *pstMsg) HAL_GPIO_WritePin(OUT_0_GPIO_Port, OUT_0_Pin, 1); break; } - case COMMON_CMD_STOP_ALL: - { - memset(g_aiMotorSpeed, 0, sizeof(g_aiMotorSpeed)); - break; - } default: break; }