Skip to content

Impossible to write to global blackboard using output ports #823

Closed
@robin-mueller

Description

@robin-mueller

In my application I am trying to write to a global blackboard entry using setOutput of a tree node, but an entry in the local blackboard is created instead.

Let an example be:

<BehaviorTree ID="MainTree">
    <Sequence>
        <Script code="@global_var:=0"/>
        <SubTree ID="BugExample" />
    </Sequence>
</BehaviorTree>

<BehaviorTree ID="BugExample">
    <Sequence>
        <SetState in="1"/>
        <GetState out="{@global_var}"/>
    </Sequence>
</BehaviorTree>

The nodes SetState and GetState set respectively get the value of an internal state variable using the corresponding ports. With the latest version to date, global_var is created in the blackboard of MainTree with value 0 and @global_var in the blackboard of BugExample with value 1. The expected behavior would be that GetState updates the entry global_var in MainTree as I understand it.

I'd suggest to implement an example like this in the associated test to verify this issue, since I don't see that it is covered yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions