action gobeur

Dependencies:   ros_messages mbed Servo Manche_a_air Gobeur ros_lib_melodic

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?

UserRevisionLine numberNew 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