summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortaeyoung <ty317.kim@samsung.com>2016-12-26 17:18:35 +0900
committertaeyoung <ty317.kim@samsung.com>2016-12-26 17:18:35 +0900
commit8a42343ec66bcda5958e54ea2b8007991dfb1d0e (patch)
tree28baeb7ca525ca552ffc6eab5c767274d364b704
parent0fb6c342a2401fa32fd01d697c354d28a452ba27 (diff)
downloaddeviced-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
The feature enables battery high/low temperature scenarios. Change-Id: I6c69f802e3e9573564e6436f2a815ed59c9ea753 Signed-off-by: taeyoung <ty317.kim@samsung.com>
-rwxr-xr-xCMakeLists.txt3
-rw-r--r--packaging/deviced.spec2
-rw-r--r--src/battery/power-supply.c35
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)