计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

巧用RBF解决S1240交换机用户割接中的相关问题(一(2)

2013-05-28 01:40
导读:五、程序源代码及相关注释 REM MAC MAIN DEF MAC MAIN ; ;------------------------------------------------- ;DESIGNED BY LIAOZHICAI ,RONGAN TELECOM,2006-12-8 ;REDESIGNED AT 2007-11-25 ;-------

五、程序源代码及相关注释

REM MAC MAIN
DEF MAC MAIN
;
;-------------------------------------------------
;DESIGNED BY LIAOZHICAI ,RONGAN TELECOM,2006-12-8
;REDESIGNED AT 2007-11-25
;-------------------------------------------------
;
SET ERR
RET UWA .ERR_LIST
REM .ERR,.ERRCOUNT,.DN_COUNT
RES ERR
DEF .ERR=0,.ERRCOUNT=0,.DN_COUNT=0          ==》定义全局变量,ERR用于进行出
GET UWA .ERR_LIST                                错判断,ERRCOUNT进行错误计数,
                                                 DN_COUNT则对执行成功号码计数
:DN_LIST                                         ERR_LIST用于暂存不成功号码

:RESULT
RET UWA .ERR_LIST
REM MAC DN_LIST
REM .ERR,.ERRCOUNT,.DN_COUNT
EM

REM MAC ERRDEAL
DEF MAC ERRDEAL                            ==》出错判断及处理模块
.ERR=0
BAS=A
IF .ERRCOUNT>=40T                          ==》超过40个错误则中断执行
:RESULT (科教范文网 fw.nseac.com编辑发布)
RET UWA .ERR_LIST
REM .ERR,.ERRCOUNT,.DN_COUNT
EXIT
END
SCA RBF,1,1K,'NOT SUCCESSFUL'
IF RCX<>0
.ERR=1
BYT .ERR_LIST+.ERRCOUNT*8T=' %0'
.ERRCOUNT=.ERRCOUNT+1
RET MAC
END
SCA RBF,1,1K,'CHGNBR'                   ==》有改号音用户不执行,视为出错
IF RCX<>0
.ERR=1
BYT .ERR_LIST+.ERRCOUNT*8T=' %0'
.ERRCOUNT=.ERRCOUNT+1
RET MAC
END
EM


REM MAC RESULT
DEF MAC RESULT                        ==》执行结果汇总显示模块
BAS=T
ADD .C=0
ADD .DN0,.DN1,.DN2,.DN3,.DN4,.DN5,.DN6,.DN7
CLR
LOC 2,15
TIME
WRI ''
WRI '                SUCCESSFUL DN NUMBER IS  :  ',.DN_COUNT
WRI ''
IF .ERRCOUNT=0
WRI '       CONGRATULATION , NO ERROR OCCURS !  (-_-)(-_-)(-_-)(-_-)'
WRI ''
RET MAC
ENDIF
IF .ERRCOUNT>=40T
WRI '     ALERT:       O V E R F L O W !!! (
WRI ''
ENDIF
WRI '                   NOT SUCCESSFUL DN NUMBER IS :',.ERRCOUNT
WRI ''
WRI '                     LIST AS FOLLOWS ,YOU MUST CHECK IT : '
WRI ''
BAS=A

 COU .ERRCOUNT                                ==》读取ERR_LIST列表,将不成功号码按3个一行显示 (转载自http://zw.NSEAC.com科教作文网)
IF .C<.ERRCOUNT
.DN0=BYT .ERR_LIST+.C*8T
.DN1=BYT .ERR_LIST+.C*8T+1T
.DN2=BYT .ERR_LIST+.C*8T+2T
.DN3=BYT .ERR_LIST+.C*8T+3T
.DN4=BYT .ERR_LIST+.C*8T+4T
.DN5=BYT .ERR_LIST+.C*8T+5T
.DN6=BYT .ERR_LIST+.C*8T+6T
.DN7=BYT .ERR_LIST+.C*8T+7T
WRI '           ',&
WRI '%(.DN0)%(.DN1)%(.DN2)%(.DN3)%(.DN4)%(.DN5)%(.DN6)%(.DN7)',&\.C=.C+1
END
IF .C-.C/3*3=0
WRI ''
ENDIF
IF .C>40T
EXIT
ENDIF

ENDC
WRI ''
WRI ''
EM


REM MAC A
DEF MAC A                                   ==》普通用户割接模块
;
;--------------------------------------------------
;DESIGNED BY LIAOZHICAI ,RONGAN TELECOM,2006-12-8
;P0=MOVEDN,P1=NEWEN
;USED FOR S1240 E74L204
;--------------------------------------------------
;
ADD .NA1,.NA2,.NA3,.NA4
ADD .TN1,.TN2,.TN3,.TN4
ADD .BCGID_1,.BCGID_2,.BCGID
ADD .SUBGRP_1,.SUBGRP_2,.SUBGRP
ADD .OCB_0,.OCB_1,.OCB=0
ADD .SUBCTRL=0,.PASSWORD=0
ADD .DHZL_1=0,.DHZL_2=0
ADD .TOTALBAR=0
ADD .COU=0,.COU_CTRL=0
ADD .SUBCTRL0='',.SUBCTRL1='',.SUBCTRL2=''
BAS=T
SUF=T
COU 8T
ADD .F%(.COU)=''
.COU=.COU+1
ENDC
.COU=0

<4296:DN=K'%0.\:LAST                  ==》显示号码,并获取相关信息

SCA RBF,1,1K,'BCGID'
IF RCX<>0
BAS=T
.BCGID_1=BYT RBF+RCX+7T
.BCGID_2=BYT RBF+RCX+8T
BAS=A
.BCGID='%(.BCGID_1)%(.BCGID_2)'
BAS=T
:BCGUSER %(.BCGID),%0,%1
RET MAC
ENDBCG

:ERRDEAL %0                         ==》对指令执行结果进行分析,出错则中断

(科教范文网http://fw.ΝsΕΑc.com编辑)

IF .ERR=1
RET MAC
ENDERR

SCA RBF,1,1K,'H'''                 ==》读取号码的原设备号值
BAS=T
IF RCX<>0
.NA1=BYT RBF+RDX+2T
.NA2=BYT RBF+RDX+3T
.NA3=BYT RBF+RDX+4T
.NA4=BYT RBF+RDX+5T
.TN1=BYT RBF+RDX+18T
.TN2=BYT RBF+RDX+19T
.TN3=BYT RBF+RDX+20T
.TN4=BYT RBF+RDX+21T
BAS=A
ADD .NA_ORIG='%(.NA1)%(.NA2)%(.NA3)%(.NA4)'
ADD .TN_ORIG='%(.TN1)%(.TN2)%(.TN3)%(.TN4)'
BAS=T
ELS
BAS=A
BYT .ERR_LIST+.ERRCOUNT*8T=' %0'
.ERRCOUNT=.ERRCOUNT+1                         ==》空号退出
RET MAC
ENDEN

SCA RBF,1,1K,'SUBGRP'
IF RCX<>0 AND WOR RBF+RDX+9T<>2031H     ==》为用户组1则不添加
BAS=T
.SUBGRP_1=BYT RBF+RDX+9T
.SUBGRP_2=BYT RBF+RDX+10T
BAS=A
.SUBGRP='%(.SUBGRP_1)%(.SUBGRP_2)'
BAS=T
.F%(.COU)=',7=',.F%(.COU+1)='%(.SUBGRP)'
.COU=.COU+2
ENDIF

SCA RBF,1,1K,'CGLIP'                 ==》各项程控功能判断
IF RCX<>0
.F%(.COU)=',23=',.F%(.COU+1)='1&1'
.COU=.COU+2
END

SCA RBF,1,1K,'INTCP'
IF RCX<>0
IF BYT RBF+RDX+8T='M'
.F%(.COU)=',13=',.F%(.COU+1)='6'
.COU=.COU+2
ORIF BYT RBF+RDX+8T='O'
.F%(.COU)=',13=',.F%(.COU+1)='8'
.COU=.COU+2
END
ENDIF

SCA RBF,1,1K,'PAYPHONE'
IF RCX<>0
.F%(.COU)=',10=',.F%(.COU+1)='2&3'
.COU=.COU+2
END

SCA RBF,1,1K,'TOTALBAR'
IF RCX<>0
.TOTALBAR=1
END

SCA RBF,1,1K,'11832304'
IF RCX<>0
.DHZL_1=1 (科教范文网 fw.nseac.com编辑发布)
ENDIF

SCA RBF,1,1K,'11832305'
IF RCX<>0
.DHZL_2=1
ENDIF

SCA RBF,1,1K,'PERM'                    ==》OCB值仅判断首字
IF RCX<>0
IF WOR RBF+RDX+6T=4D45H
.OCB_0='EMER',.OCB_1='G',.OCB=1
ORIF WOR RBF+RDX+6T=4F4CH
.OCB_0='LOCA',.OCB_1='L',.OCB=1
ORIF WOR RBF+RDX+6T=5553H
.OCB_0='SUBU',.OCB_1='RBAN',.OCB=1
ORIF WOR RBF+RDX+6T=414EH
.OCB_0='NAT',.OCB_1='',.OCB=0
ORIF WOR RBF+RDX+6T=4E49H
.OCB_0='INT',.OCB_1='',.OCB=1
ENDIF
ENDIF

SCA RBF,1,1K,'CFWDU'
IF RCX<>0
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&8'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'CFWDBSUB'
IF RCX<>0 AND WOR RBF+RDX+9T<>3131H AND WOR RBF+RDX+11T<>3338H
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&4'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'CFWDNOR'
IF RCX<>0 AND WOR RBF+RDX+9T<>3131H AND WOR RBF+RDX+11T<>3338H
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&6'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'PASSWORD'
IF RCX<>0
.PASSWORD=1
ADD .PASS1=BYT RBF+RDX+11T
ADD .PASS2=BYT RBF+RDX+12T
ADD .PASS3=BYT RBF+RDX+13T
ADD .PASS4=BYT RBF+RDX+14T
.OCB=0
.SUBCTRL=0
ENDIF

<4295:DN=K'%0,EN=H'%(.NA_ORIG)&%(.TN_ORIG),48.\:LAST
:ERRDEAL %0
IF .ERR=1
RET MAC
ENDERR

<4291:DN=K'%0,EN=H'%1.\:LAST
:ERRDEAL %0
IF .ERR=1
RET MAC
ENDERR

BAS=A

IF .DHZL_1=1
<4294:DN=K'%0,CFWD=ACTIVATE&CFWDBSUB&K'11832304.\:LAST
END

IF .DHZL_2=1
<4294:DN=K'%0,CFWD=ACTIVATE&CFWDNOR&K'11832305.\:LAST
END

IF .PASSWORD=1                ==》INTCP与PASSWORD必须分开执行 本文来自中国科教评价网
<4294:DN=K'%0,28=3&2&%(.OCB_0)%(.OCB_1)
<,40=1&27%(.SUBCTRL0)%(.SUBCTRL1)%(.SUBCTRL2)
<,19=1&"%(.PASS1)%(.PASS2)%(.PASS3)%(.PASS4)".
:LAST
ORIF .SUBCTRL=1
<4294:DN=K'%0%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)
<%(.F5)%(.F6)%(.F7),28=3&2&%(.OCB_0)%(.OCB_1)
<,40=1%(.SUBCTRL0)%(.SUBCTRL1)%(.SUBCTRL2).
:LAST
ORIF .OCB=1
<4294:DN=K'%0%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)
<%(.F5)%(.F6)%(.F7),28=3&2&%(.OCB_0)%(.OCB_1).
:LAST
ENDPASS

IF .COU<>0 AND .SUBCTRL=0 AND .OCB=0
<4294:DN=K'%0%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)
<%(.F5)%(.F6)%(.F7).
:LAST
ENDIF
:ERRDEAL %0
IF .ERR=1
RET MAC
ENDERR

IF .TOTALBAR=1
<4294:DN=K'%0,OCB=ADD&TOTALBAR.\:LAST
END

.DN_COUNT=.DN_COUNT+1

EM


REM MAC BCGUSER
DEF MAC BCGUSER                 ==》与MACRO A类似,改为BCG相关指令
ADD .NA1,.NA2,.NA3,.NA4
ADD .TN1,.TN2,.TN3,.TN4
ADD .BCGID_1,.BCGID_2,.BCGID
ADD .PN_1ST,.PN_2ND,.PN1,.PN2,.PN3,.PN4,.PN5,.PN6,.PN7
ADD .SUBGRP_1,.SUBGRP_2,.SUBGRP
ADD .OCB_0,.OCB_1,.OCB=0
ADD .SUBCTRL=0,.PASSWORD=0
ADD .DHZL_1=0,.DHZL_2=0
ADD .TOTALBAR=0
ADD .COU=0,.COU_CTRL=0
ADD .SUBCTRL0='',.SUBCTRL1='',.SUBCTRL2=''
BAS=T
SUF=T
COU 10T
ADD .F%(.COU)=''
.COU=.COU+1
ENDC
.COU=0

<4381:DN=K'%1.\:LAST
:ERRDEAL %1
IF .ERR=1
RET MAC
ENDERR

SCA RBF,1,1K,'H'''
IF RCX<>0
.NA1=BYT RBF+RDX+2T
.NA2=BYT RBF+RDX+3T
.NA3=BYT RBF+RDX+4T
.NA4=BYT RBF+RDX+5T
.TN1=BYT RBF+RDX+23T
.TN2=BYT RBF+RDX+24T
.TN3=BYT RBF+RDX+25T
.TN4=BYT RBF+RDX+26T
BAS=A
ADD .NA_ORIG='%(.NA1)%(.NA2)%(.NA3)%(.NA4)'

(科教作文网http://zw.ΝsΕac.cOM编辑)

ADD .TN_ORIG='%(.TN1)%(.TN2)%(.TN3)%(.TN4)'
BAS=T
ELS
BAS=A
BYT .ERR_LIST+.ERRCOUNT*8T=' %0'
.ERRCOUNT=.ERRCOUNT+1、
RET MAC
END

SCA RBF,1,1K,'PN'
IF RCX<>0
.PN1=BYT RBF+RDX+5T
.PN2=BYT RBF+RDX+6T
.PN3=BYT RBF+RDX+7T
.PN4=BYT RBF+RDX+8T
.PN5=BYT RBF+RDX+9T
.PN6=BYT RBF+RDX+10T
.PN7=BYT RBF+RDX+11T
BAS=A
.PN_1ST='%(.PN1)%(.PN2)%(.PN3)%(.PN4)'       ==》支持最多7位位长的PN
.PN_2ND='%(.PN5)%(.PN6)%(.PN7)'
BAS=T
ENDIF

SCA RBF,1,1K,'SUBGRP'
IF RCX<>0 AND WOR RBF+RDX+9T<>2031H
BAS=T
.SUBGRP_1=BYT RBF+RDX+9T
.SUBGRP_2=BYT RBF+RDX+10T
BAS=A
.SUBGRP='%(.SUBGRP_1)%(.SUBGRP_2)'
BAS=T
.F%(.COU)=',7=',.F%(.COU+1)='%(.SUBGRP)'
.COU=.COU+2
ENDIF

SCA RBF,1,1K,'CGLIP'
IF RCX<>0
.F%(.COU)=',23=',.F%(.COU+1)='1&1'
.COU=.COU+2
END

SCA RBF,1,1K,'INTCP'
IF RCX<>0
IF BYT RBF+RDX+8T='M'
.F%(.COU)=',13=',.F%(.COU+1)='6'
.COU=.COU+2
ORIF BYT RBF+RDX+8T='O'
.F%(.COU)=',13=',.F%(.COU+1)='8'
.COU=.COU+2
END
ENDIF

SCA RBF,1,1K,'BLNGLEV'
IF RCX<>0
IF BYT RBF+RDX+17T='I'
.F%(.COU)=',15=',.F%(.COU+1)='1&2'
.COU=.COU+2
END
ENDIF

SCA RBF,1,1K,'PAYPHONE'
IF RCX<>0
.F%(.COU)=',10=',.F%(.COU+1)='2&3'
.COU=.COU+2
END

SCA RBF,1,1K,'TOTALBAR'
IF RCX<>0
.TOTALBAR=1
END

SCA RBF,1,1K,'11832304'
IF RCX<>0
.DHZL_1=1
ENDIF

SCA RBF,1,1K,'11832305'
IF RCX<>0
.DHZL_2=1
ENDIF

SCA RBF,1,1K,'PERM'
IF RCX<>0
IF WOR RBF+RDX+6T=4D45H
.OCB_0='EMER',.OCB_1='G',.OCB=1
ORIF WOR RBF+RDX+6T=4F4CH
.OCB_0='LOCA',.OCB_1='L',.OCB=1 (科教范文网 Lw.nsEAc.com编辑整理)
ORIF WOR RBF+RDX+6T=5553H
.OCB_0='SUBU',.OCB_1='RBAN',.OCB=1
ORIF WOR RBF+RDX+6T=414EH
.OCB_0='NAT',.OCB_1='',.OCB=0
ORIF WOR RBF+RDX+6T=4E49H
.OCB_0='INT',.OCB_1='',.OCB=1
ENDIF
ENDIF

SCA RBF,1,1K,'CFWDU'
IF RCX<>0
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&8'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'CFWDBSUB'
IF RCX<>0 AND WOR RBF+RDX+9T<>3131H AND WOR RBF+RDX+11T<>3338H
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&4'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'CFWDNOR'
IF RCX<>0 AND WOR RBF+RDX+9T<>3131H AND WOR RBF+RDX+11T<>3338H
.SUBCTRL=1
.SUBCTRL%(.COU_CTRL)='&6'
.COU_CTRL=.COU_CTRL+1
ENDIF

SCA RBF,1,1K,'PASSWORD'
IF RCX<>0
.PASSWORD=1
ADD .PASS1=BYT RBF+RDX+11T
ADD .PASS2=BYT RBF+RDX+12T
ADD .PASS3=BYT RBF+RDX+13T
ADD .PASS4=BYT RBF+RDX+14T
.OCB=0
.SUBCTRL=0
ENDIF

BAS=A
<4380:DN=K'%1,EN=H'%(.NA_ORIG)&%(.TN_ORIG),48.\:LAST
:ERRDEAL %1
IF .ERR=1
RET MAC
ENDERR

<4430:BCGID=%0,EN=H'%(.NA_ORIG)&%(.TN_ORIG),OPTION=REMOVE.\:LAST

<4430:BCGID=%0,EN=H'%2,OPTION=ADD.\:LAST
:ERRDEAL %1
IF .ERR=1
RET MAC
ENDERR

<4378:BCGID=%0,DN=K'%1,EN=H'%2,PN=K'%(.PN_1ST)%(.PN_2ND).\:LAST
:ERRDEAL %1
IF .ERR=1
RET MAC
ENDERR

IF .DHZL_1=1
<4382:DN=K'%1,CFWD=ACTIVATE&CFWDBSUB&K'11832304.\:LAST
END

IF .DHZL_2=1
<4382:DN=K'%1,CFWD=ACTIVATE&CFWDNOR&K'11832305.\:LAST
END

IF .PASSWORD=1
<4382:DN=K'%1,28=3&2&%(.OCB_0)%(.OCB_1)
<,40=1&27%(.SUBCTRL0)%(.SUBCTRL1)%(.SUBCTRL2)
<,19=1&"%(.PASS1)%(.PASS2)%(.PASS3)%(.PASS4)".
:LAST
ORIF .SUBCTRL=1
<4382:DN=K'%1%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)

(科教作文网http://zw.ΝsΕac.cOM编辑)

<%(.F5)%(.F6)%(.F7)%(.F8)%(.F9),28=3&2&%(.OCB_0)%(.OCB_1)
<,40=1%(.SUBCTRL0)%(.SUBCTRL1)%(.SUBCTRL2).
:LAST
ORIF .OCB=1
<4382:DN=K'%1%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)
<%(.F5)%(.F6)%(.F7)%(.F8)%(.F9),28=3&2&%(.OCB_0)%(.OCB_1).
:LAST
ENDPASS

IF .COU<>0 AND .SUBCTRL=0 AND .OCB=0
<4382:DN=K'%1%(.F0)%(.F1)%(.F2)%(.F3)%(.F4)
<%(.F5)%(.F6)%(.F7)%(.F8)%(.F9).
:LAST
ENDIF
:ERRDEAL %1
IF .ERR=1
RET MAC
ENDERR

IF .TOTALBAR=1
<4382:DN=K'%1,OCB=ADD&TOTALBAR.\:LAST
END

.DN_COUNT=.DN_COUNT+1

EM

上一篇:小灵通预付费话费核对程序-通信工程毕业论文 下一篇:没有了