YARP
Yet Another Robot Platform
MagneticFieldRosPublisher.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.MagneticFieldRosPublisher")
12 
13 bool MagneticFieldRosPublisher::viewInterfaces()
14 {
15  // View all the interfaces
16  bool ok = true;
17  ok &= m_poly->view(m_iThreeAxisMagnetometers);
18  m_iThreeAxisMagnetometers->getThreeAxisMagnetometerFrameName(0, m_framename);
19  return ok;
20 }
21 
23 {
24  if (m_publisher.asPort().isOpen())
25  {
26  yarp::sig::Vector vecmagn(3);
29  magfield_ros_data.clear();
30  magfield_ros_data.header.frame_id = m_framename;;
31  magfield_ros_data.header.seq = m_msg_counter++;
32  magfield_ros_data.header.stamp = m_timestamp;
33  magfield_ros_data.magnetic_field.x = vecmagn[0];
34  magfield_ros_data.magnetic_field.y = vecmagn[1];
35  magfield_ros_data.magnetic_field.z = vecmagn[2];
36  //magfield_ros_data.magnetic_field_covariance = 0;
38  }
39  }
yarp::rosmsg::geometry_msgs::Vector3::z
yarp::conf::float64_t z
Definition: Vector3.h:42
GenericSensorRosPublisher< yarp::rosmsg::sensor_msgs::MagneticField >::m_framename
std::string m_framename
Definition: GenericSensorRosPublisher.h:60
GenericSensorRosPublisher< yarp::rosmsg::sensor_msgs::MagneticField >::m_publisher
yarp::os::Publisher< yarp::rosmsg::sensor_msgs::MagneticField > m_publisher
Definition: GenericSensorRosPublisher.h:56
yarp::rosmsg::sensor_msgs::MagneticField::magnetic_field
yarp::rosmsg::geometry_msgs::Vector3 magnetic_field
Definition: MagneticField.h:55
YARP_LOG_COMPONENT
#define YARP_LOG_COMPONENT(name,...)
Definition: LogComponent.h:80
yarp::rosmsg::geometry_msgs::Vector3::y
yarp::conf::float64_t y
Definition: Vector3.h:41
yarp::rosmsg::std_msgs::Header::frame_id
std::string frame_id
Definition: Header.h:49
yarp::rosmsg::sensor_msgs::MagneticField::header
yarp::rosmsg::std_msgs::Header header
Definition: MagneticField.h:54
yarp::rosmsg::geometry_msgs::Vector3::x
yarp::conf::float64_t x
Definition: Vector3.h:40
yarp::dev::DeviceDriver::view
bool view(T *&x)
Get an interface to the device driver.
Definition: DeviceDriver.h:77
GENERICSENSORROSPUBLISHER
const yarp::os::LogComponent & GENERICSENSORROSPUBLISHER()
Definition: MagneticFieldRosPublisher.cpp:11
yarp::rosmsg::sensor_msgs::MagneticField
Definition: MagneticField.h:52
yarp::sig::VectorOf< double >
yarp::rosmsg::std_msgs::Header::seq
std::uint32_t seq
Definition: Header.h:47
GenericSensorRosPublisher< yarp::rosmsg::sensor_msgs::MagneticField >::m_sens_index
const size_t m_sens_index
Definition: GenericSensorRosPublisher.h:61
yarp::os::Publisher::write
void write(bool forceStrict=false)
Write the current object being returned by Publisher::prepare.
Definition: Publisher.h:152
MagneticFieldRosPublisher::run
void run() override
Loop function.
Definition: MagneticFieldRosPublisher.cpp:22
MagneticFieldRosPublisher::m_iThreeAxisMagnetometers
yarp::dev::IThreeAxisMagnetometers * m_iThreeAxisMagnetometers
Definition: MagneticFieldRosPublisher.h:36
GenericSensorRosPublisher< yarp::rosmsg::sensor_msgs::MagneticField >::m_timestamp
double m_timestamp
Definition: GenericSensorRosPublisher.h:59
yarp::os::Publisher::asPort
Port & asPort() override
Get the concrete Port being used for communication.
Definition: Publisher.h:172
yarp::dev::IThreeAxisMagnetometers::getThreeAxisMagnetometerMeasure
virtual bool getThreeAxisMagnetometerMeasure(size_t sens_index, yarp::sig::Vector &out, double &timestamp) const =0
Get the last reading of the specified sensor.
MagneticFieldRosPublisher
MagneticFieldRosPublisher: This wrapper connects to a device and publishes a ROS topic of type sensor...
Definition: MagneticFieldRosPublisher.h:33
yarp::rosmsg::sensor_msgs::MagneticField::clear
void clear()
Definition: MagneticField.h:66
yarp::rosmsg::std_msgs::Header::stamp
yarp::rosmsg::TickTime stamp
Definition: Header.h:48
MagneticFieldRosPublisher.h
GenericSensorRosPublisher< yarp::rosmsg::sensor_msgs::MagneticField >::m_msg_counter
size_t m_msg_counter
Definition: GenericSensorRosPublisher.h:58
yarp::os::Publisher::prepare
T & prepare()
Access the object which will be transmitted by the next call to yarp::os::Publisher::write.
Definition: Publisher.h:127
yarp::os::Port::isOpen
bool isOpen() const
Check if the port has been opened.
Definition: Port.cpp:671