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

📄 fax_event_vcdlg.cpp

📁 VC6.0
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			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);
		}
	
		// 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);
		}
	
		// display ID of the receiver's fax machine
		sprintf(m_FaxCh[i].szGetID, "    ");
 		if(SsmFaxGetID(i, szTmp.GetBuffer(100)) == -1)		
 			WriteLog("Fail to call SsmFaxGetID");
		szTmp.ReleaseBuffer();
		szTmp.TrimLeft();
		strcpy(m_FaxCh[i].szGetID, szTmp);
		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)	
		{
			// 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);
			}

			// display number of bytes being sent or received
			if(m_FaxCh[i].nDirection == C_SEND_FAX)
			{
				// get total number of bytes to be sent
				m_FaxCh[i].nAllBytes = SsmFaxGetAllBytes(i);

				// get number of bytes sent
				m_FaxCh[i].nSendBytes = SsmFaxGetSendBytes(i);
				sprintf(szNewStat, "%d:%d", m_FaxCh[i].nAllBytes, m_FaxCh[i].nSendBytes);
			}
			else
			{
				// 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);
			}
		}

		// 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);
		}

		// 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_Event_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);
		}

		// 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);
		}

		// display DTMF
		sprintf(szNewStat, "%s", m_TrkCh[i].szDtmf);
		m_TrkChList.GetItemText(nIndex, 4, szOldStat, 29);
		if(strcmp(szNewStat, szOldStat) != 0)
		{
			m_TrkChList.SetItemText(nIndex, 4, szNewStat);
		}

		//display error messages
		m_TrkChList.GetItemText(nIndex, 5, szOldStat, 60);		
		if(strcmp(m_TrkCh[i].szChErrMsg, szOldStat) != 0)
		{
			m_TrkChList.SetItemText(nIndex, 5, m_TrkCh[i].szChErrMsg);
		}
		
		nIndex++;
	}
}


// search for idle fax channel
int CFax_Event_VCDlg::FindAnIdleFaxCh()
{
	int nCheck;
	for(int i = 0; i < m_nTotalCh; i++)
	{
		nCheck = SsmGetChType(i);
		if(nCheck == -1)
			WriteLog("Fail to call SsmGetChType");
		else if((nCheck == FAX_CH || nCheck == SOFTFAX_CH)
				&& m_FaxCh[i].nStep == FAX_IDLE && m_FaxCh[i].bInUse == FALSE) 
				return i;
	}
	return -1;
}


// search for idle trunk channel
int CFax_Event_VCDlg::FindAnIdleTrunkCh()
{
	for(int i = 0; i < m_nTotalCh; i++)
	{
		if(m_TrkCh[i].bEnCalled == TRUE && m_TrkCh[i].bInUse == FALSE
			&& m_TrkCh[i].nStep == TRK_IDLE)
			return i;
	}
	return -1;
}


void CFax_Event_VCDlg::OnSelchangeComboTrkch() 
{
	// TODO: Add your control notification handler code here
	char sz[50];
	m_cmbTrkChNo.GetLBText(m_cmbTrkChNo.GetCurSel(), sz);
	int n = atoi(sz);
	m_nAutoOrNot = m_TrkCh[n].nAutoOrNot;
	UpdateData(FALSE);
}

// set ID of fax machine
void CFax_Event_VCDlg::OnButtonSetId() 
{
	// TODO: Add your control notification handler code here
	char sz[50];
	m_cmbFaxCh.GetLBText(m_cmbFaxCh.GetCurSel(), sz);
	int n = atoi(sz);
	if(SsmFaxSetID(n, m_strSetId) == -1)
		WriteLog("Fail to call SsmFaxSetID");	
}


void CFax_Event_VCDlg::OnChangeEditSetId() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
}

⌨️ 快捷键说明

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