/*----------------------------------------------------------------------------*/ /* Copyright (c) 2017-2019 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}; std::atomic digitalChannelB{0}; SimDataValue initialized{ false}; std::atomic simDevice; 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