📄 task_app.c
字号:
#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 + -