/*----------------------------------------------------------------------------*/ | |
/* Copyright (c) FIRST 2008. 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 $(WIND_BASE)/WPILib. */ | |
/*----------------------------------------------------------------------------*/ | |
#include "GearTooth.h" | |
#include "LiveWindow/LiveWindow.h" | |
const double GearTooth::kGearToothThreshold; | |
/** | |
* Common code called by the constructors. | |
*/ | |
void GearTooth::EnableDirectionSensing(bool directionSensitive) | |
{ | |
if (directionSensitive) | |
{ | |
SetPulseLengthMode(kGearToothThreshold); | |
} | |
} | |
/** | |
* Construct a GearTooth sensor given a channel. | |
* | |
* The default module is assumed. | |
* | |
* @param channel The GPIO channel on the digital module that the sensor is connected to. | |
* @param directionSensitive Enable the pulse length decoding in hardware to specify count direction. | |
*/ | |
GearTooth::GearTooth(UINT32 channel, bool directionSensitive) | |
: Counter(channel) | |
{ | |
EnableDirectionSensing(directionSensitive); | |
} | |
/** | |
* Construct a GearTooth sensor given a channel and module. | |
* | |
* @param moduleNumber The digital module (1 or 2). | |
* @param channel The GPIO channel on the digital module that the sensor is connected to. | |
* @param directionSensitive Enable the pulse length decoding in hardware to specify count direction. | |
*/ | |
GearTooth::GearTooth(UINT8 moduleNumber, UINT32 channel, bool directionSensitive) | |
: Counter(moduleNumber, channel) | |
{ | |
EnableDirectionSensing(directionSensitive); | |
LiveWindow::GetInstance()->AddSensor("GearTooth", moduleNumber, channel, this); | |
} | |
/** | |
* Construct a GearTooth sensor given a digital input. | |
* This should be used when sharing digial inputs. | |
* | |
* @param source An object that fully descibes the input that the sensor is connected to. | |
* @param directionSensitive Enable the pulse length decoding in hardware to specify count direction. | |
*/ | |
GearTooth::GearTooth(DigitalSource *source, bool directionSensitive) | |
: Counter(source) | |
{ | |
EnableDirectionSensing(directionSensitive); | |
} | |
GearTooth::GearTooth(DigitalSource &source, bool directionSensitive): Counter(source) | |
{ | |
EnableDirectionSensing(directionSensitive); | |
} | |
/** | |
* Free the resources associated with a gear tooth sensor. | |
*/ | |
GearTooth::~GearTooth() | |
{ | |
} | |
std::string GearTooth::GetSmartDashboardType() { | |
return "GearTooth"; | |
} | |