Groot icon indicating copy to clipboard operation
Groot copied to clipboard

Can't understand the logic behind NodeStatus update code

Open elias-gvin opened this issue 3 years ago • 2 comments

Hello!

I am trying to adapt one BT library (not BehahaviorTree.cpp) to be compatible with Groot. To make this, I need to understand how to encode BT and Node statuses changes in the format Groot can read.

With BT format, everything is more or less strait-forward:

  • BT.CPP packs behaviour tree in a byte array using generated flatbuffers code from the schema in fbs file and sends it to Groot via ZMQ.

But with Node Status changes, everything became more tricky:

  • From what I've seen, BT.CPP and Groot don't use StatusChangeLog table in from flatbuffer's types. And instead of this Groot uses some complex logic and byte arithmetic to decode needed info. https://github.com/BehaviorTree/Groot/blob/fae38066a61068c966eefd4c825738bb650413cc/bt_editor/sidepanel_monitor.cpp#L51

My question: Are there any solid reasons for not using flatbuffer and do some custom logic with manually encoding/decoding node status changes?

elias-gvin avatar Aug 18 '22 12:08 elias-gvin

Perfect timing, I am about to merge a branch that fix this

facontidavide avatar Aug 18 '22 13:08 facontidavide

Thank you for your answer! When are you planning to introduce these changes to your repo?

elias-gvin avatar Aug 19 '22 15:08 elias-gvin