blob: b8db887cb5313c523b82fa2ad1e2b4189114cf36 [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
16namespace y2022 {
17namespace actors {
18
19class AutonomousSplines {
20 public:
Ravago Jones81e50632022-03-11 16:23:51 -080021 AutonomousSplines()
22 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Ravago Jonese20f7f92022-03-11 19:54:38 -080023 "splines/test_spline.json")),
24 spline_1_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser09e8da92022-03-14 20:58:45 -070025 "splines/spline_5_ball_1.json")),
Ravago Jonese20f7f92022-03-11 19:54:38 -080026 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser09e8da92022-03-14 20:58:45 -070027 "splines/spline_5_ball_2.json")),
Ravago Jonese20f7f92022-03-11 19:54:38 -080028 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
Henry Speiser5eed1de2022-04-07 21:52:10 -070029 "splines/spline_5_ball_3.json")),
30 spline_two_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
31 "splines/spline_two_ball.json")) {}
Ravago Jones81e50632022-03-11 16:23:51 -080032
milind-u086d7262022-01-19 20:44:18 -080033 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
34 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
35 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
36 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
Ravago Jones81e50632022-03-11 16:23:51 -080037
38 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
39 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
40 *builder,
41 aos::Alliance alliance);
42
Ravago Jonese20f7f92022-03-11 19:54:38 -080043 flatbuffers::Offset<frc971::MultiSpline> Spline1(
44 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
45 *builder,
46 aos::Alliance alliance);
47 flatbuffers::Offset<frc971::MultiSpline> Spline2(
48 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
49 *builder,
50 aos::Alliance alliance);
51 flatbuffers::Offset<frc971::MultiSpline> Spline3(
52 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
53 *builder,
54 aos::Alliance alliance);
Ravago Jonese20f7f92022-03-11 19:54:38 -080055
Henry Speiser5eed1de2022-04-07 21:52:10 -070056 flatbuffers::Offset<frc971::MultiSpline> SplineTwoBall(
57 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
58 *builder,
59 aos::Alliance alliance);
60
Ravago Jones81e50632022-03-11 16:23:51 -080061 private:
62 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
Ravago Jonese20f7f92022-03-11 19:54:38 -080063 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_1_;
64 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_2_;
65 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_3_;
Henry Speiser5eed1de2022-04-07 21:52:10 -070066 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_two_;
milind-u086d7262022-01-19 20:44:18 -080067};
68
69} // namespace actors
70} // namespace y2022
71
72#endif // Y2022_ACTORS_AUTO_SPLINES_H_