blob: 578fb96c733c023890469e144ec88ead5cccc4eb [file] [log] [blame]
Brian Silverman4da58072015-01-26 20:18:52 -05001#include "frc971/wpilib/encoder_and_potentiometer.h"
2
John Park33858a32018-09-28 23:05:48 -07003#include "aos/logging/logging.h"
Alex Perrycb7da4b2019-08-28 19:35:56 -07004#include "aos/realtime.h"
Brian Silverman4da58072015-01-26 20:18:52 -05005
6namespace frc971 {
7namespace wpilib {
8
Brian Silverman7cce2d32017-02-19 21:48:48 -08009bool DMAEncoder::DoUpdateFromSample(const DMASample &sample) {
Brian Silverman4da58072015-01-26 20:18:52 -050010 if (index_last_value_) {
11 // It was already true last time, so check if it's reset back to false yet.
12 index_last_value_ = sample.Get(index_.get());
13 } else if (sample.Get(index_.get())) {
14 // This sample is posedge, so record all the values.
15 index_last_value_ = true;
16 ++index_posedge_count_;
17 last_encoder_value_ = sample.GetRaw(encoder_.get());
Brian Silverman7cce2d32017-02-19 21:48:48 -080018 return true;
Brian Silverman4da58072015-01-26 20:18:52 -050019 }
Brian Silverman7cce2d32017-02-19 21:48:48 -080020 return false;
Brian Silverman4da58072015-01-26 20:18:52 -050021}
22
Brian Silverman4da58072015-01-26 20:18:52 -050023} // namespace wpilib
24} // namespace frc971