/*----------------------------------------------------------------------------*/ /* 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 "../PortsInternal.h" #include "mockdata/PCMData.h" #include "mockdata/SimDataValue.h" namespace hal { class PCMData { HAL_SIMDATAVALUE_DEFINE_NAME(SolenoidInitialized) HAL_SIMDATAVALUE_DEFINE_NAME(SolenoidOutput) HAL_SIMDATAVALUE_DEFINE_NAME(CompressorInitialized) HAL_SIMDATAVALUE_DEFINE_NAME(CompressorOn) HAL_SIMDATAVALUE_DEFINE_NAME(ClosedLoopEnabled) HAL_SIMDATAVALUE_DEFINE_NAME(PressureSwitch) HAL_SIMDATAVALUE_DEFINE_NAME(CompressorCurrent) static LLVM_ATTRIBUTE_ALWAYS_INLINE constexpr HAL_Bool GetSolenoidInitializedDefault() { return false; } static LLVM_ATTRIBUTE_ALWAYS_INLINE constexpr HAL_Bool GetSolenoidOutputDefault() { return false; } public: SimDataValue solenoidInitialized[kNumSolenoidChannels]; SimDataValue solenoidOutput[kNumSolenoidChannels]; SimDataValue compressorInitialized{false}; SimDataValue compressorOn{false}; SimDataValue closedLoopEnabled{true}; SimDataValue pressureSwitch{ false}; SimDataValue compressorCurrent{ 0.0}; virtual void ResetData(); }; extern PCMData* SimPCMData; } // namespace hal