FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/r2d/r2d_task.c @ 217:6541e43f88e5
R2D display on/off control implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 24 Apr 2021 23:38:18 +0000 |
parents | 777698cf6583 |
children | 4221c724c664 |
line wrap: on
line diff
--- a/src/cs/drivers/drv_app/r2d/r2d_task.c Sat Apr 24 19:58:49 2021 +0000 +++ b/src/cs/drivers/drv_app/r2d/r2d_task.c Sat Apr 24 23:38:18 2021 +0000 @@ -1,8 +1,8 @@ /** - @file: r2d_task.c + @file: r2d_task.c - @author Christophe Favergeon + @author Christophe Favergeon @version 0.5 @@ -12,18 +12,16 @@ /* - Date Modification + Date Modification ------------------------------------ 06/02/2001 Create - 10/18/2001 Version 0.5 for first integration with Riviera database + 10/18/2001 Version 0.5 for first integration with Riviera database (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved */ - - #include "rv/general.h" #include "rvf/rvf_api.h" #include "rvm/rvm_api.h" @@ -38,6 +36,8 @@ extern INT16 r2d_g_refresh_disabled; +extern void r2d_process_onoff_message(T_R2D_EVT *msg); + /* FreeCalypso addition */ int r2d_is_running; @@ -50,7 +50,7 @@ T_RVM_RETURN r2d_core(void) { BOOLEAN error_occured = FALSE; -// T_R2D_EVT * msg_ptr_rx, * msg_ptr_tx; + T_R2D_EVT *msg; //r2d_start(); @@ -70,13 +70,25 @@ //rvf_send_trace("WAIT EVENT",strlen("WAIT EVENT"), NULL_PARAM, // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); /* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */ - received_event = rvf_wait ( EVENT_MASK(RVF_APPL_EVT_0), 0); + received_event = rvf_wait(EVENT_MASK(RVF_APPL_EVT_0) | + RVF_TASK_MBOX_0_EVT_MASK, 0); //rvf_send_trace("EVENT RECEIVED",strlen("EVENT RECEIVED"), NULL_PARAM, // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); - /* If an event related to mailbox 0 is received, then */ - if (received_event & EVENT_MASK(RVF_APPL_EVT_0) ) + /* Check for mailbox events */ + if (received_event & RVF_TASK_MBOX_0_EVT_MASK) + { + /* Read the message in the driver mailbox and delegate action..*/ + msg = (T_R2D_EVT *) rvf_read_mbox(RVF_TASK_MBOX_0); + if (msg) { + if (msg->os_hdr.msg_id == R2D_MESSAGE_ONOFF) + r2d_process_onoff_message(msg); + rvf_free_buf ((void *) msg); + } + } + /* Check for refresh trigger events */ + if (received_event & EVENT_MASK(RVF_APPL_EVT_0)) { //rvf_send_trace("GOOD EVENT",strlen("GOOD EVENT"), NULL_PARAM, // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); @@ -86,7 +98,6 @@ r2d_refresh(); rvf_delay(RVF_MS_TO_TICKS(R2D_REFRESH_PERIOD)); } - } return RVM_OK;