MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / on_timer

Method on_timer

bt_editor/sidepanel_monitor.cpp:36–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34}
35
36void SidepanelMonitor::on_timer()
37{
38 if( !_connected ) return;
39
40 zmq::message_t msg;
41 try{
42 while( _zmq_subscriber.recv(&msg) )
43 {
44 _msg_count++;
45 ui->labelCount->setText( QString("Messages received: %1").arg(_msg_count) );
46
47 const char* buffer = reinterpret_cast<const char*>(msg.data());
48
49 const uint32_t header_size = flatbuffers::ReadScalar<uint32_t>( buffer );
50 const uint32_t num_transitions = flatbuffers::ReadScalar<uint32_t>( &buffer[4+header_size] );
51
52 for(size_t offset = 4; offset < header_size +4; offset +=3 )
53 {
54 uint16_t index = flatbuffers::ReadScalar<uint16_t>(&buffer[offset]);
55 AbstractTreeNode* node = _loaded_tree.node( index );
56 node->status = convert(flatbuffers::ReadScalar<Serialization::NodeStatus>(&buffer[offset+2] ));
57 }
58
59 std::vector<std::pair<int, NodeStatus>> node_status;
60
61 //qDebug() << "--------";
62 for(size_t t=0; t < num_transitions; t++)
63 {
64 size_t offset = 8 + header_size + 12*t;
65
66 // const double t_sec = flatbuffers::ReadScalar<uint32_t>( &buffer[offset] );
67 // const double t_usec = flatbuffers::ReadScalar<uint32_t>( &buffer[offset+4] );
68 // double timestamp = t_sec + t_usec* 0.000001;
69 const uint16_t uid = flatbuffers::ReadScalar<uint16_t>(&buffer[offset+8]);
70 const uint16_t index = _uid_to_index.at(uid);
71 // NodeStatus prev_status = convert(flatbuffers::ReadScalar<Serialization::NodeStatus>(&buffer[index+10] ));
72 NodeStatus status = convert(flatbuffers::ReadScalar<Serialization::NodeStatus>(&buffer[offset+11] ));
73
74 _loaded_tree.node(index)->status = status;
75 node_status.push_back( {index, status} );
76
77 }
78 // update the graphic part
79 emit changeNodeStyle( "BehaviorTree", node_status );
80 }
81 }
82 catch( zmq::error_t& err)
83 {
84 qDebug() << "ZMQ receive failed: " << err.what();
85 }
86}
87
88bool SidepanelMonitor::getTreeFromServer()
89{

Callers

nothing calls this directly

Calls 2

convertFunction · 0.85
nodeMethod · 0.80

Tested by

no test coverage detected