FreeCalypso > hg > freecalypso-sw
diff gsm-fw/g23m-aci/aci/dcm_handle_message.c @ 775:eedbf248bac0
gsm-fw/g23m-aci subtree: initial import from LoCosto source
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 12 Oct 2014 01:45:14 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/g23m-aci/aci/dcm_handle_message.c Sun Oct 12 01:45:14 2014 +0000 @@ -0,0 +1,99 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-F&D (8411) +| Modul : ACI ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Description : DCM handle_msg function, which is called when DCM +| receives a new message by application or rAT_function. ++----------------------------------------------------------------------------- +*/ + + +/*********************************** INCLUDES ********************************************/ +#include "aci_all.h" +#include "dcm.h" +#include "dcm_utils.h" +#include "dcm_state.h" +#include "dcm_env.h" + +/**************************** LOCAL VARIABLE DEFINITION ***********************************/ +/**************************** EXTERN VARIABLE DEFINITION **********************************/ +extern T_DCM_ENV_CTRL_BLK *dcm_env_ctrl_blk_p; + +/**************************** LOCAL FUCNTION DEFINITION ***********************************/ +/************************** EXTERN FUCNTION DEFINITION ************************************/ + + +/****************************************************************************************** +* Function : dcm_handle_message +* Description : Called every time DCM is in WAITING state or +* When receiving message from Application or rAT_function +* Parameter : T_DCM_HDR +* -Pointer on the header of the message. +* Return : T_DCM_RET DCM +* -DCM Result : DCM_OK, DCM_NOT_READY. +* History : 0001 03/09/17 CJH Created +********************************************************************************************/ +T_DCM_RET dcm_handle_message(T_DCM_HDR *msg_p) +{ + T_DCM_GET_CURRENT_CONN_REQ_MSG *current_conn_info; + + TRACE_FUNCTION("DCM: dcm_handle_message()"); + dcm_display_message(msg_p->msg_id); + dcm_dispay_state((U8)dcm_env_ctrl_blk_p->state[0], + (U8)dcm_env_ctrl_blk_p->substate[0]); + + if (msg_p != NULL) + { + /* get current conn req is always received regardless of current state..*/ + if(msg_p->msg_id == DCM_GET_CURRENT_CONN_REQ_MSG) + { + TRACE_EVENT("DCM: DCM_GET_CURRENT_CONN_REQ_MSG"); + current_conn_info = (T_DCM_GET_CURRENT_CONN_REQ_MSG*)msg_p; + dcm_process_get_current_conn_event(current_conn_info); + return DCM_OK; + } + switch (dcm_env_ctrl_blk_p->state[0]) + { + case DCM_IDLE: + TRACE_EVENT("DCM: DCM_IDLE") ; + /* there is no current action */ + return dcm_idle(msg_p); + + case DCM_ACTIVATING_CONN: + TRACE_EVENT("DCM: DCM_ACTIVATING_CONN") ; + /* An IP User have asked the opening of a connection */ + return dcm_activating_conn(msg_p); + + case DCM_CONN_ACTIVATED: + TRACE_EVENT("DCM: DCM_CONN_ACTIVATED") ; + /* At leat, on connection is active */ + return dcm_conn_activated(msg_p); + + case DCM_CLOSING_CONN: + TRACE_EVENT("DCM: DCM_CLOSING_CONN") ; + /* An IP User have asked the closing of a connection */ + return dcm_closing_conn(msg_p); + + default: + TRACE_EVENT("DCM: unknown state") ; + return DCM_NOT_READY; + } + } + else + { + TRACE_ERROR("DCM: NULL message") ; + return DCM_INVALID_PARAMETER; + } +}