Personal fork

Dependencies:   Servo mbed rosserial_mbed_lib

Fork of rosserial_mbed by nucho

examples/pubsub.cpp

Committer:
garyservin
Date:
2014-05-01
Revision:
5:e52b44294b2b
Parent:
0:06fc856e99ca

File content as of revision 5:e52b44294b2b:

//#define COMPILE_PUBSUB_CODE_ROSSERIAL
#ifdef  COMPILE_PUBSUB_CODE_ROSSERIAL

/*
 * rosserial PubSub Example
 * Prints "hello world!" and toggles led
 */
#include "mbed.h"
#include <ros.h>
#include <std_msgs/String.h>
#include <std_msgs/Empty.h>

ros::NodeHandle  nh;
DigitalOut myled(LED1);

void messageCb( const std_msgs::Empty& toggle_msg) {
    myled = !myled;   // blink the led
}

ros::Subscriber<std_msgs::Empty> sub("toggle_led", messageCb );



std_msgs::String str_msg;
ros::Publisher chatter("chatter", &str_msg);

char hello[13] = "hello world!";

int main() {
    nh.initNode();
    nh.advertise(chatter);
    nh.subscribe(sub);

    while (1) {
        str_msg.data = hello;
        chatter.publish( &str_msg );
        nh.spinOnce();
        wait_ms(500);
    }
}
#endif