RIT VEXU Core API
Loading...
Searching...
No Matches
builtins.hpp
1#pragma once
2#include "core/device/vdb/types.hpp"
3#include "core/subsystems/odometry/odometry_base.h"
4#include <Eigen/Dense>
5#include <memory>
6
7#include "vex.h"
8#include <string>
9namespace VDP {
13class TimestampedRecord : public Record {
14 public:
22 TimestampedRecord(std::string name, Part *data);
26 void fetch();
27
28 private:
29 std::shared_ptr<Float> timestamp;
30 PartPtr data;
31};
32
35class MotorDataRecord : public Record {
36 public:
47 MotorDataRecord(std::string name, vex::motor &mot);
51 void fetch() override;
52
53 private:
54 vex::motor &mot;
55
56 std::shared_ptr<Float> pos;
57 std::shared_ptr<Float> vel;
58 std::shared_ptr<Float> temp;
59 std::shared_ptr<Float> voltage;
60 std::shared_ptr<Float> current;
61};
62
65class OdometryDataRecord : public Record {
66 public:
75 OdometryDataRecord(std::string name, OdometryBase &odom);
79 void fetch() override;
80
81 private:
82 OdometryBase &odom;
83
84 std::shared_ptr<Float> X;
85 std::shared_ptr<Float> Y;
86 std::shared_ptr<Float> ROT;
87};
88
93 public:
99 OdometryControlRecord(std::string name, OdometryBase &odom);
103 void response() override;
104
105 private:
106 OdometryBase &odom;
107
108 std::shared_ptr<Float> X;
109 std::shared_ptr<Float> Y;
110 std::shared_ptr<Float> ROT;
111};
112
116class PIDDataRecord : public Record {
117 public:
129 PIDDataRecord(std::string name, PID &pid);
133 void fetch() override;
134
135 private:
136 PID &pid;
137
138 std::shared_ptr<Float> P;
139 std::shared_ptr<Float> I;
140 std::shared_ptr<Float> D;
141 std::shared_ptr<Float> ERROR;
142 std::shared_ptr<Float> OUTPUT;
143 std::shared_ptr<String> TYPE;
144};
145
148class PIDControlRecord : public Record {
149 public:
155 PIDControlRecord(std::string name, PID &pid);
159 void response() override;
160
161 private:
162 PID &pid;
163
164 std::shared_ptr<Float> P;
165 std::shared_ptr<Float> I;
166 std::shared_ptr<Float> D;
167};
168
172class TestRecord : public Record {
173 public:
177 TestRecord(std::string name, double test_float, int64_t test_int64);
178 void response() override;
179 void fetch() override;
180
181 private:
182 double test_float;
183 int64_t test_int64;
184
185 std::shared_ptr<Float> test_float_ptr;
186 std::shared_ptr<Int64> test_int64_ptr;
187};
188} // namespace VDP
Definition odometry_base.h:31
Definition pid.h:23
void fetch() override
Definition builtins.cpp:49
MotorDataRecord(std::string name, vex::motor &mot)
Definition builtins.cpp:41
void response() override
Definition builtins.cpp:88
OdometryControlRecord(std::string name, OdometryBase &odom)
Definition builtins.cpp:81
void fetch() override
Definition builtins.cpp:71
OdometryDataRecord(std::string name, OdometryBase &odom)
Definition builtins.cpp:64
void response() override
Definition builtins.cpp:131
PIDControlRecord(std::string name, PID &pid)
Definition builtins.cpp:124
PIDDataRecord(std::string name, PID &pid)
Definition builtins.cpp:101
void fetch() override
Definition builtins.cpp:109
Definition protocol.hpp:154
Record(std::string name)
Definition types.cpp:8
TestRecord(std::string name, double test_float, int64_t test_int64)
Definition builtins.cpp:139
void fetch()
Definition builtins.cpp:27
TimestampedRecord(std::string name, Part *data)
Definition builtins.cpp:20