Communication script for senior design

Dependencies:   ros_lib_indigo mbed

main.cpp

Committer:
roger_wee
Date:
2019-04-23
Revision:
0:583c5af1418c

File content as of revision 0:583c5af1418c:

#include "mbed.h"
#include <ros.h>
#include <std_msgs/Int16.h>

//--------- GLOBAL VARIABLES LOCAL TO STM32 MAIN -----------
DigitalOut my_led(LED1);

int data_recieved     = 0;

//--------  END GLOBAL VARIABLES DECLARATION ---------------


//--------- ROS NODE CONFIGURATION -------------------------
ros::NodeHandle nh;

// Ros message data containers
std_msgs::Int16 recieve_msg;
std_msgs::Int16 transmit_msg;

// Set up Publishers
ros::Publisher acknowledge_publisher("acknowledge", &transmit_msg);
            
// Set up Subscribers
void reciever_callback( const std_msgs::Int16& msg)
{
    // Assign msg.data to local variables
    data_recieved = msg.data;
}

ros::Subscriber<std_msgs::Int16> reciever_subscriber("test", reciever_callback);


//---------- END CONFIGURATION  ----------------------------

int main() {
    
    // Initialize Node and publisher/subscriber
    nh.initNode();
    nh.advertise(acknowledge_publisher);
    nh.subscribe(reciever_subscriber);
    
    while(1) {
        
        // Use local variables for computations here
        
        
        // Publish any data necessary to be fed back to pc
        transmit_msg.data = data_recieved;
        acknowledge_publisher.publish(&transmit_msg);
        
        // Spin ROS Node -- get data from callbacks
        nh.spinOnce();
        wait_ms(5);
    }
}