Files
allwpilib/wpilibc/athena/include/Servo.h
Tyler Veness d82635bbe1 Reordered headers according to the style guide (#58)
Subsections are alphabetized according to lexographic ordering. Also, HAL includes were moved from headers to source files where possible. This change may cause user code which uses HAL functionality and does not include the relevant HAL header (since it may have been provided by another WPILib header) to fail to compile.
2016-05-25 22:38:11 -07:00

54 lines
1.8 KiB
C++

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#pragma once
#include <memory>
#include "SafePWM.h"
#include "SpeedController.h"
/**
* Standard hobby style servo.
*
* The range parameters default to the appropriate values for the Hitec HS-322HD
* servo provided
* in the FIRST Kit of Parts in 2008.
*/
class Servo : public SafePWM {
public:
explicit Servo(uint32_t channel);
virtual ~Servo();
void Set(float value);
void SetOffline();
float Get() const;
void SetAngle(float angle);
float GetAngle() const;
static float GetMaxAngle() { return kMaxServoAngle; }
static float GetMinAngle() { return kMinServoAngle; }
void ValueChanged(ITable* source, llvm::StringRef key,
std::shared_ptr<nt::Value> value, bool isNew) override;
void UpdateTable() override;
void StartLiveWindowMode() override;
void StopLiveWindowMode() override;
std::string GetSmartDashboardType() const override;
void InitTable(std::shared_ptr<ITable> subTable) override;
std::shared_ptr<ITable> GetTable() const override;
std::shared_ptr<ITable> m_table;
private:
float GetServoAngleRange() const { return kMaxServoAngle - kMinServoAngle; }
static constexpr float kMaxServoAngle = 180.0;
static constexpr float kMinServoAngle = 0.0;
static constexpr float kDefaultMaxServoPWM = 2.4;
static constexpr float kDefaultMinServoPWM = .6;
};