start_transmission.cpp
Go to the documentation of this file.
2 #include <muse_v2_driver/Transmission.h>
3 
4 const int DEFAULT_QUEUE_SIZE = 10;
5 const int DEFAULT_FREQUENCY = 50;
6 
7 int main(int argc, char* argv[])
8 {
9  ros::init(argc, argv, "start_transmission");
10 
12 
13  int publisher_queue_size = DEFAULT_QUEUE_SIZE;
14  int rate = DEFAULT_FREQUENCY;
15  int frequency = DEFAULT_FREQUENCY;
16 
17  if (!n.getParam("publisher_queue_size", publisher_queue_size))
18  ROS_WARN("No publisher_queue_size parameter found on server. Use default one.");
19 
20  if (!n.getParam("rate", rate))
21  ROS_WARN("No rate parameter found on server. Use default one.");
22 
23  if (!n.getParam("frequency", frequency))
24  ROS_WARN("No frequency parameter found on server. Use default one.");
25 
27  stream.setupInputCommands(n);
28 
29  if (!stream.isFrequencyAdmissible(frequency)) {
30  ROS_ERROR("The admitted acquisition frequency in STREAM mode range between 1 and 150Hz. Transmission stopped.");
31  ros::shutdown();
32  return -1;
33  }
34 
35  if (stream.input_command == stream.default_command_list) {
36  ROS_ERROR("No transmission request found. Transmission stopped.");
37  ros::shutdown();
38  return -1;
39  }
40 
41  ros::Publisher command_pub = n.advertise<muse_v2_driver::Transmission>("start_transmission", publisher_queue_size);
42 
43  muse_v2_driver::Transmission transmission_msg;
44  transmission_msg.frequency = frequency;
45 
46  ros::Rate loop_rate(rate);
47 
48  while (ros::ok())
49  {
50  if (stream.input_command.get_imu) {
51  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_IMU));
52  }
53 
54  if (stream.input_command.get_quaternion) {
55  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_QUATERNION));
56  }
57 
59  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_ANGULAR_VELOCITY));
60  }
61 
62  if (stream.input_command.get_acceleration) {
63  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_ACCELERATION));
64  }
65 
66  if (stream.input_command.get_mag) {
67  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_MAG));
68  }
69 
70  if (stream.input_command.get_rpy) {
71  transmission_msg.transmission.data.push_back(static_cast<int>(muse_v2_driver::Stream::CommandType::GET_RPY));
72  }
73 
74  command_pub.publish(transmission_msg);
75 
76  ros::spinOnce();
77 
78  loop_rate.sleep();
79  }
80 
81  return 0;
82 }
ros::Publisher
main
int main(int argc, char *argv[])
Definition: start_transmission.cpp:7
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
ros::NodeHandle::getParam
bool getParam(const std::string &key, bool &b) const
ros::spinOnce
ROSCPP_DECL void spinOnce()
ros::shutdown
ROSCPP_DECL void shutdown()
ros::Publisher::publish
void publish(const boost::shared_ptr< M > &message) const
ros::NodeHandle::advertise
Publisher advertise(AdvertiseOptions &ops)
ros::ok
ROSCPP_DECL bool ok()
muse_v2_driver::Stream::CommandList::get_mag
bool get_mag
Definition: Stream.h:28
muse_v2_driver::Stream::CommandList::get_acceleration
bool get_acceleration
Definition: Stream.h:27
muse_v2_driver::Stream::default_command_list
struct muse_v2_driver::Stream::CommandList default_command_list
muse_v2_driver::Stream::setupInputCommands
void setupInputCommands(ros::NodeHandle &node)
Definition: Stream.cpp:14
ROS_WARN
#define ROS_WARN(...)
muse_v2_driver::Stream::input_command
CommandList input_command
Definition: Stream.h:54
muse_v2_driver::Stream
Definition: Stream.h:18
muse_v2_driver::Stream::CommandList::get_quaternion
bool get_quaternion
Definition: Stream.h:25
ros::Rate::sleep
bool sleep()
muse_v2_driver::Stream::CommandList::get_imu
bool get_imu
Definition: Stream.h:24
DEFAULT_QUEUE_SIZE
const int DEFAULT_QUEUE_SIZE
Definition: start_transmission.cpp:4
muse_v2_driver::Stream::CommandList::get_angular_velocity
bool get_angular_velocity
Definition: Stream.h:26
DEFAULT_FREQUENCY
const int DEFAULT_FREQUENCY
Definition: start_transmission.cpp:5
muse_v2_driver::Stream::CommandList::get_rpy
bool get_rpy
Definition: Stream.h:29
ROS_ERROR
#define ROS_ERROR(...)
ros::Rate
Stream.h
muse_v2_driver::Stream::isFrequencyAdmissible
bool isFrequencyAdmissible(int frequency)
Definition: Stream.cpp:24
ros::NodeHandle


muse_v2_driver
Author(s): Elisa Tosello , Roberto Bortoletto
autogenerated on Thu Jan 20 2022 03:24:53