Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 314

rosserial_windows packet loss while sending data to service server on ROS

$
0
0
Hi, I have a question about rosserial windows. I made a Windows application which has two buttons as below. 1. Open connection 2. Send data to Service Server - which is Service client In constructor of the dialog, I assigned ServiceClient pointer to node handle.
When I click Button #1, it should init node handle by calling initNode function and call spinOnce function.
When I click Button #2, it should call Call function to send data to ServiceServer and receive response.
My test was as shown below. 1. Compile 2. Click Button #1 3. Click Button #2 4. Wait for a while (longer than 30 sec) 5. Click Button #2 I put simplified version of my code.
// ROSHandler class
class ROSHandler {
    protected:
        ros::NodeHandle node_handle_;
    private:
       ros::ServiceClient* client_;
    public:
        ROSHandler() {
            client_ = new ros::ServiceClient("TOPIC_NAME");
            node_handle_.serviceClient(*client_);
        }
        ~ROSHandler();
        bool Connect() {
            node_handle_.initNode(MASTER_IP);
            while (!node_handle_.connected())
            {
                node_handle_.spinOnce();
            }
            return (node_handle_.spinOnce() == 0);
        }
        bool Send() {
            Request req;
            Response res;
            // set values in req

            if (!node_handle_.connected()) {
                Connect();
            }

            client_->call(request, response);
            node_handle_.spinOnce();
            return response_.result; // return boolean
        }
};
void OnClickButton1 {
    Connect(); // connect function above
}

void OnClickButton2 {
    Send(); // send function above
}
Thanks! :D

Viewing all articles
Browse latest Browse all 314

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>