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

📄 mm32rom.c

📁 phs 源代码 小灵通协议源代码 phs source code
💻 C
字号:
#ifndef PM_ONPC
#ifdef __cplusplus
extern "C"{
#endif

#include	"phs_def.h"
#include	"mm32.h"
#include 	"_Define.h"



SYS_STATE_TBL	mm_state_p0[] =		//ST_NULL
{
	// message from data link level
	{ L2MM_AUTHENTICATION_REQ, 	mm_auth_req ,		ST_AUTH},
	{ L2MM_FUNCTION_REP, 		mm_fnc_rep ,		STATE_SAME},
	//message from high level
 	{ EINITL3,         			mm_init,			ST_NULL },
 	{ MNMM_LOCATION_REGISTRATION_REQ, 	mm_LocReg_req ,	ST_LOCREG},
 	{ MNMM_FUNCTION_REQ, 		mm_fnc_req,		STATE_SAME },
 	{ PRTM301P, 				mm_tm_301p,		STATE_SAME },
 	{ 0xFF, 					0,		           	STATE_SAME}		//Must end of 0xFF
};

SYS_STATE_TBL	mm_state_p1[ ] =		 //ST_LOCREG
{
	// message from data link level
	{ L2MM_AUTHENTICATION_REQ, 	mm_auth_req, 		ST_AUTH},
	{ L2MM_LOCATION_REGISTRATION_ACK, 	mm_LocReg_ack,	ST_NULL },
 	{ L2MM_LOCATION_REGISTRATION_REJ, 	mm_LocReg_rej,	STATE_MORE },    //ST_LOCREG_R or ST_NULL
	{ L2MM_FUNCTION_REP, 		mm_fnc_rep, 		STATE_SAME},
	//message from high level
	{ EINITL3,         		mm_init,		ST_NULL },
	{ MNMM_FUNCTION_REQ, 	mm_fnc_req,	STATE_SAME },
	{ PRTM301P, 			mm_tm_301p,	STATE_SAME},
	{ PRTM303P, 			mm_tm_303p,	ST_NULL},
	{ 0xFF, 					0,			STATE_SAME}		//Must end of 0xFF
 };


SYS_STATE_TBL	 mm_state_p2[ ] =		  //ST_AUTH
{
 	//message from high level
	{ EINITL3, 				  mm_init,		 ST_NULL },
  	{ MNMM_AUTHENTICATION_REP, mm_auth_rep,	 STATE_MORE },		 //ST_LOCREG or ST_NULL
 	{ PRTM303P,				  mm_tm_303p,	 STATE_SAME },
  	{ 0xFF,					  0, 		 	 STATE_SAME}		//Must end of 0xFF
};

SYS_STATE_TBL	 mm_state_p3[ ] =		  //ST_LOCREG_R
{
 	//message from high level
 	{ PRTM304P,	 mm_tm_304p, 	ST_LOCREG } ,
 	{ EINITL3, 	 mm_init,		 ST_NULL },	//for protocol simulator
 	{ 0xFF,		 0, 			STATE_SAME}				//Must end of 0xFF
};


SYS_STATE_TBL	*mm_state_table[MM_STS_CNT] =
{
	mm_state_p0,
	mm_state_p1,
	mm_state_p2,
	mm_state_p3
};


/*MM Message contents  begin -------------------------------*/
MM_INFOELE	mm_auth_req_msgtype[2] =
{
	{MMINFOELE_AUTHTYPE ,			DOWNLINK , MANDATORY ,TRUE , 2 },
	{MMINFOELE_AUTHRANDOM_PATTERN,	DOWNLINK , MANDATORY ,FALSE, 0}
};

MM_INFOELE	mm_auth_rep_msgtype[1] =
{
	{MMINFOELE_AUTHCIPHERING_PATTERN , UPLINK , MANDATORY , FALSE , 0}
};

MM_INFOELE mm_fnc_req_msgtype[3] = //it is judged by IN_PRIEVT->add_dat from TASKMNG , so it couldn't call mm_pack_dld to forward the primitive message
{
	{MMINFOELE_AUTHTYPE	, 	UPLINK , OPTIONAL , TRUE , 2},
	{MMINFOELE_ACTIVE_AUTH ,UPLINK , OPTIONAL , TRUE , 1},
	{MMINFOELE_PAGING_AREA ,UPLINK , OPTIONAL , TRUE , 2}
};


MM_INFOELE mm_fnc_rep_msgtype[3] = 	//correspond to mm_fnc_req_msgtype
{
	{MMINFOELE_AUTHTYPE ,	DOWNLINK , OPTIONAL , TRUE , 2},
	{MMINFOELE_ACTIVE_AUTH ,DOWNLINK , OPTIONAL , TRUE , 1},
	{MMINFOELE_PAGING_AREA ,DOWNLINK , OPTIONAL , TRUE , 2}
};


MM_INFOELE mm_loc_reg_ack_msgtype[2] =
{
	{MMINFOELE_LOC_REG_AREA_REPORT	, DOWNLINK , OPTIONAL , FALSE , 0}, //length 9~51
	{MMINFOELE_PAGING_GROUP ,		  DOWNLINK , OPTIONAL , TRUE  , 2}
};

MM_INFOELE mm_loc_reg_area_report_msgtype[2] =    //not implemented by current version
{
	{MMINFOELE_LOC_REG_AREA_REPORT , UPLINK , MANDATORY , FALSE , 0},//length 9~51
	{MMINFOELE_RECEPTION_LEVEL	   , UPLINK , MANDATORY , TRUE  , 2}
};

MM_INFOELE mm_loc_reg_rej_msgtype[1] =
{
	{MMINFOELE_CAUSE , DOWNLINK , MANDATORY , TRUE , 2}
};


MM_INFOELE mm_loc_reg_req_msgtype[1] =  //it is judged by IN_PRIEVT->add_dat  from TASKMNG ,so couldn't call mm_pack_dld to forward the primitive message
{
	{MMINFOELE_PS_NUMBER , UPLINK , MANDATORY , TRUE , 8}
};

/*MM Message contents  end -------------------------------*/


#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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