bool ModQualityOK(uchar bSecond) { return (ModInput(bSecond,0) == SER_POSTANSWER_MODEM); }
// соединение с каналом (требует установки diCurr) bool Connect(void) { uchar i; fConnect = 0; ibPort = diCurr.ibPort; if (StreamPort(diCurr.ibPort) == 0) return(0); if (diCurr.ibPhone == 0) return(1); if (mpboEnblCan[ibDig] == false) { ShowLo(szBlockingAll); DelayInf(); return(1); } ShowPort(diCurr.ibPort); ShowLo(szConnect); DelayInf(); for (i=0; i<MaxRepeatsFixed(); i++) { // QueResult(bRES_MODEMBAUD, i); DelayOff(); QueryModemBaud(1); if (ModInputOK(1) == 1) break; if (fKey == true) return(0); } if (i == MaxRepeatsFixed()) ; else { ShowLo(szBaudOK); DelayInf(); mpcwBaud[diCurr.ibPort]++; } for (i=0; i<MaxRepeatsFixed(); i++) { // QueResult(bRES_MODEMCOMMON, i); DelayOff(); QueryModemCommon(1); if (ModInputOK(1) == 1) break; if (fKey == true) return(0); if (i > 0) // переход из состояния hook on { DelayOff(); QueryModemEscape(); if (ModInputOK(3) == 1) ; if (fKey == true) return(0); DelayOff(); QueryModemHookOff(); if (ModInputOK(1) == 1) ; if (fKey == true) return(0); } } if (i == MaxRepeatsFixed()) return(0); ShowLo(szCommonOK); DelayInf(); mpcwCommon[diCurr.ibPort]++; if (boCustomModem == true) { for (i=0; i<MaxRepeatsFixed(); i++) { // QueResult(bRES_MODEMCUSTOM, i); DelayOff(); QueryModemCustom(); if (ModInputOK(1) == 1) break; if (fKey == true) return(0); } if (i == MaxRepeatsFixed()) return(0); ShowLo(szCustomOK); DelayInf(); mpcwCustom[diCurr.ibPort]++; } for (i=0; i<MaxRepeatsFixed(); i++) { // QueResult(bRES_MODEMCONNECT, i); DelayOff(); fConnect = 1; QueryModemConnect(); if ((ModInput(bMaxConnect,1) == SER_POSTANSWER_MODEM) && (ShowModemConnect() == 1)) break; if (fKey == true) return(0); } if (i == MaxRepeatsFixed()) return(0); cbWaitOnline = 0; mpcwConnect[diCurr.ibPort]++; return(1); }