Added AbsoluteEncoder alone to wpilib.
Made class to support having just a absolute encoder and added a
copyposition function for it.
Change-Id: I9f3c4354637b8197ed29e8e56649cbe7a61f5197
diff --git a/frc971/wpilib/encoder_and_potentiometer.h b/frc971/wpilib/encoder_and_potentiometer.h
index 3516168..42fb86b 100644
--- a/frc971/wpilib/encoder_and_potentiometer.h
+++ b/frc971/wpilib/encoder_and_potentiometer.h
@@ -271,6 +271,24 @@
::std::unique_ptr<frc::AnalogInput> potentiometer_;
};
+class AbsoluteEncoder {
+ public:
+ void set_absolute_pwm(::std::unique_ptr<frc::DigitalInput> input) {
+ duty_cycle_.set_input(::std::move(input));
+ }
+
+ void set_encoder(::std::unique_ptr<frc::Encoder> encoder) {
+ encoder_ = ::std::move(encoder);
+ }
+
+ double ReadAbsoluteEncoder() const { return duty_cycle_.Read(); }
+ int32_t ReadRelativeEncoder() const { return encoder_->GetRaw(); }
+
+ private:
+ DutyCycleReader duty_cycle_;
+ ::std::unique_ptr<frc::Encoder> encoder_;
+};
+
} // namespace wpilib
} // namespace frc971