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

📄 fax_polling_vcdlg.cpp

📁 VC6.0
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		lvc.cx = ColumnWidth[3];
		m_TrkChList.InsertColumn(3, &lvc);

		lvc.iSubItem = 4;
		lvc.pszText = "DTMF";
		lvc.cx = ColumnWidth[4];
		m_TrkChList.InsertColumn(4, &lvc);

		lvc.iSubItem = 5;
		lvc.pszText = "Error messages";
		lvc.cx = ColumnWidth[5];
		m_TrkChList.InsertColumn(5, &lvc);
	}

	char dig[3];
	for(int i = 0; i < m_nTotalCh; i++)
	{
		if(m_TrkCh[i].bEnCalled)
		{
			m_TrkChList.InsertItem(i, _itoa(i, dig, 10));
		}
	}
}


void CFax_Polling_VCDlg::OnSelchangeComboTrkCh() 
{
	// TODO: Add your control notification handler code here
	char sz[50];
    m_cmbTrkCh.GetLBText(m_cmbTrkCh.GetCurSel(), sz);
	int n = atoi(sz);
	m_bRecord = m_TrkCh[n].bRecord;
	UpdateData(FALSE);
}

//recording
void CFax_Polling_VCDlg::OnCheckRecord() 
{
	// TODO: Add your control notification handler code here
	char sz[50];
	UpdateData(TRUE);
	m_cmbTrkCh.GetLBText(m_cmbTrkCh.GetCurSel(), sz);
	int n = atoi(sz);
	m_TrkCh[n].bRecord = m_bRecord;
}


