Skip to content

Commit a3cd34c

Browse files
authored
fix(motor-control): reduce the number of responses that happen after a stop request (#818)
1 parent b1d725e commit a3cd34c

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

include/motor-control/core/tasks/brushed_move_group_task.hpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,15 @@ class MoveGroupMessageHandler {
8282
can_client.send_can_message(can::ids::NodeId::host, response);
8383
}
8484

85-
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
86-
LOG("Received clear move groups request");
85+
void clear_move_groups() {
8786
for (auto& group : move_groups) {
8887
group.clear();
8988
}
89+
}
90+
91+
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
92+
LOG("Received clear move groups request");
93+
this->clear_move_groups();
9094
can_client.send_can_message(can::ids::NodeId::host,
9195
can::messages::ack_from_request(m));
9296
}
@@ -104,9 +108,7 @@ class MoveGroupMessageHandler {
104108

105109
void handle(const can::messages::StopRequest& m) {
106110
LOG("Recieved StopRequest in MoveGroup");
107-
auto clear_req =
108-
can::messages::ClearAllMoveGroupsRequest{.message_index = 0};
109-
this->handle(clear_req);
111+
this->clear_move_groups();
110112
// pass the stop message to motion controller to kill pwm
111113
// and any running moves
112114
mc_client.send_brushed_motion_controller_queue(m);

include/motor-control/core/tasks/move_group_task.hpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,15 @@ class MoveGroupMessageHandler {
8080
can_client.send_can_message(can::ids::NodeId::host, response);
8181
}
8282

83-
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
84-
LOG("Received clear move groups request");
83+
void clear_move_groups() {
8584
for (auto& group : move_groups) {
8685
group.clear();
8786
}
87+
}
88+
89+
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
90+
LOG("Received clear move groups request");
91+
this->clear_move_groups();
8892
can_client.send_can_message(can::ids::NodeId::host,
8993
can::messages::ack_from_request(m));
9094
}
@@ -102,9 +106,7 @@ class MoveGroupMessageHandler {
102106

103107
void handle(const can::messages::StopRequest& m) {
104108
LOG("Received StopRequest in MoveGroup");
105-
auto clear_req =
106-
can::messages::ClearAllMoveGroupsRequest{.message_index = 0};
107-
this->handle(clear_req);
109+
this->clear_move_groups();
108110
// pass the stop message to motion controller to kill pwm
109111
// and any running moves
110112
mc_client.send_motion_controller_queue(m);

include/pipettes/core/tasks/move_group_task.hpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,15 @@ class MoveGroupMessageHandler {
7272
can_client.send_can_message(can::ids::NodeId::host, response);
7373
}
7474

75-
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
76-
LOG("Received clear move groups request");
75+
void clear_move_groups() {
7776
for (auto& group : move_groups) {
7877
group.clear();
7978
}
79+
}
80+
81+
void handle(const can::messages::ClearAllMoveGroupsRequest& m) {
82+
LOG("Received clear move groups request");
83+
this->clear_move_groups();
8084
can_client.send_can_message(can::ids::NodeId::host,
8185
can::messages::ack_from_request(m));
8286
}
@@ -94,9 +98,7 @@ class MoveGroupMessageHandler {
9498

9599
void handle(const can::messages::StopRequest& m) {
96100
LOG("Received StopRequest in MoveGroup");
97-
auto clear_req =
98-
can::messages::ClearAllMoveGroupsRequest{.message_index = 0};
99-
this->handle(clear_req);
101+
this->clear_move_groups();
100102
// pass the stop message to motion controller to kill pwm
101103
// and any running moves
102104
mc_client.send_motion_controller_queue(m);

0 commit comments

Comments
 (0)