blob: 13c24c03d12ed7bf316fcf5b891fa5236399ea03 [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"
7#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
Maxwell Henderson64f37452023-03-11 13:39:21 -08008#include "frc971/input/joystick_state_generated.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -08009/*
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::autonomous {
Maxwell Hendersonad312342023-01-10 12:07:47 -080017
18class AutonomousSplines {
19 public:
James Kuszmaul713c5ce2023-03-04 18:23:24 -080020 AutonomousSplines()
milind-u0f9c2112023-03-11 20:36:19 -080021 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Maxwell Henderson64f37452023-03-11 13:39:21 -080022 "splines/test_spline.json")),
23 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080024 "splines/spline.0.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080025 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080026 "splines/spline.1.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080027 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
milind-u0f9c2112023-03-11 20:36:19 -080028 "splines/spline.2.json")),
Maxwell Henderson64f37452023-03-11 13:39:21 -080029 spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Maxwell Henderson25378832023-04-07 14:37:41 -070030 "splines/spline.3.json")),
31 splinecable_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
32 "splines/splinecable.0.json")),
33 splinecable_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
34 "splines/splinecable.1.json")),
35 splinecable_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
36 "splines/splinecable.2.json")),
37 splinecable_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
38 "splines/splinecable.3.json")) {}
Maxwell Hendersonad312342023-01-10 12:07:47 -080039 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
James Kuszmaul713c5ce2023-03-04 18:23:24 -080040 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
41 *builder,
42 aos::Alliance alliance);
Maxwell Hendersonad312342023-01-10 12:07:47 -080043 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
James Kuszmaul713c5ce2023-03-04 18:23:24 -080044 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
45 *builder,
46 aos::Alliance alliance);
47
48 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
49 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
50 *builder,
51 aos::Alliance alliance);
Maxwell Henderson64f37452023-03-11 13:39:21 -080052 flatbuffers::Offset<frc971::MultiSpline> Spline1(
53 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
54 *builder,
55 aos::Alliance alliance);
56 flatbuffers::Offset<frc971::MultiSpline> Spline2(
57 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
58 *builder,
59 aos::Alliance alliance);
60 flatbuffers::Offset<frc971::MultiSpline> Spline3(
61 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
62 *builder,
63 aos::Alliance alliance);
64 flatbuffers::Offset<frc971::MultiSpline> Spline4(
65 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
66 *builder,
67 aos::Alliance alliance);
Maxwell Henderson25378832023-04-07 14:37:41 -070068 flatbuffers::Offset<frc971::MultiSpline> SplineCable1(
69 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
70 *builder,
71 aos::Alliance alliance);
72 flatbuffers::Offset<frc971::MultiSpline> SplineCable2(
73 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
74 *builder,
75 aos::Alliance alliance);
76 flatbuffers::Offset<frc971::MultiSpline> SplineCable3(
77 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
78 *builder,
79 aos::Alliance alliance);
80 flatbuffers::Offset<frc971::MultiSpline> SplineCable4(
81 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
82 *builder,
83 aos::Alliance alliance);
Maxwell Henderson64f37452023-03-11 13:39:21 -080084
James Kuszmaul713c5ce2023-03-04 18:23:24 -080085 private:
86 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Maxwell Henderson64f37452023-03-11 13:39:21 -080087 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
88 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
89 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
90 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
Maxwell Henderson25378832023-04-07 14:37:41 -070091 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> splinecable_1_;
92 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> splinecable_2_;
93 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> splinecable_3_;
94 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> splinecable_4_;
Maxwell Hendersonad312342023-01-10 12:07:47 -080095};
96
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080097} // namespace y2023::autonomous
Maxwell Hendersonad312342023-01-10 12:07:47 -080098
Maxwell Henderson64f37452023-03-11 13:39:21 -080099#endif // Y2023_AUTONOMOUS_AUTO_SPLINES_H_