void CFax_Polling_VCDlg::UpdateFaxChListCtrl()
{
	char szNewStat[250], szOldStat[250];
	char szStatemsg[100];
	int	 nIndex = 0;
	int  nCheck;

	for(int i = 0; i < m_nTotalCh; i++)
	{
		nCheck = SsmGetChType(i);	//get channel type
		if(nCheck == -1)
			WriteLog("Fail to call SsmGetChType");
		else if(nCheck != FAX_CH && nCheck != SOFTFAX_CH)	
			continue;

		if(g_dwLanguageConversion == g_dwCHINESE_SIMPLIFIED)
		{
			switch(m_FaxCh[i].nStep)
			{
			case FAX_IDLE:		strcpy(szNewStat, "空闲");		break;
			case FAX_CHECK_END:
				if(m_FaxCh[i].nDirection == C_SEND_FAX)
				{
					strcpy(szNewStat, "正在发送:");
				}
				else
				{
					strcpy(szNewStat, "正在接收:");
				}
				nCheck = SsmFaxGetChStateMsg(i, szStatemsg);	//get fax state
				if(nCheck == -1)
					WriteLog("Fail to call SsmFaxGetChStateMsg");
				else if(nCheck == 0)
				{
					strcat(szNewStat, szStatemsg);
				}
				break;
			}
		}
		else
		{
			switch(m_FaxCh[i].nStep)
			{
			case FAX_IDLE:		strcpy(szNewStat, "Idle");		break;
			case FAX_CHECK_END:
				if(m_FaxCh[i].nDirection == C_SEND_FAX)
				{
					strcpy(szNewStat, "Sending:");
				}
				else
				{
					strcpy(szNewStat, "Receiving:");
				}
				nCheck = SsmFaxGetChStateMsg(i, szStatemsg);	//state of fax channel
				if(nCheck == -1)
					WriteLog("Fail to call SsmFaxGetChStateMsg");
				else if(nCheck == 0)
				{
					strcat(szNewStat, szStatemsg);
				}
				break;
			}
		}

		m_FaxChList.GetItemText(nIndex, 1, szOldStat, 29);
		if(strcmp(szNewStat, szOldStat) != 0)
		{
			m_FaxChList.SetItemText(nIndex, 1, szNewStat);
		}
		//Chinese: 显示传真页码
		//English: display page number of fax
		m_FaxChList.GetItemText(nIndex, 2, szOldStat, 29);	
		if(strcmp(m_FaxCh[i].szPage, szOldStat) != 0)
		{
			m_FaxChList.SetItemText(nIndex, 2, m_FaxCh[i].szPage);
		}
		//Chinese: 显示对方传真ID
		//English: display ID of the receiver's fax machine
		sprintf(m_FaxCh[i].szGetID, "    ");
		if(SsmFaxGetID(i, m_FaxCh[i].szGetID) == -1)		
			WriteLog("Fail to call SsmFaxGetID");
		m_FaxChList.GetItemText(nIndex, 3, szOldStat, 50);	
		if(strcmp(m_FaxCh[i].szGetID, szOldStat) != 0)
		{
			m_FaxChList.SetItemText(nIndex, 3, m_FaxCh[i].szGetID);
		}
	
		if(m_FaxCh[i].nStep != FAX_IDLE)	
		{
			//Chinese: 显示传真文件名
			//English: display fax file name
			if(m_FaxCh[i].nDirection == C_SEND_FAX)	//send
			{
				strcpy(szNewStat, m_FaxCh[i].szSendFile);
			}
			else	//receive
				strcpy(szNewStat,m_FaxCh[i].szRcvPathFile);
			
			m_FaxChList.GetItemText(nIndex, 4, szOldStat, 250);		
			if(strcmp(szNewStat, szOldStat) != 0)
			{
				m_FaxChList.SetItemText(nIndex, 4, szNewStat);
			}
			//Chinese: 显示正在发送或接收的字节数
			//English: display number of bytes being sent or received
			if(m_FaxCh[i].nDirection == C_SEND_FAX)
			{
				//Chinese: 取得待发送的总字节数
				//English: get total number of bytes to be sent
				m_FaxCh[i].nAllBytes = SsmFaxGetAllBytes(i);
				//Chinese: 取得已发送的字节数
				//English: get number of bytes sent
				m_FaxCh[i].nSendBytes = SsmFaxGetSendBytes(i);
				sprintf(szNewStat, "%d:%d", m_FaxCh[i].nAllBytes, m_FaxCh[i].nSendBytes);
			}
			else
			{
				//Chinese: 取得已接收的字节数
				//English: get number of bytes received
				m_FaxCh[i].nRcvBytes = SsmFaxGetRcvBytes(i);
				sprintf(szNewStat, "%d", m_FaxCh[i].nRcvBytes);
			}

			m_FaxChList.GetItemText(nIndex, 5, szOldStat, 60);		
			if(strcmp(szNewStat, szOldStat) != 0)
			{
				m_FaxChList.SetItemText(nIndex, 5, szNewStat);
			}
		}
		//Chinese: 显示传真进行状态
		//English: display faxing state
		m_FaxChList.GetItemText(nIndex, 6, szOldStat, 60);		
		sprintf(szNewStat, "%d", m_FaxCh[i].nCheckEnd);
		if(strcmp(szNewStat, szOldStat) != 0)
		{
			m_FaxChList.SetItemText(nIndex, 6, szNewStat);
		}
		//Chinese: 显示出错信息
		//English: display error message
		m_FaxChList.GetItemText(nIndex, 7, szOldStat, 60);		
		if(strcmp(m_FaxCh[i].szChErrMsg, szOldStat) != 0)
		{
			m_FaxChList.SetItemText(nIndex, 7, m_FaxCh[i].szChErrMsg);
		}

		nIndex++;
	}
}


