FreeCalypso > hg > fc-magnetite
diff src/cs/drivers/drv_app/pwr/pwr_messages.c @ 145:246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Oct 2016 05:59:14 +0000 |
parents | |
children | c93a236e0d50 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/pwr/pwr_messages.c Sun Oct 09 05:59:14 2016 +0000 @@ -0,0 +1,364 @@ +/******************************************************************************* + * + * pwr_messages.c + * + * Purpose: Contains functions used by PWR to send events + * to the upper layer (MMI) + * + * Author Candice Bazanegue (c-brille@ti.com) + * + * (C) Texas Instruments 2001 + * + ******************************************************************************/ + +#include "rv_defined_swe.h" // for RVM_PWR_SWE + +#ifdef RVM_PWR_SWE + +#include "rvm_use_id_list.h" +#include "rvf_api.h" +#include "pwr_messages.h" +#include "rv_general.h" +#include "spi_env.h" + + + +/******************************************************************************* +** +** Function pwr_send_charger_plug_event +** +** Description This function is used to send a 'POWER_CHARGER_PLUG_IND' +** event to the upper layer. +** +*******************************************************************************/ +T_RV_RET pwr_send_charger_plug_event(void) +{ + T_RV_HDR *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + msg_p->msg_id = POWER_CHARGER_PLUG_IND; + msg_p->callback_func = NULL; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_charger_unplug_event +** +** Description This function is used to send a 'POWER_CHARGER_UNPLUG_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_charger_unplug_event(void) +{ + T_RV_HDR *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + msg_p->msg_id = POWER_CHARGER_UNPLUG_IND; + msg_p->callback_func = NULL; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_CI_charge_start_event +** +** Description This function is used to send a 'POWER_BAT_CI_CHARGE_START_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_CI_charge_start_event(void) +{ + T_RV_HDR *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + msg_p->msg_id = POWER_BAT_CI_CHARGE_START_IND; + msg_p->callback_func = NULL; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_CV_charge_start_event +** +** Description This function is used to send a 'POWER_BAT_CV_CHARGE_START_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_CV_charge_start_event(void) +{ + T_RV_HDR *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + msg_p->msg_id = POWER_BAT_CV_CHARGE_START_IND; + msg_p->callback_func = NULL; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_charge_stop_event +** +** Description This function is used to send a 'POWER_BAT_CHARGE_STOP_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_charge_stop_event(void) +{ + T_RV_HDR *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + msg_p->msg_id = POWER_BAT_CHARGE_STOP_IND; + msg_p->callback_func = NULL; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_charge_not_possible_event +** +** Description This function is used to send a 'POWER_BAT_CHARGE_NOT_POSSIBLE_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_charge_not_possible_event(T_BAT_PROBLEM charge_problem) +{ + T_PWR_BAT_CHARGE_NOT_POSSIBLE *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_PWR_BAT_CHARGE_NOT_POSSIBLE),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + (msg_p->hdr).msg_id= POWER_BAT_CHARGE_NOT_POSSIBLE_IND; + (msg_p->hdr).callback_func= NULL; + msg_p->problem= charge_problem; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_bat_discharge_event +** +** Description This function is used to send a 'POWER_BAT_DISCHARGE_LEVEL_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_bat_discharge_event(T_PWR_PERCENT remaining_capacity) +{ + T_PWR_BAT_DISCHARGE_LEVEL *msg_p; + + if (pwr_env_ctrl_blk->power_info.info_enable == TRUE) + { + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_PWR_BAT_DISCHARGE_LEVEL),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + (msg_p->hdr).msg_id= POWER_BAT_DISCHARGE_LEVEL_IND; + (msg_p->hdr).callback_func= NULL; + msg_p->remaining_capacity= remaining_capacity; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + } + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_low_bat_event +** +** Description This function is used to send a 'POWER_LOW_BAT_ALERT_IND' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_low_bat_event(T_PWR_PERCENT remaining_capacity) +{ + T_PWR_LOW_BAT_ALERT *msg_p; + + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_PWR_LOW_BAT_ALERT),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + (msg_p->hdr).msg_id= POWER_LOW_BAT_ALERT_IND; + (msg_p->hdr).callback_func = NULL; + msg_p->remaining_capacity= remaining_capacity; + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_alert.return_path, msg_p); + + return (RV_OK); +} + + +/******************************************************************************* +** +** Function pwr_send_battery_info +** +** Description This function is used to send a 'POWER_BAT_INFO_STATUS' +** event to the upper layer. +** +** +*******************************************************************************/ +T_RV_RET pwr_send_battery_info(UINT16 battery_voltage, UINT16 battery_temperature, + UINT16 battery_charger_current, + BOOLEAN is_charger_plugged, + T_PWR_CHARGING_STATE is_charge_started, + T_PWR_PERCENT remaining_capacity) +{ + T_PWR_BAT_INFO_STATUS *msg_p; + + if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_PWR_BAT_INFO_STATUS),(void **) &msg_p) == RVF_RED) + { + rvf_send_trace ("PWR ERROR: Not enough memory", + 28, + NULL_PARAM, + RV_TRACE_LEVEL_ERROR, + PWR_USE_ID); + + return (RV_MEMORY_ERR); + } + + (msg_p->hdr).msg_id= POWER_BAT_INFO_STATUS; + (msg_p->hdr).callback_func= NULL; + msg_p->bat_info.battery_voltage= battery_voltage; + msg_p->bat_info.battery_temperature= battery_temperature; + msg_p->bat_info.battery_charger_current= battery_charger_current; + msg_p->bat_info.charger_plugged= is_charger_plugged; + msg_p->bat_info.charge_started= is_charge_started; + msg_p->bat_info.remaining_capacity= remaining_capacity; + + + + PWR_SEND_MESSAGE(pwr_env_ctrl_blk->power_info.return_path, msg_p); + + return (RV_OK); +} + +#endif /* #ifdef RVM_PWR_SWE */