blob: 28479579c4089fec6e00ce9a21ca9dc241864aae [file] [log] [blame]
Maxwell Henderson64f37452023-03-11 13:39:21 -08001#ifndef Y2023_AUTONOMOUS_AUTO_SPLINES_H_
2#define Y2023_AUTONOMOUS_AUTO_SPLINES_H_
Maxwell Hendersonad312342023-01-10 12:07:47 -08003
4#include "aos/events/event_loop.h"
Maxwell Henderson64f37452023-03-11 13:39:21 -08005#include "aos/flatbuffer_merge.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -08006#include "frc971/control_loops/control_loops_generated.h"
James Kuszmaul713c5ce2023-03-04 18:23:24 -08007#include "frc971/input/joystick_state_generated.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -08008#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
Maxwell Henderson64f37452023-03-11 13:39:21 -08009#include "frc971/input/joystick_state_generated.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -080010/*
11
12 The cooridinate system for the autonomous splines is the same as the spline
13 python generator and drivetrain spline systems.
14
15*/
16
17namespace y2023 {
Maxwell Henderson64f37452023-03-11 13:39:21 -080018namespace autonomous {
Maxwell Hendersonad312342023-01-10 12:07:47 -080019
20class AutonomousSplines {
21 public:
James Kuszmaul713c5ce2023-03-04 18:23:24 -080022 AutonomousSplines()
milind-u0f9c2112023-03-11 20:36:19 -080023 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Maxwell Henderson64f37452023-03-11 13:39:21 -080024 "splines/test_spline.json")),
25 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080026 "splines/spline.0.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080027 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080028 "splines/spline.1.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080029 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080030 "splines/spline.2.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080031 spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080032 "splines/spline.3.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080033 spline_5_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080034 "splines/spline.4.json")) {}
Maxwell Hendersonad312342023-01-10 12:07:47 -080035 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
James Kuszmaul713c5ce2023-03-04 18:23:24 -080036 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
37 *builder,
38 aos::Alliance alliance);
Maxwell Hendersonad312342023-01-10 12:07:47 -080039 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
James Kuszmaul713c5ce2023-03-04 18:23:24 -080040 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
41 *builder,
42 aos::Alliance alliance);
43
44 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
45 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
46 *builder,
47 aos::Alliance alliance);
Maxwell Henderson64f37452023-03-11 13:39:21 -080048 flatbuffers::Offset<frc971::MultiSpline> Spline1(
49 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
50 *builder,
51 aos::Alliance alliance);
52 flatbuffers::Offset<frc971::MultiSpline> Spline2(
53 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
54 *builder,
55 aos::Alliance alliance);
56 flatbuffers::Offset<frc971::MultiSpline> Spline3(
57 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
58 *builder,
59 aos::Alliance alliance);
60 flatbuffers::Offset<frc971::MultiSpline> Spline4(
61 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
62 *builder,
63 aos::Alliance alliance);
64 flatbuffers::Offset<frc971::MultiSpline> Spline5(
65 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
66 *builder,
67 aos::Alliance alliance);
68
James Kuszmaul713c5ce2023-03-04 18:23:24 -080069 private:
70 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Maxwell Henderson64f37452023-03-11 13:39:21 -080071 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
72 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
73 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
74 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
75 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_5_;
Maxwell Hendersonad312342023-01-10 12:07:47 -080076};
77
Maxwell Henderson64f37452023-03-11 13:39:21 -080078} // namespace autonomous
Maxwell Hendersonad312342023-01-10 12:07:47 -080079} // namespace y2023
80
Maxwell Henderson64f37452023-03-11 13:39:21 -080081#endif // Y2023_AUTONOMOUS_AUTO_SPLINES_H_