view src/cs/services/fcbm/fcbm_task.c @ 232:0041bac707bd

rvm_swe.c: add FCBM
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 01 May 2021 10:13:23 +0000
parents baa738eeb842
children
line wrap: on
line source

/*
 * The FCBM task's core function lives here.
 */

#include "fcbm/fcbm_env.h"
#include "fcbm/fcbm_func_i.h"
#include "fcbm/fcbm_timer_i.h"
#include "fcbm/fcbm_life_cycle.h"
#include "rv/rv_general.h"
#include "rvf/rvf_api.h"
#include "rvm/rvm_use_id_list.h"

enum fcbm_life_cycle_state fcbm_life_cycle_state;

T_RV_RET fcbm_core(void)
{	
	BOOLEAN error_occured = FALSE;
	T_RV_HDR *msg_ptr;

	/* loop to process messages */
	while (error_occured == FALSE)
	{
		/* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */
		UINT16 received_event = rvf_wait (0xffff, 0);
					
		/* If an event related to mailbox 0 is received, then */
		if (received_event & RVF_TASK_MBOX_0_EVT_MASK) 
		{
			/* Read the message in the driver mailbox and delegate action..*/
			msg_ptr = (T_RV_HDR *) rvf_read_mbox(FCBM_MAILBOX);
			if (msg_ptr) {
				fcbm_process_message(msg_ptr);
				rvf_free_buf ((void *) msg_ptr);
			}
		}

		/* Timers */
		if (received_event & RVF_TIMER_0_EVT_MASK)
			fcbm_chg_periodic_timer();
		if (received_event & RVF_TIMER_1_EVT_MASK)
			fcbm_display_off_timer();

	}	 // end of while
	return RV_OK;	
}