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

📄 mfw_nm.h

📁 是一个手机功能的模拟程序
💻 H
字号:
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417)         $Workfile:: mfw_nm.h        $|
| $Author: root $Revision: 1.1.1.1 $|
| CREATED: 07.10.98                     $Modtime:: 20.01.00 18:48   $|
| STATE  : code                                                      |
+--------------------------------------------------------------------+

  PURPOSE: Type definitions for network management

*/

#ifndef DEF_MFW_NM
#define DEF_MFW_NM



/* #include "phb.h" RSA 20/12/01 - Removed */
#include"mfw_phb.h" //RSA 20/12/01 - Added
#include "p_mmreg.val"
/*
 * global constants
 */
#define NM_AUTOMATIC    0       /* automatic mode set */
#define NM_MANUAL       1       /* manual mode is set */


/* permit maximal value */

#define MAX_PLMN          12     /* maximal PLMN number */

#define LONG_NAME         26
#define SHORT_NAME        10
#define SP_NAME           17
#define NUMERIC_LENGTH    6

#define MFW_PLMN_AVAILABLE  0   /* a permitted PLMN */
#define MFW_PLMN_FORBIDDEN  1   /* a forbidden PLMN */

#define MFW_FULL_SERVICE      1      /* definition for services */
#define MFW_LIMITED_SERVICE   2
#define MFW_SEARCH_NETWORK    3
#define MFW_NO_SERVICE        0

typedef enum
{
  NEW_PREF_PLMN = 1,    /* Add a new entry to the end of the list        */
  CHANGE_PREF_PLMN,     /* Change the place of two entries               */
  INSERT_PREF_PLMN,     /* Add a new entry to the list at a given index  */
  REPLACE_PREF_PLMN,    /* Overwrite an existing entry  at a given index */
  DELETE_PREF_PLMN      /* Delete an entry from the list                 */
} T_MFW_PPLMN_MODE;

typedef enum
{
  NM_ERR,
  NM_OK
} T_MFW_NM_RETURN;

/*
 * events are organised as bitmaps
 */
#define E_NM_FULL_SERVICE      0x0001
#define E_NM_NO_SERVICE        0x0002
#define E_NM_LIMITED_SERVICE   0x0004
#define E_NM_SEARCH_NETWORK    0x0008
#define E_NM_PLMN_LIST         0x0010
#define E_NM_NO_NETWORK        0x0020
#define E_NM_DEREGISTRATION    0x0040
#define E_NM_PREF_PLMN_LIST    0x0080
#define E_NM_CHANGE_PPLMN_OK   0x0100
#define E_NM_CHANGE_PPLMN_ERR  0x0200
#define E_NM_PPLMN_MEM         0x0400
#define E_MFW_NET_IND          0x0800
#define E_MFW_TIME_IND         0x1000
#define E_NM_CELL_SELECT		 0x1001
#define E_NM_BAND				 0x2000	/*SPR919 - SH - added */

#define E_NM_ALL_SERVICES      /*0x0FFF*/ 0xFFFF /* SPR919 - SH - changed */

/* Structures */

/* Cell Reselection Structure API 16-04-02 */
typedef struct
{
	USHORT ci;		/* cell identification */
	USHORT lid;		/* location identification */
}T_MFW_CELL_STRUCT;
	
typedef struct  /* LONG NAME */
{
  UBYTE dcs;
  UBYTE len;                  /* length of string data        */
  UBYTE data[LONG_NAME];      /* string data                  */
} T_MFW_LNAME;

typedef struct  /* SHORT NAME */
{
  UBYTE dcs;
  UBYTE len;                  /* length of string data        */
  UBYTE data[SHORT_NAME];     /* string data                  */
} T_MFW_SNAME;

typedef struct  /* SERVICE PROVIDER NAME */
{
  UBYTE dcs;
  UBYTE len;               /* length of string data        */
  UBYTE data[SP_NAME];     /* string data                  */
  UBYTE dummy;
} T_MFW_SP_NAME;

