action gobeur
Dependencies: ros_messages mbed Servo Manche_a_air Gobeur ros_lib_melodic
main.cpp@9:59a9831f067d, 2021-07-08 (annotated)
- Committer:
- kyxstark
- Date:
- Thu Jul 08 17:14:55 2021 +0000
- Revision:
- 9:59a9831f067d
- Parent:
- 6:4af07c2de6ba
- Child:
- 11:9038da3b84da
ajout du game statu pour debut du jeu;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mondiaye | 1:d6bbefff36fa | 1 | /* |
mondiaye | 1:d6bbefff36fa | 2 | * rosserial Publisher Example |
mondiaye | 1:d6bbefff36fa | 3 | * Prints "hello world!" |
mondiaye | 1:d6bbefff36fa | 4 | */ |
mondiaye | 1:d6bbefff36fa | 5 | |
mondiaye | 1:d6bbefff36fa | 6 | #include"mbed.h" |
mondiaye | 1:d6bbefff36fa | 7 | #include <ros.h> |
mondiaye | 1:d6bbefff36fa | 8 | #include <std_msgs/String.h> |
mondiaye | 1:d6bbefff36fa | 9 | #include <Gobeur.h> |
kyxstark | 6:4af07c2de6ba | 10 | #include <Manche_a_air.h> |
mondiaye | 1:d6bbefff36fa | 11 | #include <Servo.h> |
kyxstark | 9:59a9831f067d | 12 | #include <ros_messages/game_manager/GameStatus.h> |
kyxstark | 6:4af07c2de6ba | 13 | #include "actuators.h" |
kyxstark | 6:4af07c2de6ba | 14 | |
kyxstark | 6:4af07c2de6ba | 15 | Gobeur* gobeurs[2]; |
kyxstark | 6:4af07c2de6ba | 16 | Manche_a_air* maas[3]; |
kyxstark | 9:59a9831f067d | 17 | |
kyxstark | 9:59a9831f067d | 18 | int game_started_f = 0; |
kyxstark | 9:59a9831f067d | 19 | |
kyxstark | 9:59a9831f067d | 20 | |
kyxstark | 9:59a9831f067d | 21 | void gobeur_trait_msg(const gobeur_node::Gobeur_msg& gobeur_msg) |
kyxstark | 9:59a9831f067d | 22 | { |
kyxstark | 9:59a9831f067d | 23 | gobeurs[gobeur_msg.index_gobeur]->update_order(gobeur_msg.gobeur_order) ; |
kyxstark | 9:59a9831f067d | 24 | } |
kyxstark | 9:59a9831f067d | 25 | void maa_trait_msg(const manche_a_air_node::Manche_a_air_msg& maa_msg) |
kyxstark | 9:59a9831f067d | 26 | { |
kyxstark | 9:59a9831f067d | 27 | maas[maa_msg.index_manche_a_air]->update_order(maa_msg.manche_a_air_order) ; |
kyxstark | 9:59a9831f067d | 28 | } |
kyxstark | 9:59a9831f067d | 29 | void on_game_status(const game_manager_node::game_status_msg& game_status) |
kyxstark | 9:59a9831f067d | 30 | { |
kyxstark | 9:59a9831f067d | 31 | game_started_f = 1; |
kyxstark | 9:59a9831f067d | 32 | maas[2]->set_auto_open(1, 97); |
kyxstark | 9:59a9831f067d | 33 | } |
kyxstark | 9:59a9831f067d | 34 | |
kyxstark | 6:4af07c2de6ba | 35 | |
mondiaye | 1:d6bbefff36fa | 36 | |
mondiaye | 3:a284535865b7 | 37 | ros::NodeHandle nh; |
mondiaye | 3:a284535865b7 | 38 | |
mondiaye | 3:a284535865b7 | 39 | std_msgs::String str_msg; |
mondiaye | 3:a284535865b7 | 40 | ros::Publisher chatter("chatter", &str_msg); |
mondiaye | 3:a284535865b7 | 41 | |
kyxstark | 6:4af07c2de6ba | 42 | ros::Subscriber<gobeur_node::Gobeur_msg> sub_gobeur("gobeur", &gobeur_trait_msg); |
kyxstark | 6:4af07c2de6ba | 43 | ros::Subscriber<manche_a_air_node::Manche_a_air_msg> sub_maa("manche_a_air", &maa_trait_msg); |
mondiaye | 3:a284535865b7 | 44 | |
kyxstark | 9:59a9831f067d | 45 | |
kyxstark | 9:59a9831f067d | 46 | ros::Subscriber<game_manager_node::game_status_msg> sub_game_status ("ai/game_manager/status", &on_game_status) ; |
kyxstark | 9:59a9831f067d | 47 | |
mondiaye | 3:a284535865b7 | 48 | char hello[13] = "hello!"; |
mondiaye | 1:d6bbefff36fa | 49 | |
mondiaye | 3:a284535865b7 | 50 | |
kyxstark | 6:4af07c2de6ba | 51 | float clock_s() { return us_ticker_read() / 1000000.0f; } |
kyxstark | 6:4af07c2de6ba | 52 | uint64_t clock_ms() { return us_ticker_read() / 1000; } |
kyxstark | 6:4af07c2de6ba | 53 | uint64_t clock_us() { return us_ticker_read(); } |
mondiaye | 3:a284535865b7 | 54 | |
mondiaye | 1:d6bbefff36fa | 55 | |
mondiaye | 1:d6bbefff36fa | 56 | int main() { |
kyxstark | 6:4af07c2de6ba | 57 | gobeurs[0] = new Gobeur(GOBEUR_TURBINE_LEFT_PIN, GOBEUR_SERVO_LEFT_PIN, GOBEUR_TURBINE_TH_ON, GOBEUR_TURBINE_TH_OFF, GOBEUR_SERVO_POS_OPEN, GOBEUR_SERVO_POS_CLOSE ); |
kyxstark | 6:4af07c2de6ba | 58 | gobeurs[1] = new Gobeur(GOBEUR_TURBINE_RIGHT_PIN, GOBEUR_SERVO_RIGHT_PIN, GOBEUR_TURBINE_TH_ON, GOBEUR_TURBINE_TH_OFF, GOBEUR_SERVO_POS_OPEN, GOBEUR_SERVO_POS_CLOSE ); |
kyxstark | 6:4af07c2de6ba | 59 | maas[0] = new Manche_a_air(MAA_SERVO_LEFT_PIN, MAA_SERVO_POS_OPEN, MAA_SERVO_POS_CLOSE); |
kyxstark | 6:4af07c2de6ba | 60 | maas[1] = new Manche_a_air(MAA_SERVO_RIGHT_PIN, MAA_SERVO_POS_OPEN, MAA_SERVO_POS_CLOSE); |
kyxstark | 6:4af07c2de6ba | 61 | maas[2] = new Manche_a_air(FLAG_SERVO_PIN, FLAG_SERVO_POS_OPEN, FLAG_SERVO_POS_CLOSE); |
kyxstark | 6:4af07c2de6ba | 62 | |
kyxstark | 6:4af07c2de6ba | 63 | //maas[2] = new Manche_a_air(FLAG_SERVO_PIN, FLAG_SERVO_POS_OPEN, FLAG_SERVO_POS_CLOSE); |
kyxstark | 6:4af07c2de6ba | 64 | maas[2]->set_auto_open(1, 1); |
kyxstark | 6:4af07c2de6ba | 65 | maas[2]->set_auto_close(1, 5); |
kyxstark | 6:4af07c2de6ba | 66 | maas[0]->set_auto_open(1, 2); |
kyxstark | 6:4af07c2de6ba | 67 | maas[0]->set_auto_close(1, 4); |
kyxstark | 6:4af07c2de6ba | 68 | maas[1]->set_auto_open(1, 3); |
kyxstark | 6:4af07c2de6ba | 69 | maas[1]->set_auto_close(1, 3); |
kyxstark | 6:4af07c2de6ba | 70 | |
mondiaye | 1:d6bbefff36fa | 71 | nh.initNode(); |
mondiaye | 1:d6bbefff36fa | 72 | nh.advertise(chatter); |
kyxstark | 6:4af07c2de6ba | 73 | nh.subscribe(sub_gobeur); |
kyxstark | 6:4af07c2de6ba | 74 | nh.subscribe(sub_maa); |
kyxstark | 9:59a9831f067d | 75 | nh.subscribe(sub_game_status); |
mondiaye | 3:a284535865b7 | 76 | |
kyxstark | 6:4af07c2de6ba | 77 | str_msg.data = hello; |
kyxstark | 6:4af07c2de6ba | 78 | chatter.publish( &str_msg ); |
mondiaye | 3:a284535865b7 | 79 | |
mondiaye | 1:d6bbefff36fa | 80 | while (1) { |
kyxstark | 6:4af07c2de6ba | 81 | gobeurs[0]->automate(); |
kyxstark | 6:4af07c2de6ba | 82 | gobeurs[1]->automate(); |
kyxstark | 6:4af07c2de6ba | 83 | maas[0]->automate(); |
kyxstark | 6:4af07c2de6ba | 84 | maas[1]->automate(); |
kyxstark | 6:4af07c2de6ba | 85 | maas[2]->automate(); |
kyxstark | 6:4af07c2de6ba | 86 | nh.spinOnce(); |
mondiaye | 1:d6bbefff36fa | 87 | |
mondiaye | 1:d6bbefff36fa | 88 | } |
kyxstark | 6:4af07c2de6ba | 89 | } |
kyxstark | 6:4af07c2de6ba | 90 |