FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/pwr/pwr_messages.c @ 335:6c0659acf93e
FCHG: implemented functions for user-initiated charge start and stop
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 14 Dec 2017 20:41:18 +0000 |
parents | c93a236e0d50 |
children |
line wrap: on
line source
/******************************************************************************* * * 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/rv_defined_swe.h" // for RVM_PWR_SWE #ifdef RVM_PWR_SWE #include "rvm/rvm_use_id_list.h" #include "rvf/rvf_api.h" #include "pwr/pwr_messages.h" #include "rv/rv_general.h" #include "spi/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 */