ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Nivin's profile - activity

2019-12-18 07:21:54 -0500 received badge  Taxonomist
2017-02-16 11:15:02 -0500 received badge  Notable Question (source)
2017-02-16 11:15:02 -0500 received badge  Famous Question (source)
2016-03-24 05:47:58 -0500 received badge  Popular Question (source)
2016-02-18 09:02:58 -0500 asked a question I am a beginner to ROS. I am trying to write a code for PCAN using SocketCAN_interface headers. But i couldnt find the files. Plzz help me to loacte SocketCAN_interface library

.

#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>
#include "socketcan_interface/socketcan.h"
#include "socketcan_interface/threading.h"
#include "socketcan_interface/string.h"

void handleFrames(const can::Frame &f){
    // handle all frames
    LOG(can::tostring(f, true)); // lowercase: true
}
void handleFrame123(const can::Frame &f){
    // handle specific frame
    LOG("123? " << can::tostring(f, true)); // lowercase: true
}

int main(int argc, char **argv)
{
    can::ThreadedSocketCANInterface driver;
    if(!driver.init("can0", false)) return 1; // read own messages: false

    can::CommInterface::FrameListener::Ptr all_frames = driver.createMsgListener(handleFrames);
    can::CommInterface::FrameListener::Ptr one_frame = driver.createMsgListener(can::MsgHeader(0xFF32), handleFrame123); // handle only frames with CAN-ID 0x123

    ros::init(argc, argv, "data_raw");
    ros::NodeHandle n;
    ros::Publisher canbus_pub = n.advertise<std_msgs::String>("canbus", 1000);

    while (ros::ok())
    {
      std_msgs::String msg;
      std::stringstream ss;

      ss << all_frames;
      msg.data = ss.str();
      canbus_pub.publish(msg);

      //ROS_INFO("%s", msg.data.c_str());

      //ROS_INFO("%s", std::cout<<"all_frames is of type: "<<typeid(all_frames).name()<<std::endl);

      ros::spinOnce();
    }

  driver.shutdown();
  return 0;
}

This is the code i reffered