blob: c110b8e72af18d839e26ce1702b244f7134e8894 [file] [log] [blame]
Brian Silvermand4417aa2014-01-18 12:45:12 -08001package frc971.control_loops;
2
Ben Fredrickson1e512ff2014-02-15 21:36:52 +00003import "aos/common/control_loop/control_loops.q";
Brian Silvermand4417aa2014-01-18 12:45:12 -08004
5queue_group ShooterLoop {
6 implements aos.control_loops.ControlLoop;
7
joe93778a62014-02-15 13:22:14 -08008 message Output {
9 // The energy to load to in joules.
10 double voltage;
Ben Fredrickson1f633ef2014-02-16 05:35:45 +000011 // true: latch engaged, false: latch open
12 bool latch_piston;
13 // true: brake engaged false: brake released
14 bool brake_piston;
joe93778a62014-02-15 13:22:14 -080015 };
Brian Silvermand4417aa2014-01-18 12:45:12 -080016 message Goal {
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000017 // encoder ticks of shot energy.
18 double shot_power;
Brian Silverman8c30bc12014-01-18 12:49:38 -080019 // Shoots as soon as this is true.
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000020 bool shot_requested;
21 bool unload_requested;
Brian Silvermand4417aa2014-01-18 12:45:12 -080022 };
23 message Position {
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000024 // back on the plunger
25 bool plunger_back_hall_effect;
26 // truely back on the pusher
27 bool pusher_distal_hall_effect;
28 // warning that we are back on the pusher
29 bool pusher_proximal_hall_effect;
30 // the latch is closed
31 bool latch_hall_effect;
32
33 // count of positive edges
34 int64_t plunger_back_hall_effect_posedge_count;
35 // count of negative edges
36 int64_t plunger_back_hall_effect_negedge_count;
37 // count of positive edges
38 int64_t pusher_distal_hall_effect_posedge_count;
39 // count of negative edges
40 int64_t pusher_distal_hall_effect_negedge_count;
41 // count of positive edges
42 int64_t pusher_proximal_hall_effect_posedge_count;
43 // count of negative edges
44 int64_t pusher_proximal_hall_effect_negedge_count;
45 // count of positive edges
46 int64_t latch_hall_effect_posedge_count;
47 // count of negative edges
48 int64_t latch_hall_effect_negedge_count;
49
Brian Silverman8c30bc12014-01-18 12:49:38 -080050 // In meters, out is positive.
51 double position;
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000052
53 // last positive edge
54 double posedge_value;
55 // last negative edge
56 double negedge_value;
Brian Silvermand4417aa2014-01-18 12:45:12 -080057 };
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000058 // I don't think this is needed, but it is here
59 // so I won't delete it yet.
Brian Silvermand4417aa2014-01-18 12:45:12 -080060 message Status {
Brian Silverman8c30bc12014-01-18 12:49:38 -080061 // Whether it's ready to shoot right now.
Brian Silvermand4417aa2014-01-18 12:45:12 -080062 bool ready;
Brian Silverman8c30bc12014-01-18 12:49:38 -080063 // Whether the plunger is in and out of the way of grabbing a ball.
64 bool cocked;
65 // How many times we've shot.
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000066 int32_t shots;
joe93778a62014-02-15 13:22:14 -080067 bool done;
Brian Silvermand4417aa2014-01-18 12:45:12 -080068 };
69
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000070 message Output {
71 // desired motor voltage
72 double voltage;
73 // true: close latch, false: open latch
74 double latch_piston;
75 // true: brake engaded, false: brake release
76 double brake_piston;
77 };
Brian Silvermand4417aa2014-01-18 12:45:12 -080078 queue Goal goal;
79 queue Position position;
joe93778a62014-02-15 13:22:14 -080080 queue Output output;
Brian Silvermand4417aa2014-01-18 12:45:12 -080081 queue Status status;
82};
83
Ben Fredrickson1e512ff2014-02-15 21:36:52 +000084queue_group ShooterGroup shooter_queue_group;