diff --git a/bt_editor/sidepanel_monitor.cpp b/bt_editor/sidepanel_monitor.cpp index 28372a77..de3514be 100644 --- a/bt_editor/sidepanel_monitor.cpp +++ b/bt_editor/sidepanel_monitor.cpp @@ -48,60 +48,60 @@ void SidepanelMonitor::on_timer() const uint32_t header_size = flatbuffers::ReadScalar( buffer ); const uint32_t num_transitions = flatbuffers::ReadScalar( &buffer[4+header_size] ); - - // check uid in the index, if failed load tree from server - try { - for(size_t offset = 4; offset < header_size +4; offset +=3 ) - { - const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset]); - _uid_to_index.at(uid); - } - - for(size_t t=0; t < num_transitions; t++) - { - size_t offset = 8 + header_size + 12*t; - const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset+8]); - _uid_to_index.at(uid); - } - } - catch( std::out_of_range& err) { - qDebug() << "Reload tree from server"; - if( !getTreeFromServer() ) { - _connected = false; - ui->lineEdit->setDisabled(false); - _timer->stop(); - connectionUpdate(false); - return; - } - } - - for(size_t offset = 4; offset < header_size +4; offset +=3 ) - { - const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset]); - const uint16_t index = _uid_to_index.at(uid); - AbstractTreeNode* node = _loaded_tree.node( index ); - node->status = convert(flatbuffers::ReadScalar(&buffer[offset+2] )); - } - + std::vector> node_status; + // check uid in the index, if failed load tree from server + try{ + for(size_t offset = 4; offset < header_size +4; offset +=3 ) + { + const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset]); + _uid_to_index.at(uid); + } + + for(size_t t=0; t < num_transitions; t++) + { + size_t offset = 8 + header_size + 12*t; + const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset+8]); + _uid_to_index.at(uid); + } - //qDebug() << "--------"; - for(size_t t=0; t < num_transitions; t++) - { - size_t offset = 8 + header_size + 12*t; + for(size_t offset = 4; offset < header_size +4; offset +=3 ) + { + const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset]); + const uint16_t index = _uid_to_index.at(uid); + AbstractTreeNode* node = _loaded_tree.node( index ); + node->status = convert(flatbuffers::ReadScalar(&buffer[offset+2] )); + } - // const double t_sec = flatbuffers::ReadScalar( &buffer[offset] ); - // const double t_usec = flatbuffers::ReadScalar( &buffer[offset+4] ); - // double timestamp = t_sec + t_usec* 0.000001; - const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset+8]); - const uint16_t index = _uid_to_index.at(uid); - // NodeStatus prev_status = convert(flatbuffers::ReadScalar(&buffer[index+10] )); - NodeStatus status = convert(flatbuffers::ReadScalar(&buffer[offset+11] )); + //qDebug() << "--------"; + for(size_t t=0; t < num_transitions; t++) + { + size_t offset = 8 + header_size + 12*t; - _loaded_tree.node(index)->status = status; - node_status.push_back( {index, status} ); + // const double t_sec = flatbuffers::ReadScalar( &buffer[offset] ); + // const double t_usec = flatbuffers::ReadScalar( &buffer[offset+4] ); + // double timestamp = t_sec + t_usec* 0.000001; + const uint16_t uid = flatbuffers::ReadScalar(&buffer[offset+8]); + const uint16_t index = _uid_to_index.at(uid); + // NodeStatus prev_status = convert(flatbuffers::ReadScalar(&buffer[index+10] )); + NodeStatus status = convert(flatbuffers::ReadScalar(&buffer[offset+11] )); + _loaded_tree.node(index)->status = status; + node_status.push_back( {index, status} ); + + } } + catch( std::out_of_range& err) { + qDebug() << "Reload tree from server"; + if( !getTreeFromServer() ) { + _connected = false; + ui->lineEdit->setDisabled(false); + _timer->stop(); + connectionUpdate(false); + return; + } + } + // update the graphic part emit changeNodeStyle( "BehaviorTree", node_status ); }