# HG changeset patch # User Mychaela Falconia # Date 1513289028 0 # Node ID 1c711302732a56c83d195c80e2c600e7482c473b # Parent 0df0668f8bea97ab637b84dd6eb1065745844f7a FCHG: complete enough to attempt linking into fw build diff -r 0df0668f8bea -r 1c711302732a components/fchg --- a/components/fchg Thu Dec 14 21:47:40 2017 +0000 +++ b/components/fchg Thu Dec 14 22:03:48 2017 +0000 @@ -39,5 +39,6 @@ cfile_plain $SRCDIR/fchg_default_batt.c cfile_plain $SRCDIR/fchg_env.c cfile_plain $SRCDIR/fchg_ffs_init.c +cfile_plain $SRCDIR/fchg_messages.c cfile_plain $SRCDIR/fchg_process.c cfile_plain $SRCDIR/fchg_task.c diff -r 0df0668f8bea -r 1c711302732a src/cs/drivers/drv_app/fchg/fchg_messages.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/fchg/fchg_messages.c Thu Dec 14 22:03:48 2017 +0000 @@ -0,0 +1,34 @@ +/* + * Incoming message dispatch for the FCHG task is implemented here. + */ + +#include "fchg/fchg_env.h" +#include "fchg/fchg_func_i.h" +#include "rv/rv_general.h" +#include "rvf/rvf_api.h" +#include "rvm/rvm_use_id_list.h" + +void pwr_process_message(T_RV_HDR *msg_ptr) +{ + switch (msg_ptr->msg_id) { + case USER_START_CHARGE_REQ: + pwr_charge_start_req(); + return; + case USER_STOP_CHARGE_REQ: + pwr_charge_stop_req(); + return; + case PWR_CHARGER_PLUGGED_IND: + pwr_charger_plug(); + return; + case PWR_CHARGER_UNPLUGGED_IND: + pwr_charger_unplug(); + return; + case PWR_ADC_IND: + pwr_process_adc((struct pwr_adc_ind_s *) msg_ptr); + return; + default: + rvf_send_trace("FCHG task: Received an unknown message", 38, + NULL_PARAM, RV_TRACE_LEVEL_DEBUG_HIGH, + FCHG_USE_ID); + } +} diff -r 0df0668f8bea -r 1c711302732a src/cs/drivers/drv_app/fchg/fchg_task.c --- a/src/cs/drivers/drv_app/fchg/fchg_task.c Thu Dec 14 21:47:40 2017 +0000 +++ b/src/cs/drivers/drv_app/fchg/fchg_task.c Thu Dec 14 22:03:48 2017 +0000 @@ -46,7 +46,10 @@ { /* Read the message in the driver mailbox and delegate action..*/ msg_ptr = (T_RV_HDR *) rvf_read_mbox(FCHG_MAILBOX); - pwr_process_message(msg_ptr); + if (msg_ptr) { + pwr_process_message(msg_ptr); + rvf_free_buf ((void *) msg_ptr); + } } /* Timers */