blob: 4d532f4c38856c495fc754030c03a1d6fd9be6cf [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>(
25 "splines/spline_1.json")),
26 spline_2_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
27 "splines/spline_2.json")),
28 spline_3_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
29 "splines/spline_3.json")),
30 spline_4_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
31 "splines/spline_4.json")),
32 spline_5_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
33 "splines/spline_5.json")) {}
Ravago Jones81e50632022-03-11 16:23:51 -080034
milind-u086d7262022-01-19 20:44:18 -080035 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
36 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
37 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
38 aos::Sender<frc971::control_loops::drivetrain::Goal>::Builder *builder);
Ravago Jones81e50632022-03-11 16:23:51 -080039
40 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
41 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
42 *builder,
43 aos::Alliance alliance);
44
Ravago Jonese20f7f92022-03-11 19:54:38 -080045 flatbuffers::Offset<frc971::MultiSpline> Spline1(
46 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
47 *builder,
48 aos::Alliance alliance);
49 flatbuffers::Offset<frc971::MultiSpline> Spline2(
50 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
51 *builder,
52 aos::Alliance alliance);
53 flatbuffers::Offset<frc971::MultiSpline> Spline3(
54 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
55 *builder,
56 aos::Alliance alliance);
57 flatbuffers::Offset<frc971::MultiSpline> Spline4(
58 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
59 *builder,
60 aos::Alliance alliance);
61 flatbuffers::Offset<frc971::MultiSpline> Spline5(
62 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_;
71 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_4_;
72 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> spline_5_;
milind-u086d7262022-01-19 20:44:18 -080073};
74
75} // namespace actors
76} // namespace y2022
77
78#endif // Y2022_ACTORS_AUTO_SPLINES_H_