blob: 8fba479823577530dece6423258842b8e21a68aa [file] [log] [blame]
Brian Silverman8fce7482020-01-05 13:18:21 -08001/*----------------------------------------------------------------------------*/
2/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
3/* 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 "frc/AnalogTriggerOutput.h"
9
10#include <hal/FRCUsageReporting.h>
11
12#include "frc/AnalogTrigger.h"
13#include "frc/WPIErrors.h"
14
15using namespace frc;
16
17bool AnalogTriggerOutput::Get() const {
18 int32_t status = 0;
19 bool result = HAL_GetAnalogTriggerOutput(
20 m_trigger->m_trigger, static_cast<HAL_AnalogTriggerType>(m_outputType),
21 &status);
22 wpi_setHALError(status);
23 return result;
24}
25
26HAL_Handle AnalogTriggerOutput::GetPortHandleForRouting() const {
27 return m_trigger->m_trigger;
28}
29
30AnalogTriggerType AnalogTriggerOutput::GetAnalogTriggerTypeForRouting() const {
31 return m_outputType;
32}
33
34bool AnalogTriggerOutput::IsAnalogTrigger() const { return true; }
35
36int AnalogTriggerOutput::GetChannel() const { return m_trigger->GetIndex(); }
37
38void AnalogTriggerOutput::InitSendable(SendableBuilder&) {}
39
40AnalogTriggerOutput::AnalogTriggerOutput(const AnalogTrigger& trigger,
41 AnalogTriggerType outputType)
42 : m_trigger(&trigger), m_outputType(outputType) {
43 HAL_Report(HALUsageReporting::kResourceType_AnalogTriggerOutput,
44 trigger.GetIndex() + 1, static_cast<uint8_t>(outputType) + 1);
45}