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 */