view src/cs/drivers/drv_app/pwr/pwr_process.c @ 174:90eb61ecd093

src/g23m-fad: initial import from TCS3.2/LoCosto
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Oct 2016 05:40:46 +0000
parents c93a236e0d50
children
line wrap: on
line source

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