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

📄 swi.c

📁 电信数字交换机用户数据联机下载入磁带程序
💻 C
📖 第 1 页 / 共 5 页
字号:
            case 2200003:
                if (GetPacketNEC() == 0) {
                    Go(2200002);
                    break;
                    }
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                NECMapErrCommon();
                if (Sw->ReturnCode != 0) {
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                if (GetNumOfLineNEC() == 0) {
                    Sw->ReturnCode = 9999;
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                Sw->ExkPtr ++;
                if (strlen(Sw->Exk[Sw->ExkPtr]) == 0) {
                    Sw->ReturnCode = 0;
                    sprintf(Sw->Para, "TOTAL=%d", Sw->InstLine);
                    Go(100);
                    }
                else
                    Go(2200000);
                break;













/* ======== NECG30 Login ======== */
            case 3000000:
                strcpy(SndBuff, "\r");
                Send2Switch();
                ChangeETX(Sw->TcpNodeName, "");
                strcpy(Sw->RcvBuff, "");
                Go(3000001);
                break;

            case 3000001:
            case 3000003:
            case 3000005:
            case 3000007:
                if (Sw->timer > TimeOut) Go(3000000);
                break;

            case 3000002:
                if (strstr(Sw->RcvBuff, " >")) {
                    ChangeETX(Sw->TcpNodeName, " >");
                    Go(3000009);    // Login OK
                    break;
                    }
                if (strstr(Sw->RcvBuff, "Login(")) {
                    sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                    LogInfo(LogBuff);
                    strcpy(SndBuff, NECG30UserName);
                    strcat(SndBuff, "\r");
                    Send2Switch();
                    ChangeETX(Sw->TcpNodeName, "Password:");
                    strcpy(Sw->RcvBuff, "");
                    Go(3000003);
                    break;
                    }
                Go(3000001);
                break;

            case 3000004:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                strcpy(SndBuff, Sw->Password);
                strcat(SndBuff, "\r");
                Send2Switch();
                ChangeETX(Sw->TcpNodeName, " >");
                strcpy(Sw->RcvBuff, "");
                Go(3000005);
                break;

            case 3000006:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                strcpy(SndBuff, "\r");
                Send2Switch();
                //ChangeETX(Sw->TcpNodeName, " >");
                strcpy(Sw->RcvBuff, "");
                Go(3000007);
                break;

            case 3000008:
                Sw->Connect = 1;
                Send2Warn();
                LogWarn();
                // Continue to next step

            case 3000009:    // Login OK
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                Sw->Busy = 0;
                break;

/* ======== NECG30 Delay ======== */
            case 3000050:
                if (Sw->timer >= NECDELAY) Rtn();
                break;
                
/* ======== NECG30 New Line ======== */
            case 3001000:
                if (strlen(Sw->NewSrv) < MAX_NEWSRV_LEN) {
                    Sw->ReturnCode = 3;     // NewSrv parameter error
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3001001:
                GetPara(Sw->Para, "LL=", tmp, 30);
                sprintf(SndBuff, "cre subd n=%s el=%s lcls=indv tel_cls=pb chrg_cls=msgr ", Sw->Tel, tmp);
                if (Sw->NewSrv[INT_CALL] == '1')
                    strcat(SndBuff, "rc_org=0\r");
                else {
                    if (Sw->NewSrv[TOLL_CALL] == '1')
                        strcat(SndBuff, "rc_org=3\r");
                    else
                        strcat(SndBuff, "rc_org=2\r");
                    }
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3001002);
                break;

            case 3001003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30CRE();
                if (Sw->ReturnCode == 0) {
                    Sw->NewSrv[DTMF] = '-';
                    Sw->NewSrv[TOLL_CALL] = '-';
                    Sw->NewSrv[INT_CALL] = '-';
                    GoSub(3010000);     // Go NewSrv
                    }
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

            case 3001004:
                Sw->ReturnCode = 0;
                if (Sw->SP > 0)
                    Rtn();
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

/* ======== NECG30 Remove ======== */
            case 3002000:
                GoSub(3000050);
                break;
                
            case 3002001:
                sprintf(SndBuff, "view subd n=%s\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3002002);
                break;

            case 3002003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30VIEW();
                if (Sw->ReturnCode != 0) {
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                if (!GetPara(Sw->RcvBuff, "el=", tmp, 12)) {
                    Sw->ReturnCode = 2;    // tel error
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3002004:
                sprintf(SndBuff, "del subd n=%s el=%s\r", Sw->Tel, tmp);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3002005);
                break;

            case 3002006:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30DEL();
                if (Sw->SP > 0)     // 无论是否成功都要返回
                    Rtn();
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

/* ======== NECG30 Stop ======== */
            case 3003000:
                GoSub(3000050);
                break;
                
            case 3003001:
                GetPara(Sw->Para, "DIR=", tmp, 2);
                if (strcmp(tmp, "2") == 0)
                    sprintf(SndBuff, "reg subd n=%s st_ope=spsal\r", Sw->Tel);
                else
                    sprintf(SndBuff, "reg subd n=%s st_ope=spso\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3003002);
                break;

            case 3003003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30REG();
                if (Sw->ReturnCode == 12)
                    GoSub(3005000);       // Go to restore
                else
                    Go(3003005);
                break;

            case 3003004:
                Go(3003000);
                break;

            case 3003005:
                strcpy(Sw->Para, "");
                Go(100);
                break;

/* ======== NECG30 Pause ======== */
            case 3004000:
                GoSub(3000050);
                break;
                
            case 3004001:
                sprintf(SndBuff, "reg subd n=%s st_ope=trmv\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3004002);
                break;

            case 3004003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30REG();
                if (Sw->ReturnCode == 12) Sw->ReturnCode = 20;
                strcpy(Sw->Para, "");
                Go(100);
                break;

/* ======== NECG30 Restore ======== */
            case 3005000:
                GoSub(3000050);
                break;
                
            case 3005001:
                sprintf(SndBuff, "can subd n=%s st_ope=spsal\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3005002);
                break;

            case 3005003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30CAN();
                if (Sw->ReturnCode == 20 && Sw->SP == 0)
                    GoSub(3000050);
                else
                    Go(3005007);
                break;               

            case 3005004:
                sprintf(SndBuff, "view subd n=%s\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3005005);
                break;
                
            case 3005006:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30VIEW();
                if (Sw->ReturnCode != 0) {
                    Go(3005007);
                    break;
                    }
                if (!strstr(Sw->RcvBuff, "st="))
                    Sw->ReturnCode = 12;
                else
                    Sw->ReturnCode = 20;
                if (strstr(Sw->RcvBuff, "st=del"))
                    Sw->ReturnCode = 2;
                // Continue next step
                //
                if (Sw->ReturnCode == 12) Sw->ReturnCode = 9;
                //

            case 3005007:
                if (Sw->SP > 0 && Sw->ReturnCode == 0)
                    Rtn();
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

/* ======== NECG30 复活 ======== */
            case 3006000:
                GoSub(3000050);
                break;
                
            case 3006001:
                sprintf(SndBuff, "can subd n=%s st_ope=trmv\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3006002);
                break;

            case 3006003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30CAN();
                strcpy(Sw->Para, "");
                Go(100);
                break;

/* ======== NECG30 Move ======== */
            case 3007000:
                GoSub(3002000);     // Go to Remove
                break;

            case 3007001:
                if (Sw->ReturnCode != 0) {  // Remove not finished
                    strcpy(Sw->Para, "");
                    Go(100);
                    if (Sw->NewSw != Sw) Sw->NewSw->Busy = 0;
                    break;
                    }
                GetPara(Sw->Para, "NEWSRV=", Sw->NewSrv, MAX_NEWSRV_LEN);
                strcat(Sw->NewSrv, "-");	// Temp for Incoming Call Display
                if (Sw->NewSw == Sw) {
                    GetPara(Sw->Para, "NEWTEL=", Sw->Tel, TEL_LEN);
                    Go(3001000);    // Go to New Line
                    }
                else {
                    //strcpy(Sw->NewSw->NewSrv, Sw->NewSrv);
                    strcpy(Sw->NewSw->Para, Sw->Para);
                    Sw->NewSw->Step[0] = Sw->NewSw->SwitchType * 1000000 + 1000;
                    Sw->Busy = 0;
                    }
                break;

⌨️ 快捷键说明

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