From a3121bdb13d3235f80494d4451ae39d048c21664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gram=C3=9F?= <6034322+gramss@users.noreply.github.com> Date: Mon, 28 Sep 2020 14:34:35 +0200 Subject: [PATCH] Small Fix for Reloading Tree from #61 (#96) * Add missing err:out_of_range code-sections + intent fixes * Revert "Add missing err:out_of_range code-sections + intent fixes" This reverts commit fa8a75b61f8dcdc76f0f763c5cc53ca06fc89a11. * indentation fixes * indentation fixes - again * get node status out of try/catch for compiler * main thing: move rest of uid-based logic in try/catch for reload --- bt_editor/sidepanel_monitor.cpp | 96 ++++++++++++++++----------------- 1 file changed, 48 insertions(+), 48 deletions(-) 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 ); }