Remove global queuegroup claw_queue
Change-Id: Ie642d5da51f6c0934ee3206d1a50969d6f2e6d33
diff --git a/y2014/actors/autonomous_actor.cc b/y2014/actors/autonomous_actor.cc
index 1a874c2..bb38269 100644
--- a/y2014/actors/autonomous_actor.cc
+++ b/y2014/actors/autonomous_actor.cc
@@ -35,27 +35,40 @@
".y2014.sensors.auto_mode")),
hot_goal_fetcher_(
event_loop->MakeFetcher<::y2014::HotGoal>(".y2014.hot_goal")),
+ claw_goal_sender_(
+ event_loop->MakeSender<::y2014::control_loops::ClawQueue::Goal>(
+ ".y2014.control_loops.claw_queue.goal")),
+ claw_goal_fetcher_(
+ event_loop->MakeFetcher<::y2014::control_loops::ClawQueue::Goal>(
+ ".y2014.control_loops.claw_queue.goal")),
+ claw_status_fetcher_(
+ event_loop->MakeFetcher<::y2014::control_loops::ClawQueue::Status>(
+ ".y2014.control_loops.claw_queue.status")),
+ shooter_goal_sender_(
+ event_loop->MakeSender<::y2014::control_loops::ShooterQueue::Goal>(
+ ".y2014.control_loops.shooter_queue.goal")),
shoot_action_factory_(actors::ShootActor::MakeFactory(event_loop)) {}
void AutonomousActor::PositionClawVertically(double intake_power,
double centering_power) {
- if (!control_loops::claw_queue.goal.MakeWithBuilder()
- .bottom_angle(0.0)
- .separation_angle(0.0)
- .intake(intake_power)
- .centering(centering_power)
- .Send()) {
+ auto goal_message = claw_goal_sender_.MakeMessage();
+ goal_message->bottom_angle = 0.0;
+ goal_message->separation_angle = 0.0;
+ goal_message->intake = intake_power;
+ goal_message->centering = centering_power;
+
+ if (!goal_message.Send()) {
LOG(WARNING, "sending claw goal failed\n");
}
}
void AutonomousActor::PositionClawBackIntake() {
- if (!control_loops::claw_queue.goal.MakeWithBuilder()
- .bottom_angle(-2.273474)
- .separation_angle(0.0)
- .intake(12.0)
- .centering(12.0)
- .Send()) {
+ auto goal_message = claw_goal_sender_.MakeMessage();
+ goal_message->bottom_angle = -2.273474;
+ goal_message->separation_angle = 0.0;
+ goal_message->intake = 12.0;
+ goal_message->centering = 12.0;
+ if (!goal_message.Send()) {
LOG(WARNING, "sending claw goal failed\n");
}
}
@@ -63,35 +76,35 @@
void AutonomousActor::PositionClawUpClosed() {
// Move the claw to where we're going to shoot from but keep it closed until
// it gets there.
- if (!control_loops::claw_queue.goal.MakeWithBuilder()
- .bottom_angle(0.86)
- .separation_angle(0.0)
- .intake(4.0)
- .centering(1.0)
- .Send()) {
+ auto goal_message = claw_goal_sender_.MakeMessage();
+ goal_message->bottom_angle = 0.86;
+ goal_message->separation_angle = 0.0;
+ goal_message->intake = 4.0;
+ goal_message->centering = 1.0;
+ if (!goal_message.Send()) {
LOG(WARNING, "sending claw goal failed\n");
}
}
void AutonomousActor::PositionClawForShot() {
- if (!control_loops::claw_queue.goal.MakeWithBuilder()
- .bottom_angle(0.86)
- .separation_angle(0.10)
- .intake(4.0)
- .centering(1.0)
- .Send()) {
+ auto goal_message = claw_goal_sender_.MakeMessage();
+ goal_message->bottom_angle = 0.86;
+ goal_message->separation_angle = 0.10;
+ goal_message->intake = 4.0;
+ goal_message->centering = 1.0;
+ if (!goal_message.Send()) {
LOG(WARNING, "sending claw goal failed\n");
}
}
void AutonomousActor::SetShotPower(double power) {
LOG(INFO, "Setting shot power to %f\n", power);
- if (!control_loops::shooter_queue.goal.MakeWithBuilder()
- .shot_power(power)
- .shot_requested(false)
- .unload_requested(false)
- .load_requested(false)
- .Send()) {
+ auto goal_message = shooter_goal_sender_.MakeMessage();
+ goal_message->shot_power = power;
+ goal_message->shot_requested = false;
+ goal_message->unload_requested = false;
+ goal_message->load_requested = false;
+ if (!goal_message.Send()) {
LOG(WARNING, "sending shooter goal failed\n");
}
}
@@ -116,22 +129,21 @@
::std::chrono::milliseconds(10) / 2);
// Poll the running bit and auto done bits.
phased_loop.SleepUntilNext();
- control_loops::claw_queue.status.FetchLatest();
- control_loops::claw_queue.goal.FetchLatest();
+ claw_status_fetcher_.Fetch();
+ claw_goal_fetcher_.Fetch();
if (ShouldCancel()) {
return false;
}
- if (control_loops::claw_queue.status.get() == nullptr ||
- control_loops::claw_queue.goal.get() == nullptr) {
+ if (claw_status_fetcher_.get() == nullptr ||
+ claw_goal_fetcher_.get() == nullptr) {
continue;
}
- bool ans =
- control_loops::claw_queue.status->zeroed &&
- (::std::abs(control_loops::claw_queue.status->bottom_velocity) < 1.0) &&
- (::std::abs(control_loops::claw_queue.status->bottom -
- control_loops::claw_queue.goal->bottom_angle) < 0.10) &&
- (::std::abs(control_loops::claw_queue.status->separation -
- control_loops::claw_queue.goal->separation_angle) < 0.4);
+ bool ans = claw_status_fetcher_->zeroed &&
+ (::std::abs(claw_status_fetcher_->bottom_velocity) < 1.0) &&
+ (::std::abs(claw_status_fetcher_->bottom -
+ claw_goal_fetcher_->bottom_angle) < 0.10) &&
+ (::std::abs(claw_status_fetcher_->separation -
+ claw_goal_fetcher_->separation_angle) < 0.4);
if (ans) {
return true;
}