blob: 2494880b8d94585b3f5679ebbe7768d766bdc2c6 [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
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080016namespace y2023_bot3::autonomous {
Ariv Diggi0af59c02023-10-07 13:15:39 -070017
18class AutonomousSplines {
19 public:
20 AutonomousSplines()
21 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Filip Kujawaef687152023-11-14 22:11:32 -080022 "splines/test_spline.json")),
23 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
24 "splines/charged_up.0.json")),
25 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
26 "splines/charged_up.1.json")),
27 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
28 "splines/charged_up.2.json")),
29 spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
30 "splines/charged_up.3.json")),
31 spline_middle_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
32 "splines/charged_up_middle.0.json")) {}
Ariv Diggi0af59c02023-10-07 13:15:39 -070033 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
34 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
35 *builder,
36 aos::Alliance alliance);
37 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
38 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
39 *builder,
40 aos::Alliance alliance);
41
42 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
43 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
44 *builder,
45 aos::Alliance alliance);
Filip Kujawaef687152023-11-14 22:11:32 -080046 flatbuffers::Offset<frc971::MultiSpline> Spline1(
47 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
48 *builder,
49 aos::Alliance alliance);
50 flatbuffers::Offset<frc971::MultiSpline> Spline2(
51 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
52 *builder,
53 aos::Alliance alliance);
54 flatbuffers::Offset<frc971::MultiSpline> Spline3(
55 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
56 *builder,
57 aos::Alliance alliance);
58 flatbuffers::Offset<frc971::MultiSpline> Spline4(
59 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
60 *builder,
61 aos::Alliance alliance);
62 flatbuffers::Offset<frc971::MultiSpline> SplineMiddle1(
63 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
64 *builder,
65 aos::Alliance alliance);
Ariv Diggi0af59c02023-10-07 13:15:39 -070066
67 private:
68 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Filip Kujawaef687152023-11-14 22:11:32 -080069 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
70 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
71 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
72 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
73 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_middle_1_;
Ariv Diggi0af59c02023-10-07 13:15:39 -070074};
75
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080076} // namespace y2023_bot3::autonomous
Ariv Diggi0af59c02023-10-07 13:15:39 -070077
78#endif // Y2023_AUTONOMOUS_AUTO_SPLINES_H_