/*----------------------------------------------------------------------------*/ /* Copyright (c) 2017-2018 FIRST. 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 #include #include "mockdata/EncoderData.h" #include "mockdata/SimDataValue.h" namespace hal { class EncoderData { HAL_SIMDATAVALUE_DEFINE_NAME(Initialized) HAL_SIMDATAVALUE_DEFINE_NAME(Count) HAL_SIMDATAVALUE_DEFINE_NAME(Period) HAL_SIMDATAVALUE_DEFINE_NAME(Reset) HAL_SIMDATAVALUE_DEFINE_NAME(MaxPeriod) HAL_SIMDATAVALUE_DEFINE_NAME(Direction) HAL_SIMDATAVALUE_DEFINE_NAME(ReverseDirection) HAL_SIMDATAVALUE_DEFINE_NAME(SamplesToAverage) HAL_SIMDATAVALUE_DEFINE_NAME(DistancePerPulse) public: std::atomic digitalChannelA{0}; SimDataValue initialized{false}; SimDataValue count{0}; SimDataValue period{ std::numeric_limits::max()}; SimDataValue reset{false}; SimDataValue maxPeriod{0}; SimDataValue direction{false}; SimDataValue reverseDirection{ false}; SimDataValue samplesToAverage{0}; SimDataValue distancePerPulse{1}; virtual void ResetData(); }; extern EncoderData* SimEncoderData; } // namespace hal