-module(goto_barcode_task). -behavior(bt_task). -export([ get_params/0, run/3 ]). get_params() -> ["bid", "location"]. run(#{"bid" := BId_key, "location" := Location_key}, BB, _Event) -> BId = blackboard:eval(BId_key, BB), Location = blackboard:eval(Location_key, BB), case gproc:lookup_local_name({dummy_navigator, BId}) of undefined -> io:format("Could not find navigator, failing...~n"), {failure, BB}; Pid -> %% check if already there BLoc = dummy_navigator:get_location(Pid), if BLoc =:= Location -> % io:format("Butler ~p reached ~p~n", [BId, Location]), {success, BB}; true -> io:format("sending butler ~p to ~p~n", [BId, Location]), dummy_navigator:goto_barcode(Pid, Location), {running, BB} end end.