blob: b588636b0d3d1ce17847c8cc7ee38a1acf86328c [file] [log] [blame]
Henry Speiser0b9b0052022-03-02 23:07:40 -08001#include "aos/events/shm_event_loop.h"
2#include "aos/init.h"
3#include "gflags/gflags.h"
4#include "glog/logging.h"
Henry Speiser0b9b0052022-03-02 23:07:40 -08005#include "y2022/setpoint_generated.h"
6
Milind Upadhyay9cb14212022-03-11 21:42:35 -08007DEFINE_double(catapult_position, 0.03, "Catapult shot position");
8DEFINE_double(catapult_velocity, 18.0, "Catapult shot velocity");
Henry Speiser0b9b0052022-03-02 23:07:40 -08009DEFINE_double(turret, 0.0, "Turret setpoint");
10
James Kuszmaul1f6099e2022-03-12 18:25:59 -080011DEFINE_string(config, "aos_config.json", "Path to the config file to use.");
12
Henry Speiser0b9b0052022-03-02 23:07:40 -080013using y2022::input::joysticks::Setpoint;
14
15int main(int argc, char **argv) {
16 aos::InitGoogle(&argc, &argv);
17
18 aos::FlatbufferDetachedBuffer<aos::Configuration> config =
James Kuszmaul1f6099e2022-03-12 18:25:59 -080019 aos::configuration::ReadConfig(FLAGS_config);
Henry Speiser0b9b0052022-03-02 23:07:40 -080020
21 aos::ShmEventLoop event_loop(&config.message());
22
23 auto setpoint_sender = event_loop.MakeSender<Setpoint>("/superstructure");
24
25 aos::Sender<Setpoint>::Builder builder = setpoint_sender.MakeBuilder();
26
27 Setpoint::Builder setpoint_builder = builder.MakeBuilder<Setpoint>();
28
29 setpoint_builder.add_catapult_position(FLAGS_catapult_position);
30 setpoint_builder.add_catapult_velocity(FLAGS_catapult_velocity);
31 setpoint_builder.add_turret(FLAGS_turret);
32 builder.CheckOk(builder.Send(setpoint_builder.Finish()));
33
34 return 0;
35}