blob: c2c72654021aaa95bdcc412eb0fb1b7b6a816ff8 [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
10#include <hal/HAL.h>
11
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);
22 wpi_setErrorWithContext(status, HAL_GetErrorMessage(status));
23 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 Kuszmaul4f3ad3c2019-12-01 16:35:21 -080036int AnalogTriggerOutput::GetChannel() const { return m_trigger->m_index; }
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,
44 trigger.GetIndex(), static_cast<uint8_t>(outputType));
45}