blob: 1bbef1b3e94672a4ad4735b2252aeaac202ea88e [file] [log] [blame]
Parker Schuhd3b7a8872018-02-19 16:42:27 -08001/*----------------------------------------------------------------------------*/
James Kuszmaul41fa78a2019-12-14 20:53:14 -08002/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
Parker Schuhd3b7a8872018-02-19 16:42:27 -08003/* Open Source Software - may be modified and shared by FRC teams. The code */
4/* must be accompanied by the FIRST BSD license file in the root directory of */
5/* the project. */
6/*----------------------------------------------------------------------------*/
7
8#include "frc971/wpilib/ahal/AnalogTriggerOutput.h"
9
Austin Schuhf6b94632019-02-02 22:11:27 -080010#include <hal/HAL.h>
Parker Schuhd3b7a8872018-02-19 16:42:27 -080011
12#include "frc971/wpilib/ahal/AnalogTrigger.h"
13#include "frc971/wpilib/ahal/WPIErrors.h"
14
15using namespace frc;
16
Parker Schuhd3b7a8872018-02-19 16:42:27 -080017bool AnalogTriggerOutput::Get() const {
18 int32_t status = 0;
19 bool result = HAL_GetAnalogTriggerOutput(
James Kuszmaul41fa78a2019-12-14 20:53:14 -080020 m_trigger->m_trigger, static_cast<HAL_AnalogTriggerType>(m_outputType),
Parker Schuhd3b7a8872018-02-19 16:42:27 -080021 &status);
James Kuszmaul41fa78a2019-12-14 20:53:14 -080022 wpi_setHALError(status);
Parker Schuhd3b7a8872018-02-19 16:42:27 -080023 return result;
24}
25
Parker Schuhd3b7a8872018-02-19 16:42:27 -080026HAL_Handle AnalogTriggerOutput::GetPortHandleForRouting() const {
James Kuszmaul41fa78a2019-12-14 20:53:14 -080027 return m_trigger->m_trigger;
Parker Schuhd3b7a8872018-02-19 16:42:27 -080028}
29
Parker Schuhd3b7a8872018-02-19 16:42:27 -080030AnalogTriggerType AnalogTriggerOutput::GetAnalogTriggerTypeForRouting() const {
31 return m_outputType;
32}
33
James Kuszmaul41fa78a2019-12-14 20:53:14 -080034bool AnalogTriggerOutput::IsAnalogTrigger() const { return true; }
35
36int AnalogTriggerOutput::GetChannel() const { return m_trigger->GetIndex(); }
37
38AnalogTriggerOutput::AnalogTriggerOutput(const AnalogTrigger& trigger,
39 AnalogTriggerType outputType)
40 : m_trigger(&trigger), m_outputType(outputType) {
41 HAL_Report(HALUsageReporting::kResourceType_AnalogTriggerOutput,
42 trigger.GetIndex() + 1, static_cast<uint8_t>(outputType) + 1);
43}
Alex Perryc4691f52020-02-17 19:20:01 -080044
45AnalogTriggerOutput::~AnalogTriggerOutput() {}