blob: 8fba479823577530dece6423258842b8e21a68aa [file] [log] [blame]
Brian Silverman41cdd3e2019-01-19 19:48:58 -08001/*----------------------------------------------------------------------------*/
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -08002/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
Brian Silverman41cdd3e2019-01-19 19:48:58 -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 "frc/AnalogTriggerOutput.h"
9
James Kuszmaul4b81d302019-12-14 20:53:14 -080010#include <hal/FRCUsageReporting.h>
Brian Silverman41cdd3e2019-01-19 19:48:58 -080011
12#include "frc/AnalogTrigger.h"
13#include "frc/WPIErrors.h"
14
15using namespace frc;
16
Brian Silverman41cdd3e2019-01-19 19:48:58 -080017bool AnalogTriggerOutput::Get() const {
18 int32_t status = 0;
19 bool result = HAL_GetAnalogTriggerOutput(
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080020 m_trigger->m_trigger, static_cast<HAL_AnalogTriggerType>(m_outputType),
Brian Silverman41cdd3e2019-01-19 19:48:58 -080021 &status);
James Kuszmaul4b81d302019-12-14 20:53:14 -080022 wpi_setHALError(status);
Brian Silverman41cdd3e2019-01-19 19:48:58 -080023 return result;
24}
25
26HAL_Handle AnalogTriggerOutput::GetPortHandleForRouting() const {
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080027 return m_trigger->m_trigger;
Brian Silverman41cdd3e2019-01-19 19:48:58 -080028}
29
30AnalogTriggerType AnalogTriggerOutput::GetAnalogTriggerTypeForRouting() const {
31 return m_outputType;
32}
33
34bool AnalogTriggerOutput::IsAnalogTrigger() const { return true; }
35
James Kuszmaul4b81d302019-12-14 20:53:14 -080036int AnalogTriggerOutput::GetChannel() const { return m_trigger->GetIndex(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080037
38void AnalogTriggerOutput::InitSendable(SendableBuilder&) {}
39
40AnalogTriggerOutput::AnalogTriggerOutput(const AnalogTrigger& trigger,
41 AnalogTriggerType outputType)
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080042 : m_trigger(&trigger), m_outputType(outputType) {
Brian Silverman41cdd3e2019-01-19 19:48:58 -080043 HAL_Report(HALUsageReporting::kResourceType_AnalogTriggerOutput,
James Kuszmaul4b81d302019-12-14 20:53:14 -080044 trigger.GetIndex() + 1, static_cast<uint8_t>(outputType) + 1);
Brian Silverman41cdd3e2019-01-19 19:48:58 -080045}