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

📄 test.c

📁 电信数字交换机用户数据联机下载入磁带程序
💻 C
📖 第 1 页 / 共 5 页
字号:
if (Sw->NewSrv[NOT_DISTURB] == '-' && strchr(buf, 'G'))
    Sw->NewSrv[NOT_DISTURB] = '1';
if (Sw->NewSrv[CALL_FORWARD] == '-' && strchr(buf, 'H'))
    Sw->NewSrv[CALL_FORWARD] = '1';
if (Sw->NewSrv[CALL_WAIT] == '-' && strchr(buf, 'J'))
    Sw->NewSrv[CALL_WAIT] = '1';
if (Sw->NewSrv[CALL_FORWARD_BUSY] == '-' && strchr(buf, 'K'))
    Sw->NewSrv[CALL_FORWARD_BUSY] = '1';
if (Sw->NewSrv[ABSENTEE] == '-' && strchr(buf, 'L'))
    Sw->NewSrv[ABSENTEE] = '1';
if (Sw->NewSrv[THREE_WAY_CALL] == '-' && strchr(buf, 'M'))
    Sw->NewSrv[THREE_WAY_CALL] = '1';
if (Sw->NewSrv[LDXS] == '-' && strchr(buf, 'Y'))	// Incoming Call Display
    Sw->NewSrv[LDXS] = '1';
/*
if (GetPara(Sw->RcvBuff, "KN=", buf, 10)) {
    strcat(Sw->Para, " PASS=");
    strcat(Sw->Para, buf);
    }
*/
return 1;
}





/*==============================================================
Function: GetNumOfLineNEC
Note    : 取实装统计结果
Para    : None
Return  : 1 - if success
          0 - if fail
==============================================================*/
int GetNumOfLineNEC(void)
{
char  buf[32];

if (!GetPara(Sw->RcvBuff, "TOTAL ", buf, 16)) {
    Sw->ReturnCode = 9999;
    return 0;
    }

Sw->InstLine += atoi(buf);
return 1;
}





