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

📄 task_app.c

📁 基于vxworks操作系统的电话语音平台系统
💻 C
📖 第 1 页 / 共 2 页
字号:

#include "PUB\PUB_INCL.H"
#include "PUB\PUB__MSG.H"
#include "PUB\PUB_DEFI.H"
#include "PUB\MODULERS.H"
#include "MPUMINI\MPUPSTN_SYS.H"

/*************************************************/
/*************FOR FANGHUA TEST********************/

#include "dlcc\dlcc_msg.h"

/*************************************************/

/*双机热备份函数*/
extern BOOL HTBIsMpuActive( VOID );

extern UC GetBrdIdCode( VOID );
extern VOID StartSystemProc( VOID );
extern VOID InitDbmsFlashFsm( VOID );
extern VOID InitDlccConnectService( VOID );
extern VOID DlccSysProc( struct MSG_STRUCT *msg );
extern VOID SystemProc( struct MSG_STRUCT *msg );
extern VOID DbmsManagerProc( VOID *msg );
extern VOID LeaSysProc( struct MSG_STRUCT *msg );

#ifdef PTTTONE_BOARD_INCLUDE
extern VOID PtttoneSysProc( struct MSG_STRUCT*msg );
#endif

extern BOOL StartCcSysProc( VOID );
extern VOID CcSysProc( struct MSG_STRUCT *msg );

extern VOID InitLapv(VOID);
extern VOID LAPV_FSM_Proc(VOID *data);

extern BOOL InitV52WholeSystem(VOID);
extern VOID V52_AppProc(UC *data);
extern VOID ScanV5CtrlProtocolBuf(VOID);

extern VOID StartBmtpSysProc(VOID);
extern VOID BMTP_PROC( struct MSG_STRUCT *msg );

extern VOID InitDlccConnectService( VOID );
extern BOOL InitDlccFsm(VOID);


extern VOID Drv860Proc(VOID);
extern VOID tcpServerSendRecv( VOID );
extern VOID LapmGetIFrameFromQueueAndSendout( VOID );
extern VOID AccessDramProc(VOID);
extern VOID DD_Netman_Proc( struct MSG_STRUCT *msg );
extern BOOL InitDdCallQueue(VOID); 
extern BOOL InitSs7System( VOID );
extern VOID SS7_SystemProc( struct MSG_STRUCT *msg );
extern VOID MPUE1Init(UC board_no);
extern void MPUE1LinkFsm( struct MSG_STRUCT * msg );

extern VOID MPUMsgInMPUUARTHdl(struct MSG_STRUCT *msg);
extern VOID MPUUartInit(UC board_no);
extern VOID MPUMsgInMPUPTTHdl(struct MSG_STRUCT *msg);
extern VOID MPUPTTInit(UC board_no);
extern VOID Route_Proc(struct MSG_STRUCT * msg);


#ifdef MPU_INCLUDE_QSIG
extern VOID InitQsig(VOID);
extern VOID QsigSysManProc( struct MSG_STRUCT *msg );
extern VOID Q921GetIFrameFromQueueAndSendout( VOID );
#endif


extern UC TheBrdNum;

#ifdef MINI_TAIZHAN
extern UC MpuEmBrdNum;
extern UC MpuPttBrdNum;
extern UC MpuUartBrdNum;
extern UC MpuPstnBrdNum;
extern UC MiniE1BrdNum;

extern BOOL MPUPstn1Ring;
extern BOOL MPUPstn2Ring;
#endif

VOID DbmsTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	/*InitDbmsFlashFsm( );*/

	while(1)
	{
		if( msgQReceive( DBMS_Q_ID, msg, MAX_MSG_LEN, WAIT_FOREVER) > 0 )
		{
			DbmsManagerProc(msg);
		}
	}
}

VOID LapmRxTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];
	UL  LapmCount = 0;

	while (1)
	{
		if ( msgQReceive( Lapm_Q_ID, msg, MAX_MSG_LEN, WAIT_FOREVER) > 0 )
		{
			LapmFsmProc(msg);
		}

		LapmCount++;

		if (LapmCount >= 200)
		{
			LapmCount = 0;
			taskDelay(3);
		}
	}
}

VOID LapmTxTask(VOID)
{
	while (1)
	{
		Drv860Proc(  );

		#ifdef _INCLUDE_DSP	
		AccessDramProc( );
		#endif

		if( HTBIsMpuActive() )		/*如果是主板才发送*/
		{
			LapmGetIFrameFromQueueAndSendout( );
		}

		taskDelay(3);
	}
}

VOID RouteTask(VOID)
{
	UC buf[MAX_MSG_LEN];
	struct MSG_STRUCT *msg;
	UL RouteTick = 0;

	InitRouteTimer();

	msg = (struct MSG_STRUCT*)buf;

	while (1)
	{
		if (msgQReceive( ROUTE_Q_ID, msg, MAX_MSG_LEN, WAIT_FOREVER) > 0)
		{
			Route_Proc(msg);
		}

		RouteTick++;

		if (RouteTick >= 1000)
		{
			RouteTick = 0;
			taskDelay(1);
		}
	}
}

