|
|
|
@ -7,9 +7,9 @@ int command;
|
|
|
|
|
|
|
|
|
|
|
|
RequestClass::RequestClass() : node_handle_(""){
|
|
|
|
RequestClass::RequestClass() : node_handle_(""){
|
|
|
|
|
|
|
|
|
|
|
|
mqtt_data = node_handle_.subscribe("/uav_message", 100,
|
|
|
|
mqtt_data = node_handle_.subscribe("/Flight_Information_reciver", 100,
|
|
|
|
&RequestClass::Data_callback, this);
|
|
|
|
&RequestClass::Data_callback, this);
|
|
|
|
formation_data = node_handle_.subscribe("/formation_message", 10,
|
|
|
|
formation_data = node_handle_.subscribe("/Fly_Formation_reciver", 10,
|
|
|
|
&RequestClass::Message_callback, this);
|
|
|
|
&RequestClass::Message_callback, this);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -17,13 +17,13 @@ RequestClass::RequestClass() : node_handle_(""){
|
|
|
|
RequestClass::~RequestClass() { ros::shutdown(); }
|
|
|
|
RequestClass::~RequestClass() { ros::shutdown(); }
|
|
|
|
|
|
|
|
|
|
|
|
void RequestClass::Data_callback(const std_msgs::String::ConstPtr &sensor) {
|
|
|
|
void RequestClass::Data_callback(const std_msgs::String::ConstPtr &sensor) {
|
|
|
|
StringToJson(sensor->data);
|
|
|
|
L_INFO(sensor->data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void RequestClass::Message_callback(const std_msgs::String::ConstPtr &message) {
|
|
|
|
void RequestClass::Message_callback(const std_msgs::String::ConstPtr &message) {
|
|
|
|
|
|
|
|
|
|
|
|
std::string data = message->data;
|
|
|
|
std::string data = message->data;
|
|
|
|
jsonToString(data);
|
|
|
|
// jsonToString(data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -45,37 +45,11 @@ int RequestClass::get_formation_message(){
|
|
|
|
|
|
|
|
|
|
|
|
void RequestClass::jsonToString(std::string data){
|
|
|
|
void RequestClass::jsonToString(std::string data){
|
|
|
|
|
|
|
|
|
|
|
|
std::string list[1]={""};
|
|
|
|
|
|
|
|
int j = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i=0;i<data.length();i++){
|
|
|
|
|
|
|
|
if(data[i] == ':'){
|
|
|
|
|
|
|
|
i+=3;
|
|
|
|
|
|
|
|
while(data[i] != ','){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(data[i] == ',' || data[i] == '}'){
|
|
|
|
|
|
|
|
j++;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list[j]=list[j]+data[i];
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(j>sizeof(list)){
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
command = std::stoi(list[1]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ROS_INFO("command: %s",command);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void RequestClass::StringToJson(std::string data){
|
|
|
|
void RequestClass::L_INFO(std::string data){
|
|
|
|
|
|
|
|
|
|
|
|
std::cout <<"string: "<< data << std::endl;
|
|
|
|
// std::cout <<"string: "<< data << std::endl;
|
|
|
|
|
|
|
|
|
|
|
|
// document.Parse(data.c_str()); //china's library
|
|
|
|
// document.Parse(data.c_str()); //china's library
|
|
|
|
// leader_position.lat=document["lat"].GetInt();
|
|
|
|
// leader_position.lat=document["lat"].GetInt();
|
|
|
|
@ -102,7 +76,7 @@ void RequestClass::StringToJson(std::string data){
|
|
|
|
leader_position.alt=j_data["alt"];
|
|
|
|
leader_position.alt=j_data["alt"];
|
|
|
|
heading = j_data["heading"];
|
|
|
|
heading = j_data["heading"];
|
|
|
|
|
|
|
|
|
|
|
|
std::cout <<"Json: " <<j_data << std::endl;
|
|
|
|
// std::cout <<"Json: " <<j_data << std::endl;
|
|
|
|
// std::cout << leader_position.lat << std::endl;
|
|
|
|
// std::cout << leader_position.lat << std::endl;
|
|
|
|
// std::cout << leader_position.lon << std::endl;
|
|
|
|
// std::cout << leader_position.lon << std::endl;
|
|
|
|
// std::cout << leader_position.alt << std::endl;
|
|
|
|
// std::cout << leader_position.alt << std::endl;
|
|
|
|
|