diff --git a/components/config/ConfigManager.cpp b/components/config/ConfigManager.cpp index 6e5ce46..386f0e4 100644 --- a/components/config/ConfigManager.cpp +++ b/components/config/ConfigManager.cpp @@ -124,10 +124,12 @@ std::optional ConfigManager::get_config_from_cache(const std::string& key) co } void ConfigManager::set_module_id(const uint16_t id) { + if (id < 2) return; set(MODULE_ID_KEY, id); } void ConfigManager::set_module_type(const ModuleType type) { + if (type > ModuleType_MAX || type < ModuleType_MIN) return; set(MODULE_TYPE_KEY, type); } @@ -140,6 +142,7 @@ void ConfigManager::set_wifi_password(const char* password) { } void ConfigManager::set_communication_method(const CommunicationMethod method) { + if (method != 0) return; set(COMMUNICATION_METHOD_KEY, method); } diff --git a/components/constants/include/constants/module.h b/components/constants/include/constants/module.h index 000472c..a532571 100644 --- a/components/constants/include/constants/module.h +++ b/components/constants/include/constants/module.h @@ -16,6 +16,16 @@ inline std::unordered_map MODULE_TO_NUM_CHANNELS_MAP { {ModuleType_SERVO_2, 2}, {ModuleType_DISPLAY, 1}, {ModuleType_GRIPPER, 1}, + {ModuleType_SPEAKER, 1}, + {ModuleType_IMU, 1}, + {ModuleType_DISTANCE_SENSOR, 1}, + {ModuleType_SPLITTER_2, 4}, + {ModuleType_SPLITTER_3, 3}, + {ModuleType_SPLITTER_4, 3}, + {ModuleType_SPLITTER_5, 3}, + {ModuleType_SPLITTER_6, 3}, + {ModuleType_SPLITTER_7, 3}, + {ModuleType_SPLITTER_8, 3}, }; #define PC_ADDR 0