blob: 196fbb7a51f8a8ae3c29351249434722fc1dedb8 [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001#include <memory>
2
3#include "aos/events/shm_event_loop.h"
4#include "aos/init.h"
5#include "frc971/constants/constants_sender_lib.h"
6#include "frc971/control_loops/drivetrain/drivetrain.h"
7#include "frc971/control_loops/drivetrain/localization/puppet_localizer.h"
8#include "y2024/constants/constants_generated.h"
9#include "y2024/control_loops/drivetrain/drivetrain_base.h"
10using ::frc971::control_loops::drivetrain::DrivetrainLoop;
11
12int main(int argc, char **argv) {
13 aos::InitGoogle(&argc, &argv);
14
15 aos::FlatbufferDetachedBuffer<aos::Configuration> config =
16 aos::configuration::ReadConfig("aos_config.json");
17
18 frc971::constants::WaitForConstants<y2024::Constants>(&config.message());
19
20 aos::ShmEventLoop event_loop(&config.message());
21 std::unique_ptr<::frc971::control_loops::drivetrain::PuppetLocalizer>
22 localizer = std::make_unique<
23 ::frc971::control_loops::drivetrain::PuppetLocalizer>(
24 &event_loop,
25 ::y2024::control_loops::drivetrain::GetDrivetrainConfig());
26 std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
27 y2024::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
28 localizer.get());
29
30 event_loop.Run();
31
32 return 0;
33}