WPILibC++  unspecified
AnalogAccelerometer.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) 2008-2018 FIRST. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include <memory>
11 
12 #include "AnalogInput.h"
13 #include "PIDSource.h"
14 #include "SensorBase.h"
15 
16 namespace frc {
17 
25 class AnalogAccelerometer : public SensorBase, public PIDSource {
26  public:
27  explicit AnalogAccelerometer(int channel);
28  explicit AnalogAccelerometer(AnalogInput* channel);
29  explicit AnalogAccelerometer(std::shared_ptr<AnalogInput> channel);
30  ~AnalogAccelerometer() override = default;
31 
32  double GetAcceleration() const;
33  void SetSensitivity(double sensitivity);
34  void SetZero(double zero);
35  double PIDGet() override;
36 
37  void InitSendable(SendableBuilder& builder) override;
38 
39  private:
40  void InitAccelerometer();
41 
42  std::shared_ptr<AnalogInput> m_analogInput;
43  double m_voltsPerG = 1.0;
44  double m_zeroGVoltage = 2.5;
45 };
46 
47 } // namespace frc
Definition: RobotController.cpp:14
void SetSensitivity(double sensitivity)
Set the accelerometer sensitivity.
Definition: AnalogAccelerometer.cpp:97
Base class for all sensors.
Definition: SensorBase.h:25
double GetAcceleration() const
Return the acceleration in Gs.
Definition: AnalogAccelerometer.cpp:84
PIDSource interface is a generic sensor source for the PID class.
Definition: PIDSource.h:20
void InitSendable(SendableBuilder &builder) override
Initializes this Sendable object.
Definition: AnalogAccelerometer.cpp:118
AnalogAccelerometer(int channel)
Create a new instance of an accelerometer.
Definition: AnalogAccelerometer.cpp:34
Handle operation of an analog accelerometer.
Definition: AnalogAccelerometer.h:25
Definition: SendableBuilder.h:23
double PIDGet() override
Get the Acceleration for the PID Source parent.
Definition: AnalogAccelerometer.cpp:116
void SetZero(double zero)
Set the voltage that corresponds to 0 G.
Definition: AnalogAccelerometer.cpp:109
Analog input class.
Definition: AnalogInput.h:31