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_mid = -15,
14
motor_left_rear = -13,
15
16
motor_right_front = 11,
17
motor_right_mid = 12,
18
motor_right_rear = 14,
19
20
imu = 5,
21
22
motor_intake_11W = -16,
23
motor_intake_5W5_L = -19,
24
motor_intake_5W5_U = 20,
25
26
motor_score_open = -1,
27
motor_score_roll = -2,
28
29
odom_rear = 9,
30
odom_left = 4,
31
odom_right = 3,
32
33
distance = 3,
34
};
35
36
enum
Triports
37
{
38
39
};
40
41
struct
MotorWrapper
42
{
43
std::unique_ptr<pros::Motor> motor;
44
pros_standard_port port;
45
pros::motor_gearset_e_t gearset;
46
47
MotorWrapper(
void
) : port(0), gearset(pros::E_MOTOR_GEAR_BLUE) {};
48
MotorWrapper(
const
pros_standard_port port,
const
pros::motor_gearset_e_t gearset = pros::E_MOTOR_GEAR_BLUE) : port(port), gearset(gearset) {};
49
~MotorWrapper(
void
);
50
51
void
MotorWrapper_Init() {
52
if
(!motor) {
53
motor = std::make_unique<pros::Motor>(port);
54
motor->set_brake_mode(pros::MotorBrake::brake);
55
motor->set_gearing(gearset);
56
}
57
}
58
59
void
operator=(pros::Motor m) {
60
this->motor = std::make_unique<pros::Motor>(m);
61
}
62
63
void
set(
int
speed);
64
};
65
66
struct
MotorGroupWrapper
67
{
68
std::vector<MotorWrapper*> motors;
69
70
void
set(
int
speed) {
71
for
(
MotorWrapper
* m : motors) {
72
if
(m)
73
m->set(speed);
74
}
75
}
76
77
MotorGroupWrapper(
void
) {};
78
MotorGroupWrapper(
MotorWrapper
* m1,
MotorWrapper
* m2,
MotorWrapper
* m3);
79
};
80
81
struct
Hardware
82
{
83
public
:
84
struct
85
{
86
MotorWrapper
MOTOR_L1;
87
MotorWrapper
MOTOR_L2;
88
MotorWrapper
MOTOR_L3;
89
90
MotorWrapper
MOTOR_R1;
91
MotorWrapper
MOTOR_R2;
92
MotorWrapper
MOTOR_R3;
93
94
MotorWrapper
MOTOR_INTAKE_11W;
95
MotorWrapper
MOTOR_INTAKE_5W5_LOWER;
96
MotorWrapper
MOTOR_INTAKE_5W5_UPPER;
97
MotorWrapper
MOTOR_SCORE_OPEN;
98
MotorWrapper
MOTOR_SCORE_ROLL;
99
} Motors;
100
101
struct
102
{
103
MotorGroupWrapper
MOTORGROUP_L;
104
MotorGroupWrapper
MOTORGROUP_R;
105
MotorGroupWrapper
MOTORGROUP_INTAKE;
106
} Motorgroups;
107
108
std::unique_ptr<pros::Controller> PRIMARY_CONTROLLER;
109
110
struct
111
{
112
std::unique_ptr<pros::Rotation> VerticalWheel;
113
std::unique_ptr<pros::Rotation> HorizontalWheel;
114
115
std::unique_ptr<pros::Distance> distance;
116
} Odom;
117
118
struct
{
119
std::unique_ptr<FlipToggleHeight> flipToggleHeight;
120
} Macros;
121
122
Hardware(
void
);
123
~Hardware(
void
);
124
125
void
LoadPeripherals(
void
);
126
127
128
private
:
129
Hardware(
const
Hardware&) =
delete
;
130
Hardware& operator=(
const
Hardware&) =
delete
;
131
};
132
133
static
Hardware
robotHardware =
Hardware
();
api.h
FlipToggleHeight
Definition
vex_macro.hpp:10
Hardware
Definition
hardware.hpp:82
MotorGroupWrapper
Definition
hardware.hpp:67
MotorWrapper
Definition
hardware.hpp:42
include
hardware.hpp
Generated by
1.17.0