📄 fax_event_vcdlg.cpp
字号:
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 + -