last multi frame not sent bug correction

This commit is contained in:
vivek-shankar 2017-01-26 22:26:15 -05:00
parent 469dab1ed3
commit 33d3e0d17e
1 changed files with 6 additions and 2 deletions

View File

@ -385,12 +385,12 @@ inline void CommunicationManager::Check_In_Messages_and_Transfer_To_Topics()
} }
else{ else{
std::cout << "Multi packet message" << std::endl; std::cout << "Multi packet message" << std::endl;
if (multi_msgs.empty()){ if (multi_msgs.empty() && header[0] == 0){
std::cout << "first message" << std::endl; std::cout << "first message" << std::endl;
multi_msgs.insert(make_pair(header[2], in_message)); multi_msgs.insert(make_pair(header[2], in_message));
cur_checksum=header[1]; cur_checksum=header[1];
} }
else if (header[1]==cur_checksum) { else if (header[1]==cur_checksum && header[0] == 0) {
std::map< int, std::shared_ptr<std::string> >::iterator it = multi_msgs.find(header[2]); std::map< int, std::shared_ptr<std::string> >::iterator it = multi_msgs.find(header[2]);
if(it!=multi_msgs.end()) if(it!=multi_msgs.end())
multi_msgs.erase(it); multi_msgs.erase(it);
@ -554,6 +554,10 @@ inline void CommunicationManager::Send_Mavlink_Message_Callback(
Generate_Transmit_Request_Frame(temporary_buffer, &frame); Generate_Transmit_Request_Frame(temporary_buffer, &frame);
serial_device_.Send_Frame(frame); serial_device_.Send_Frame(frame);
} }
if(number==total){
Generate_Transmit_Request_Frame(temporary_buffer, &frame);
serial_device_.Send_Frame(frame);
}
//} //}
} }