From 985ae0edeff1662b13b42de23ec76846f53bab55 Mon Sep 17 00:00:00 2001 From: jas <1790731762@qq.com> Date: Sun, 17 Dec 2023 11:41:07 +0800 Subject: [PATCH] =?UTF-8?q?[zhoulongyu]:=20=E6=B7=BB=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=BA=93=E6=95=B0=E6=8D=AE:=20=E7=BA=A2=E5=A4=96?= =?UTF-8?q?=E7=81=AF=E5=8A=9F=E7=8E=87,PIR=E7=81=B5=E6=95=8F=E5=BA=A6,=20?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E5=BE=AA=E7=8E=AF=E5=BC=80=E5=85=B3,=20?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=87=BA=E5=8E=82,=20=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96SDk=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/IpcConfig/include/IIpcConfig.h | 28 ++++++ middleware/IpcConfig/src/IpcConfig.cpp | 92 ++++++++++++++++--- middleware/IpcConfig/src/IpcConfig.h | 8 +- .../IpcConfig/src/IpcConfig_Test.cpp | 35 ++++++- 4 files changed, 143 insertions(+), 20 deletions(-) diff --git a/middleware/IpcConfig/include/IIpcConfig.h b/middleware/IpcConfig/include/IIpcConfig.h index 8159bec..e2e79e0 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 40c28e6..e5503eb 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 c064c2e..ee354c7 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 5891586..5705a82 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;