blob: 013730e03749246d121b2199a5c7d193eeab7cef [file] [log] [blame]
Austin Schuh99f7c6a2024-06-25 22:07:44 -07001#include "absl/flags/flag.h"
2
Ravago Jonesb84f2062023-01-29 13:46:59 -08003#include "aos/events/shm_event_loop.h"
4#include "aos/init.h"
James Kuszmauld67f6d22023-02-05 17:37:25 -08005#include "frc971/constants/constants_sender_lib.h"
Philipp Schrader790cb542023-07-05 21:06:52 -07006#include "y2023/vision/aprilrobotics.h"
Ravago Jonesb84f2062023-01-29 13:46:59 -08007
Austin Schuh99f7c6a2024-06-25 22:07:44 -07008ABSL_FLAG(std::string, config, "aos_config.json",
9 "Path to the config file to use.");
Ravago Jonesb84f2062023-01-29 13:46:59 -080010
11namespace y2023::vision {
12void AprilViewerMain() {
13 aos::FlatbufferDetachedBuffer<aos::Configuration> config =
Austin Schuh99f7c6a2024-06-25 22:07:44 -070014 aos::configuration::ReadConfig(absl::GetFlag(FLAGS_config));
Ravago Jonesb84f2062023-01-29 13:46:59 -080015
James Kuszmauld67f6d22023-02-05 17:37:25 -080016 frc971::constants::WaitForConstants<Constants>(&config.message());
17
Ravago Jonesb84f2062023-01-29 13:46:59 -080018 aos::ShmEventLoop event_loop(&config.message());
19
20 AprilRoboticsDetector detector(&event_loop, "/camera");
21
22 detector.SetWorkerpoolAffinities();
23
24 event_loop.SetRuntimeAffinity(aos::MakeCpusetFromCpus({5}));
25
26 struct sched_param param;
27 param.sched_priority = 21;
28 PCHECK(sched_setscheduler(0, SCHED_FIFO, &param) == 0);
29
30 event_loop.Run();
31}
32
33} // namespace y2023::vision
34
35int main(int argc, char **argv) {
36 aos::InitGoogle(&argc, &argv);
37 y2023::vision::AprilViewerMain();
38
39 return 0;
40}