29 #include <rcl_action/action_server.h>
33 #include "ROS2ActionServer.generated.h"
66 const FString& InActionName,
68 const TSubclassOf<UROS2GenericAction>& InActionClass,
70 const FActionCallback& InGoalDelegate,
72 const FSimpleCallback& InResultDelegate,
74 const FSimpleCallback& InCancelDelegate,
80 const UROS2QoS InFeedbackQoS = UROS2QoS::Default,
94 virtual void Destroy()
override;
108 virtual void ProcessReady(rcl_wait_set_t* wait_set)
override;
127 void ProcessAndSendCancelResponse(
const int InReturnCode);
144 void SendGoalResponse();
178 void SendResultResponse();
201 void SetDelegates(
const FActionCallback& InGoalDelegate,
203 const FSimpleCallback& InCancelDelegate,
205 const FSimpleCallback& InResultDelegate);
217 rcl_clock_t ros_clock;
219 rmw_request_id_t goal_req_id;
221 rmw_request_id_t result_req_id;
223 rmw_request_id_t cancel_req_id;
227 FActionCallback GoalDelegate;
229 FSimpleCallback ResultDelegate;
231 FSimpleCallback CancelDelegate;
288 FString ActionName = TEXT(
"");
347 FActionCallback GoalDelegate;
349 FSimpleCallback ResultDelegate;
351 FSimpleCallback CancelDelegate;
355 virtual void BeginPlay()
override
359 if (ActionServer ==
nullptr)
363 ActionServer = UROS2ActionServer::CreateActionServer(
this,