mirror of
https://github.com/BotChain-Robots/firmware.git
synced 2026-07-08 17:47:21 +02:00
movement set read write to nvs working
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user