void CFax_Polling_VCDlg::UpdateTrunkChListCtrl()
{	
	char szNewStat[250], szOldStat[250];
	int	 nIndex = 0;
	
	for(int i = 0; i < m_nTotalCh; i++)
	{
		if(!m_TrkCh[i].bEnCalled)
			continue;

		if(g_dwLanguageConversion == g_dwCHINESE_SIMPLIFIED)
		{
			switch(SsmGetChState(i))	//get channel state
			{
			case -1:							wsprintf(szNewStat,"-1");		break;
			case S_CALL_STANDBY:				wsprintf(szNewStat,"空闲");		break;
			case S_CALL_PICKUPED:				wsprintf(szNewStat,"摘机");		break;
			case S_CALL_RINGING:				wsprintf(szNewStat,"振铃");		break;
			case S_CALL_TALKING:				wsprintf(szNewStat,"通话");		break;

			case S_CALL_ANALOG_WAITDIALTONE:	wsprintf(szNewStat,"WtDT");				break;
			case S_CALL_ANALOG_TXPHONUM:		wsprintf(szNewStat,"Dl..");				break;
			case S_CALL_ANALOG_WAITDIALRESULT:	wsprintf(szNewStat,"WtDl");				break;

			case S_CALL_PENDING:				wsprintf(szNewStat,"挂起");				break;
			case S_CALL_OFFLINE:				wsprintf(szNewStat,"断线");				break;
			case S_CALL_WAIT_REMOTE_PICKUP:		wsprintf(szNewStat,"回铃");				break;
			case S_CALL_UNAVAILABLE:			wsprintf(szNewStat,"不可用");			break;
			case S_CALL_LOCKED:					wsprintf(szNewStat,"呼出保留");			break;

			case S_CALL_LocalBlock:				wsprintf(szNewStat,"本地闭塞");			break;
			case S_CALL_RemoteBlock:			wsprintf(szNewStat,"对端闭塞");			break;

			case S_CALL_Ss1InWaitPhoNum  :		wsprintf(szNewStat,"接收被叫");			break;
			case S_CALL_Ss1InWaitFwdStop :		wsprintf(szNewStat,"等待前向");			break;
			case S_CALL_Ss1InWaitCallerID:		wsprintf(szNewStat,"接收主叫");			break;
			case S_CALL_Ss1InWaitKD      :		wsprintf(szNewStat,"接收KD");			break;
			case S_CALL_Ss1InWaitKDStop  :		wsprintf(szNewStat,"等KD停发");			break;
			case S_CALL_SS1_SAYIDLE      :		wsprintf(szNewStat,"发送示闲");			break;
			case S_CALL_SS1WaitIdleCAS   :		wsprintf(szNewStat,"等待示闲");			break;
			case S_CALL_SS1PhoNumHoldup  :		wsprintf(szNewStat,"S_CALL_SS1PhoNumHoldup");		break;
			case S_CALL_Ss1InWaitStopSendA3p:	wsprintf(szNewStat,"S_CALL_Ss1InWaitStopSendA3p");	break;

			case S_CALL_Ss1OutWaitBwdAck      :	wsprintf(szNewStat,"等待后向占用证实信令”");		break;
			case S_CALL_Ss1OutTxPhoNum        :	wsprintf(szNewStat,"发送被叫");			break;
			case S_CALL_Ss1OutWaitAppendPhoNum:	wsprintf(szNewStat,"号码不足");			break;
			case S_CALL_Ss1OutTxCallerID      :	wsprintf(szNewStat,"发送主叫");			break;
			case S_CALL_Ss1OutWaitKB          :	wsprintf(szNewStat,"等待KB");			break;

			case S_FAX_ROUND   :				wsprintf(szNewStat,"状态转移过程中");	break;
			case S_FAX_PhaseA  :				wsprintf(szNewStat,"呼叫建立");			break;
			case S_FAX_PhaseB  :				wsprintf(szNewStat,"报文前处理");		break;
			case S_FAX_SendDCS :				wsprintf(szNewStat,"发送DCS信号");		break;
			case S_FAX_Train   :				wsprintf(szNewStat,"传输训练");			break;
			case S_FAX_PhaseC  :				wsprintf(szNewStat,"报文传输");			break;
			case S_FAX_PhaseD  :				wsprintf(szNewStat,"报文后处理");		break;
			case S_FAX_NextPage:				wsprintf(szNewStat,"传输下页");			break;
			case S_FAX_AllSent :				wsprintf(szNewStat,"传输结束");			break;
			case S_FAX_PhaseE  :				wsprintf(szNewStat,"呼叫释放");			break;
			case S_FAX_Reset   :				wsprintf(szNewStat,"复位猫");			break;
			case S_FAX_Init    :				wsprintf(szNewStat,"初始化猫");			break;
			case S_FAX_RcvDCS  :				wsprintf(szNewStat,"接收DCS");			break;
			case S_FAX_SendFTT :				wsprintf(szNewStat,"发送训练失败信号FTT");break;
			case S_FAX_SendCFR :				wsprintf(szNewStat,"发送证实信号CFR");	break;

			case S_TUP_WaitPcmReset:			wsprintf(szNewStat,"电路复原");			break;
			case S_TUP_WaitSAM:					wsprintf(szNewStat,"等待SAM");			break;
			case S_TUP_WaitGSM:					wsprintf(szNewStat,"等待GSM");			break;
			case S_TUP_WaitCLF:					wsprintf(szNewStat,"等待CLF");			break;
			case S_TUP_WaitPrefix:				wsprintf(szNewStat,"接收局号");			break;
			case S_TUP_WaitDialAnswer:			wsprintf(szNewStat,"等待应答");			break;
			case S_TUP_WaitRLG:					wsprintf(szNewStat,"等待RLG");			break;

			case S_ISDN_OUT_WAIT_NET_RESPONSE:	wsprintf(szNewStat, "等待网络响应");	break;
			case S_ISDN_OUT_PLS_APPEND_NO:		wsprintf(szNewStat, "等待追加号码");	break;
			case S_ISDN_IN_CHK_CALL_IN:			wsprintf(szNewStat, "检测到呼入");		break;
			case S_ISDN_IN_RCVING_NO:			wsprintf(szNewStat,"正在接收号码");		break;
			case S_ISDN_IN_WAIT_TALK:			wsprintf(szNewStat, "准备进入通话");	break;
			case S_ISDN_OUT_WAIT_ALERT:			wsprintf(szNewStat, "等待提醒信号");	break;
			case S_ISDN_CALL_BEGIN:				wsprintf(szNewStat, "呼叫起始");		break;
			case S_ISDN_WAIT_HUANGUP:			wsprintf(szNewStat, "等待释放");		break;

			case S_CALL_SENDRING:				wsprintf(szNewStat, "发送振铃");		break;

			default:							wsprintf(szNewStat,"S=%d",i);			break;
			}
		}
		else
		{
			switch(SsmGetChState(i))	//get channel state
			{
			case -1:							wsprintf(szNewStat,"-1");		break;
			case S_CALL_STANDBY:				wsprintf(szNewStat,"Idle");		break;
			case S_CALL_PICKUPED:				wsprintf(szNewStat,"Off-hook");		break;
			case S_CALL_RINGING:				wsprintf(szNewStat,"Ringing");		break;
			case S_CALL_TALKING:				wsprintf(szNewStat,"Talking");		break;

			case S_CALL_ANALOG_WAITDIALTONE:	wsprintf(szNewStat,"WtDT");				break;
			case S_CALL_ANALOG_TXPHONUM:		wsprintf(szNewStat,"Dl..");				break;
			case S_CALL_ANALOG_WAITDIALRESULT:	wsprintf(szNewStat,"WtDl");				break;

			case S_CALL_PENDING:				wsprintf(szNewStat,"Pending");				break;
			case S_CALL_OFFLINE:				wsprintf(szNewStat,"Off-line");				break;
			case S_CALL_WAIT_REMOTE_PICKUP:		wsprintf(szNewStat,"Ringback tone");				break;
			case S_CALL_UNAVAILABLE:			wsprintf(szNewStat,"Unavailable");			break;
			case S_CALL_LOCKED:					wsprintf(szNewStat,"Outbound call locked");			break;

			case S_CALL_LocalBlock:				wsprintf(szNewStat,"Local block");			break;
			case S_CALL_RemoteBlock:			wsprintf(szNewStat,"Remote block");			break;

			case S_CALL_Ss1InWaitPhoNum  :		wsprintf(szNewStat,"Receiving called party number");			break;
			case S_CALL_Ss1InWaitFwdStop :		wsprintf(szNewStat,"Waiting for forward signal");			break;
			case S_CALL_Ss1InWaitCallerID:		wsprintf(szNewStat,"Receiving calling party number");			break;
			case S_CALL_Ss1InWaitKD      :		wsprintf(szNewStat,"Receiving KD");			break;
			case S_CALL_Ss1InWaitKDStop  :		wsprintf(szNewStat,"Waiting for KD off");			break;
			case S_CALL_SS1_SAYIDLE      :		wsprintf(szNewStat,"Sending idle signal");			break;
			case S_CALL_SS1WaitIdleCAS   :		wsprintf(szNewStat,"Waiting for the idle signal from the other side");			break;
			case S_CALL_SS1PhoNumHoldup  :		wsprintf(szNewStat,"S_CALL_SS1PhoNumHoldup");		break;
			case S_CALL_Ss1InWaitStopSendA3p:	wsprintf(szNewStat,"S_CALL_Ss1InWaitStopSendA3p");	break;

			case S_CALL_Ss1OutWaitBwdAck      :	wsprintf(szNewStat,"Waiting for a signal confirming backward occupation");		break;
			case S_CALL_Ss1OutTxPhoNum        :	wsprintf(szNewStat,"Sending called party number");			break;
			case S_CALL_Ss1OutWaitAppendPhoNum:	wsprintf(szNewStat,"Incomplete number");			break;
			case S_CALL_Ss1OutTxCallerID      :	wsprintf(szNewStat,"Sending calling party number");			break;
			case S_CALL_Ss1OutWaitKB          :	wsprintf(szNewStat,"Waiting for KB");			break;

			case S_FAX_ROUND   :				wsprintf(szNewStat,"In state transition");	break;
			case S_FAX_PhaseA  :				wsprintf(szNewStat,"Call setup");			break;
			case S_FAX_PhaseB  :				wsprintf(szNewStat,"Message preprocessing");		break;
			case S_FAX_SendDCS :				wsprintf(szNewStat,"Sending DCS");		break;
			case S_FAX_Train   :				wsprintf(szNewStat,"Transmit training");			break;
			case S_FAX_PhaseC  :				wsprintf(szNewStat,"Message transmitting");			break;
			case S_FAX_PhaseD  :				wsprintf(szNewStat,"Message postprocessing");		break;
			case S_FAX_NextPage:				wsprintf(szNewStat,"Transmitting next page");			break;
			case S_FAX_AllSent :				wsprintf(szNewStat,"End of transmission");			break;
			case S_FAX_PhaseE  :				wsprintf(szNewStat,"Call release");			break;
			case S_FAX_Reset   :				wsprintf(szNewStat,"Modem reset");			break;
			case S_FAX_Init    :				wsprintf(szNewStat,"Initializing modem");			break;
			case S_FAX_RcvDCS  :				wsprintf(szNewStat,"Receiving DCS");			break;
			case S_FAX_SendFTT :				wsprintf(szNewStat,"Sending Signal FTT");break;
			case S_FAX_SendCFR :				wsprintf(szNewStat,"Sending Signal CFR ");	break;

			case S_TUP_WaitPcmReset:			wsprintf(szNewStat,"Circuit reset");			break;
			case S_TUP_WaitSAM:					wsprintf(szNewStat,"Waiting for SAM");			break;
			case S_TUP_WaitGSM:					wsprintf(szNewStat,"Waiting for GSM");			break;
			case S_TUP_WaitCLF:					wsprintf(szNewStat,"Waiting for CLF");			break;
			case S_TUP_WaitPrefix:				wsprintf(szNewStat,"Receiving prefix");			break;
			case S_TUP_WaitDialAnswer:			wsprintf(szNewStat,"Waiting for response");			break;
			case S_TUP_WaitRLG:					wsprintf(szNewStat,"Waiting for RLG");			break;

			case S_ISDN_OUT_WAIT_NET_RESPONSE:	wsprintf(szNewStat, "Waiting for network response");	break;
			case S_ISDN_OUT_PLS_APPEND_NO:		wsprintf(szNewStat, "Waiting for number to be appended");	break;
			case S_ISDN_IN_CHK_CALL_IN:			wsprintf(szNewStat, "Inbound call detected");		break;
			case S_ISDN_IN_RCVING_NO:			wsprintf(szNewStat,"Receiving number");		break;
			case S_ISDN_IN_WAIT_TALK:			wsprintf(szNewStat, "Ready to talk");	break;
			case S_ISDN_OUT_WAIT_ALERT:			wsprintf(szNewStat, "Waiting for alerting signal");	break;
			case S_ISDN_CALL_BEGIN:				wsprintf(szNewStat, "Start calling");		break;
			case S_ISDN_WAIT_HUANGUP:			wsprintf(szNewStat, "Waiting for release");		break;

			case S_CALL_SENDRING:				wsprintf(szNewStat, "Sending ring");		break;

			default:							wsprintf(szNewStat,"S=%d",i);			break;
			}
		}
		m_TrkChList.GetItemText(nIndex, 1, szOldStat, 29) ;
		if(strcmp(szNewStat, szOldStat) != 0)
		{
			m_TrkChList.SetItemText(nIndex, 1, szNewStat);
		}

		if(g_dwLanguageConversion == g_dwCHINESE_SIMPLIFIED)
		{
			switch(m_TrkCh[i].nStep) 
			{
			case TRK_IDLE:					strcpy(szNewStat,	"空闲");				break ;
			case TRK_PLAY_VOC1:				strcpy(szNewStat,	"播放提示语1");			break ;
			case TRK_PLAY_VOC2:				strcpy(szNewStat,	"播放提示语2");			break ;
			case TRK_FAXING:				strcpy(szNewStat,	"通话...");				break ;
			case TRK_DIALING:				strcpy(szNewStat,	"正在拨号");			break ;		
			default:						strcpy(szNewStat,	"未定义");				break ;
			}
		}
		else
		{
			switch(m_TrkCh[i].nStep) 
			{
			case TRK_IDLE:					strcpy(szNewStat,	"Idle");				break ;
			case TRK_PLAY_VOC1:				strcpy(szNewStat,	"Play voice1");			break ;
			case TRK_PLAY_VOC2:				strcpy(szNewStat,	"Play voice2");			break ;
			case TRK_FAXING:				strcpy(szNewStat,	"Talking...");				break ;
			case TRK_DIALING:				strcpy(szNewStat,	"Dialing...");			break ;		
			default:						strcpy(szNewStat,	"Undefined");				break ;
			}
		}

		m_TrkChList.GetItemText(nIndex, 2, szOldStat, 29) ;
		if(strcmp(szNewStat, szOldStat) != 0)
		{
			m_TrkChList.SetItemText(nIndex, 2, szNewStat);
		}
		//Chinese: 显示主叫号码
		//English: display calling party number
		m_TrkChList.GetItemText(nIndex, 3, szOldStat, 29) ;
		if(strcmp(m_TrkCh[i].szCallerId, szOldStat) != 0)
		{
			m_TrkChList.SetItemText(nIndex, 3, m_TrkCh[i].szCallerId);
		}
		//Chinese: 显示DTMF
		//English: display DTMF
		sprintf(szNewStat, "%s", m_TrkCh[i].szDtmf);

⌨️ 快捷键说明

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