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

📄 mmigprs.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 3 页
字号:
			#endif			break;		case E_MFW_GPRS_S_EREP:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_S_EREPG");			#endif			break;		case E_MFW_GPRS_R_EREP_RJ:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_EREP_RJ");			#endif						/* Notify WAP of context deactivation */			#ifdef MMI_WAP_ENABLED			AUI_wap_gprs_status(GPRS_CONTEXT_DEACTIVATE);			#endif			break;		case E_MFW_GPRS_R_EREP_ATT:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_EREP_ATT");			#endif			/* Attach status has changed, display message as appropriate */			gprs_status = mmiGprsStatus();								if (mmi_gprs->display)			{				if (gprs_status==GPRS_ATTACHED)					textId = TxtAttached;				else					textId = TxtNotAttached;								/* Show result */					mmiGprsResultScreen(win, TxtGPRS, textId);			}						mmiGprsStatus();			break;		case E_MFW_GPRS_R_EREP_ACT:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_EREP_ACT");			#endif			/* Notify WAP of context activation */			#ifdef MMI_WAP_ENABLED			AUI_wap_gprs_status(GPRS_CONTEXT_ACTIVATE);			#endif			break;		case E_MFW_GPRS_R_EREP_DEACT:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_EREP_DEACT");			#endif			/* Notify WAP of context deactivation */			#ifdef MMI_WAP_ENABLED			AUI_wap_gprs_status(GPRS_CONTEXT_DEACTIVATE);			#endif						break;		case E_MFW_GPRS_R_EREP_CLASS:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_EREP_CLASS");			#endif			break;		case E_MFW_GPRS_R_REG:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_R_REG");			TRACE_EVENT_P1("regState: %d", gprs_data->regState);			#endif			gprs_status = mmiGprsStatus();			if (mmi_gprs->display)			{				switch (gprs_status)				{					case GPRS_ATTACHED:#ifdef MMI_HOMEZONE_ENABLED						/* Cell reselection for homezone */						homezoneUpdate(gprs_data->lac, gprs_data->ci);#endif						/* Show result */							mmiGprsResultScreen(win, TxtGPRS, TxtAttached);						break;										case GPRS_OFF:#ifdef MMI_HOMEZONE_ENABLED						/* Cell reselection for homezone */						homezoneUpdate(0,0);#endif						/* Show result */							mmiGprsResultScreen(win, TxtGPRS, TxtNotAttached);						break;					case GPRS_SEARCHING:       /* not registered, searching */#ifdef MMI_HOMEZONE_ENABLED						/* Cell reselection for homezone */						homezoneUpdate(0, 0);#endif						mmi_gprs->status = MMI_GPRS_STATUS_ATTACHING;						mmiPleaseWait(win, TxtGPRS, TxtSearching);	/* SPR#1986 */						break;					default:						/* Show result */							mmiGprsResultScreen(win, TxtGPRS, TxtError);						break;				}								}						break;		case E_MFW_GPRS_S_SMSSERV:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_S_SMSSERV");			#endif			/* First display "Using <service>" */			if (mmi_gprs->display)    		{    		    USHORT TxtId2, TxtId1 = TxtUsing;    		    switch(gprs_data->SMSService)    		    {                    case CGSMS_SERVICE_GPRS:           /* GPRS */                        TxtId2 = TxtGPRS;                        break;                    case CGSMS_SERVICE_CS:             /* circuit switched */                        TxtId2 = TxtCSD;                        break;                    case CGSMS_SERVICE_GPRS_PREFERRED: /* GPRS preferred */                        TxtId2 = TxtGPRSPreferred;                        break;                    case CGSMS_SERVICE_CS_PREFERRED:   /* circuit switched preferred */                        TxtId2 = TxtCSDPreferred;                        break;                    default:                           /* Shouldn't happen, but... */                        TxtId1 = TxtFailed;                        TxtId2 = TxtNull;                        break;    			}    							/* Show result */					mmiGprsResultScreen(win, TxtId1, TxtId2);    		}						mmiGprsStatus();			break;		case E_MFW_GPRS_OK:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_OK");			#endif			break;		case E_MFW_GPRS_ERROR:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_ERROR");			#endif			/* First display "GPRS Error" */			if (mmi_gprs->display)			{				/* Delete please wait window */				mmiPleaseWaitDestroy();									/* Show result */					mmiGprsResultScreen(win, TxtGPRS, TxtFailed);			}			/* Notify WAP of error */#ifdef MMI_WAP_ENABLED			AUI_wap_gprs_status(GPRS_ERROR);#endif			break;		case E_MFW_GPRS_CONNECT:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_CONNECT");			#endif			/* Delete please wait window */			mmiPleaseWaitDestroy();								/* Display "CONNECTED" window */			info_screen(win, TxtGPRS, TxtConnected, NULL);			mmiGprsStatus();			break;		case E_MFW_GPRS_ERR_CONNECT:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_ERR_CONNECT");			#endif			/* First display "GPRS No Answer" */			if (mmi_gprs->display)			{				/* Show result */					mmiGprsResultScreen(win, TxtGPRS, TxtNoAnswer);			}						mmiGprsStatus();			break;		case E_MFW_GPRS_COUNTER:			#ifdef TRACE_MMIGPRS			TRACE_EVENT("GPRSMfwCb: E_MFW_GPRS_COUNTER");			#endif			/* Add values returned from ACI			 * to total counter */			 			mmi_gprs->uplink_counter += (ULONG)(gprs_data->counter.octets_uplink);			mmi_gprs->downlink_counter += (ULONG)(gprs_data->counter.octets_downlink);			/* Only display counter if user has requested it */						if (mmi_gprs->display)			{				mmi_gprs->display = FALSE;				mmiGprsStatus();				/* Delete please wait window */				mmiPleaseWaitDestroy();								mmiGprsShowCounter(win, mmi_gprs->counter_type);			}			break;		default:#ifdef TRACE_MMIGPRS			TRACE_EVENT_P1("GPRSMfwCb: event = %d", event);#endif			break;	}	if (idleIsFocussed())	{		/* Update idle screen icons to show any change in GPRS status */		iconsShow();	}	else	{		/* iconsShow calls mmiGprsStatus; if we don't call that, call this on its own */		mmiGprsStatus();	}		return TRUE;}/******************************************************************************* $Function:    	GPRSAttach $Description:	Attempts an attach to the GPRS network. $Returns: $Arguments:	Standard menu option parameters*******************************************************************************/int GPRSAttach(MfwMnu* m, MfwMnuItem* i){	T_MFW_HND win = mfw_parent(mfw_header());	int gprsStatus;	TRACE_FUNCTION("GPRSAttach()");	if (!mmi_gprs->gprsHandle)	{		mmi_gprs->gprsHandle = gprs_create(0, E_MFW_GPRS_ALL_EVENTS, (MfwCb)GPRSMfwCb);		/* Set CID to 0; on increment will become 1. */		mmi_gprs->cid = GPRS_CID_OMITTED;			/* If we've set the SMS service while unattached, change it now */		if (mmi_gprs->SMSService != CGSMS_SERVICE_OMITTED)			gprs_setServiceSMS(mmi_gprs->SMSService);	}	gprsStatus = mmiGprsStatus();	if (gprsStatus==(int)GPRS_ATTACHED)	{		/* Show result */			mmiGprsResultScreen(win, TxtAlreadyAttached, TxtNull);		return;	}	mmi_gprs->status = MMI_GPRS_STATUS_ATTACHING;	mmiPleaseWait(win, TxtPleaseWait, NULL);	if (gprs_attach(CGATT_STATE_ATTACHED)==MFW_RES_OK)	{		#ifdef TRACE_MMIGPRS		TRACE_EVENT("GPRSAttach executing, awaiting confirmation.");		#endif	}	else	{		/* Show result */			mmiGprsResultScreen(win, TxtFailed, TxtNull);	}	return;}/******************************************************************************* $Function:    	GPRSDetach $Description:	Attempts a detach from the GPRS network. $Returns: $Arguments:	Standard menu option parameters*******************************************************************************/int GPRSDetach(MfwMnu* m, MfwMnuItem* i){	T_MFW_HND win = mfw_parent(mfw_header());	int gprsStatus;	TRACE_FUNCTION("GPRSDetach()");	/* Check to make sure gprs handle exists */	if (!mmi_gprs->gprsHandle)	{		/* Show result */			mmiGprsResultScreen(win, TxtNotAttached, TxtNull);		return;	}	gprsStatus = mmiGprsStatus();	if (gprsStatus==(int)GPRS_OFF)	{		mmiGprsResultScreen(win, TxtNotAttached, TxtNull);		return;	}	if (gprsStatus==(int)GPRS_SEARCHING)	{		mmiGprsResultScreen(win, TxtGPRS, TxtNotAvailable);		return;	}	/* Try to detach */	mmi_gprs->status = MMI_GPRS_STATUS_DETACHING;	mmiPleaseWait(win, TxtPleaseWait, NULL);	if (gprs_attach(CGATT_STATE_DETACHED)==MFW_RES_OK)	{		#ifdef TRACE_MMIGPRS		TRACE_EVENT("GPRSDetach executing, awaiting confirmation.");		#endif	}	else	{		mmiGprsResultScreen(win, TxtFailed,TxtNull);	}	return;}/******************************************************************************* $Function:    	mmiGprsShowCounter $Description:	Generic counter displaying function $Returns: $Arguments:	Standard menu option parameters*******************************************************************************/static void mmiGprsShowCounter(T_MFW_HND win, USHORT identifier){#ifdef NEW_EDITOR	T_AUI_EDITOR_DATA	editor_data;#else	T_EDITOR_DATA	editor_data;#endif	T_MFW_GPRS		*gprs;	USHORT			titleId;	TRACE_FUNCTION("mmiGprsShowCounter()");	/* Destroy old editor if it exists */		if (mmi_gprs->gprsEdit_win)	{		mmiGprsDestroyCounter();	}	/* Set appropriate title string (corrected) */		switch(identifier)	{		case MMI_GPRS_COUNTER_DOWNLINK:			titleId = TxtIncomingData;			break;				case MMI_GPRS_COUNTER_UPLINK:			titleId = TxtOutgoingData;			break;		default:			titleId = TxtNull;			break;	}	mmi_gprs->counterstring = (char *)ALLOC_MEMORY(ULONG_SIZE_IN_DECIMAL);	mmiGprsUpdateCounter(win, identifier);	/* New Editor */#ifdef NEW_EDITOR	AUI_edit_SetDefault(&editor_data);	AUI_edit_SetDisplay(&editor_data, ZONE_FULL_SK_TITLE, COLOUR_EDITOR_XX, EDITOR_FONT);	AUI_edit_SetEvents(&editor_data, identifier, FALSE, FOREVER, (T_AUI_EDIT_CB)mmiGprsShowCounterCb);	AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtReset, titleId, NULL);	AUI_edit_SetMode(&editor_data, ED_MODE_READONLY, ED_CURSOR_NONE);	AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE *)mmi_gprs->counterstring, ULONG_SIZE_IN_DECIMAL);	mmi_gprs->gprsEdit_win = AUI_edit_Start(win, &editor_data);#else /* NEW_EDITOR */	editor_data.TextString			= NULL;	editor_data.LeftSoftKey			= TxtSoftOK;	editor_data.RightSoftKey		= TxtReset;	editor_data.AlternateLeftSoftKey	= NULL;	editor_data.Callback			= (T_EDIT_CB)mmiGprsShowCounterCb;	editor_data.Identifier			= identifier;	editor_data.hide				= FALSE;	editor_data.mode				= READ_ONLY_MODE;	editor_data.timeout           	= FOREVER;	editor_data.min_enter			= 0;	editor_data.destroyEditor		= FALSE;	editor_data.editor_attr.win.px	= 0;	editor_data.editor_attr.win.py	= Mmi_layout_line(1)+4;	editor_data.editor_attr.win.sx	= SCREEN_SIZE_X;	editor_data.editor_attr.win.sy	= Mmi_layout_line(2)+4;	editor_data.editor_attr.edtCol	= COLOUR_EDITOR_XX;	editor_data.editor_attr.font	= 0;	editor_data.editor_attr.mode	= edtCurNone;	editor_data.editor_attr.controls	= 0;    editor_data.editor_attr.size	= ULONG_SIZE_IN_DECIMAL;	editor_data.TextId				= titleId;	editor_data.editor_attr.text = mmi_gprs->counterstring;	/* Create the dialog handler */		mmi_gprs->gprsEdit_win = editor_start(win, &editor_data);  /* start the editor */#endif /* NEW_EDITOR */	return;}/******************************************************************************* $Function:    	mmiGprsDestroyCounter $Description:	Destroy counter display $Returns:		None $Arguments:	None *******************************************************************************/static void mmiGprsDestroyCounter(){	if (mmi_gprs->gprsEdit_win)	{	/* New Editor */	#ifdef NEW_EDITOR		AUI_edit_Destroy(mmi_gprs->gprsEdit_win);#else		editor_destroy(mmi_gprs->gprsEdit_win);#endif		FREE_MEMORY((void *)mmi_gprs->counterstring, ULONG_SIZE_IN_DECIMAL);		mmi_gprs->counterstring = NULL;		mmi_gprs->gprsEdit_win = NULL;	}		return;}/******************************************************************************* $Function:    	mmiGprsUpdateCounter $Description:	Change text string for the counter we've just changed $Returns: $Arguments:	identifier - the type of counter we're updating*******************************************************************************/static char * mmiGprsUpdateCounter(T_MFW_HND win, USHORT identifier){	ULONG			counter;	TRACE_FUNCTION("mmiGprsUpdateCounter()");		counter = 0;		switch(identifier)	{		case MMI_GPRS_COUNTER_UPLINK:			counter = mmi_gprs->uplink_counter;			break;				case MMI_GPRS_COUNTER_DOWNLINK:			counter = mmi_gprs->downlink_counter;			break;	}	if (counter<1024)	{		sprintf(mmi_gprs->counterstring, "%d bytes",counter);		// Counter is <1K, display bytes	}	else	{		counter = counter/KILOBYTE;		if (counter<1024)			sprintf(mmi_gprs->counterstring, "%dKB",counter);		// Counter is <1M, display Kbytes		else		{			counter = counter/KILOBYTE;			sprintf(mmi_gprs->counterstring, "%dMB",counter);		// Display Mbytes		}	}	return mmi_gprs->counterstring;}/******************************************************************************* $Function:    	mmiGprsShowCounterCb $Description:	Change text string for the counter we've just changed $Returns:		nothing. $Arguments:	win		- the editor window 				identifier - the type of counter we're updating 				reason	- the event that caused the callback*******************************************************************************/static void mmiGprsShowCounterCb(T_MFW_HND win, USHORT identifier, USHORT reason){	T_MFW_RES		result;		TRACE_FUNCTION("mmiGprsShowCounterCb()");			switch(reason)	{		/* Press hangup key or select OK		 * Calls mmiGprsDestroyCounter to destroy window */		case INFO_KCD_LEFT:		case INFO_KCD_HUP:			mmiGprsDestroyCounter();			break;					/* Select "reset"		 * Now just zeroes the counter totals */		 

⌨️ 快捷键说明

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