YARP
Yet Another Robot Platform
TemperatureRosPublisher.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
3  * All rights reserved.
4  *
5  * This software may be modified and distributed under the terms of the
6  * BSD-3-Clause license. See the accompanying LICENSE file for details.
7  */
8 
10 
11 YARP_LOG_COMPONENT(GENERICSENSORROSPUBLISHER, "yarp.device.PoseStampedRosPublisher")
12 
13 bool TemperatureRosPublisher::viewInterfaces()
14 {
15  // View all the interfaces
16  bool ok = true;
17  ok &= m_poly->view(m_ITemperature);
18  m_ITemperature->getTemperatureSensorFrameName(0,m_framename);
19  return ok;
20 }
21 
23 {
24  if (m_publisher.asPort().isOpen())
25  {
26  size_t index = 0;
27  double temperature;
28  yarp::rosmsg::sensor_msgs::Temperature& temp_ros_data = m_publisher.prepare();
29  m_ITemperature->getTemperatureSensorMeasure(index, temperature, m_timestamp);
30  temp_ros_data.clear();
31  temp_ros_data.header.frame_id = m_framename;
32  temp_ros_data.header.seq = m_msg_counter++;
33  temp_ros_data.header.stamp = m_timestamp;
34  temp_ros_data.temperature = temperature;
35  temp_ros_data.variance = 0;
36  m_publisher.write();
37  }
38  }
const yarp::os::LogComponent & GENERICSENSORROSPUBLISHER()
yarp::os::Publisher< yarp::rosmsg::sensor_msgs::Temperature > m_publisher
This wrapper connects to a device and publishes a ROS topic of type sensor_msgs::Temperature.
void run() override
Loop function.
bool view(T *&x)
Get an interface to the device driver.
Definition: DeviceDriver.h:77
virtual bool getTemperatureSensorMeasure(size_t sens_index, double &out, double &timestamp) const =0
Get the last reading of the specified sensor.
yarp::conf::float64_t temperature
Definition: Temperature.h:40
yarp::rosmsg::std_msgs::Header header
Definition: Temperature.h:39
yarp::rosmsg::TickTime stamp
Definition: Header.h:48
#define YARP_LOG_COMPONENT(name,...)
Definition: LogComponent.h:80