diff --git a/middleware/IpcConfig/include/IIpcConfig.h b/middleware/IpcConfig/include/IIpcConfig.h index 8159bec7..e2e79e0b 100644 --- a/middleware/IpcConfig/include/IIpcConfig.h +++ b/middleware/IpcConfig/include/IIpcConfig.h @@ -26,6 +26,12 @@ enum class IpcConfigKey KEY_BURST_PHOTO_INTERVAL, KEY_IMGAE_SIZE, KEY_VIDEO_SIZE, + KEY_INFRARED_LAMP_POWER, + KEY_DELAYED, + KEY_PIR_SENSITIVITY, + KEY_STORAGE_LOOP_SWITCH, + KEY_FACTORY_RESET_FLAG, + KEY_FORMATTING_SD_CARD, TEST_SHORT, TEST_LONG, TEST_LLONG, @@ -62,6 +68,28 @@ enum VideoSize VIDEO_SIZE_END, }; +enum InfraredIampPower +{ + INFRARED_IAMP_POWER_LOW = 0, + INFRARED_IAMP_POWER_MID, + INFRARED_IAMP_POWER_HIGH, + INFRARED_IAMP_POWER_END, +}; +enum Delayed +{ + DELAYED_MIN = 0, + DELAYED_DEFAULT = 5, + DELAYED_MAX = 99, + DELAYED_END, +}; +enum PirSensitivity +{ + PIR_SENSITIVITY_MIN = 0, + PIR_SENSITIVITY_DEFAULT = 5, + PIR_SENSITIVITY_MAX = 9, + PIR_SENSITIVITY_END, +}; + class IIpcConfig { public: diff --git a/middleware/IpcConfig/src/IpcConfig.cpp b/middleware/IpcConfig/src/IpcConfig.cpp index 40c28e63..e5503eb0 100644 --- a/middleware/IpcConfig/src/IpcConfig.cpp +++ b/middleware/IpcConfig/src/IpcConfig.cpp @@ -44,6 +44,34 @@ IpcConfig::IpcConfig() innerMapVideoSize.insert(std::make_pair("video_size", std::reference_wrapper(mAllData.videoSize))); mCfgMapInt.insert(std::make_pair(IpcConfigKey::KEY_VIDEO_SIZE, innerMapVideoSize)); + std::map> innerMapInfraredLampPower; + innerMapInfraredLampPower.insert( + std::make_pair("infrared_lamp_power", std::reference_wrapper(mAllData.infraredIampPower))); + mCfgMapInt.insert(std::make_pair(IpcConfigKey::KEY_INFRARED_LAMP_POWER, innerMapInfraredLampPower)); + + std::map> innerMapDelayed; + innerMapDelayed.insert(std::make_pair("delayed", std::reference_wrapper(mAllData.delayed))); + mCfgMapInt.insert(std::make_pair(IpcConfigKey::KEY_DELAYED, innerMapDelayed)); + + std::map> innerMapPirSensitivity; + innerMapPirSensitivity.insert( + std::make_pair("pir_sensitivity", std::reference_wrapper(mAllData.pirSensitivity))); + mCfgMapInt.insert(std::make_pair(IpcConfigKey::KEY_PIR_SENSITIVITY, innerMapPirSensitivity)); + + std::map> innerMapStorageLoopSwitch; + innerMapStorageLoopSwitch.insert( + std::make_pair("storage_loop_switch", std::reference_wrapper(mAllData.storageLoopSwitch))); + mCfgMapBool.insert(std::make_pair(IpcConfigKey::KEY_STORAGE_LOOP_SWITCH, innerMapStorageLoopSwitch)); + + std::map> innerMapFactoryReset; + innerMapFactoryReset.insert(std::make_pair("factory_reset", std::reference_wrapper(mAllData.factoryReset))); + mCfgMapBool.insert(std::make_pair(IpcConfigKey::KEY_FACTORY_RESET_FLAG, innerMapFactoryReset)); + + std::map> innerMapFormattingSDCard; + innerMapFormattingSDCard.insert( + std::make_pair("formatting_SD_card", std::reference_wrapper(mAllData.formattingSDCard))); + mCfgMapBool.insert(std::make_pair(IpcConfigKey::KEY_FORMATTING_SD_CARD, innerMapFormattingSDCard)); + std::map> innerMapShort; innerMapShort.insert(std::make_pair("test_short", std::reference_wrapper(mAllData.testShort))); mCfgMapShort.insert(std::make_pair(IpcConfigKey::TEST_SHORT, innerMapShort)); @@ -60,10 +88,6 @@ IpcConfig::IpcConfig() innerMapChar.insert(std::make_pair("test_char", std::reference_wrapper(mAllData.testChar))); mCfgMapChar.insert(std::make_pair(IpcConfigKey::TEST_CHAR, innerMapChar)); - std::map> innerMapBool; - innerMapBool.insert(std::make_pair("test_bool", std::reference_wrapper(mAllData.testBool))); - mCfgMapBool.insert(std::make_pair(IpcConfigKey::TEST_BOOL, innerMapBool)); - std::map> innerMapFloat; innerMapFloat.insert(std::make_pair("test_float", std::reference_wrapper(mAllData.testFloat))); mCfgMapFloat.insert(std::make_pair(IpcConfigKey::TEST_FLOAT, innerMapFloat)); @@ -386,6 +410,57 @@ void IpcConfig::ReadAllConfigParameters(void) ConfigSetInt(mCfg, "video_size", mAllData.videoSize); } + StatusCode infraredIampPowerCode = ConfigGetInt(mCfg, "infrared_lamp_power", &(mAllData.infraredIampPower)); + if (StatusCodeEqual(infraredIampPowerCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("infrared_lamp_power doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + mAllData.infraredIampPower = INFRARED_IAMP_POWER_MID; + ConfigSetInt(mCfg, "infrared_lamp_power", mAllData.infraredIampPower); + } + + StatusCode delayedCode = ConfigGetInt(mCfg, "delayed", &(mAllData.delayed)); + if (StatusCodeEqual(delayedCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("delayed doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + mAllData.delayed = DELAYED_DEFAULT; + ConfigSetInt(mCfg, "delayed", mAllData.delayed); + } + + StatusCode pirSensitivityCode = ConfigGetInt(mCfg, "pir_sensitivity", &(mAllData.pirSensitivity)); + if (StatusCodeEqual(pirSensitivityCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("pir_sensitivity doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + mAllData.pirSensitivity = PIR_SENSITIVITY_DEFAULT; + ConfigSetInt(mCfg, "pir_sensitivity", mAllData.pirSensitivity); + } + + StatusCode storageLoopSwitchCode = ConfigGetBool(mCfg, "storage_loop_switch", &(mAllData.storageLoopSwitch)); + if (StatusCodeEqual(storageLoopSwitchCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("storage_loop_switch doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + constexpr bool storageLoopSwitch = true; + mAllData.storageLoopSwitch = storageLoopSwitch; + ConfigSetBool(mCfg, "storage_loop_switch", mAllData.storageLoopSwitch); + } + + StatusCode factoryResetCode = ConfigGetBool(mCfg, "factory_reset", &(mAllData.factoryReset)); + if (StatusCodeEqual(factoryResetCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("factory_resetCode doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + constexpr bool factoryReset = true; + mAllData.factoryReset = factoryReset; + ConfigSetBool(mCfg, "factory_reset", mAllData.factoryReset); + } + + StatusCode formattingSDCardCode = ConfigGetBool(mCfg, "formatting_SD_card", &(mAllData.formattingSDCard)); + if (StatusCodeEqual(formattingSDCardCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { + LogWarning("formatting_SD_card doesn't exist, will make it as default.\n"); + mCfgChanged = CONFIG_HAS_CHANGED; + constexpr bool formattingSDCard = true; + mAllData.formattingSDCard = formattingSDCard; + ConfigSetBool(mCfg, "formatting_SD_card", mAllData.formattingSDCard); + } + StatusCode shortCode = ConfigGetShort(mCfg, "test_short", &(mAllData.testShort)); if (StatusCodeEqual(shortCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { LogWarning("test_short doesn't exist, will make it as default.\n"); @@ -422,15 +497,6 @@ void IpcConfig::ReadAllConfigParameters(void) ConfigSetChar(mCfg, "test_char", mAllData.testChar); } - StatusCode boolCode = ConfigGetBool(mCfg, "test_bool", &(mAllData.testBool)); - if (StatusCodeEqual(boolCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { - LogWarning("test_bool doesn't exist, will make it as default.\n"); - mCfgChanged = CONFIG_HAS_CHANGED; - constexpr bool DEFAULT_TEST_BOOL_NUM = true; - mAllData.testBool = DEFAULT_TEST_BOOL_NUM; - ConfigSetBool(mCfg, "test_bool", mAllData.testBool); - } - StatusCode floatCode = ConfigGetFloat(mCfg, "test_float", &(mAllData.testFloat)); if (StatusCodeEqual(floatCode, "CONFIG_CODE_PARAM_NOT_EXIST")) { LogWarning("test_float doesn't exist, will make it as default.\n"); diff --git a/middleware/IpcConfig/src/IpcConfig.h b/middleware/IpcConfig/src/IpcConfig.h index c064c2e2..ee354c78 100644 --- a/middleware/IpcConfig/src/IpcConfig.h +++ b/middleware/IpcConfig/src/IpcConfig.h @@ -25,15 +25,19 @@ constexpr bool CONFIG_HAS_NOT_CHANGED = false; typedef char CHAR_STRING[256]; typedef struct Config_s { + bool storageLoopSwitch; + bool factoryReset; + bool formattingSDCard; int workMode; int continuousShot; int burstPhotoInterval; int videoSize; + int infraredIampPower; + int delayed; + int pirSensitivity; double imageSize; - short testShort; char testChar; - bool testBool; long testLong; long long testLLong; float testFloat; diff --git a/test/middleware/IpcConfig/src/IpcConfig_Test.cpp b/test/middleware/IpcConfig/src/IpcConfig_Test.cpp index 5891586f..5705a82a 100644 --- a/test/middleware/IpcConfig/src/IpcConfig_Test.cpp +++ b/test/middleware/IpcConfig/src/IpcConfig_Test.cpp @@ -37,6 +37,36 @@ TEST(IpcConfigTest, Demo) videoSize = VIDEO_SIZE_10; IIpcConfig::GetInstance()->SetInt(IpcConfigKey::KEY_VIDEO_SIZE, videoSize); + int infraredIampPower = IIpcConfig::GetInstance()->GetInt(IpcConfigKey::KEY_INFRARED_LAMP_POWER); + LogInfo("Get infrared_lamp_power = %d\n", infraredIampPower); + infraredIampPower = INFRARED_IAMP_POWER_LOW; + IIpcConfig::GetInstance()->SetInt(IpcConfigKey::KEY_INFRARED_LAMP_POWER, infraredIampPower); + + int delayed = IIpcConfig::GetInstance()->GetInt(IpcConfigKey::KEY_DELAYED); + LogInfo("Get delayed = %d\n", delayed); + delayed = DELAYED_MAX; + IIpcConfig::GetInstance()->SetInt(IpcConfigKey::KEY_DELAYED, delayed); + + int pirSensitivity = IIpcConfig::GetInstance()->GetInt(IpcConfigKey::KEY_PIR_SENSITIVITY); + LogInfo("Get pir_sensitivity = %d\n", pirSensitivity); + pirSensitivity = PIR_SENSITIVITY_MAX; + IIpcConfig::GetInstance()->SetInt(IpcConfigKey::KEY_PIR_SENSITIVITY, pirSensitivity); + + bool storageLoopSwitch = IIpcConfig::GetInstance()->GetBool(IpcConfigKey::KEY_STORAGE_LOOP_SWITCH); + LogInfo("Get storage_loop_switch = %d\n", storageLoopSwitch); + storageLoopSwitch = false; + IIpcConfig::GetInstance()->SetBool(IpcConfigKey::KEY_STORAGE_LOOP_SWITCH, storageLoopSwitch); + + bool factoryReset = IIpcConfig::GetInstance()->GetBool(IpcConfigKey::KEY_FACTORY_RESET_FLAG); + LogInfo("Get factory_reset = %d\n", factoryReset); + factoryReset = false; + IIpcConfig::GetInstance()->SetBool(IpcConfigKey::KEY_FACTORY_RESET_FLAG, factoryReset); + + bool formattingSDCard = IIpcConfig::GetInstance()->GetBool(IpcConfigKey::KEY_FORMATTING_SD_CARD); + LogInfo("Get formatting_SD_card = %d\n", formattingSDCard); + formattingSDCard = false; + IIpcConfig::GetInstance()->SetBool(IpcConfigKey::KEY_FORMATTING_SD_CARD, formattingSDCard); + short testShort = IIpcConfig::GetInstance()->GetShort(IpcConfigKey::TEST_SHORT); LogInfo("Get test_short = %d\n", testShort); const short numShort = 888; @@ -57,11 +87,6 @@ TEST(IpcConfigTest, Demo) const char numChar = 'A'; IIpcConfig::GetInstance()->SetChar(IpcConfigKey::TEST_CHAR, numChar); - bool testBool = IIpcConfig::GetInstance()->GetBool(IpcConfigKey::TEST_BOOL); - LogInfo("Get test_bool = %d\n", testBool); - const bool numBool = false; - IIpcConfig::GetInstance()->SetBool(IpcConfigKey::TEST_BOOL, numBool); - float testFloat = IIpcConfig::GetInstance()->GetFloat(IpcConfigKey::TEST_FLOAT); LogInfo("Get test_float = %lf\n", testFloat); const float numFloat = 1.123456;