typedef struct
{
    SHORT index;
#ifdef NO_ASCIIZ
    T_MFW_SP_NAME service_provider; /* service provider name */
	T_MFW_LNAME network_long;  /* operator name in long format */
    T_MFW_SNAME network_short; /* operator name in short format */
#else
    UBYTE service_provider[LONG_NAME]; /* service provider name */
    UBYTE network_long [LONG_NAME];  /* operator name in long format */
    UBYTE network_short[SHORT_NAME]; /* operator name in short format */
#endif
    UBYTE network_numeric[NUMERIC_LENGTH];  /* operator name in numeric format */
    UBYTE display_condition;
    UBYTE roaming_indicator;    /* PLMN in HPLMN or not */
    UBYTE forbidden_indicator;  /* PLMN is member of the forbidden PLMN list */
    UBYTE *fieldstrength;       /* fieldstrength of PLMN */
} T_MFW_NETWORK_STRUCT;

typedef struct {
    UBYTE count;                /* number of entries in perferred PLMN list */
    T_MFW_NETWORK_STRUCT *plmn;      /* plmn identifications */
} T_MFW_PREF_PLMN_LIST; /* prefered PLMN list*/

typedef struct
{
    UBYTE count;                /* number of available PLMNs */
    T_MFW_NETWORK_STRUCT plmn[MAX_PLMN];  /* plmn identifications */
} T_MFW_PLMN_LIST;

typedef struct
{
    UBYTE maxRcd;               /* maximum preferred PLMN records in SIM card */
    UBYTE usedRcd;              /* used preferred PLMN records in SIM card */
} T_MFW_PPLMN_MEM;

typedef struct /* data for network name */
{
  UBYTE dcs;
  UBYTE add_ci;
  UBYTE num_spare;
  UBYTE len;
  UBYTE data[MMR_MAX_TEXT_LEN];
} T_MFW_NET_NAME;

typedef struct /* data buffer for network name */
{
  UBYTE mcc[SIZE_MCC];       /* mobile country code */
  UBYTE mnc[SIZE_MNC];       /* mobile network code */
  T_MFW_NET_NAME long_name;  /* Network name, long format */
  T_MFW_NET_NAME short_name; /* Network name, short format */
} T_MFW_NET_IND;

typedef struct /* data for timer zone */
{
  UBYTE year;
  UBYTE month;
  UBYTE day;
  UBYTE hour;
  UBYTE minute;
  UBYTE second;
  UBYTE timezone;
} T_MFW_TIME_IND;

/*
 * Network Parameter
 */
typedef union
{
  T_MFW_NETWORK_STRUCT ident;
  T_MFW_PLMN_LIST  plmns;
  T_MFW_PREF_PLMN_LIST pplmns;
  T_MFW_PPLMN_MEM pplmn_mem;
  T_MFW_NET_IND net_info;
  T_MFW_TIME_IND tim_info;
  T_MFW_CELL_STRUCT cell_info;	/* sbh 29-04-02 - Cell reselection */
} T_MFW_NM_PARA;


/*
 * Prototypes
 */

int nm_init (void);
MfwHnd nm_create (MfwHnd hWin, MfwEvt event, MfwCb cbfunc);
MfwRes nm_delete (MfwHnd hWin);
void nm_set_mode (U8 mode);
T_MFW nm_get_mode (void);
T_MFW nm_reg_status (void);
void nm_select_plmn (U8 *network);
void nm_avail_plmn_list (void);
void nm_home_plmn (T_MFW_NETWORK_STRUCT *hplmn);
int nm_plnm_list(T_MFW_NETWORK_STRUCT *plmn_list, int start, int count);
void nm_pref_plmn_list(T_MFW_NETWORK_STRUCT *pplmn, UBYTE count, SHORT start);
T_MFW_NM_RETURN nm_change_pref_plmn(T_MFW_PPLMN_MODE mode,
                                    SHORT index, SHORT index2,
                                    UBYTE *network_numeric);
T_MFW nm_registration (U8 mode, U8 freq_bands, U8 limited);
void nm_deregistration (void);
void nm_abort_avail_plmn(void);
void nm_exit (void);
T_MFW_NM_RETURN nm_pplmn_mem_req(void);

#ifdef NO_ASCIIZ
void nm_get_spn (T_MFW_SP_NAME *spn);
#else
/* PATCH PMC 000804 */
void nm_get_spn (char *);
/* END PATCH PMC */
#endif
void nm_abort_registraion(void);

#endif

/* glowing,2004-06-10, import from M188A */
#define ERR_STATUS 1
#define OK_STATUS  0

EXTERN U16 get_net_status(void);
/* glowing,2004-06-10, end of import */

⌨️ 快捷键说明

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