blob: 9d966511fa43b98f0a7374bb039ac5e25736b2fd [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.
4
5#include "frc/PneumaticsBase.h"
6
7#include "frc/Errors.h"
8#include "frc/PneumaticHub.h"
9#include "frc/PneumaticsControlModule.h"
10#include "frc/SensorUtil.h"
11
12using namespace frc;
13
14std::shared_ptr<PneumaticsBase> PneumaticsBase::GetForType(
15 int module, PneumaticsModuleType moduleType) {
16 if (moduleType == PneumaticsModuleType::CTREPCM) {
17 return PneumaticsControlModule::GetForModule(module);
18 } else if (moduleType == PneumaticsModuleType::REVPH) {
19 return PneumaticHub::GetForModule(module);
20 }
21 throw FRC_MakeError(err::InvalidParameter, "{}", moduleType);
22}
23
24int PneumaticsBase::GetDefaultForType(PneumaticsModuleType moduleType) {
25 if (moduleType == PneumaticsModuleType::CTREPCM) {
26 return SensorUtil::GetDefaultCTREPCMModule();
27 } else if (moduleType == PneumaticsModuleType::REVPH) {
28 return SensorUtil::GetDefaultREVPHModule();
29 }
30 throw FRC_MakeError(err::InvalidParameter, "{}", moduleType);
31}