VOID ServiceAppTask(VOID)
{
	UC buf[MAX_MSG_LEN];
	struct MSG_STRUCT *msg;
	UC brdIdCode;

	StartSystemProc();
	msg = (struct MSG_STRUCT*)buf;

	#ifdef _BRDIDCODE
	brdIdCode = GetBrdIdCode( );
	if( brdIdCode != 0xd5 )
		return;
	#endif

	while (1)
	{
		if ( msgQReceive( ServiceCtr_Q_ID, buf, MAX_MSG_LEN, WAIT_FOREVER) > 0 )
		{
			switch ( msg->receiver )
			{
				case PID_BMTP:
				case PID_BMTP_SYS:
					BMTP_PROC(msg);
					break;

				case PID_SYSMAN:
					SystemProc(buf);
					break;

#ifdef _DIAODU
				case PID_DD_NETMAN:
					DD_Netman_Proc(buf);
					break;
#endif

				case PID_DLCC_SYSMAN:
					DlccSysProc(buf);
					break;

				case PID_CCB_MAN:
				case PID_CC:
				case PID_CCA_PSTN:
				case PID_CCA_ODTK:
				case PID_CCA_ISDNBA:
				case PID_CCA_DLC:
				case PID_CONF_MAN:
				case PID_CCA_CONF:
				case PID_CCA_TNST:
				case PID_V5CCA_PSTN:
				case PID_V5CCA_LE:
				case PID_V5CCA_ISDNBA:
				case PID_CCA_TUP:
				case PID_CCA_DLCCVR:
				case PID_CCA_VRCU:
				case PID_CCA_TTMS:
				case PID_CCA_TTSER:
				case PID_CCA_DT:
				case PID_CCA_NO1:
				case PID_CCA_MLC:
				case PID_CCA_AUDIOCTRL:
				case PID_CCA_GSM:
				case PID_CCA_NIGHTSVC:
				case PID_CCA_GROUPTEL:
				case PID_CCA_TRKLINE:
				case PID_CCA_REC:
				case PID_CCA_MINIPSTN:
				case PID_CCA_DDISDN:
				case PID_INTERFACE_ACCA_PSTN:
				case PID_CCA_WIRELESS:
				case PID_CCA_QSIG:
					CcSysProc(buf);
					break;

				case PID_LEA_MAN:
					LeaSysProc(buf);	
					break;

#ifdef PTTTONE_BOARD_INCLUDE
				case PID_PTTTONE_MAN:
					PtttoneSysProc(buf);
					break;
#endif

	/*			case PID_DBMS:
					DbmsManagerProc(buf);
					break;
	*/

				case PID_NO7_MAN:
					SS7_SystemProc(buf);
					break;

#ifdef MPU_INCLUDE_QSIG
				case PID_QSIG_SYS:
					QsigSysManProc(buf);
					break;
#endif
			}
		}
	}
}

extern BOOL InitV52WholeSystem(VOID);
extern VOID V52_AppProc(UC *data);
extern BOOL IsV5SysInLocalNode( VOID );

#ifdef GUANGQIAN_JIERU
VOID V52Task(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	/*if(IsV5SysInLocalNode()==FALSE )
		return;*/

	InitV52WholeSystem();
	while(1)
	{
		if( msgQReceive( V52_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			V52_AppProc( msg );
		}
		/*ATTENTION!!! Should enquiry link,comm,port control buffer, here.*/
		ScanV5CtrlProtocolBuf( );

		taskDelay( NO_WAIT );
	}
}

VOID V5L1Task(VOID)
{
	UC	msg[MAX_MSG_LEN];

	if (IsV5SysInLocalNode()==FALSE )
		return;

	while(1)
	{
		if( msgQReceive( V5L1_Q_ID, msg, MAX_MSG_LEN, WAIT_FOREVER) > 0 )
		{
			V52_PhLevelProc( msg );
		}
		taskDelay( NO_WAIT );
	}
}

VOID LapvTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	if (IsV5SysInLocalNode()==FALSE )
		return;

	InitLapv();
	while(1)
	{
		if( msgQReceive( Lapv_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			LAPV_FSM_Proc( msg );
		}
		/* send msg to phy layer, maybe put in periodic task */

		LapvGetIFrameFromQueueAndSendout( );
		taskDelay( NO_WAIT );
	}
}
#endif

#ifdef MPU_INCLUDE_E1
VOID MPUE1SysTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	MPUE1Init(TheBrdNum);

	while (1)
	{
		if( msgQReceive( MPUE1_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUMsgInMPUE1Hdl(msg);
		}

     	ABCDprocess();

		taskDelay(1);
	}
}	

VOID MPUE1FsmTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	while (1)
	{
		if( msgQReceive( MPUE1_FSM_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUE1LinkFsm(msg);
		}

		taskDelay(1);
	}
}
#endif

#ifdef MINI_TAIZHAN
VOID MPUPTTSysTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	taskDelay(100);

	MPUPTTInit(MpuPttBrdNum);

	while (1)
	{
		if( msgQReceive( MPUPTT_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUMsgInMPUPTTHdl(msg);
		}

		taskDelay(10);
	}
}

VOID MPUEMSysTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	taskDelay(100);

	while (1)
	{
		if( msgQReceive( MPUEM_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
		}

		taskDelay(10);
	}
}

VOID MPUUARTSysTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	taskDelay(100);

	MPUUartInit(MpuUartBrdNum);

	while (1)
	{
		if( msgQReceive( MPUUART_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUMsgInMPUUARTHdl(msg);
		}

		taskDelay(0);
	}
}

VOID MPUUARTRXTask(VOID)
{
	taskDelay(1000);

	while (1)
	{
		MPUUartDataRxProc();

		taskDelay(1);
	}
}

VOID MPUPSTNSysTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];
	UC  Tick = 0;
	UC  Pstn1Tick0HookState, Pstn1Tick1HookState, Pstn1Tick2HookState;
	UC  Pstn2Tick0HookState, Pstn2Tick1HookState, Pstn2Tick2HookState;
	UC  Pstn1PrevHookState,  Pstn1CurrHookState;
	UC  Pstn2PrevHookState,  Pstn2CurrHookState;

	taskDelay(100);

⌨️ 快捷键说明

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