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

📄 task_app.c

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

	Pstn1PrevHookState = 0xFF;
	Pstn2PrevHookState = 0xFF;

	Pstn1Tick0HookState = 0xFF;
	Pstn1Tick1HookState = 0xFF;
	Pstn1Tick2HookState = 0xFF;

	Pstn2Tick0HookState = 0xFF;
	Pstn2Tick1HookState = 0xFF;
	Pstn2Tick2HookState = 0xFF;

	while (1)
	{
		if (0 == Tick)
		{
			Pstn1Tick0HookState = GetPstn1HookState();
		}
		else if (1 == Tick)
		{
			Pstn1Tick1HookState = GetPstn1HookState();
		}
		else
		{
			Pstn1Tick2HookState = GetPstn1HookState();
		}

		if ((Pstn1Tick0HookState == Pstn1Tick1HookState)
		 && (Pstn1Tick0HookState == Pstn1Tick2HookState))
		{
			Pstn1CurrHookState = Pstn1Tick0HookState;

			if (Pstn1PrevHookState != Pstn1CurrHookState)
			{
				if (Pstn1CurrHookState == PSTN_HOOK_OFF)
				{
					BYPrintf("Hook1Off");

					MPUPstnSendHookOffMsgToMPU(0);
				}
				else
				{
					BYPrintf("Hook1On");

					MPUPstnSendHookOnMsgToMPU(0);
				}

				MPUPstn1Ring = FALSE;

				Pstn1PrevHookState = Pstn1CurrHookState;
			}
		}

		if (0 == Tick)
		{
			Pstn2Tick0HookState = GetPstn2HookState();
		}
		else if (1 == Tick)
		{
			Pstn2Tick1HookState = GetPstn2HookState();
		}
		else
		{
			Pstn2Tick2HookState = GetPstn2HookState();
		}

		if ((Pstn2Tick0HookState == Pstn2Tick1HookState)
		 && (Pstn2Tick0HookState == Pstn2Tick2HookState))
		{
			Pstn2CurrHookState = Pstn2Tick0HookState;

			if (Pstn2PrevHookState != Pstn2CurrHookState)
			{
				if (Pstn2CurrHookState == PSTN_HOOK_OFF)
				{
					BYPrintf("Hook2Off");

					MPUPstnSendHookOffMsgToMPU(1);
				}
				else
				{
					BYPrintf("Hook2On");

					MPUPstnSendHookOnMsgToMPU(1);
				}

				MPUPstn2Ring = FALSE;

				Pstn2PrevHookState = Pstn2CurrHookState;
			}
		}

		Tick++;
		if (Tick >= 3) Tick = 0;

		if( msgQReceive( MPUPSTN_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUMsgInMPUPSTNHdl(msg);
		}

		taskDelay(1);
	}
}

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

	CloseAllE1Led();

	taskDelay(100);

	MiniE1Init();

	while (1)
	{
		if ( msgQReceive( MINIE1_SYS_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			MPUMsgInMiniE1Hdl(msg);
		}

		E1_LED_CON();

		taskDelay(3);
	}
}

#endif

#ifdef TEST_PSTN
VOID TTestTask(VOID)
{
struct BRD_MSG
{
	UC unit_type;
	UC brd;
	UC line;	/*Mean to port number*/
	UI len;
	UC data[MAX_UNIT_LEN];
};

	UC i;
	UC brd, line;
	UC code;
	struct BRD_MSG BrdMsg;
	UC g_Run = FALSE;

	taskDelay(1000);

	while (1)
	{
		if (FALSE == g_Run)
		{
			taskDelay(10);
			continue;
		}

		brd = 7;

		for (line = 0; line < 4; line++)
		{
		BrdMsg.unit_type = 0;
		BrdMsg.brd = brd;
		BrdMsg.line = line;
		BrdMsg.len  = 1;
		BrdMsg.data[0] = 4;

		SendLetterToMail(PID_BRD, PID_SYSMAN, 0XFF, brd, sizeof(struct BRD_MSG), &BrdMsg);

		taskDelay(10);

		code = 3;

		SendLetterToMail(PID_DTMF, PID_CCA_PSTN, 0xFF, line, 1, &code);

		code = 0;

		taskDelay(10);

		SendLetterToMail(PID_DTMF, PID_CCA_PSTN, 0xFF, line, 1, &code);

		code = 0;

		SendLetterToMail(PID_DTMF, PID_CCA_PSTN, 0xFF, line, 1, &code);

		taskDelay(10);

		code = 1;

		SendLetterToMail(PID_DTMF, PID_CCA_PSTN, 0xFF, line, 1, &code);

		taskDelay(10);

		code = 6 + line;

		SendLetterToMail(PID_DTMF, PID_CCA_PSTN, 0xFF, line, 1, &code);

		taskDelay(10);
		}

		for (line = 0; line < 4; line++)
		{

		BrdMsg.unit_type = 0;
		BrdMsg.brd = brd;
		BrdMsg.line = line;
		BrdMsg.len  = 1;
		BrdMsg.data[0] = 5;

		SendLetterToMail(PID_BRD, PID_SYSMAN, 0XFF, brd, sizeof(struct BRD_MSG), &BrdMsg);

		taskDelay(10);
		}
	}
}
#endif

