⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfw_gprs.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 4 页
字号:
/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         $Workfile:: mfw_gprs.c      $|| $Author: KGT                          $Revision:: 1               $|| CREATED: 13.02.2001                   $Modtime::  13.02.2001       || STATE  : code                                                      |+--------------------------------------------------------------------+   MODULE  : MFW_GPRS   PURPOSE : This modul contains functions needed for the GPRS              management in MFW.*//* include necessary header files ----------------------------------*/#ifndef NEW_FRAME  #error GPRS need NEW_FRAME#endif  /* NEW_FRAME */#include <string.h>#include <stdio.h>#include <stdlib.h>#include "typedefs.h"#include "mfw_mfw.h"#include "vsi.h"#include "custom.h"#include "gsm.h"#include "message.h"#include "prim.h"#include "aci_cmh.h"  /* include types declared in ACI              */#include "gaci_cmh.h" /* include types declared in GACI             *///#include "cus_aci.h"#include "p_sim.h"#include "pcm.h"#include "mfw_win.h"#include "mfw_gprs.h"/* import of external globals --------------------------------------*/EXTERN MfwHdr *current_mfw_elem;/* definition of globals -------------------------------------------*//* definition of constants -----------------------------------------*//* definition of internal functions --------------------------------*/static BOOL gprs_sign_exec ( T_MFW_HDR *cur_elem, T_MFW_EVENT event,                              T_MFW_GPRS_PARA *para );/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_init           |+--------------------------------------------------------------------+   PURPOSE : initialize for GPRS magangement*/void gprs_init ( void ){  TRACE_FUNCTION ("gprs_init()");  /*    * set callback for MFW commands    */  mfwCommand[MfwTypGprs] = (MfwCb) gprsCommand;}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_exit           |+--------------------------------------------------------------------+   PURPOSE : finalize for GPRS magangement*/void gprs_exit ( void ){  TRACE_FUNCTION ("gprs_exit()");}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_create         |+--------------------------------------------------------------------+   PURPOSE : create event for gprs management   PARAMETERS :   RETURNS :*/T_MFW_HND gprs_create ( T_MFW_HND   h,                        T_MFW_EVENT event,                        T_MFW_CB    cbfunc ){  T_MFW_HDR      *hdr;  T_MFW_GPRS     *gprs_data;  T_CGATT_STATE   state;   T_CGCLASS_CLASS cls;  T_CGREG_STAT    regState;  USHORT      lac;  USHORT      ci;  MfwHdr *insert_status =0;  TRACE_FUNCTION ("gprs_create()");  hdr     = (T_MFW_HDR  *) mfwAlloc(sizeof (T_MFW_HDR));  gprs_data = (T_MFW_GPRS *) mfwAlloc(sizeof (T_MFW_GPRS));  if ( !hdr OR !gprs_data )  	{    	TRACE_ERROR("ERROR: gprs_create() Mem Alloc Failed.");				   	if(hdr)   			mfwFree((U8*)hdr,sizeof(MfwHdr));   		if(gprs_data)   			mfwFree((U8*)gprs_data,sizeof(T_MFW_GPRS));   			   	return FALSE;  	}  /*   * initialisation of the handler    */  gprs_data->emask   = event;  gprs_data->handler = cbfunc;    hdr->data = gprs_data;      /* store gprs control block in node */  hdr->type = MfwTypGprs;     /* store type of event handler      */  /*   * initialisation of gprs data    */  gprs_data->data.numContexts = 0;  gprs_data->data.tclass = NULL;  gprs_data->data.regState = NULL;  gprs_data->data.attached = NULL;  gprs_data->data.contexts =     (T_MFW_GPRS_CONTEXT *) mfwAlloc(sizeof(T_MFW_GPRS_CONTEXT) * MAX_CID_PLUS_EINS);  /*    * installation of the handler    */  insert_status = mfwInsert((T_MFW_HDR *)h, hdr);    if(!insert_status)	{  		TRACE_ERROR("ERROR: gprs_create() Failed to Install Handler. ");   		mfwFree((U8*)hdr,sizeof(MfwHdr));   		mfwFree((U8*)gprs_data,sizeof(T_MFW_GPRS));		return 0;  	}    return insert_status;}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_delete         |+--------------------------------------------------------------------+   PURPOSE : delete event for gprs management   PARAMETERS :   RETURNS :             MFW_RES_OK,      on success             MFW_RES_ILL_HND, on failure*/T_MFW_RES gprs_delete ( T_MFW_HND h ){  T_MFW_GPRS *gprs_data;  TRACE_FUNCTION ("gprs_delete()");  if ( !h OR !((T_MFW_HDR *)h)->data )    return MFW_RES_ILL_HND;  /*    * deinstallation of the handler   */  //if ( !mfwRemove((T_MFW_HDR *)h) )  if ( !mfwRemove(h) )    return MFW_RES_ILL_HND;  gprs_data = ((T_MFW_HDR *) h)->data;  while ( gprs_data->data.numContexts )  {    mfwFree((U8 *)&(gprs_data->data.contexts[gprs_data->data.numContexts]),            sizeof(T_MFW_GPRS_CONTEXT));    gprs_data->data.numContexts--;  }  mfwFree((U8 *)&(gprs_data->data), sizeof(T_MFW_GPRS_DATA));  mfwFree((U8 *)(((T_MFW_HDR *) h)->data),sizeof(T_MFW_GPRS));  mfwFree((U8 *)h,sizeof(T_MFW_HDR));  return MFW_RES_OK;}/*+--------------------------------------------------------------------+| PROJECT : MMI-Framework (8417)        MODULE  : MFW_GPRS           || STATE   : code                        ROUTINE : gprsCommand        |+--------------------------------------------------------------------+  PURPOSE : handle mfw windows command  PARAMETERS :  Returns : 0, on failure            1, on success*/int gprsCommand (U32 cmd, void *h){  switch ( cmd )  {    case MfwCmdDelete:              /* delete me */      if ( !h )        return 0;      gprs_delete(h);      return 1;    default:      break;  }  return 0;}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_signal         |+--------------------------------------------------------------------+   PURPOSE : send a event signal.   PARAMETERS :             event : current event             *para : pointer to the event parameters*/void gprs_signal( T_MFW_EVENT event,                   void       *para){/*MC, SPR 1389, we have to enable the display whenever 	we send an event up to the MMI*/  UBYTE temp = dspl_Enable(0);	  TRACE_FUNCTION ("gprs_signal()");  if ( mfwSignallingMethod EQ 0 )  {    /*      * focus is on a window     */    if ( mfwFocus )    {      /*       * send event to sim management handler if available        */      if (gprs_sign_exec (mfwFocus, event, para))     { dspl_Enable(temp);/*MC, SPR 1389*/	        return;	 }    }    /*      * acutal focussed window is not available or has no      * network management registration handler, then search      * all nodes from the root.          */    if ( mfwRoot )      gprs_sign_exec (mfwRoot, event, para);  }  else  {    MfwHdr *h = 0;    /*      * Focus set, then start here     */    if ( mfwFocus )    h = mfwFocus;    /*      * Focus not set, then start at root      */    if ( !h )    h = mfwRoot;    /*      * while elements found     */    while ( h )    {      /*       * Signal consumed, then return        */      if ( gprs_sign_exec (h, event, para) )      { dspl_Enable(temp);/*MC, SPR 1389*/	        return;	  }      /*        * All windows tried inclusive root        */      if ( h == mfwRoot )   	  { dspl_Enable(temp);/*MC, SPR 1389*/	        return;	  }      /*        * get parent window        */      h = mfwParent(mfwParent(h));      /*        * look for next element        */      if ( h )        h = ((MfwWin * )(h->data))->elems;    }    gprs_sign_exec (mfwRoot, event, para);  } dspl_Enable(temp);/*MC, SPR 1389*/}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417)         MODULE:  MFW_GPRS            || STATE  : code                         ROUTINE: gprs_sign_exec      |+--------------------------------------------------------------------+   PURPOSE : Handle a signal if GPRS management handler.   PARAMETERS :   RETURNS :              TRUE,  if signal is processed             FALSE, if signal is not processed*/BOOL gprs_sign_exec ( T_MFW_HDR     *cur_elem,                       T_MFW_EVENT    event,                       T_MFW_GPRS_PARA *para ){  int i,j;  T_CGATT_STATE state;  T_GPRS_CONT_REC tst_ctrc[MAX_CID_PLUS_EINS];  SHORT tst_cid;  USHORT      lac;  USHORT      ci;  TRACE_FUNCTION ("gprs_sign_exec()");  /*    * while event handler is available    */  while ( cur_elem )  {    /*     * if handler is GPRS management handler     */    if ( cur_elem->type EQ MfwTypGprs )    {      T_MFW_GPRS *gprs_data;      gprs_data = (T_MFW_GPRS *)cur_elem->data;      /*        * if event is expected by the call back function       */      if ( gprs_data->emask & event )      {        gprs_data->event = event;        switch ( event )        {          case E_MFW_GPRS_S_CNTXT:            /*             * Check if contexts is defined in ACI ( if too many context             * are defined, the new one will not be defined             */            qAT_PlusCGDCONT(CMD_SRC_LCL, &tst_ctrc, &tst_cid);              if ( tst_cid >= gprs_data->data.numContexts + 1)            {              /*                * insert the new context               */               memcpy (&(gprs_data->data.contexts[gprs_data->data.numContexts]), para,                 sizeof (T_MFW_GPRS_CONTEXT));              gprs_data->data.numContexts++;            }            break;          case E_MFW_GPRS_S_ATT:          case E_MFW_GPRS_R_EREP_ATT:			/* SPR#1983 - SH -'attached' is now of correct type.			 * Don't check if unchanged, as this rejects some cases

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -