For coursework of group 3 in SOFT564Z

Dependencies:   Motordriver ros_lib_kinetic

ROS_Handler.cpp

Committer:
Jonathan738
Date:
2019-11-27
Revision:
0:3dfee562823a
Child:
1:6a10e58b3d43

File content as of revision 0:3dfee562823a:

#include "General.hpp"

DigitalOut myLED(LED1);

/******************************************************************************/
/*  ROS serial hardware setup                                                 */
/******************************************************************************/
// Create the ROS node handle
class HaseHardware : public MbedHardware
{
public:
    HaseHardware(): MbedHardware(ROS_Tx, ROS_Rx, ROS_BaudRate) {};
};
/******************************************************************************/

ros::NodeHandle_<HaseHardware>   Node_;
void CallBack(const std_msgs::Int32MultiArray& msg);
ros::Subscriber<std_msgs::Int32MultiArray> Sub_("/cmd_vel", &CallBack);
std_msgs::Int32 PUB_MSG;
ros::Publisher Pub_("/TOF_Data", &PUB_MSG);

// Main function for thread to handle ROS comms
void ROS_Handler(void){
    myLED = 1;
    Node_.initNode();
    Node_.advertise(Pub_);
    Node_.subscribe(Sub_);
    
    PUB_MSG.data = 10;

    while (1) {
        Pub_.publish(&PUB_MSG);
        Node_.spinOnce();
        wait_ms(20);
    }
}

void CallBack(const std_msgs::Int32MultiArray& msg)
{
    myLED != myLED;
}