M module-bsp/board/linux/battery-charger/battery_charger.cpp => module-bsp/board/linux/battery-charger/battery_charger.cpp +0 -1
@@ 44,7 44,6 @@ namespace bsp
return 1;
}
Store::Battery::modify().level = battLevel;
-
return 0;
}
M module-services/service-db/agents/settings/SystemSettings.hpp => module-services/service-db/agents/settings/SystemSettings.hpp +4 -0
@@ 22,5 22,9 @@ namespace settings
constexpr inline auto deviceName = "bt_device_name";
constexpr inline auto bondedDevices = "bt_bonded_devices";
} // namespace Bluetooth
+ namespace Battery
+ {
+ constexpr inline auto criticalLevel = "batt_critical_level";
+ } // namespace Battery
}; // namespace settings
M module-services/service-evtmgr/WorkerEvent.cpp => module-services/service-evtmgr/WorkerEvent.cpp +4 -5
@@ 45,11 45,6 @@ extern "C"
#include <string> // for string
#include <vector> // for vector
-WorkerEvent::WorkerEvent(sys::Service *service) : sys::Worker(service), service(service)
-{
- battery_level_check::init(service);
-}
-
bool WorkerEvent::handleMessage(uint32_t queueID)
{
@@ 205,6 200,8 @@ bool WorkerEvent::init(std::list<sys::WorkerQueueInfo> queuesList)
bsp::rtc_GetCurrentTimestamp(×tamp);
bsp::rtc_SetMinuteAlarm(timestamp);
+ battery_level_check::init(service);
+
return true;
}
@@ 219,6 216,8 @@ bool WorkerEvent::deinit(void)
bsp::eink_frontlight::deinit();
bsp::light_sensor::deinit();
+ battery_level_check::deinit();
+
return true;
}
M module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.cpp => module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.cpp +24 -1
@@ 7,24 7,46 @@
#include <Service/Bus.hpp>
#include <common_data/EventStore.hpp>
+#include <service-db/service-db/Settings.hpp>
+#include <service-db/agents/settings/SystemSettings.hpp>
+#include <module-utils/Utils.hpp>
namespace battery_level_check
{
namespace
{
- unsigned int batteryLevelCritical = 10;
+ unsigned int batteryLevelCritical = 0;
sys::Service *parentService = nullptr;
+ std::unique_ptr<settings::Settings> settings;
+
bool isBatteryLevelCritical(unsigned int level)
{
return level < batteryLevelCritical;
}
+
+ void batteryLevelSettingsCallback(std::string setting)
+ {
+ if (!setting.empty()) {
+ batteryLevelCritical = utils::getNumericValue<unsigned int>(setting);
+ }
+ }
+
} // namespace
void init(sys::Service *service)
{
parentService = service;
+ settings = std::make_unique<settings::Settings>(service);
+ settings->registerValueChange(settings::Battery::criticalLevel,
+ [&](std::string value) { batteryLevelSettingsCallback(value); });
+ }
+
+ void deinit()
+ {
+ settings->unregisterValueChange(settings::Battery::criticalLevel);
+ settings.reset();
}
void checkBatteryLevelCritical()
@@ 40,6 62,7 @@ namespace battery_level_check
void setBatteryCriticalLevel(unsigned int level)
{
batteryLevelCritical = level;
+ settings->setValue(settings::Battery::criticalLevel, std::to_string(batteryLevelCritical));
checkBatteryLevelCritical();
}
M module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.hpp => module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.hpp +2 -0
@@ 14,6 14,8 @@ namespace battery_level_check
{
void init(sys::Service *service);
+ void deinit();
+
void checkBatteryLevelCritical();
void setBatteryCriticalLevel(unsigned int level);
M module-services/service-evtmgr/service-evtmgr/WorkerEvent.hpp => module-services/service-evtmgr/service-evtmgr/WorkerEvent.hpp +1 -1
@@ 61,7 61,7 @@ class WorkerEvent : public sys::Worker
sys::Service *service = nullptr;
public:
- WorkerEvent(sys::Service *service);
+ WorkerEvent(sys::Service *service) : sys::Worker(service), service(service);
/**
* This function is responsible for creating all queues provided in the constructor.
* When all queues are created this method creates set of queues.