blob: 0c9d92fa5cbcb5cd7958f7722381d686187f1eab [file] [log] [blame]
Ariv Diggi0af59c02023-10-07 13:15:39 -07001#ifndef Y2023_AUTONOMOUS_AUTO_SPLINES_H_
2#define Y2023_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
16namespace y2023_bot3 {
17namespace autonomous {
18
19class AutonomousSplines {
20 public:
21 AutonomousSplines()
22 : test_spline_(aos::JsonFileToFlatbuffer<frc971::MultiSpline>(
23 "splines/test_spline.json")) {}
24 static flatbuffers::Offset<frc971::MultiSpline> BasicSSpline(
25 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
26 *builder,
27 aos::Alliance alliance);
28 static flatbuffers::Offset<frc971::MultiSpline> StraightLine(
29 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
30 *builder,
31 aos::Alliance alliance);
32
33 flatbuffers::Offset<frc971::MultiSpline> TestSpline(
34 aos::Sender<frc971::control_loops::drivetrain::SplineGoal>::Builder
35 *builder,
36 aos::Alliance alliance);
37
38 private:
39 aos::FlatbufferDetachedBuffer<frc971::MultiSpline> test_spline_;
40};
41
42} // namespace autonomous
43} // namespace y2023_bot3
44
45#endif // Y2023_AUTONOMOUS_AUTO_SPLINES_H_