blob: 42760e580a9764b810828baa511eb43a16a70948 [file] [log] [blame]
milind-u086d7262022-01-19 20:44:18 -08001#ifndef Y2022_ACTORS_AUTO_SPLINES_H_
2#define Y2022_ACTORS_AUTO_SPLINES_H_
3
4#include "aos/events/event_loop.h"
Ravago Jones81e50632022-03-11 16:23:51 -08005#include "aos/flatbuffer_merge.h"
milind-u086d7262022-01-19 20:44:18 -08006#include "frc971/control_loops/control_loops_generated.h"
7#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
Ravago Jones81e50632022-03-11 16:23:51 -08008#include "frc971/input/joystick_state_generated.h"
milind-u086d7262022-01-19 20:44:18 -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 y2022::actors {
milind-u086d7262022-01-19 20:44:18 -080017
18class AutonomousSplines {
19 public:
Ravago Jones81e50632022-03-11 16:23:51 -080020 AutonomousSplines()
21 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Ravago Jonese20f7f92022-03-11 19:54:38 -080022 "splines/test_spline.json")),
23 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser09e8da92022-03-14 20:58:45 -070024 "splines/spline_5_ball_1.json")),
Ravago Jonese20f7f92022-03-11 19:54:38 -080025 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser09e8da92022-03-14 20:58:45 -070026 "splines/spline_5_ball_2.json")),
Ravago Jonese20f7f92022-03-11 19:54:38 -080027 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser5eed1de2022-04-07 21:52:10 -070028 "splines/spline_5_ball_3.json")),
Austin Schuhf3413b72022-04-16 19:09:33 -070029 spline_two1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
30 "splines/spline_2_ball.json")),
31 spline_two2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
32 "splines/spline_2_ball_2.json")) {}
Ravago Jones81e50632022-03-11 16:23:51 -080033
milind-u086d7262022-01-19 20:44:18 -080034 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
35 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
36 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
37 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
Ravago Jones81e50632022-03-11 16:23:51 -080038
39 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
40 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
41 *builder,
42 aos::Alliance alliance);
43
Ravago Jonese20f7f92022-03-11 19:54:38 -080044 flatbuffers::Offset<frc971::MultiSpline> Spline1(
45 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
46 *builder,
47 aos::Alliance alliance);
48 flatbuffers::Offset<frc971::MultiSpline> Spline2(
49 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
50 *builder,
51 aos::Alliance alliance);
52 flatbuffers::Offset<frc971::MultiSpline> Spline3(
53 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
54 *builder,
55 aos::Alliance alliance);
Ravago Jonese20f7f92022-03-11 19:54:38 -080056
Austin Schuhf3413b72022-04-16 19:09:33 -070057 flatbuffers::Offset<frc971::MultiSpline> SplineTwoBall1(
58 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
59 *builder,
60 aos::Alliance alliance);
61 flatbuffers::Offset<frc971::MultiSpline> SplineTwoBall2(
Henry Speiser5eed1de2022-04-07 21:52:10 -070062 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
63 *builder,
64 aos::Alliance alliance);
65
Ravago Jones81e50632022-03-11 16:23:51 -080066 private:
67 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Ravago Jonese20f7f92022-03-11 19:54:38 -080068 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
69 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
70 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
Austin Schuhf3413b72022-04-16 19:09:33 -070071 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_two1_;
72 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_two2_;
milind-u086d7262022-01-19 20:44:18 -080073};
74
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080075} // namespace y2022::actors
milind-u086d7262022-01-19 20:44:18 -080076
77#endif // Y2022_ACTORS_AUTO_SPLINES_H_