Junior commit.
Changed range constants.
Change-Id: Ibcea5ddf00a0ea65f2d8a46a9612732dfbd705f4
diff --git a/y2016_bot3/wpilib/wpilib_interface.cc b/y2016_bot3/wpilib/wpilib_interface.cc
index ad75401..b870e00 100644
--- a/y2016_bot3/wpilib/wpilib_interface.cc
+++ b/y2016_bot3/wpilib/wpilib_interface.cc
@@ -102,7 +102,7 @@
double intake_pot_translate(double voltage) {
return voltage * ::y2016_bot3::constants::kIntakePotRatio *
- (10.0 /*turns*/ / 5.0 /*volts*/) * (2 * M_PI /*radians*/);
+ (5.0 /*turns*/ / 5.0 /*volts*/) * (2 * M_PI /*radians*/);
}
constexpr double kMaxDrivetrainEncoderPulsesPerSecond =
@@ -194,7 +194,7 @@
{
auto drivetrain_message = drivetrain_queue.position.MakeMessage();
drivetrain_message->right_encoder =
- drivetrain_translate(-drivetrain_right_encoder_->GetRaw());
+ drivetrain_translate(drivetrain_right_encoder_->GetRaw());
drivetrain_message->left_encoder =
-drivetrain_translate(drivetrain_left_encoder_->GetRaw());
drivetrain_message->left_speed =
@@ -210,7 +210,7 @@
{
auto intake_message = intake_queue.position.MakeMessage();
CopyPotAndIndexPosition(intake_encoder_, &intake_message->intake,
- intake_translate, intake_pot_translate, false,
+ intake_translate, intake_pot_translate, true,
intake_pot_offset);
intake_message.Send();
@@ -286,11 +286,6 @@
traverse_ = ::std::move(s);
}
- void set_traverse_latch(
- ::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> s) {
- traverse_latch_ = ::std::move(s);
- }
-
void operator()() {
compressor_->Start();
::aos::SetCurrentThreadName("Solenoids");
@@ -311,9 +306,7 @@
intake_.FetchLatest();
if (intake_.get()) {
LOG_STRUCT(DEBUG, "solenoids", *intake_);
-
traverse_->Set(intake_->traverse_down);
- traverse_latch_->Set(intake_->traverse_unlatched);
}
}
@@ -333,8 +326,7 @@
private:
const ::std::unique_ptr<::frc971::wpilib::BufferedPcm> &pcm_;
- ::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> traverse_,
- traverse_latch_;
+ ::std::unique_ptr<::frc971::wpilib::BufferedSolenoid> traverse_;
::std::unique_ptr<Compressor> compressor_;
::aos::Queue<::frc971::control_loops::DrivetrainQueue::Output> drivetrain_;
@@ -345,12 +337,16 @@
class DrivetrainWriter : public ::frc971::wpilib::LoopOutputHandler {
public:
- void set_drivetrain_left_talon(::std::unique_ptr<Talon> t) {
- drivetrain_left_talon_ = ::std::move(t);
+ void set_drivetrain_left_talon(::std::unique_ptr<Talon> t0,
+ ::std::unique_ptr<Talon> t1) {
+ drivetrain_left_talon_0_ = ::std::move(t0);
+ drivetrain_left_talon_1_ = ::std::move(t1);
}
- void set_drivetrain_right_talon(::std::unique_ptr<Talon> t) {
- drivetrain_right_talon_ = ::std::move(t);
+ void set_drivetrain_right_talon(::std::unique_ptr<Talon> t0,
+ ::std::unique_ptr<Talon> t1) {
+ drivetrain_right_talon_0_ = ::std::move(t0);
+ drivetrain_right_talon_1_ = ::std::move(t1);
}
private:
@@ -361,17 +357,22 @@
virtual void Write() override {
auto &queue = ::frc971::control_loops::drivetrain_queue.output;
LOG_STRUCT(DEBUG, "will output", *queue);
- drivetrain_left_talon_->Set(queue->left_voltage / 12.0);
- drivetrain_right_talon_->Set(-queue->right_voltage / 12.0);
+ drivetrain_left_talon_0_->Set(queue->left_voltage / 12.0);
+ drivetrain_left_talon_1_->Set(queue->left_voltage / 12.0);
+ drivetrain_right_talon_0_->Set(-queue->right_voltage / 12.0);
+ drivetrain_right_talon_1_->Set(-queue->right_voltage / 12.0);
}
virtual void Stop() override {
LOG(WARNING, "drivetrain output too old\n");
- drivetrain_left_talon_->Disable();
- drivetrain_right_talon_->Disable();
+ drivetrain_left_talon_0_->Disable();
+ drivetrain_right_talon_0_->Disable();
+ drivetrain_left_talon_1_->Disable();
+ drivetrain_right_talon_1_->Disable();
}
- ::std::unique_ptr<Talon> drivetrain_left_talon_, drivetrain_right_talon_;
+ ::std::unique_ptr<Talon> drivetrain_left_talon_0_, drivetrain_right_talon_0_,
+ drivetrain_right_talon_1_, drivetrain_left_talon_1_;
};
class IntakeWriter : public ::frc971::wpilib::LoopOutputHandler {
@@ -380,6 +381,10 @@
intake_talon_ = ::std::move(t);
}
+ void set_intake_rollers_talon(::std::unique_ptr<Talon> t) {
+ intake_rollers_talon_ = ::std::move(t);
+ }
+
void set_top_rollers_talon(::std::unique_ptr<Talon> t) {
top_rollers_talon_ = ::std::move(t);
}
@@ -400,6 +405,7 @@
kMaxBringupPower) /
12.0);
top_rollers_talon_->Set(-queue->voltage_top_rollers / 12.0);
+ intake_rollers_talon_->Set(-queue->voltage_intake_rollers / 12.0);
bottom_rollers_talon_->Set(-queue->voltage_bottom_rollers / 12.0);
}
@@ -409,7 +415,7 @@
}
::std::unique_ptr<Talon> intake_talon_, top_rollers_talon_,
- bottom_rollers_talon_;
+ bottom_rollers_talon_, intake_rollers_talon_;
};
class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
@@ -430,14 +436,14 @@
::std::thread pdp_fetcher_thread(::std::ref(pdp_fetcher));
SensorReader reader;
- reader.set_drivetrain_left_encoder(make_encoder(5));
- reader.set_drivetrain_right_encoder(make_encoder(6));
+ reader.set_drivetrain_left_encoder(make_encoder(0));
+ reader.set_drivetrain_right_encoder(make_encoder(1));
- reader.set_intake_encoder(make_encoder(0));
+ reader.set_intake_encoder(make_encoder(2));
reader.set_intake_index(make_unique<DigitalInput>(0));
- reader.set_intake_potentiometer(make_unique<AnalogInput>(0));
+ reader.set_intake_potentiometer(make_unique<AnalogInput>(4));
- reader.set_ball_detector(make_unique<AnalogInput>(7));
+ reader.set_ball_detector(make_unique<AnalogInput>(5));
reader.set_dma(make_unique<DMA>());
::std::thread reader_thread(::std::ref(reader));
@@ -446,23 +452,27 @@
::std::thread gyro_thread(::std::ref(gyro_sender));
DrivetrainWriter drivetrain_writer;
+ // 2 and 3 are right. 0 and 1 are left
drivetrain_writer.set_drivetrain_left_talon(
- ::std::unique_ptr<Talon>(new Talon(5)));
+ ::std::unique_ptr<Talon>(new Talon(0)),
+ ::std::unique_ptr<Talon>(new Talon(1)));
drivetrain_writer.set_drivetrain_right_talon(
- ::std::unique_ptr<Talon>(new Talon(4)));
+ ::std::unique_ptr<Talon>(new Talon(2)),
+ ::std::unique_ptr<Talon>(new Talon(3)));
::std::thread drivetrain_writer_thread(::std::ref(drivetrain_writer));
IntakeWriter intake_writer;
- intake_writer.set_intake_talon(::std::unique_ptr<Talon>(new Talon(3)));
- intake_writer.set_top_rollers_talon(::std::unique_ptr<Talon>(new Talon(1)));
+ intake_writer.set_intake_talon(::std::unique_ptr<Talon>(new Talon(7)));
+ intake_writer.set_top_rollers_talon(::std::unique_ptr<Talon>(new Talon(6)));
+ intake_writer.set_intake_rollers_talon(
+ ::std::unique_ptr<Talon>(new Talon(5)));
intake_writer.set_bottom_rollers_talon(
- ::std::unique_ptr<Talon>(new Talon(0)));
+ ::std::unique_ptr<Talon>(new Talon(4)));
::std::thread intake_writer_thread(::std::ref(intake_writer));
::std::unique_ptr<::frc971::wpilib::BufferedPcm> pcm(
new ::frc971::wpilib::BufferedPcm());
SolenoidWriter solenoid_writer(pcm);
- solenoid_writer.set_traverse_latch(pcm->MakeSolenoid(2));
solenoid_writer.set_traverse(pcm->MakeSolenoid(3));
solenoid_writer.set_compressor(make_unique<Compressor>());