movement set read write to nvs working

This commit is contained in:
superkor
2026-01-28 00:47:22 -05:00
committed by Johnathon Slightham
parent 91097d2a80
commit 780eff2852
10 changed files with 288 additions and 58 deletions

View File

@@ -6,7 +6,7 @@
#ifdef MOVEMENTSETBUILDER
namespace Flatbuffers {
SerializedMessage MovementSetBuilder::build_movement_set(const std::unordered_map<uint8_t, std::vector<MovementEntryInput>>& input){
SerializedMessage MovementSetBuilder::build_movement_set(const std::unordered_map<uint8_t, std::vector<MovementEntryData>>& input){
builder_.Clear();
std::vector<flatbuffers::Offset<Movement::MovementVector>> map_entries;
@@ -17,50 +17,50 @@ namespace Flatbuffers {
keys.reserve(input.size());
for (const auto& [key, _] : input) {
keys.push_back(key);
keys.push_back(key);
}
std::sort(keys.begin(), keys.end());
// 2. Build MovementVector entries in key order
for (uint8_t key : keys) {
const auto& entries = input.at(key);
const auto& entries = input.at(key);
std::vector<flatbuffers::Offset<Movement::MovementEntry>> fb_entries;
fb_entries.reserve(entries.size());
std::vector<flatbuffers::Offset<Movement::MovementEntry>> fb_entries;
fb_entries.reserve(entries.size());
for (const auto& e : entries) {
fb_entries.push_back(
Movement::CreateMovementEntry(
for (const auto& e : entries) {
fb_entries.push_back(
Movement::CreateMovementEntry(
builder_,
e.board_id,
e.module_type,
e.value_action,
&e.condition,
e.ack,
e.ack_ttl_ms,
e.post_delay_ms
)
);
}
auto movements_vector = builder_.CreateVector(fb_entries);
map_entries.push_back(
Movement::CreateMovementVector(
builder_,
e.board_id,
e.module_type,
e.value_action,
&e.condition,
e.ack,
e.ack_ttl_ms,
e.post_delay_ms
key,
movements_vector
)
);
}
auto movements_vector = builder_.CreateVector(fb_entries);
map_entries.push_back(
Movement::CreateMovementVector(
builder_,
key,
movements_vector
)
);
}
// 3. Build the map vector
auto map_vector = builder_.CreateVector(map_entries);
auto message = Movement::CreateMovementSet(
builder_,
map_vector
builder_,
map_vector
);
builder_.Finish(message);