Add climber framework.
Change-Id: I807de18bb204f4da921332b2074e4d343d3fd8dd
diff --git a/y2016/wpilib/wpilib_interface.cc b/y2016/wpilib/wpilib_interface.cc
index b3ed0a8..acf820f 100644
--- a/y2016/wpilib/wpilib_interface.cc
+++ b/y2016/wpilib/wpilib_interface.cc
@@ -428,14 +428,14 @@
compressor_ = ::std::move(compressor);
}
- void set_drivetrain_left(
+ void set_drivetrain_shifter(
::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> s) {
- drivetrain_left_ = ::std::move(s);
+ drivetrain_shifter_ = ::std::move(s);
}
- void set_drivetrain_right(
+ void set_climber_trigger(
::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> s) {
- drivetrain_right_ = ::std::move(s);
+ climber_trigger_ = ::std::move(s);
}
void set_traverse(
@@ -487,8 +487,8 @@
drivetrain_.FetchLatest();
if (drivetrain_.get()) {
LOG_STRUCT(DEBUG, "solenoids", *drivetrain_);
- drivetrain_left_->Set(!drivetrain_->left_high);
- drivetrain_right_->Set(!drivetrain_->right_high);
+ drivetrain_shifter_->Set(
+ !(drivetrain_->left_high || drivetrain_->right_high));
}
}
@@ -518,7 +518,10 @@
{
superstructure_.FetchLatest();
if (superstructure_.get()) {
- LOG_STRUCT(DEBUG, "solenoids", *shooter_);
+ LOG_STRUCT(DEBUG, "solenoids", *superstructure_);
+
+ climber_trigger_->Set(superstructure_->unfold_climber);
+
traverse_->Set(superstructure_->traverse_down);
traverse_latch_->Set(superstructure_->traverse_unlatched);
}
@@ -542,9 +545,9 @@
private:
const ::std::unique_ptr<::frc971::wpilib::BufferedPcm> &pcm_;
- ::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> drivetrain_left_,
- drivetrain_right_, shooter_clamp_, shooter_pusher_, lights_, traverse_,
- traverse_latch_;
+ ::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> drivetrain_shifter_,
+ shooter_clamp_, shooter_pusher_, lights_, traverse_, traverse_latch_,
+ climber_trigger_;
::std::unique_ptr<Relay> flashlight_;
::std::unique_ptr<Compressor> compressor_;
@@ -642,6 +645,10 @@
bottom_rollers_talon_ = ::std::move(t);
}
+ void set_climber_talon(::std::unique_ptr<Talon> t) {
+ climber_talon_ = ::std::move(t);
+ }
+
private:
virtual void Read() override {
::y2016::control_loops::superstructure_queue.output.FetchAnother();
@@ -661,6 +668,7 @@
12.0);
top_rollers_talon_->Set(-queue->voltage_top_rollers / 12.0);
bottom_rollers_talon_->Set(-queue->voltage_bottom_rollers / 12.0);
+ climber_talon_->Set(-queue->voltage_climber / 12.0);
}
virtual void Stop() override {
@@ -671,7 +679,7 @@
}
::std::unique_ptr<Talon> intake_talon_, shoulder_talon_, wrist_talon_,
- top_rollers_talon_, bottom_rollers_talon_;
+ top_rollers_talon_, bottom_rollers_talon_, climber_talon_;
};
class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
@@ -754,19 +762,21 @@
::std::unique_ptr<Talon>(new Talon(1)));
superstructure_writer.set_bottom_rollers_talon(
::std::unique_ptr<Talon>(new Talon(0)));
+ superstructure_writer.set_climber_talon(
+ ::std::unique_ptr<Talon>(new Talon(7)));
::std::thread superstructure_writer_thread(
::std::ref(superstructure_writer));
::std::unique_ptr<::frc971::wpilib::BufferedPcm> pcm(
new ::frc971::wpilib::BufferedPcm());
SolenoidWriter solenoid_writer(pcm);
- solenoid_writer.set_drivetrain_left(pcm->MakeSolenoid(1));
- solenoid_writer.set_drivetrain_right(pcm->MakeSolenoid(0));
+ solenoid_writer.set_drivetrain_shifter(pcm->MakeSolenoid(0));
solenoid_writer.set_traverse_latch(pcm->MakeSolenoid(2));
solenoid_writer.set_traverse(pcm->MakeSolenoid(3));
solenoid_writer.set_shooter_clamp(pcm->MakeSolenoid(4));
solenoid_writer.set_shooter_pusher(pcm->MakeSolenoid(5));
solenoid_writer.set_lights(pcm->MakeSolenoid(6));
+ solenoid_writer.set_climber_trigger(pcm->MakeSolenoid(1));
solenoid_writer.set_flashlight(make_unique<Relay>(0));
solenoid_writer.set_compressor(make_unique<Compressor>());