diff options
author | taeyoung <ty317.kim@samsung.com> | 2016-12-26 17:18:35 +0900 |
---|---|---|
committer | taeyoung <ty317.kim@samsung.com> | 2016-12-26 17:18:35 +0900 |
commit | 8a42343ec66bcda5958e54ea2b8007991dfb1d0e (patch) | |
tree | 28baeb7ca525ca552ffc6eab5c767274d364b704 | |
parent | 0fb6c342a2401fa32fd01d697c354d28a452ba27 (diff) | |
download | deviced-accepted/tizen/3.0/wearable/20161227.010620.tar.gz deviced-accepted/tizen/3.0/wearable/20161227.010620.tar.bz2 deviced-accepted/tizen/3.0/wearable/20161227.010620.zip |
battery: add feature for batterh temperaturesubmit/tizen_3.0/20161226.083127accepted/tizen/3.0/wearable/20161227.010620accepted/tizen/3.0/tv/20161227.010605accepted/tizen/3.0/mobile/20161227.010548accepted/tizen/3.0/ivi/20161227.010645accepted/tizen/3.0/common/20161227.102103
The feature enables battery high/low temperature scenarios.
Change-Id: I6c69f802e3e9573564e6436f2a815ed59c9ea753
Signed-off-by: taeyoung <ty317.kim@samsung.com>
-rwxr-xr-x | CMakeLists.txt | 3 | ||||
-rw-r--r-- | packaging/deviced.spec | 2 | ||||
-rw-r--r-- | src/battery/power-supply.c | 35 |
3 files changed, 26 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f5cd6b4..dbda9c63 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,9 @@ SET(SRCS IF(BATTERY_MODULE STREQUAL on) ADD_SOURCE(src/battery BATTERY_SRCS) SET(SRCS ${SRCS} ${BATTERY_SRCS}) + IF(TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE STREQUAL on) + ADD_DEFINITIONS("-DTIZEN_FEATURE_BATTERY_OVER_TEMPERATURE") + ENDIF(TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE STREQUAL on) ENDIF() IF(THERMAL_MODULE STREQUAL on) diff --git a/packaging/deviced.spec b/packaging/deviced.spec index 5eacb09e..0fb042eb 100644 --- a/packaging/deviced.spec +++ b/packaging/deviced.spec @@ -16,6 +16,7 @@ %define tzip_module off %define usb_module on %define usbhost_module off +%define TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE off %define TIZEN_FEATURE_CPU_MODULE off %define TIZEN_FEATURE_USBHOST_TEST off %define TIZEN_FEATURE_TELEPHONY_MODULE off @@ -185,6 +186,7 @@ Deviced library for device control (devel) -DTZIP_MODULE=%{tzip_module} \ -DUSB_MODULE=%{usb_module} \ -DUSBHOST_MODULE=%{usbhost_module} \ + -DTIZEN_FEATURE_BATTERY_OVER_TEMPERATURE=%{TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE} \ -DTIZEN_FEATURE_CPU_MODULE=%{TIZEN_FEATURE_CPU_MODULE} \ -DTIZEN_FEATURE_USBHOST_TEST=%{TIZEN_FEATURE_USBHOST_TEST} \ -DTIZEN_FEATURE_TELEPHONY_MODULE=%{TIZEN_FEATURE_TELEPHONY_MODULE} \ diff --git a/src/battery/power-supply.c b/src/battery/power-supply.c index 39002903..72a0688f 100644 --- a/src/battery/power-supply.c +++ b/src/battery/power-supply.c @@ -77,7 +77,6 @@ static const struct uevent_handler uh = { struct battery_status battery; static int noti_id; static Ecore_Timer *power_timer; -static Ecore_Timer *abnormal_timer; static int booting_done(void *data); @@ -114,6 +113,15 @@ static int changed_battery_cf(enum present_type status) 2, APP_KEY_TYPE, value); } +static void health_status_broadcast(void) +{ + broadcast_edbus_signal(DEVICED_PATH_BATTERY, DEVICED_INTERFACE_BATTERY, + SIGNAL_TEMP_GOOD, NULL, NULL); +} + +#ifdef TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE +static Ecore_Timer *abnormal_timer; + static void abnormal_popup_timer_init(void) { if (abnormal_timer == NULL) @@ -123,13 +131,6 @@ static void abnormal_popup_timer_init(void) _I("delete health timer"); } -static void health_status_broadcast(void) -{ - broadcast_edbus_signal(DEVICED_PATH_BATTERY, DEVICED_INTERFACE_BATTERY, - SIGNAL_TEMP_GOOD, NULL, NULL); -} - - static void health_timer_reset(void) { abnormal_timer = NULL; @@ -165,6 +166,7 @@ static void abnormal_popup_edbus_signal_handler(void *data, DBusMessage *msg) if (abnormal_timer == NULL) _E("Fail to add abnormal check timer"); } +#endif /* TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE */ static void full_noti_cb(void *data, DBusMessage *msg, DBusError *err) { @@ -407,10 +409,10 @@ static void update_present(enum battery_noti_status status) changed_battery_cf(present); } +#ifdef TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE static void update_health(enum battery_noti_status status) { static int old = DEVICE_NOTI_OFF; - int value; if (old == status) return; @@ -420,22 +422,18 @@ static void update_health(enum battery_noti_status status) pm_change_internal(INTERNAL_LOCK_POPUP, LCD_NORMAL); if (status == DEVICE_NOTI_ON) { _I("popup - Battery health status is not good"); - value = HEALTH_BAD; - device_notify(DEVICE_NOTIFIER_BATTERY_HEALTH, (void *)&value); pm_lock_internal(INTERNAL_LOCK_POPUP, LCD_DIM, STAY_CUR_STATE, 0); if (battery.temp == TEMP_LOW) battery_charge_err_low_act(NULL); else if (battery.temp == TEMP_HIGH) battery_charge_err_high_act(NULL); } else { - value = HEALTH_GOOD; - device_notify(DEVICE_NOTIFIER_BATTERY_HEALTH, (void *)&value); pm_unlock_internal(INTERNAL_LOCK_POPUP, LCD_DIM, PM_SLEEP_MARGIN); - health_status_broadcast(); abnormal_popup_timer_init(); launch_system_app(APP_DEFAULT, 2, APP_KEY_TYPE, REMOVE_POPUP); } } +#endif /* TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE */ static void update_ovp(enum battery_noti_status status) { @@ -472,7 +470,10 @@ static void check_battery_status(void) if (battery.charge_now == CHARGER_ABNORMAL) { if (battery.health == HEALTH_BAD) { + device_notify(DEVICE_NOTIFIER_BATTERY_HEALTH, (void *)&battery.health); +#ifdef TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE update_health(DEVICE_NOTI_ON); +#endif /* TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE */ return; } else if (battery.present == PRESENT_ABNORMAL) { update_present(DEVICE_NOTI_ON); @@ -486,7 +487,11 @@ static void check_battery_status(void) if (battery.charge_now != CHARGER_ABNORMAL && status == DEVICE_CHANGE_NORMAL) { + device_notify(DEVICE_NOTIFIER_BATTERY_HEALTH, (void *)&battery.health); + health_status_broadcast(); +#ifdef TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE update_health(DEVICE_NOTI_OFF); +#endif /* TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE */ update_ovp(DEVICE_NOTI_OFF); update_present(DEVICE_NOTI_OFF); } @@ -1332,11 +1337,13 @@ static void power_supply_init(void *data) if (ret < 0) _E("fail to init edbus interface and method(%d)", ret); +#ifdef TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE ret = register_edbus_signal_handler(DEVICED_PATH_SYSNOTI, DEVICED_INTERFACE_SYSNOTI, SIGNAL_CHARGEERR_RESPONSE, abnormal_popup_edbus_signal_handler); if (ret < 0) _E("fail to init edbus signal(%d)", ret); +#endif /* TIZEN_FEATURE_BATTERY_OVER_TEMPERATURE */ } static void power_supply_exit(void *data) |