PX4 simulation stack
rc_converter.cpp
Go to the documentation of this file.
1 #include "ros/ros.h"
2 //#include <mavros_msgs/RCIn.h>
3 #include <mavros_msgs/RCOut.h>
4 #include <mavros_msgs/OverrideRCIn.h>
5 
6 #include <boost/array.hpp>
7 
8 ros::Publisher rc_override_pub;
9 ros::Subscriber rc_out_sub;
10 
11 
12 
13 using namespace std;
14 void rc_out_Callback(const mavros_msgs::RCOut::ConstPtr& msg){
15 //uint16_t rc_in[8];
16 // rc_in.push_back(msg-> channels[0]);
17 // rc_in.push_back(msg-> channels[1]);
18 // rc_in.push_back(msg-> channels[2]);
19 // rc_in.push_back(msg-> channels[3]);
20 // rc_in.push_back(msg-> channels[4]);
21 // rc_in.push_back(msg-> channels[5]);
22 // rc_in.push_back(msg-> channels[6]);
23 // rc_in.push_back(msg-> channels[7]);
24 // rc_in[0] = msg -> channels[0];
25 // rc_in[1] = msg -> channels[1];
26 // rc_in[2] = msg -> channels[2];
27 // rc_in[3] = msg -> channels[3];
28 // rc_in[4] = msg -> channels[4];
29 // rc_in[5] = msg -> channels[5];
30 // rc_in[6] = msg -> channels[6];
31 // rc_in[7] = msg -> channels[7];
32  boost::array<uint16_t, 8> rc_in = {msg->channels[0],
33  msg->channels[1],
34  msg->channels[2],
35  msg->channels[3],
36  msg->channels[4],
37  msg->channels[5],
38  msg->channels[6],
39  msg->channels[7]};
40 //uint16_t c;
41 //c = 1;
42  mavros_msgs::OverrideRCIn rc;
43 // rc.CHAN_RELEASE = c;
44  rc.channels = rc_in;
45  rc_override_pub.publish(rc);
46 }
47 
48 
49 void Setting(ros::NodeHandle& n)
50 {
51 
52  rc_out_sub = n.subscribe("/mavros/rc/out",10, rc_out_Callback);
53  rc_override_pub = n.advertise<mavros_msgs::OverrideRCIn>("/mavros/rc/override",10);
54 }
55 
56 int main(int argc, char **argv)
57 {
58  ros::init(argc, argv, "rc_converter");
59 
60  ros::NodeHandle n;
61 
62  Setting(n);
63 
64 
65 
66 
67 // cout << "---------------" << endl;
68 
69 // cout << "\n" << endl;
70 
71 // cout << "\n" << endl;
72 // cout << "------------------" << endl;
73 
74 
75 
76  ros::spin();
77 
78  return 0;
79 
80 }
void Setting(ros::NodeHandle &n)
ros::Subscriber rc_out_sub
Definition: rc_converter.cpp:9
ros::Publisher rc_override_pub
Definition: rc_converter.cpp:8
void rc_out_Callback(const mavros_msgs::RCOut::ConstPtr &msg)
int main(int argc, char **argv)