Added detection of bad index zeroing pulse.
Change-Id: I1607ce0d37b336136a4a278afc8a0f2897d1c597
diff --git a/frc971/control_loops/claw/claw.cc b/frc971/control_loops/claw/claw.cc
index 0c12d27..004ea7a 100644
--- a/frc971/control_loops/claw/claw.cc
+++ b/frc971/control_loops/claw/claw.cc
@@ -52,8 +52,7 @@
}
void Claw::SetClawOffset(double offset) {
- LOG(INFO, "Changing claw offset from %f to %f.\n",
- claw_offset_, offset);
+ LOG(INFO, "Changing claw offset from %f to %f.\n", claw_offset_, offset);
const double doffset = offset - claw_offset_;
// Adjust the height. The derivative should not need to be updated since the
@@ -109,11 +108,10 @@
return claw_zeroing_velocity_;
}
-void Claw::RunIteration(
- const control_loops::ClawQueue::Goal *unsafe_goal,
- const control_loops::ClawQueue::Position *position,
- control_loops::ClawQueue::Output *output,
- control_loops::ClawQueue::Status *status) {
+void Claw::RunIteration(const control_loops::ClawQueue::Goal *unsafe_goal,
+ const control_loops::ClawQueue::Position *position,
+ control_loops::ClawQueue::Output *output,
+ control_loops::ClawQueue::Status *status) {
const auto &values = constants::GetValues();
if (WasReset()) {
@@ -168,8 +166,8 @@
SetClawOffset(claw_estimator_.offset());
} else if (!disable) {
claw_goal_velocity = claw_zeroing_velocity();
- claw_goal_ += claw_goal_velocity *
- ::aos::controls::kLoopFrequency.ToSeconds();
+ claw_goal_ +=
+ claw_goal_velocity * ::aos::controls::kLoopFrequency.ToSeconds();
}
break;
@@ -226,8 +224,7 @@
double deltaR = claw_loop_->UnsaturateOutputGoalChange();
// Move the claw goal by the amount observed.
- LOG(WARNING, "Moving claw goal by %f to handle saturation.\n",
- deltaR);
+ LOG(WARNING, "Moving claw goal by %f to handle saturation.\n", deltaR);
claw_goal_ += deltaR;
}
}
@@ -260,9 +257,11 @@
status->goal_angle = claw_goal_;
if (output) {
- status->rollers_open = !output->rollers_closed &&
+ status->rollers_open =
+ !output->rollers_closed &&
(Time::Now() - last_piston_edge_ >= values.claw.piston_switch_time);
- status->rollers_closed = output->rollers_closed &&
+ status->rollers_closed =
+ output->rollers_closed &&
(Time::Now() - last_piston_edge_ >= values.claw.piston_switch_time);
} else {
status->rollers_open = false;
diff --git a/frc971/control_loops/claw/claw.h b/frc971/control_loops/claw/claw.h
index 6abc082..381bd15 100644
--- a/frc971/control_loops/claw/claw.h
+++ b/frc971/control_loops/claw/claw.h
@@ -37,8 +37,7 @@
double max_voltage_;
};
-class Claw
- : public aos::controls::ControlLoop<control_loops::ClawQueue> {
+class Claw : public aos::controls::ControlLoop<control_loops::ClawQueue> {
public:
enum State {
// Waiting to receive data before doing anything.
@@ -59,11 +58,10 @@
control_loops::ClawQueue *claw_queue = &control_loops::claw_queue);
protected:
- virtual void RunIteration(
- const control_loops::ClawQueue::Goal *goal,
- const control_loops::ClawQueue::Position *position,
- control_loops::ClawQueue::Output *output,
- control_loops::ClawQueue::Status *status);
+ virtual void RunIteration(const control_loops::ClawQueue::Goal *goal,
+ const control_loops::ClawQueue::Position *position,
+ control_loops::ClawQueue::Output *output,
+ control_loops::ClawQueue::Status *status);
private:
friend class testing::ClawTest_DisabledGoal_Test;
@@ -112,5 +110,4 @@
} // namespace control_loops
} // namespace frc971
-#endif // FRC971_CONTROL_LOOPS_CLAW_H_
-
+#endif // FRC971_CONTROL_LOOPS_CLAW_H_