Files
allwpilib/wpilibc/src/main/native/include/frc/GearTooth.h
Peter Johnson 8f1f64ffb6 Remove year from file copyright message (NFC) (#2972)
Also update copyright to include "and other WPILib contributors" and clarify
license referral language to not be restricted to FIRST teams.
2020-12-26 14:12:05 -08:00

86 lines
2.9 KiB
C++

// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#pragma once
#include <memory>
#include <string>
#include <wpi/deprecated.h>
#include "frc/Counter.h"
namespace frc {
/**
* Alias for counter class.
*
* Implements the gear tooth sensor supplied by FIRST. Currently there is no
* reverse sensing on the gear tooth sensor, but in future versions we might
* implement the necessary timing in the FPGA to sense direction.
*
* @deprecated No longer used per FMS usage reporting
*/
class GearTooth : public Counter {
public:
// 55 uSec for threshold
static constexpr double kGearToothThreshold = 55e-6;
/**
* Construct a GearTooth sensor given a channel.
*
* @param channel The DIO channel that the sensor is connected to.
* 0-9 are on-board, 10-25 are on the MXP.
* @param directionSensitive True to enable the pulse length decoding in
* hardware to specify count direction.
*/
WPI_DEPRECATED(
"The only sensor this works with is no longer available and no teams use "
"it according to FMS usage reporting.")
explicit GearTooth(int channel, bool directionSensitive = false);
/**
* Construct a GearTooth sensor given a digital input.
*
* This should be used when sharing digital inputs.
*
* @param source A pointer to the existing DigitalSource object
* (such as a DigitalInput)
* @param directionSensitive True to enable the pulse length decoding in
* hardware to specify count direction.
*/
WPI_DEPRECATED(
"The only sensor this works with is no longer available and no teams use "
"it according to FMS usage reporting.")
explicit GearTooth(DigitalSource* source, bool directionSensitive = false);
/**
* Construct a GearTooth sensor given a digital input.
*
* This should be used when sharing digital inputs.
*
* @param source A reference to the existing DigitalSource object
* (such as a DigitalInput)
* @param directionSensitive True to enable the pulse length decoding in
* hardware to specify count direction.
*/
WPI_DEPRECATED(
"The only sensor this works with is no longer available and no teams use "
"it according to FMS usage reporting.")
explicit GearTooth(std::shared_ptr<DigitalSource> source,
bool directionSensitive = false);
GearTooth(GearTooth&&) = default;
GearTooth& operator=(GearTooth&&) = default;
/**
* Common code called by the constructors.
*/
void EnableDirectionSensing(bool directionSensitive);
void InitSendable(SendableBuilder& builder) override;
};
} // namespace frc