blob: 309222f8fe06b9c0e4c8bf373c12a65d4f811d03 [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001#ifndef Y2024_AUTONOMOUS_AUTO_SPLINES_H_
2#define Y2024_AUTONOMOUS_AUTO_SPLINES_H_
3
4#include "aos/events/event_loop.h"
5#include "aos/flatbuffer_merge.h"
6#include "frc971/control_loops/control_loops_generated.h"
7#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
8#include "frc971/input/joystick_state_generated.h"
9/*
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
Maxwell Henderson09a4b022024-01-19 21:39:51 -080016namespace y2024::autonomous {
Niko Sohmers3860f8a2024-01-12 21:05:19 -080017
18class AutonomousSplines {
19 public:
20 AutonomousSplines()
21 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
22 "splines/test_spline.json")) {}
23 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
24 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
25 *builder,
26 aos::Alliance alliance);
27 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
28 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
29 *builder,
30 aos::Alliance alliance);
31
32 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
33 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
34 *builder,
35 aos::Alliance alliance);
36
37 private:
38 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
39};
40
Maxwell Henderson09a4b022024-01-19 21:39:51 -080041} // namespace y2024::autonomous
Niko Sohmers3860f8a2024-01-12 21:05:19 -080042
43#endif // Y2024_AUTONOMOUS_AUTO_SPLINES_H_