15using GroupFeedbackHandler = std::function<void(
const GroupFeedback &)>;
28 Group(PndGroupPtr group,
float initial_feedback_frequency = 0.0f, int32_t initial_command_lifetime = 0);
117 PndFeedbackErrorPtr
getError(
int idx);
123 PndGroupPtr internal_;
128 const int number_of_modules_;
133 std::mutex handler_lock_;
138 std::vector<GroupFeedbackHandler> handlers_;
143 friend void callbackWrapper(PndGroupFeedbackPtr group_feedback,
void *user_data);
148 void callAttachedHandlers(PndGroupFeedbackPtr group_feedback);
151 static const int32_t DEFAULT_TIMEOUT_MS = 500;
A list of Command objects appropriate for sending to a Group of modules; the size() must match the nu...
Definition groupCommand.hpp:14
A list of Feedback objects that can be received from a Group of modules; the size() must match the nu...
Definition groupFeedback.hpp:13
Represents a group of physical Pnd actuator, and allows Command, Feedback, and Info objects to be sen...
Definition group.hpp:21
friend void callbackWrapper(PndGroupFeedbackPtr group_feedback, void *user_data)
Definition group.cpp:8
bool setCommandLifetimeMs(int32_t ms)
Sets the command lifetime for the modules in this group.
Definition group.cpp:40
bool sendFeedbackRequest(PndFeedbackCode feedbackCode=PndFeedbackAll)
Requests feedback from the group.
Definition group.cpp:46
void clearFeedbackHandlers()
Definition group.cpp:67
bool getNextFeedback(GroupFeedback &feedback, int32_t timeout_ms=DEFAULT_TIMEOUT_MS)
Returns the most recently stored feedback from a sent feedback request, or returns the next one recei...
Definition group.cpp:50
float getFeedbackFrequencyHz()
Definition group.cpp:58
void addFeedbackHandler(GroupFeedbackHandler handler)
Definition group.cpp:60
PndFeedbackErrorPtr getError(int idx)
Gets the actuator error message.
Definition group.cpp:73
~Group() noexcept
Destructor cleans up group.
Definition group.cpp:32
bool setFeedbackFrequencyHz(float frequency)
Sets the frequency of the internal feedback request + callback thread.
Definition group.cpp:54
bool sendCommand(const GroupCommand &group_command)
Send a command to the given group, requesting an acknowledgement of transmission to be sent back.
Definition group.cpp:42
int size()
Returns the number of modules in the group.
Definition group.cpp:38