blob: daa39b78b2e745e8858934931a640be4a14b3c18 [file] [log] [blame]
Filip Kujawaef687152023-11-14 22:11:32 -08001#ifndef Y2023_BOT3_AUTONOMOUS_AUTO_SPLINES_H_
2#define Y2023_BOT3_AUTONOMOUS_AUTO_SPLINES_H_
Ariv Diggi0af59c02023-10-07 13:15:39 -07003
4#include "aos/events/event_loop.h"
5#include "aos/flatbuffer_merge.h"
6#include "frc971/control_loops/control_loops_generated.h"
7#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
8#include "frc971/input/joystick_state_generated.h"
9/*
10
11 The cooridinate system for the autonomous splines is the same as the spline
12 python generator and drivetrain spline systems.
13
14*/
15
16namespace y2023_bot3 {
17namespace autonomous {
18
19class AutonomousSplines {
20 public:
21 AutonomousSplines()
22 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Filip Kujawaef687152023-11-14 22:11:32 -080023 "splines/test_spline.json")),
24 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
25 "splines/charged_up.0.json")),
26 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
27 "splines/charged_up.1.json")),
28 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
29 "splines/charged_up.2.json")),
30 spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
31 "splines/charged_up.3.json")),
32 spline_middle_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
33 "splines/charged_up_middle.0.json")) {}
Ariv Diggi0af59c02023-10-07 13:15:39 -070034 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
35 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
36 *builder,
37 aos::Alliance alliance);
38 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
39 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
40 *builder,
41 aos::Alliance alliance);
42
43 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
44 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
45 *builder,
46 aos::Alliance alliance);
Filip Kujawaef687152023-11-14 22:11:32 -080047 flatbuffers::Offset<frc971::MultiSpline> Spline1(
48 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
49 *builder,
50 aos::Alliance alliance);
51 flatbuffers::Offset<frc971::MultiSpline> Spline2(
52 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
53 *builder,
54 aos::Alliance alliance);
55 flatbuffers::Offset<frc971::MultiSpline> Spline3(
56 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
57 *builder,
58 aos::Alliance alliance);
59 flatbuffers::Offset<frc971::MultiSpline> Spline4(
60 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
61 *builder,
62 aos::Alliance alliance);
63 flatbuffers::Offset<frc971::MultiSpline> SplineMiddle1(
64 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
65 *builder,
66 aos::Alliance alliance);
Ariv Diggi0af59c02023-10-07 13:15:39 -070067
68 private:
69 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Filip Kujawaef687152023-11-14 22:11:32 -080070 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
71 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
72 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
73 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
74 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_middle_1_;
Ariv Diggi0af59c02023-10-07 13:15:39 -070075};
76
77} // namespace autonomous
78} // namespace y2023_bot3
79
80#endif // Y2023_AUTONOMOUS_AUTO_SPLINES_H_