Groot
Groot copied to clipboard
Can't understand the logic behind NodeStatus update code
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?
Perfect timing, I am about to merge a branch that fix this
Thank you for your answer! When are you planning to introduce these changes to your repo?