blob: 93d19693d2772cbec583fefff331e94803a1b5e9 [file] [log] [blame]
Austin Schuh812d0d12021-11-04 20:16:48 -07001// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
Brian Silverman8fce7482020-01-05 13:18:21 -08004
5#include "frc/AnalogTriggerOutput.h"
6
Austin Schuh812d0d12021-11-04 20:16:48 -07007#include <hal/AnalogTrigger.h>
Brian Silverman8fce7482020-01-05 13:18:21 -08008#include <hal/FRCUsageReporting.h>
9
10#include "frc/AnalogTrigger.h"
Austin Schuh812d0d12021-11-04 20:16:48 -070011#include "frc/AnalogTriggerType.h"
12#include "frc/Errors.h"
Brian Silverman8fce7482020-01-05 13:18:21 -080013
14using namespace frc;
15
16bool AnalogTriggerOutput::Get() const {
17 int32_t status = 0;
18 bool result = HAL_GetAnalogTriggerOutput(
19 m_trigger->m_trigger, static_cast<HAL_AnalogTriggerType>(m_outputType),
20 &status);
Austin Schuh812d0d12021-11-04 20:16:48 -070021 FRC_CheckErrorStatus(status, "{}", "Get");
Brian Silverman8fce7482020-01-05 13:18:21 -080022 return result;
23}
24
25HAL_Handle AnalogTriggerOutput::GetPortHandleForRouting() const {
26 return m_trigger->m_trigger;
27}
28
29AnalogTriggerType AnalogTriggerOutput::GetAnalogTriggerTypeForRouting() const {
30 return m_outputType;
31}
32
Austin Schuh812d0d12021-11-04 20:16:48 -070033bool AnalogTriggerOutput::IsAnalogTrigger() const {
34 return true;
35}
Brian Silverman8fce7482020-01-05 13:18:21 -080036
Austin Schuh812d0d12021-11-04 20:16:48 -070037int AnalogTriggerOutput::GetChannel() const {
38 return m_trigger->GetIndex();
39}
Brian Silverman8fce7482020-01-05 13:18:21 -080040
Austin Schuh812d0d12021-11-04 20:16:48 -070041void AnalogTriggerOutput::InitSendable(wpi::SendableBuilder&) {}
Brian Silverman8fce7482020-01-05 13:18:21 -080042
43AnalogTriggerOutput::AnalogTriggerOutput(const AnalogTrigger& trigger,
44 AnalogTriggerType outputType)
45 : m_trigger(&trigger), m_outputType(outputType) {
46 HAL_Report(HALUsageReporting::kResourceType_AnalogTriggerOutput,
47 trigger.GetIndex() + 1, static_cast<uint8_t>(outputType) + 1);
48}