update movement set

This commit is contained in:
superkor
2026-01-27 22:17:44 -05:00
parent 1576c73f3a
commit 497f022548
9 changed files with 278 additions and 92 deletions

View File

@@ -9,38 +9,85 @@ MovementSetManager::MovementSetManager(){
ESP_LOGE(MOVEMENTS_DEBUG_TAG, "Failed to open nvs for %s", MOVEMENTS_NVS_NAMESPACE);
return;
}
if (!topology_manager->is_ready()){
ESP_LOGE(MOVEMENTS_DEBUG_TAG, "Topology Manager is not ready!");
return;
}
ready = true;
};
MovementSetManager::~MovementSetManager(){
nvs_close(handle);
}
// esp_err_t MovementSetManager::add_movement(struct MovementEntry& entry, uint8_t& index){
// return ESP_OK;
// }
esp_err_t MovementSetManager::add_movement(Movement::MovementEntry& entry, uint8_t& index){
if (!ready){
return ESP_ERR_INVALID_STATE;
}
// esp_err_t MovementSetManager::remove_movement(uint8_t index){
// return ESP_OK;
// }
if (entry.board_id() == PC_ADDR || entry.board_id() == BROADCAST_ADDR){
return ESP_ERR_INVALID_ARG;
}
// esp_err_t MovementSetManager::update_movement(struct MovementEntry& entry, uint8_t index){
// return ESP_OK;
// }
if (movements.find(index) != movements.end()){
for (Movement::MovementEntry& e : movements[index]){
if (e.board_id() == entry.board_id()){
return ESP_ERR_INVALID_ARG; //only unique board ids per index
}
}
}
movements[index].push_back(entry);
// esp_err_t MovementSetManager::get_curr_movement_set(struct MovementSet& set){
// return ESP_OK;
// }
return ESP_OK;
}
// esp_err_t MovementSetManager::verify_movement_set(){
// return ESP_OK;
// }
esp_err_t MovementSetManager::remove_movement(uint8_t index, uint8_t board_id){
if (board_id == PC_ADDR || board_id == BROADCAST_ADDR){
return ESP_ERR_INVALID_ARG;
}
// esp_err_t MovementSetManager::get_nvs_movement_set(struct MovementSet& set){
// return ESP_OK;
// }
if (movements.find(index) == movements.end()){
return ESP_ERR_INVALID_ARG;
}
// esp_err_t MovementSetManager::write_nvs_movement_set(){
// return ESP_OK;
// }
bool found = false;
for (auto it = movements[index].begin(); it != movements[index].end(); ++it) {
if (it->board_id() == board_id){
movements[index].erase(it);
found = true;
break;
}
}
if (!found){
return ESP_ERR_NOT_FOUND;
}
return ESP_OK;
}
esp_err_t MovementSetManager::update_movement(Movement::MovementEntry& entry, uint8_t index){
return ESP_OK;
}
esp_err_t MovementSetManager::get_curr_movement_set(Movement::MovementSet& set){
return ESP_OK;
}
esp_err_t MovementSetManager::verify_movement_set(){
return ESP_OK;
}
esp_err_t MovementSetManager::get_nvs_movement_set(Movement::MovementSet& set){
return ESP_OK;
}
esp_err_t MovementSetManager::write_nvs_movement_set(){
return ESP_OK;
}
#endif //MOVEMENTS