Current section

Files

Jump to
erlang_behaviour_trees src samples tasks get_rack_location_task.erl
Raw

src/samples/tasks/get_rack_location_task.erl

-module(get_rack_location_task).
-behaviour(bt_task).
-export([
get_params/0,
run/3
]).
get_params() ->
["rack_id", "rack_location"].
run(#{"rack_id" := RackId_key, "rack_location" := RackLocation_key}, BB, _) ->
RackId = blackboard:eval(RackId_key, BB),
case gproc:lookup_local_name({dummy_rack_location_service, RackId}) of
undefined ->
io:format("Failure: couldn't find rack location for ~p because rack locator service not found.~n", [RackId]),
{failure, BB};
RackLocationServicePid ->
Location = dummy_rack_location_service:get_rack_location(RackLocationServicePid),
io:format("Setting location for rack ~p to ~p~n", [RackId, Location]),
NewBB = blackboard:write(RackLocation_key, Location, BB),
{success, NewBB}
end.