blob: b99d2389cf0f2adff3b90dd01408f850d850c027 [file] [log] [blame]
Austin Schuh99f7c6a2024-06-25 22:07:44 -07001#include "absl/flags/flag.h"
Philipp Schrader790cb542023-07-05 21:06:52 -07002
3#include "aos/events/shm_event_loop.h"
4#include "aos/init.h"
Henry Speiser0b9b0052022-03-02 23:07:40 -08005#include "y2022/setpoint_generated.h"
6
Austin Schuh99f7c6a2024-06-25 22:07:44 -07007ABSL_FLAG(double, catapult_position, 0.03, "Catapult shot position");
8ABSL_FLAG(double, catapult_velocity, 18.0, "Catapult shot velocity");
9ABSL_FLAG(double, turret, 0.0, "Turret setpoint");
Henry Speiser0b9b0052022-03-02 23:07:40 -080010
Austin Schuh99f7c6a2024-06-25 22:07:44 -070011ABSL_FLAG(std::string, config, "aos_config.json",
12 "Path to the config file to use.");
James Kuszmaul1f6099e2022-03-12 18:25:59 -080013
Henry Speiser0b9b0052022-03-02 23:07:40 -080014using y2022::input::joysticks::Setpoint;
15
16int main(int argc, char **argv) {
17 aos::InitGoogle(&argc, &argv);
18
19 aos::FlatbufferDetachedBuffer<aos::Configuration> config =
Austin Schuh99f7c6a2024-06-25 22:07:44 -070020 aos::configuration::ReadConfig(absl::GetFlag(FLAGS_config));
Henry Speiser0b9b0052022-03-02 23:07:40 -080021
22 aos::ShmEventLoop event_loop(&config.message());
23
24 auto setpoint_sender = event_loop.MakeSender<Setpoint>("/superstructure");
25
26 aos::Sender<Setpoint>::Builder builder = setpoint_sender.MakeBuilder();
27
28 Setpoint::Builder setpoint_builder = builder.MakeBuilder<Setpoint>();
29
Austin Schuh99f7c6a2024-06-25 22:07:44 -070030 setpoint_builder.add_catapult_position(
31 absl::GetFlag(FLAGS_catapult_position));
32 setpoint_builder.add_catapult_velocity(
33 absl::GetFlag(FLAGS_catapult_velocity));
34 setpoint_builder.add_turret(absl::GetFlag(FLAGS_turret));
Henry Speiser0b9b0052022-03-02 23:07:40 -080035 builder.CheckOk(builder.Send(setpoint_builder.Finish()));
36
37 return 0;
38}