Files
firmware/components/flatbuffers/include/MovementSetBuilder.h
2026-01-27 22:19:33 -05:00

30 lines
1.1 KiB
C++

// Justin Chow created file >:)
#ifndef MOVEMENTSETBUILDER
#define MOVEMENTSETBUILDER
#define MAX_MOVEMENTS_IN_SET 255 //max number movements in `MovementEntry.num_movements` can hold
#include <vector>
#include "SerializedMessage.h"
#include "flatbuffers_generated/Movement_generated.h"
#include "flatbuffers/flatbuffers.h"
namespace Flatbuffers {
class MovementSetBuilder {
public:
MovementSetBuilder() : builder_(MAX_MOVEMENTS_IN_SET*sizeof(Movement::MovementEntry)) {}
SerializedMessage build_movement_set(const std::vector<flatbuffers::Offset<Movement::MovementEntry>>& set);
flatbuffers::Offset<Movement::MovementEntry> build_movement_entry(uint16_t board_id, uint8_t module_type, uint16_t value_action,
const Movement::ConditionBlob& condition, uint8_t ack, uint16_t ack_ttl_ms, uint16_t post_delay_ms);
Movement::ConditionBlob build_condition_blob(uint16_t value, uint8_t cond, uint8_t module_type, uint8_t in_use);
private:
flatbuffers::FlatBufferBuilder builder_;
};
}
#endif //MOVEMENTSETBUILDER