#ifdef TEST_FANGHUA
VOID FangHuaTask(void)
{
	BOOL bNoCallerHookOff = FALSE;
	BOOL bLackCallerHookOff = FALSE;
	BOOL bMuchCallerHookOff = FALSE;
	BOOL bExCallerHookOff = FALSE;
	BOOL bNormal = FALSE;
	BOOL bSendDtmf = FALSE;
	BOOL bConfigPTT = FALSE;
	UC   Code[MAX_CODE_LEN] = {3, 0, 0, 3, 2};
	UC   CallCode[MAX_CODE_LEN] = {3, 8, 1, 1, 2, 1, 6};
	DLCC_NET_MSG_DATA_STRUCT DlccNet;
	DLCC_TERMINAL_PORT_HOOKOFF_STRUCT * pHookOff;
	DLCC_TERMINAL_PORT_HOOKON_STRUCT  * pHookOn;
	DLCC_TERMINAL_PORT_DIAL_CODES_STRUCT * pDial;
	DLCC_EM_SEND_CODE_STRUCT * pSendCode;
	DLCC_PTT_CONFIG_STRUCT * pPttConfig;

	while (1)
	{
		if (bNoCallerHookOff)
		{
/*			bNoCallerHookOff = FALSE;*/

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKOFF;

			pHookOff = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[1]);

			pHookOff->caller_len = 0;

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);
		}

		if (bLackCallerHookOff)
		{
/*			bLackCallerHookOff = FALSE;*/

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKOFF;

			pHookOff = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[1]);

			pHookOff->caller_len = 6;
			memcpy(pHookOff->caller_code, Code, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);
		}

		if (bMuchCallerHookOff)
		{
/*			bMuchCallerHookOff = FALSE;*/

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKOFF;

			pHookOff = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[1]);

			pHookOff->caller_len = MAX_CODE_LEN;
			memcpy(pHookOff->caller_code, Code, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);
		}

		if (bExCallerHookOff)
		{
/*			bExCallerHookOff = FALSE;*/

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKOFF;

			pHookOff = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[1]);

			pHookOff->caller_len = MAX_CODE_LEN + 1;
			memcpy(pHookOff->caller_code, Code, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);
		}

		if (bNormal)
		{
			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKOFF;

			pHookOff = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[1]);

			pHookOff->caller_len = MAX_CODE_LEN;
			memcpy(pHookOff->caller_code, Code, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);

			taskDelay(1);

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_DIAL_CODES;

			pDial = (DLCC_TERMINAL_PORT_DIAL_CODES_STRUCT *)&(DlccNet.unit[1]);

			pDial->caller_len = MAX_CODE_LEN;
			memcpy(pDial->caller_code, Code, MAX_CODE_LEN);

			pDial->called_len = MAX_CODE_LEN;
			memcpy(pDial->called_code, CallCode, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);

			taskDelay(10);

			DlccNet.type = DLCC_SER_TERMINAL_MANAGE;
			DlccNet.cmd  = DLCC_TERMINAL_PORT_SIGNAL;
			DlccNet.unit[0] = DLCC_TERMINAL_PORT_HOOKON;

			pHookOn = (DLCC_TERMINAL_PORT_HOOKON_STRUCT *)&(DlccNet.unit[1]);

			pHookOn->caller_len = MAX_CODE_LEN;
			memcpy(pDial->caller_code, Code, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);
		}

		if (bSendDtmf)
		{
			DlccNet.type = DLCC_SER_DTMF_SIGNAL_MANAGE;
			DlccNet.cmd  = DLCC_SEND_SIGNAL;

			pSendCode = (DLCC_TERMINAL_PORT_HOOKOFF_STRUCT *)&(DlccNet.unit[0]);

			pSendCode->EmCode.EmCodeLen = MAX_CODE_LEN + 1;
			memcpy(pSendCode->EmCode.EmCode, Code, MAX_CODE_LEN);

			pSendCode->TxInfo.EmCodeLen = MAX_CODE_LEN;
			memcpy(pSendCode->TxInfo.EmCode, CallCode, MAX_CODE_LEN);

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_SERVICE_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);

			taskDelay(190);
		}

		if (bConfigPTT == TRUE)
		{
			DlccNet.type = DLCC_CONFIG_PTT;
			DlccNet.cmd  = DLCC_DBMS_CHANGE;

			pPttConfig = (DLCC_PTT_CONFIG_STRUCT *)&(DlccNet.unit[0]);

			pPttConfig->PttCodeLen = MAX_CODE_LEN;
			memcpy(pPttConfig->PttCode, Code, MAX_CODE_LEN);

			pPttConfig->ControlMode = 1;
			pPttConfig->PTTONOFF    = 0;

			SendLetterToMail(PID_NET_MAN, PID_DLCC_SYSMAN, DLCCSEV_CONFIG_MN,
				0xFFFF, sizeof(DLCC_NET_MSG_DATA_STRUCT), &DlccNet);

			taskDelay(10);
		}

		taskDelay(10);
	}
}
#endif

VOID CheckMemTask(VOID)
{
	UL size;
	UC *pMem;

	taskDelay(1000);

	size = 500000;

	while(1)
	{
		pMem = BYMalloc(size);

		if (NULL != pMem)
		{
			BYPrintf("Alloc Mem Succ size %d", size);
			free(pMem);
		}

		size -= 1000;

		taskDelay( 10 );
	}
}

VOID CallSystaskDelay(VOID)
{
	taskDelay( NO_WAIT );
}


#ifdef MPU_INCLUDE_QSIG
VOID QsigTask(VOID)
{
	UC 	msg[MAX_MSG_LEN];

	InitQsig();

	while(1)
	{
		if( msgQReceive( QSIG_Q_ID, msg, MAX_MSG_LEN, NO_WAIT) > 0 )
		{
			QSIG_Proc( msg );
		}

		Q921GetIFrameFromQueueAndSendout();

		taskDelay(1);
	}
}
#endif


⌨️ 快捷键说明

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