diff src/cs/drivers/drv_app/pwr/pwr_process.c @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/pwr/pwr_process.c	Sun Jul 15 04:39:26 2018 +0000
@@ -0,0 +1,83 @@
+/*****************************************************************************/
+/*                                                                           */
+/*  Name       pwr_process.c                                                 */
+/*                                                                           */
+/*  Function   this file contains the pwr_process function, used to          */
+/*			   handle messages received in the SPI task mailbox.             */
+/*                                                                           */
+/*  Version    0.1                                                           */
+/*                                                                           */
+/*  Date       Modification                                                  */
+/*  ------------------------------------                                     */
+/*                                                                           */
+/* Author      Candice Bazanegue                                             */
+/*                                                                           */
+/* (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved */
+/*****************************************************************************/
+
+#include "rv/rv_defined_swe.h"	   // for RVM_PWR_SWE
+
+#ifdef RVM_PWR_SWE
+
+#include "abb/abb.h"
+#include "rvm/rvm_use_id_list.h"
+#include "rvf/rvf_api.h"
+#include "pwr/pwr_messages_i.h"
+#include "spi/spi_env.h"
+
+
+/*******************************************************************************
+** Function         pwr_process
+**
+** Description     It is called by the spi task core.                                        
+**                 Messages can be related to ABB interrupt handling, or        
+**                 battery charge management. 
+**
+*******************************************************************************/
+void pwr_process(T_RV_HDR * msg_ptr)
+{
+   void *ptr = NULL;
+
+   if (msg_ptr != NULL)
+   {
+      switch (msg_ptr->msg_id)
+      {
+         case PWR_SPI_INFO_BATTERY_EVT:
+		 {
+            /* Battery voltage and charger current */
+            if (SPI_GBL_INFO_PTR->is_adc_on == FALSE)
+            {
+               /* start the channels conversion */
+               ABB_Write_Register_on_page(PAGE0, VBATREG, 0x0000);
+            }
+
+            /* Callback function */
+            if(((T_RV_HDR *)msg_ptr)->callback_func != NULL)
+            {
+               ((T_RV_HDR *)msg_ptr)->callback_func(ptr);
+            }
+
+            rvf_free_buf ((void *) msg_ptr);
+
+            break;
+		 }
+
+         default:
+	     {
+            /* Unknow message has been received */
+            rvf_send_trace("PWR_task : Received an unknown message",38, NULL_PARAM ,
+                           RV_TRACE_LEVEL_DEBUG_HIGH, PWR_USE_ID);
+
+            rvf_free_buf ((void *) msg_ptr);
+
+            break;
+         } 
+      }   // end of switch
+   }   // end of if
+   return;
+}
+
+#endif /* #ifdef RVM_PWR_SWE */
+
+
+