blob: c21077021d0606e60da60f37c759f3df785fb9a5 [file] [log] [blame]
John Park398c74a2018-10-20 21:17:39 -07001#include "aos/init.h"
Brian Silverman17f503e2015-08-02 18:17:18 -07002
Alex Perrycb7da4b2019-08-28 19:35:56 -07003#include "aos/events/shm_event_loop.h"
Comran Morshed5323ecb2015-12-26 20:50:55 +00004#include "frc971/control_loops/drivetrain/drivetrain.h"
Austin Schuh55a13dc2019-01-27 22:39:03 -08005#include "y2014/control_loops/drivetrain/drivetrain_base.h"
Comran Morshed5323ecb2015-12-26 20:50:55 +00006
7using ::frc971::control_loops::drivetrain::DrivetrainLoop;
8
Brian Silverman17f503e2015-08-02 18:17:18 -07009int main() {
Austin Schuh9fe68f72019-08-10 19:32:03 -070010 ::aos::InitNRT(true);
11
Alex Perrycb7da4b2019-08-28 19:35:56 -070012 aos::FlatbufferDetachedBuffer<aos::Configuration> config =
13 aos::configuration::ReadConfig("config.json");
14
15 ::aos::ShmEventLoop event_loop(&config.message());
James Kuszmaul3431d622019-02-17 17:07:44 -080016 ::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
Austin Schuh9fe68f72019-08-10 19:32:03 -070017 &event_loop, ::y2014::control_loops::GetDrivetrainConfig());
Austin Schuh55a13dc2019-01-27 22:39:03 -080018 DrivetrainLoop drivetrain(::y2014::control_loops::GetDrivetrainConfig(),
James Kuszmaul3431d622019-02-17 17:07:44 -080019 &event_loop, &localizer);
Austin Schuh9fe68f72019-08-10 19:32:03 -070020
21 event_loop.Run();
22
Brian Silverman17f503e2015-08-02 18:17:18 -070023 ::aos::Cleanup();
24 return 0;
25}