/*==========================================================
Function: NECMapErrCommon
Note    : Map NEC err, errcode < 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrCommon(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {0, 0},
        {2, 7},     // Terminal err

        /* Operational Error */
        {3, 11},    // Command racing error
        {11, 3},    // Incorrect function code
        {31, 3}, {32, 3}, {34, 3},  // Para error
        {35, 12},   // Double registration or cancellation

        /* Command Equipment Status Prevents Command Execution */

        /* File and Resource Status Prevents Command Execution */
        {254, 10},  // Line busy

        /* Faulty Common Equipment */

        {-1,-1}
        };

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrNEW
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrNEW(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {462,2},            // Double registration, translate to err tel
        {463,8}, {523,8},   // LL error
        {902,10},           // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrDSC
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrDSC(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrSPS
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrSPS(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {464, 12},  // Double stop
        {582, 2},   // Tel error
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrSPR
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrSPR(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {462, 12},  // Double reg
        {582, 2},   // Tel err
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrDNC
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrDNC(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {582, 2},   // Tel err
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrUAN
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrUAN(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrCLC
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrCLC(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {419, 3},   // para err
        {582, 2},   // Tel err
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}




/*==========================================================
Function: NECMapErrMTR
Note    : Map NEC err, errcode >= 400
Para    : None
Return  : None
===========================================================*/
void NECMapErrMTR(void)
{
int    DestErr = 9999, i;
struct {
    int SrcErr;     // source error number from switch
    int DestErr;
    } Map[] = {
        {462, 0},   // Double reg
        {582, 2},   // Tel err
        {902,10},   // Line busy
        {-1,-1}
        };

if (Sw->ReturnCode < 400) {
    NECMapErrCommon();
    return;
    }

for (i=0; Map[i].SrcErr != -1; i++)
    if (Sw->ReturnCode == Map[i].SrcErr) {
        DestErr = Map[i].DestErr;
        break;
        }
Sw->ReturnCode = DestErr;
}





/*==========================================================
Function: NECG30MapErr
Note    : Translate NECG30 error code to swi error code
Para    : None
Return  : None
===========================================================*/
void NECG30MapErr(void)
{
char SrcErr[8];
int  i;
struct {
     char SrcErr[4];
     int  DesErr;
     } Map[] = {
         {"000", 0},
         {"003", 11},   // command race
         {"035", 12},   // (reg mtr) already registered
         {"037", 12},   // (can mtr) not registered
         {"430", 3},    // 呼出限制密码过长 too many characters or digits entered in ocb_pid=12345678
         {"480", 3},    // 呼出限制密码过短 too few characters or digits entered in ocb_pid=12
         {"a04", 3},    // 呼出限制无密码 necessary parameter for ocb service not specified
         {"a15", 12},   // (newsrv) service not registered
         {"a19", 12},   // (newsrv) service already registered
         {"b00", 2},    // subscriber number already registered
         {"b01", 20},   // subscriber number state not suitable
         {"b02", 2},    // subscriber number not registered
         {"b03", 2},    // office code for subscriber number not registered
         {"b04", 2},    // new subscriber number already registered
         {"b10", 8},    // subscriber line equipment number already registered
         {"b12", 8},    // subscriber line equipment number not registered
         {"b14", 8},    // subscriber line equipment number erroneous
         {"d00", 12},   // subscriber state already registered
         {"d03", 10},   // subscriber busy
         {"d05", 10},   // modification of %s not allowed for busy subscriber
         {"520", 3},    // (reg mtr) not installed - 空号
         {"xxx", 9999}
         };
/*
if (!strstr(Sw->RcvBuff, Sw->Tel)) {
    Sw->ReturnCode = 9999;
    return;
    }
*/

if (strstr(Sw->RcvBuff, " end\r"))
    strcpy(SrcErr, "000");
else
    GetPara(Sw->RcvBuff, " err-", SrcErr, 5);

for (i=0; strcmp(Map[i].SrcErr, "xxx")!=0; i++)
    if (strcmp(Map[i].SrcErr, SrcErr) == 0) {
        Sw->ReturnCode = Map[i].DesErr;
        return;
        }

Sw->ReturnCode = 9999;
}





/*==============================================================
Function: GetResultNECG30CRE
Note    :
Para    : None
Return  : None
==============================================================*/
void GetResultNECG30CRE(void)
{
if (!strstr(Sw->RcvBuff, "cre subd") || !strstr(Sw->RcvBuff, Sw->Tel))
    Sw->ReturnCode = 9999;
else
    NECG30MapErr();
}





/*==============================================================
Function: GetResultNECG30VIEW
Note    :
Para    : None
Return  : None
==============================================================*/
void GetResultNECG30VIEW(void)
{
if (!strstr(Sw->RcvBuff, "view subd") || !strstr(Sw->RcvBuff, Sw->Tel))
    Sw->ReturnCode = 9999;
else
    NECG30MapErr();
}





/*==============================================================
Function: GetResultNECG30DEL
Note    :
Para    : None
Return  : None
==============================================================*/
void GetResultNECG30DEL(void)
{
if (!strstr(Sw->RcvBuff, "del subd") || !strstr(Sw->RcvBuff, Sw->Tel))
    Sw->ReturnCode = 9999;
else
    NECG30MapErr();
}





/*==============================================================
Function: GetResultNECG30REG
Note    :
Para    : None
Return  : None
==============================================================*/
void GetResultNECG30REG(void)
{
if (!strstr(Sw->RcvBuff, "reg subd") || !strstr(Sw->RcvBuff, Sw->Tel))
    Sw->ReturnCode = 9999;
else
    NECG30MapErr();
}





/*==============================================================
Function: GetResultNECG30CAN
Note    :
Para    : None
Return  : None
==============================================================*/
void GetResultNECG30CAN(void)
{
if (!strstr(Sw->RcvBuff, "can subd") || !strstr(Sw->RcvBuff, Sw->Tel))
    Sw->ReturnCode = 9999;
else
    NECG30MapErr();
}





/*==============================================================
Function: GetResultNECG30CHG
Note    :
Para    : None

⌨️ 快捷键说明

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