blob: eebae91675267fa7708423b718f7040db77573f0 [file] [log] [blame]
Maxwell Hendersonad312342023-01-10 12:07:47 -08001#include <memory>
2
3#include "aos/events/shm_event_loop.h"
4#include "aos/init.h"
5#include "frc971/control_loops/drivetrain/drivetrain.h"
James Kuszmaul04a343c2023-02-20 16:38:22 -08006#include "frc971/control_loops/drivetrain/localization/puppet_localizer.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -08007#include "y2023/control_loops/drivetrain/drivetrain_base.h"
James Kuszmaulc29f4572023-02-25 17:02:33 -08008#include "y2023/control_loops/drivetrain/target_selector.h"
Maxwell Hendersonad312342023-01-10 12:07:47 -08009
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
Austin Schuh8cd30272023-03-22 20:32:56 -070018 frc971::constants::WaitForConstants<y2023::Constants>(&config.message());
19
Maxwell Hendersonad312342023-01-10 12:07:47 -080020 aos::ShmEventLoop event_loop(&config.message());
James Kuszmaul04a343c2023-02-20 16:38:22 -080021 std::unique_ptr<::frc971::control_loops::drivetrain::PuppetLocalizer>
22 localizer = std::make_unique<
23 ::frc971::control_loops::drivetrain::PuppetLocalizer>(
24 &event_loop,
James Kuszmaulc29f4572023-02-25 17:02:33 -080025 ::y2023::control_loops::drivetrain::GetDrivetrainConfig(),
26 std::make_unique<::y2023::control_loops::drivetrain::TargetSelector>(
27 &event_loop));
Ravago Jones2060ee62023-02-03 18:12:24 -080028 std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
29 y2023::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
30 localizer.get());
Maxwell Hendersonad312342023-01-10 12:07:47 -080031
32 event_loop.Run();
33
34 return 0;
35}