Add Encoder Index as a child (#857)

This commit is contained in:
sciencewhiz
2017-12-29 19:48:39 -08:00
committed by Peter Johnson
parent 02131639bc
commit c647a801ad
3 changed files with 4 additions and 2 deletions

View File

@@ -464,7 +464,8 @@ double Encoder::PIDGet() {
*/
void Encoder::SetIndexSource(int channel, Encoder::IndexingType type) {
// Force digital input if just given an index
m_indexSource = std::make_unique<DigitalInput>(channel);
m_indexSource = std::make_shared<DigitalInput>(channel);
AddChild(m_indexSource);
SetIndexSource(*m_indexSource.get(), type);
}

View File

@@ -91,7 +91,7 @@ class Encoder : public SensorBase, public CounterBase, public PIDSource {
std::shared_ptr<DigitalSource> m_aSource; // The A phase of the quad encoder
std::shared_ptr<DigitalSource> m_bSource; // The B phase of the quad encoder
std::unique_ptr<DigitalSource> m_indexSource = nullptr;
std::shared_ptr<DigitalSource> m_indexSource = nullptr;
HAL_EncoderHandle m_encoder = HAL_kInvalidHandle;
friend class DigitalGlitchFilter;

View File

@@ -540,6 +540,7 @@ public class Encoder extends SensorBase implements CounterBase, PIDSource, Senda
}
m_indexSource = new DigitalInput(channel);
m_allocatedI = true;
addChild(m_indexSource);
setIndexSource(m_indexSource, type);
}