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

📄 l3main.c

📁 phs 源代码 小灵通协议源代码 phs source code
💻 C
字号:
/************************************************************************/
/*																		*/
/*		NAME		l3main.c					    */
/*		FUNC		l3part main entry point				        */
/*                                                                      */
/************************************************************************/
#ifndef PM_ONPC

#include	"phs_def.h"
#include	"l3c_def.h"
#include	"l3_ext.h"
#include	"l3c_ext.h"

#include "sysdef.h"
extern L3C_SYSWRK	l3c_syswork;

#ifdef EXT_IO
#include  "mn80sts.h"
extern MN_STATE Mn_state;
#endif
/************************************************************************/
/*                                                                      */
/*		NUMBER		1				        */
/*		CALL		void l3_main()                          */
/*		PARAM						        */
/*		FUNC		l3 main entry point                     */
/*		RETURN		void               */
/*		GLOBAL      Sys_work	:input and output message pointer*/
/*			    Sys_ccsinf	:cs info 					*/
/*                  	    L3_datcnf   :        */
/*                  	    L3_prgtbl[5]:   function entry point         */
/*																		*/
/************************************************************************/
#ifdef _ON_SANYO_
void l3_main(void)
#else
void l3_main(void* mbox)
#endif
{
	register	U1		index;
	U1					evt_cod;
#ifdef EXT_IO
	U1					dim;
	U1					type;					/* #64K-RT57			*/
	U1					type1;					/* #64K-RT57			*/
	U1					type2;					/* #64K-RT57			*/
#endif

#ifndef _ON_SANYO_
	memcpy ((void *) l3c_syswork.in_evt, (const void *)(((EV_BUF_ST *)mbox)->event), sizeof (l3c_syswork.in_evt));
#endif

	set_up_b((U1 *)SYS_WORK->out_evt, 0, sizeof(SYS_WORK->out_evt));   /* zch for protocol simulator */

	index = L3COM;		/* common part*/
	evt_cod = (U1)SYS_WORK->in_evt[0];/* received event code */

	switch ( (U2)(evt_cod & EVT_IMSK) )/* event code 	*/
	{
		case EVT_L3:	/* event from high layer */
			if ( (evt_cod & EVT_CMSK) < 3 )		/* CC,MM RT part	*/
			{
				index = (evt_cod & EVT_CMSK)+1;	/* index is CC,MM,RT */
			}
			else if (((evt_cod & EVT_CMSK) == 5 )/*  initial */
				 && ( IN_DLDEVT->dl_typ == 0 ))	/* channel type */
			{
				if ( IN_DLDEVT->dl_id )	/* initial part	*/
				{
#ifdef _ON_SANYO_
					L3_prgtbl[IN_DLDEVT->dl_id].prg_adr();
#else
					L3_prgtbl[IN_DLDEVT->dl_id].prg_adr(mbox);
#endif
					return;
				}
				if(IN_DLDEVT->add_dat[1] == 0)  /* tch1 */
				{
					for ( index = L3CC; index <= L3COM; index++ )
					{				/*initial all part*/
#ifdef _ON_SANYO_
						L3_prgtbl[index].prg_adr();
#else
						L3_prgtbl[index].prg_adr(mbox);
#endif

					}
					return;
				}
				else	/* add_dat[1] == 1 initial tch 2		*/
				{
#ifdef _ON_SANYO_
					L3_prgtbl[L3COM].prg_adr();
#else
					L3_prgtbl[L3COM].prg_adr(mbox);
#endif

					return;
				}

			}
			break;

		case EVT_L2:
			if ( SYS_PARTNER == PSDIRCAL )		/* if pickaback plane talking*/
			{
				L3cDldtds();
				return;
			}
			switch ( IN_DLDEVT->evt_cod )		/* event code fromL2	*/
			{
				case EDLDTDSP:
				case EDLUDTDSP:
					switch ( IN_MSGDAT->dat[0] )/* protocol discriminitor id	*/
					{
						case CC_ID:	index = L3CC;	break;
						case MM_ID:	index = L3MM;	break;
						case RT_ID:	index = L3RT;	break;
						default	  :	index = L3DEL;	/* others*/
					}
#ifdef EXT_IO
			dim = 1;
			if ( index == 1 )	dim = 3;
			type1 = (U1)IN_DLDEVT->dl_id;
			type2 = (U1)IN_DLDEVT->dl_typ;
			type = (type1 << 4) | type2;
			if (IN_MSGDAT->len > 32) {
				HisOut(32, 0x30|index, IN_MSGDAT->dat[dim], type, (U1*)IN_MSGDAT->dat);
			} else {
				HisOut(IN_MSGDAT->len, 0x30|index, IN_MSGDAT->dat[dim],
															type, (U1*)IN_MSGDAT->dat);
			}
#endif
					break;
				case EDLDTRS:			/*datalink confirm	*/
					index = L3_datcnf;
					L3_datcnf = 0;
					break;

				case EMDLERRDSP:
					L3cMdlErr();
					return;
			}

			break;

		case EVT_L1:	/* event from L1 */
			if( IN_PHDEVT->evt_cod == EPHDTDSP )
			{
				if( IN_PHDEVT->ch_id == L1_SCCH )/* SCCH type			*/
				{
					if(!IN_PHDEVT->dmy[0] && (rx_cac[0] & ~BIT8))						/* 戞1CS偱辈霓賯艂葌

⌨️ 快捷键说明

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