📄 mn80rom.c
字号:
#ifndef PM_ONPC
#ifdef __cplusplus
extern "C"{
#endif
#include "phs_def.h"
#include "mn80.h"
MN_EVENTREC M0EVENT[] =
{
EPWRON, ZERO_WORD, Mn_MInitial,
PM_MNG, (U2)PMMN_RESET, Mn_SReset,
END, END, err_dsp
};
MN_EVENTREC M1EVENT[] =
{
PM_MNG, (U2)PMMN_INITDDL1 , Mn_MInitData1,
PM_MNG, (U2)PMMN_INITDDL2 , Mn_MInitData2,
PM_MNG, (U2)PMMN_RESET, Mn_SReset,
END, END, err_dsp
};
MN_EVENTREC M2EVENT[] =
{
PM_MNG, (U2)PMMN_RESET, Mn_SReset,
END, SRCH, Mn_SSeparate
};
MN_EVENTREC PSEVENT[] =
{
TIACCALL , ZERO_WORD, Mn_PAccTimer,
TIACLOC , ZERO_WORD, Mn_PAccTimer,
TIRETRY , ZERO_WORD, Mn_Retry,
TIPAGE , ZERO_WORD, Mn_ti_page,
END , END , err_dsp
};
MN_EVENTREC PCEVENT[] =
{ EL1_STAT, ZERO_WORD, Mn_PTchL1Err,
PM_MNG, (U2)PMMN_COMM_DIS , Mn_PCutReq,
PM_MNG, (U2)PMMN_RADIO_FREE, Mn_PRadCutReq,
ECC, PSCALDIS, Mn_PCutDsp,
ECC, PSCALFRE, Mn_PReleaseDsp,
ECC, PSCALFAL, Mn_PReleaseEnd,
ERT, PSRCHDIS, Mn_PRadioCut,
ERT, PSRCHEND, Mn_PRadioEnd,
ERT, PSSYNC, Mn_PTchSyncOK,
ERT, PSSYNNG, Mn_PTchSyncNG,
ERT, PSDWBRMV, Mn_PSyncBstrcv,
ERT, DOWN_BST, Mn_Bst_Ho,
PM_MNG, (U2)PMMN_FACILITY, Mn_PFacReq,
ECC, PSFCLTY, Mn_PFacDsp,
ECC, PSTHRU, Mn_PThruDsp,
PM_MNG, (U2)PMMN_DIAL_OUT, Mn_PDialReq,/*拨号请求*/
ECC, PSADDINF, Mn_PCCValDsp,
ECC, PSTXCOMP, Mn_HTxComp,
ERT, PSRTOPT, Mn_PRTOptDsp,
ECC, PSCALOPT, Mn_PCCOptDsp,
TIACCALL, ZERO_WORD, Mn_PAccTimer,
TIACLOC, ZERO_WORD, Mn_PAccTimer,
TIRETRY, ZERO_WORD, Mn_Retry,
TIPAGE, ZERO_WORD, Mn_ti_page,
TITC309P, ZERO_WORD, Mn_PTC309PTo,
PM_MNG, PMMN_TCH_SWT , Mn_PowerSearch,
END, END, err_dsp };
MN_EVENTREC P0EVENT[] =
{
PM_MNG, (U2)PMMN_CCH_EST , Mn_PCCHEstablish,
END, SRCH, (void (*)(void))PSEVENT
};
MN_EVENTREC P1EVENT[] =
{ TICCHMON, ZERO_WORD, Mn_PCCHMonTo,
PM_MNG, (U2)PMMN_CCH_FREE, Mn_PCCHLiberate,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PRadioInit,
END, SRCH, (void (*)(void))PSEVENT
};
MN_EVENTREC P2EVENT[] =
{ ERCHINFO, ZERO_WORD, Mn_PRadioInfo,
ESYSINFO, ZERO_WORD, Mn_PSysInfo,
ESY2INFO, ZERO_WORD, Mn_PSysInfo,
ESY3INFO, ZERO_WORD, Mn_PSysInfo,
ESCCH, ZERO_WORD, Mn_PCsyncOut,
EPCH, ZERO_WORD, Mn_PIncomCall,
PM_MNG, (U2)PMMN_CCH_FREE, Mn_PCCHLiberate,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PRadioInit,
TICCHEST, ZERO_WORD, Mn_PCCHTimUp,
TICSYNC, ZERO_WORD, Mn_PCCHTimUp,
TICCHSHT, ZERO_WORD, Mn_PCCHTimUp,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P3EVENT[] =
{ PM_MNG, (U2)PMMN_LOC_REG, Mn_PLocReg,
PM_MNG, (U2)PMMN_COMM_SET, Mn_PCallSet,
EPCH, ZERO_WORD, Mn_PIncomCall,
PM_MNG, (U2)PMMN_INCALL_REP, Mn_PIncomRs,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PRadioInit,
PM_MNG, (U2)PMMN_CCH_FREE, Mn_PCCHLiberate,
PM_MNG, (U2)PMMN_CCH_EST , Mn_PCCHReEstab,
ESCCH, ZERO_WORD, Mn_PCsyncOut,
ERCHINFO, ZERO_WORD, Mn_PReRadioInfo,
ESYSINFO, ZERO_WORD, Mn_PReSysInfo,
ESY2INFO, ZERO_WORD, Mn_PReSysInfo,
ESY3INFO, ZERO_WORD, Mn_PReSysInfo,
TICSYNC, ZERO_WORD, Mn_PCCHTimUp,
TICCHSHT, ZERO_WORD, Mn_PCCHTimUp,
TICCHMON, ZERO_WORD, Mn_PWaitCCHMonTo,
TIWMONIT1, ZERO_WORD, Mn_Atimerstop,
TICCHEST, ZERO_WORD, Mn_PCCHTimUp,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P4EVENT[] =
{ ERT, PSLCHASG, Mn_PLink,
ERT, PSLCHREF, Mn_PLinkNG,
ERT, PSLCHNG, Mn_PRadioInit,
ERT, PSSYNC, Mn_PSamePeriod,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PRadioInit,
ERCHINFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESY2INFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESY3INFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESCCH, ZERO_WORD, Mn_PCsyncRssiChk,
EPCH, ZERO_WORD, Mn_PCsyncRssiChk,
TICSYNC, ZERO_WORD, Mn_PRadioInit,
TICCHSHT, ZERO_WORD, Mn_PRadioInit,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P5EVENT[] =
{ EL3SETRS, ZERO_WORD, Mn_PCallDLSet,
EL3FRERS, ZERO_WORD, Mn_PCallDLF,
ECC, PSCALREC, Mn_PCallSetAcp,
ERT, PSDEFINF, Mn_PCallDefInfo,
ERT, PSRTFUNC, Mn_PCallRTFncRes,
EMM, MMMN_FUNCTION_RES , Mn_PCallMMFncRes,
EMM, MMMN_AUTHENICATION_REQ , Mn_PCallMMCtf,
ERT, PSDEFING, Mn_PFuncReqNG,
ERT, PSRTFUNG, Mn_PFuncReqNG,
EMM, MMMN_FUNCTION_REQ_FAIL , Mn_PFuncReqNG,
ECC, PSCALFAL, Mn_PReleaseEnd,
ECC, PSCALCON, Mn_PCCCall,
ECC, PSCALPRC, Mn_PCCRspns,
ECC, PSPRGRES, Mn_PProgress,
EMDLERRDSP, ZERO_WORD, Mn_PRadioInit,
END, SRCH, (void (*)(void))PCEVENT };
MN_EVENTREC P6EVENT[] =
{ ECC, PSCALCON, Mn_PCCCall,
ECC, PSCALPRC, Mn_PCCRspns,
ECC, PSPRGRES, Mn_PProgress,
ERT, PSZONINF, Mn_PZoneInfo,
EL3FRERS, ZERO_WORD, Mn_HakDLRrcv,
EL3SETRS, ZERO_WORD, Mn_PTchDLSrcv,
END, SRCH, (void (*)(void))PCEVENT };
MN_EVENTREC P7EVENT[] =
{ ERT, PSLCHASG, Mn_PLink,
ERT, PSLCHREF, Mn_PLinkNG,
ERT, PSLCHNG, Mn_PRadioInit,
ERT, PSSYNC, Mn_PSamePeriod,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PRadioInit,
ERCHINFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESY2INFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESY3INFO, ZERO_WORD, Mn_PCsyncRssiChk,
ESCCH, ZERO_WORD, Mn_PCsyncRssiChk,
EPCH, ZERO_WORD, Mn_PCsyncRssiChk,
TICSYNC, ZERO_WORD, Mn_PRadioInit,
TICCHSHT, ZERO_WORD, Mn_PRadioInit,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P8EVENT[] =
{ EL3SETRS, ZERO_WORD, Mn_PIncomDLSet,
EL3FRERS, ZERO_WORD, Mn_PTchDLRrcv,
ECC, PSCALSET, Mn_PIncomSet,
ERT, PSDEFINF, Mn_PCallDefInfo,
ERT, PSRTFUNC, Mn_PCallRTFncRes,
EMM, MMMN_FUNCTION_RES , Mn_PCallMMFncRes,
EMM, MMMN_AUTHENICATION_REQ, Mn_PCallMMCtf,
ECC, PSPRGRES, Mn_PProgress,
ERT, PSDEFING, Mn_PFuncReqNG,
ERT, PSRTFUNG, Mn_PFuncReqNG,
EMM, MMMN_FUNCTION_REQ_FAIL, Mn_PFuncReqNG,
EMDLERRDSP, ZERO_WORD, Mn_PRadioInit,
END, SRCH, (void (*)(void))PCEVENT
};
MN_EVENTREC P9EVENT[] =
{
PM_MNG , (U2)PMMN_ALERT , Mn_PIncomAlertRq,
PM_MNG , (U2)PMMN_COMM_REP, Mn_PIncomRsRq,
ECC , PSCALPRC, Mn_PIncomRsDp,
EL3SETRS , ZERO_WORD, Mn_PTchDLSrcv,
EL3FRERS , ZERO_WORD, Mn_PIncomDLF,
END , SRCH, (void (*)(void))PCEVENT
};
MN_EVENTREC P10EVENT[] =
{
EL1_STAT, ZERO_WORD, Mn_PTchChange,
ERT, PSTCHASS, Mn_PTchChgIns,
ERT, PSTCHACA, Mn_PTchChgRelease,
ERT, PSTCHAPH, Mn_PTchChgRegul,
ERT, PSSYNC, Mn_PTchSyncOK,
ERT, PSSYNNG, Mn_PTchSyncNG,
ERT, PSZONINF, Mn_PZoneInfo,
EL3FRERS, ZERO_WORD, Mn_PDLinkRDsp,
ERT, DOWN_BST, Mn_Bst_Ho,
PM_MNG, (U2)PMMN_TCH_DATA, Mn_HTCHDatReq,
END, SRCH, (void (*)(void))PCEVENT };
MN_EVENTREC P11EVENT[] =
{ PM_MNG, (U2)PMMN_COMM_DIS, Mn_PCutReq,
PM_MNG, (U2)PMMN_RADIO_FREE, Mn_PRadCutReq,
PM_MNG, (U2)PMMN_COMM_FREE, Mn_PReleaseReq,
ECC, PSCALDIS, Mn_PCutDsp,
ECC, PSCALFRE, Mn_PReleaseDsp,
ECC, PSCALFAL, Mn_PReleaseEnd,
EL3FRERS, ZERO_WORD, Mn_PLinkCut,
ERT, PSRCHDIS, Mn_PRadioCut,
ERT, PSRCHEND, Mn_PRadioEnd,
ERT, PSSYNNG, Mn_PRadioInit,
ECC, PSTXCOMP, Mn_HTxComp,
ECC, PSFCLTY, Mn_PFacDsp,
TITCHFRE, ZERO_WORD, Mn_PRadioRelease,
EL1_STAT, ZERO_WORD, Mn_PTchL1Err,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P12EVENT[] =
{ ERT, PSTCHASS, Mn_PTchChgIns,
ERT, PSSYNC, Mn_PTchChgSync,
EL3SETRS, ZERO_WORD, Mn_PTchChgEnd,
ERT, PSSYNNG, Mn_PTchChgNG,
ERT, PSTCHARE, Mn_PTchChgStp,
ERT, PSTCHACA, Mn_PTchChgRelease,
ERT, PSTCHAPH, Mn_PTchChgRegul,
EL3FRERS, ZERO_WORD, Mn_PRadioInit,
TIHANDOV, ZERO_WORD, Mn_PHOTimOut,
END, SRCH, (void (*)(void))PCEVENT };
MN_EVENTREC P13EVENT[] =
{ ERT, PSTCHASS, Mn_PTchChgIns,
ERT, PSLCHASG, Mn_PLink,
ERT, PSLCHNG, Mn_PRadioInit, /* for protocol simulator */
ERT, PSSYNC, Mn_PTchChgSync,
EL3SETRS, ZERO_WORD, Mn_PHORCall,
ERT, PSSYNNG, Mn_PTchChgNG,
ERT, PSTCHARE, Mn_PTchChgStp,
ERT, PSTCHACA, Mn_PTchChgRelease,
ERT, PSTCHAPH, Mn_PTchChgRegul,
EL3FRERS, ZERO_WORD, Mn_PRadioInit,
TIHANDOV, ZERO_WORD, Mn_PHOTimOut,
END, SRCH, (void (*)(void))PCEVENT };
MN_EVENTREC P14EVENT[] =
{ ERT, PSLCHASG, Mn_PLink,
ERT, PSSYNC, Mn_PSamePeriod,
ERT, PSLCHREF, Mn_PLocSyncNG,
ERT, PSLCHNG, Mn_PLocSyncNG,
PM_MNG, (U2)PMMN_RADIO_FREE, Mn_PLocFrcInit,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PLocHakInit,
TICCHSHT, ZERO_WORD, Mn_PRadioInit,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P15EVENT[] =
{ EL3SETRS, ZERO_WORD, Mn_PLocDLSet,
ERT, PSDEFINF, Mn_PCallDefInfo,
ERT, PSRTFUNC, Mn_PCallRTFncRes,
EMM, MMMN_FUNCTION_RES , Mn_PCallMMFncRes,
EMM, MMMN_AUTHENICATION_REQ , Mn_PCallMMCtf,
EMM, MMMN_LOCATION_REGISTRATION_ACK , Mn_PLocAcpt,
EMM, MMMN_LOCATION_REGISTRATION_REJ , Mn_PLocNG,
EL3FRERS, ZERO_WORD, Mn_PTchDLRrcv,
PM_MNG, (U2)PMMN_RADIO_FREE, Mn_PLocFrcRel,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PLocHakRel,
ERT, PSRCHDIS, Mn_PLocRRel,
EMM, MMMN_LOCATION_REGISTRATION_FAIL , Mn_PLocDLNG,
EMM, MMMN_FUNCTION_REQ_FAIL , Mn_PLocDLNG,
ERT, PSRTFUNG, Mn_PLocDLNG,
ERT, PSDEFING, Mn_PLocDLNG,
ERT, PSDWBRMV, Mn_PRadioInit,
EL1_STAT, ZERO_WORD, Mn_PTchL1Err,
TITC309P, ZERO_WORD, Mn_PTC309PTo,
END, SRCH, (void (*)(void))PSEVENT };
MN_EVENTREC P16EVENT[] =
{ EL3FRERS, ZERO_WORD, Mn_PLinkCut,
ERT, PSRCHDIS, Mn_PLocRRel,
ERT, PSRCHEND, Mn_PLocRRel,
ERT, PSSYNNG, Mn_PRadioInit,
PM_MNG, (U2)PMMN_RADIO_FREE, Mn_PLocFrcRel,
PM_MNG, (U2)PMMN_COMM_DIS, Mn_PLocHakRel,
TITCHFRE, ZERO_WORD, Mn_PRadioRelease,
END, SRCH, (void (*)(void))PSEVENT };
/****************************************************************************/
/* State Table */
/****************************************************************************/
/*--------------------MN layer state in PHS_COMMON_STS mode--------------------*/
/*状态表*/
MN_EVENTREC *COMM_STATE[3] = {M0EVENT, M1EVENT, M2EVENT};
/*----------------MN layer state in PHS_PUBLIC_STS or PHS_PRIVATE_STS mode---------*/
MN_EVENTREC *PUB_PRV_STATE[17] = {
P0EVENT, P1EVENT, P2EVENT, P3EVENT, P4EVENT,
P5EVENT, P6EVENT, P7EVENT, P8EVENT, P9EVENT,
P10EVENT, P11EVENT, P12EVENT, P13EVENT, P14EVENT,
P15EVENT, P16EVENT};
/****************************************************************************/
U1 PAREADEF[7] = { 0x2C,
0x2C,
0x2C,
0x2C,
0x2C,
0xF0,
0x00 };
U1 RTFUNCDEF[8] = { 0x00,
0x10,
0x00,
0xD0,
0x07,
0x00,
0x00,
0xC0 };
U1 MMFUNCDEF[2] = {0x01,
0x80 };
U1 UAPOUT[] = {
PMMN_CCH_EST,
PMMN_CCH_FREE,
UCCHDATA,
PMMN_INCALL_REP,
PMMN_COMM_SET,
PMMN_LOC_REG,
USORDER,
END };
U1 SYSIFDF[2][8] = { 0x0A,0x03,0x00,0x01,0x00,0x00,0x00,0x00,
0x0A,0x03,0x80,0x00,0x00,0x00,0x00,0x00 };
U1 FCINFDEF[39] = {0x1C,
0x00,
0x91,
0xA1,
0x00,
0x02,
0x01,
0x01,
0x06,
0x09,
0x02,
0x83,
0x38,
0x8C,
0x9A,
0x5C,
0x41,
0x01,
0x02,
0x31,
0x00,
0x82,
0x01,
0x01,
0x83,
0x08,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x40,
0x00,
0x6C,
0x00,
0xA1};
U1 PMAILUUI[27] = {0x7E,
0x07,
0x43,
0x01,
0x04,
0x80,
0x7E,
0x01,
0x80};
U1 CSId_msk[8] = {0xFF, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE};
U1 CLSCSID[6] = { 0x00,0x00,0x00,0x00,0x00,0x00};
U1 CLSAREA[7] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00};
U1 ANSKEY[8] = { 0x01,0x03,0x05,0x10,0x30,0x50,0xFF,0x01};
MN_INFTBL CHKTBL[12] = {
1, 1,
ISCCHDAT,0,0,0,0,0,0,0,0,0,
6,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
1, 1,
IINCNO,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
9, 3,
IBEARCAP,ICALLNUM,IINCONUM,IFACILIT,IPROGRES,
IKEYPADF,ICALLADR,IINCOADR,IDDISVS,0,
0,0,0,0,0,0,0,0,0,0,
MJ,MJ,MJ,OJ,OJ,OJ,OJ,OJ,OJ,0,
9, 2,
IBEARCAP,ICALLNUM,IINCONUM,IFACILIT,IPROGRES,
IKEYPADF,ICALLADR,IINCOADR,IDDISVS,0,
0,0,0,0,0,0,0,0,0,0,
MJ,OJ,MJ,OJ,OJ,OJ,OJ,OJ,OJ,0,
2, 1,
IREASON0,IFACILIT,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,OJ,0,0,0,0,0,0,0,0,
2, 2,
IPSNUMBR,ISODATA,0,0,0,0,0,0,0,0,
8,0,0,0,0,0,0,0,0,0,
MJ,MJ,0,0,0,0,0,0,0,0,
1, 1,
IKEYPADF,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
1, 1,
IPFREQ,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
1, 1,
IREASON,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
1, 1,
IPFREQ,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0,
2, 2,
IPSNUMBR,ISODATA,0,0,0,0,0,0,0,0,
8,0,0,0,0,0,0,0,0,0,
MJ,MJ,0,0,0,0,0,0,0,0,
1, 1,
IFACILIT,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
MJ,0,0,0,0,0,0,0,0,0
};
MN_INFTBL DTINFTBL[2] = {
6, 5,
ICARINF,IANSKEY,IPRIORT,ICAROPT,IREWTKY,IREADKY,0,0,0,0,
0,9,2,0,9,9,0,0,0,0,
MJ,MJ,MJ,OJ,MJ,MJ,0,0,0,0,
6, 2,
ISYSINFO,IANSKEY,IPRIORT,ISYSOPT,IREWTKY,IREADKY,0,0,0,0,
0,9,2,0,9,9,0,0,0,0,
MJ,MJ,OJ,OJ,OJ,OJ,0,0,0,0
};
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -