41103C 26/27
Documentation for 41103C 1/3 for the 2026/2027 Vex V5 Season Override
Toggle main menu visibility
Loading...
Searching...
No Matches
hardware.hpp
1
#pragma once
2
#include "
api.h
"
3
#include "helpers.hpp"
4
#include "odom.hpp"
5
#include "vex_macro.hpp"
6
#include <memory>
7
8
class
FlipToggleHeight
;
9
10
enum
StandardPorts
11
{
// Negative == reversed
12
motor_left_front = -14,
13
motor_left_rear = -15,
14
15
motor_right_front = 11,
16
motor_right_rear = 12,
17
18
imu = 5,
19
aivision = 6,
20
21
motor_intake_11W = -16,
22
23
motor_cascade_11WR = -19,
24
motor_cascade_11WL = 20,
25
26
motor_score_open = -1,
27
motor_score_roll = -2,
28
29
odom_vertical = 3,
30
odom_horizontal = -4,
31
32
distance = 7
33
};
34
35
enum
Triports
36
{
37
38
};
39
40
struct
MotorWrapper
41
{
42
std::unique_ptr<pros::Motor> motor;
43
pros_standard_port port;
44
pros::motor_gearset_e_t gearset;
45
46
MotorWrapper(
void
) : port(0), gearset(pros::E_MOTOR_GEAR_BLUE) {};
47
MotorWrapper(
const
pros_standard_port port,
const
pros::motor_gearset_e_t gearset = pros::E_MOTOR_GEAR_BLUE) : port(port), gearset(gearset) {};
48
~MotorWrapper(
void
);
49
50
void
MotorWrapper_Init() {
51
if
(!motor) {
52
motor = std::make_unique<pros::Motor>(port);
53
motor->set_brake_mode(pros::MotorBrake::brake);
54
motor->set_gearing(gearset);
55
}
56
}
57
58
void
operator=(pros::Motor m) {
59
this->motor = std::make_unique<pros::Motor>(m);
60
}
61
62
void
set(
int
speed);
63
};
64
65
struct
MotorGroupWrapper
66
{
67
std::vector<MotorWrapper*> motors;
68
69
void
set(
int
speed) {
70
for
(
MotorWrapper
* m : motors) {
71
if
(m)
72
m->set(speed);
73
}
74
}
75
76
MotorGroupWrapper(
void
) {};
77
MotorGroupWrapper(
MotorWrapper
* m1,
MotorWrapper
* m2,
MotorWrapper
* m3);
78
};
79
80
struct
Hardware
81
{
82
public
:
83
struct
84
{
85
MotorWrapper
MOTOR_L1;
86
MotorWrapper
MOTOR_L2;
87
88
MotorWrapper
MOTOR_R1;
89
MotorWrapper
MOTOR_R2;
90
91
MotorWrapper
MOTOR_INTAKE_11W;
92
MotorWrapper
MOTOR_CASCADE_11WR;
93
MotorWrapper
MOTOR_CASCADE_11WL;
94
MotorWrapper
MOTOR_SCORE_OPEN;
95
MotorWrapper
MOTOR_SCORE_ROLL;
96
} Motors;
97
98
struct
99
{
100
MotorGroupWrapper
MOTORGROUP_L;
101
MotorGroupWrapper
MOTORGROUP_R;
102
MotorGroupWrapper
MOTORGROUP_INTAKE;
103
} Motorgroups;
104
105
std::unique_ptr<pros::Controller> PRIMARY_CONTROLLER;
106
107
struct
108
{
109
} Pneumatics;
110
111
struct
112
{
113
std::unique_ptr<pros::Rotation> VerticalWheel;
114
} Odom;
115
116
struct
117
{
118
std::unique_ptr<pros::Imu> IMU;
119
} Sensors;
120
121
struct
{
122
std::unique_ptr<FlipToggleHeight> flipToggleHeight;
123
} Macros;
124
125
Hardware(
void
);
126
~Hardware(
void
);
127
128
void
LoadPeripherals(
void
);
129
130
131
private
:
132
Hardware(
const
Hardware&) =
delete
;
133
Hardware& operator=(
const
Hardware&) =
delete
;
134
};
135
136
static
Hardware
robotHardware =
Hardware
();
api.h
FlipToggleHeight
Definition
vex_macro.hpp:10
Hardware
Definition
hardware.hpp:81
MotorGroupWrapper
Definition
hardware.hpp:66
MotorWrapper
Definition
hardware.hpp:41
include
hardware.hpp
Generated by
1.17.0