Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
pierce.hpp
Go to the documentation of this file.
1#ifndef FANG_ROBOTICS_MCB_INFANTRY_HPP
2#define FANG_ROBOTICS_MCB_INFANTRY_HPP
3#include "driver/drivers.hpp"
4//Subsystems
6
10
12
13#include "robot/base_robot.hpp"
14
15namespace fang::robot
16{
21 class Pierce : public BaseRobot
22 {
23 public:
32
38
40 {}
41 private:
42 static BaseRobot makeRobot(Drivers& drivers, const Config& config)
43 {
44 auto gimbal{std::make_unique<turret::PierceFieldGimbal>(drivers, config.subsystemConfig.gimbalConfig)};
45 auto feeder{std::make_unique<turret::M2006SimpleFeeder>(drivers, config.subsystemConfig.feederConfig)};
46 auto booster{std::make_unique<turret::PierceAmmoBooster>(drivers, config.subsystemConfig.boosterConfig)};
47 auto mecanumDrive{std::make_unique<chassis::PierceMecanumDrive>(drivers, config.subsystemConfig.chassisConfig)};
48 auto commandPack
49 {
50 std::make_unique<command::PierceCommandPack>
51 (
52 drivers,
53 *booster,
54 *feeder,
55 *gimbal,
56 *mecanumDrive,
57 config.commandPackConfig
58 )
59 };
60 // If I could get the makeUniqueVector thing to work, this might be more worthwhile...
61 Subsystems subsystems{};
62 subsystems.push_back(std::move(booster));
63 subsystems.push_back(std::move(feeder));
64 subsystems.push_back(std::move(gimbal));
65 subsystems.push_back(std::move(mecanumDrive));
66
67 CommandPacks commandPacks{};
68 commandPacks.push_back(std::move(commandPack));
69 return BaseRobot{drivers.commandScheduler, std::move(subsystems), std::move(commandPacks)};
70 }
71 };
72}
73#endif
Definition drivers.hpp:31
Definition base_robot.hpp:20
BaseRobot(tap::control::CommandScheduler &commandScheduler, Subsystems &&subsystems, CommandPacks &&commandPacks)
Definition base_robot.cpp:6
std::vector< std::unique_ptr< tap::control::Subsystem > > Subsystems
Definition base_robot.hpp:24
std::vector< std::unique_ptr< command::CommandPack > > CommandPacks
Definition base_robot.hpp:25
Definition pierce.hpp:22
Pierce(Drivers &drivers, const Config &config)
Definition pierce.hpp:39
control::CommandScheduler commandScheduler
Definition drivers.hpp:141
Definition remote_map_state.hpp:56
Definition pwm_info.hpp:4
Definition base_robot.cpp:4
fang::Drivers & drivers
Definition robot_singleton.cpp:45
Definition pierce_mecanum_drive.hpp:16
Definition pierce_command_pack.hpp:71
Definition pierce.hpp:34
command::PierceCommandPack::Config commandPackConfig
Definition pierce.hpp:36
SubsystemConfig subsystemConfig
Definition pierce.hpp:35
Definition pierce.hpp:26
fang::turret::M2006SimpleFeeder::Config feederConfig
Definition pierce.hpp:29
turret::PierceFieldGimbal::Config gimbalConfig
Definition pierce.hpp:28
turret::PierceAmmoBooster::Config boosterConfig
Definition pierce.hpp:30
chassis::PierceMecanumDrive::Config chassisConfig
Definition pierce.hpp:27
Definition m2006_simple_feeder.hpp:17
Definition pierce_ammo_booster.hpp:17
Definition pierce_field_gimbal.hpp:18