Select Git revision
nng_sender.cpp

Johannes Mey authored
nng_sender.cpp 956 B
//
// Created by Johannes Mey on 26.05.20.
//
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <nng/nng.h>
#include <nng/protocol/pubsub0/pub.h>
std::string url = "tcp://localhost:6576";
nng_socket sock;
int rv;
void nngCallback(const std_msgs::String::ConstPtr &msg) {
ROS_INFO("sending via NNG: [%s]", msg->data.c_str());
if ((rv = nng_send(sock, (void *) msg->data.c_str(), msg->data.length(), 0)) != 0) {
ROS_ERROR_STREAM("nng_send returned: " << nng_strerror(rv));
}
}
int main(int argc, char **argv) {
ros::init(argc, argv, "nng_sender");
ros::NodeHandle n("nnc_test");
if ((rv = nng_pub0_open(&sock)) != 0) {
ROS_ERROR_STREAM("nng_pub0_open returned: " << nng_strerror(rv));
}
if ((rv = nng_listen(sock, url.c_str(), nullptr, 0)) < 0) {
ROS_ERROR_STREAM("nng_listen returned: " << nng_strerror(rv));
}
ros::Subscriber sub = n.subscribe("send_nng", 1000, nngCallback);
ros::spin();
return 0;
}