renamed openair-cn to openair3
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7886 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -0,0 +1,865 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
|
||||
|
||||
*******************************************************************************/
|
||||
/*****************************************************************************
|
||||
|
||||
Source at_command.h
|
||||
|
||||
Version 0.1
|
||||
|
||||
Date 2012/03/07
|
||||
|
||||
Product NAS stack
|
||||
|
||||
Subsystem Application Programming Interface
|
||||
|
||||
Author Frederic Maurel
|
||||
|
||||
Description Defines the ATtention (AT) command set supported by the NAS
|
||||
sublayer protocol
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef __AT_COMMAND_H__
|
||||
#define __AT_COMMAND_H__
|
||||
|
||||
#include "userDef.h"
|
||||
#include "networkDef.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/********************* G L O B A L C O N S T A N T S *******************/
|
||||
/****************************************************************************/
|
||||
|
||||
/* Bit masks indicating presence of AT command's optional parameters */
|
||||
#define AT_COMMAND_PARAM0 0x0000 /* no any parameter is present */
|
||||
#define AT_COMMAND_PARAM1 0x0001 /* first parameter is present */
|
||||
#define AT_COMMAND_PARAM2 0x0002 /* 2nd parameter is present */
|
||||
#define AT_COMMAND_PARAM3 0x0004 /* 3rd parameter is present */
|
||||
#define AT_COMMAND_PARAM4 0x0008 /* 4th parameter is present */
|
||||
#define AT_COMMAND_PARAM5 0x0010 /* 5th parameter is present */
|
||||
#define AT_COMMAND_PARAM6 0x0020 /* 6th parameter is present */
|
||||
#define AT_COMMAND_PARAM7 0x0040 /* 7th parameter is present */
|
||||
#define AT_COMMAND_PARAM8 0x0080 /* 8th parameter is present */
|
||||
#define AT_COMMAND_PARAM9 0x0100 /* 9th parameter is present */
|
||||
#define AT_COMMAND_PARAM10 0x0200 /* 10th parameter is present */
|
||||
#define AT_COMMAND_PARAM11 0x0400 /* 11th parameter is present */
|
||||
#define AT_COMMAND_PARAM12 0x0800 /* 12th parameter is present */
|
||||
#define AT_COMMAND_PARAM13 0x1000 /* 13th parameter is present */
|
||||
#define AT_COMMAND_PARAM14 0x2000 /* 14th parameter is present */
|
||||
#define AT_COMMAND_PARAM15 0x4000 /* 15th parameter is present */
|
||||
#define AT_COMMAND_PARAM16 0x8000 /* 16th parameter is present */
|
||||
|
||||
/* Value of the mask parameter for AT commands without any parameters */
|
||||
#define AT_COMMAND_NO_PARAM AT_COMMAND_PARAM0
|
||||
|
||||
/****************************************************************************/
|
||||
/************************ G L O B A L T Y P E S ************************/
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* AT command identifiers
|
||||
* ----------------------
|
||||
* Those currently supported by our Mobile Equipment (ME)
|
||||
*/
|
||||
typedef enum {
|
||||
/*
|
||||
* General commands
|
||||
* ----------------
|
||||
*/
|
||||
AT_CGSN=1, /* Request Product Serial Number identification (IMEI) */
|
||||
AT_CGMI, /* Request manufacturer identification */
|
||||
AT_CGMM, /* Request model identification */
|
||||
AT_CGMR, /* Request revision identification */
|
||||
AT_CIMI, /* Request International Mobile Subscriber Identity */
|
||||
/*
|
||||
* Mobile Termination control and status commands
|
||||
* ----------------------------------------------
|
||||
*/
|
||||
AT_CFUN, /* Set phone functionality */
|
||||
AT_CPIN, /* Enter PIN */
|
||||
AT_CSQ, /* Signal quality */
|
||||
AT_CESQ, /* Extented signal quality */
|
||||
AT_CLAC, /* List all available AT commands */
|
||||
/*
|
||||
* Mobile Termination errors
|
||||
* -------------------------
|
||||
*/
|
||||
AT_CMEE, /* Report mobile termination error */
|
||||
/*
|
||||
* Network service related commands
|
||||
* ---------------------------------
|
||||
*/
|
||||
AT_CNUM, /* Subscriber number */
|
||||
AT_CLCK, /* Facility lock */
|
||||
AT_COPS, /* PLMN selection */
|
||||
AT_CREG, /* Network registration */
|
||||
/*
|
||||
* Commands for Packet Domain
|
||||
* ---------------------------
|
||||
*/
|
||||
AT_CGATT, /* PS attach/detach */
|
||||
AT_CGREG, /* GPRS network registration status */
|
||||
AT_CEREG, /* EPS network registration status */
|
||||
AT_CGDCONT, /* Define PDP Context */
|
||||
AT_CGACT, /* PDP context activate or deactivate */
|
||||
AT_CGPADDR, /* Show PDP address(es) */
|
||||
AT_CGEV, /* Packet Domain event unsolicited result code */
|
||||
AT_COMMAND_ID_MAX
|
||||
} at_command_id_t;
|
||||
|
||||
/*
|
||||
* AT command types
|
||||
* ----------------
|
||||
* - AT action command, used to execute a particular function, which
|
||||
* generally involves more than the simple storage of a value.
|
||||
* - AT set parameter command, used to store a value or values of
|
||||
* subparameters.
|
||||
* - AT read parameter command, used to check the current values of
|
||||
* subparameters.
|
||||
* - AT test parameter command, used to test the existence of the
|
||||
* command and to give information about the type of its subparameters.
|
||||
*/
|
||||
typedef enum {
|
||||
AT_COMMAND_ACT, /* AT action command (ATCMD) */
|
||||
AT_COMMAND_SET, /* AT set parameter command (ATCMD=) */
|
||||
AT_COMMAND_GET, /* AT read parameter command (ATCMD?) */
|
||||
AT_COMMAND_TST, /* AT test parameter command (ATCMD=?) */
|
||||
AT_COMMAND_TYPE_MAX
|
||||
} at_command_type_t;
|
||||
|
||||
/*
|
||||
* ================
|
||||
* General commands
|
||||
* ================
|
||||
*/
|
||||
|
||||
/* CGSN: Request Product Serial Number identification (IMEI)
|
||||
* ---------------------------------------------------------
|
||||
* Returns information text intended to permit the user to identify the
|
||||
* individual Mobile Equipment to which it is connected to.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CGSN AT command type */
|
||||
#define AT_COMMAND_CGSN_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cgsn_s {} at_cgsn_t;
|
||||
|
||||
/* CGMI: Request manufacturer identification
|
||||
* -----------------------------------------
|
||||
* Returns information text intended to permit the user to identify the
|
||||
* manufacturer of the Mobile Equipment to which it is connected to.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CGMI AT command type */
|
||||
#define AT_COMMAND_CGMI_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cgmi_s {} at_cgmi_t;
|
||||
|
||||
/* CGMM: Request model identification
|
||||
* ----------------------------------
|
||||
* Returns information text intended to permit the user to identify the
|
||||
* specific model of the Mobile Equipment to which it is connected to.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CGMM AT command type */
|
||||
#define AT_COMMAND_CGMM_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cgmm_s {} at_cgmm_t;
|
||||
|
||||
/* CGMR: Request revision identification
|
||||
* -------------------------------------
|
||||
* Returns information text intended to permit the user to identify the
|
||||
* version, revision level or date, or other pertinent information of the
|
||||
* Mobile Equipment to which it is connected to.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CGMR AT command type */
|
||||
#define AT_COMMAND_CGMR_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cgmr_s {} at_cgmr_t;
|
||||
|
||||
/* CIMI: Request International Mobile Subscriber Identity
|
||||
* ------------------------------------------------------
|
||||
* Returns <IMSI>, which is intended to permit the user to identify the
|
||||
* individual SIM card or active application in the UICC (GSM or USIM)
|
||||
* which is attached to the Mobile Equipment to which it is connected to.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CIMI AT command type */
|
||||
#define AT_COMMAND_CIMI_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cimi_s {} at_cimi_t;
|
||||
|
||||
/*
|
||||
* ==============================================
|
||||
* Mobile Termination control and status commands
|
||||
* ==============================================
|
||||
*/
|
||||
/* CFUN: Set phone functionality
|
||||
* -----------------------------
|
||||
* Used to set the Mobile Equipment to different power consumption states
|
||||
* Parameter command:
|
||||
* +CFUN=[<fun>[,<rst>]]
|
||||
* <fun> level of functionality
|
||||
* <rst> resetting parameter
|
||||
*/
|
||||
|
||||
/* Functionality levels */
|
||||
#define AT_CFUN_MIN 0 /* minimum functionality */
|
||||
#define AT_CFUN_FULL 1 /* full functionality */
|
||||
#define AT_CFUN_SEND 2 /* disable phone transmit RF circuits only */
|
||||
#define AT_CFUN_RECV 3 /* disable phone receive RF circuits only */
|
||||
#define AT_CFUN_BOTH 4 /* disable phone both transmit and receive
|
||||
* RF circuits */
|
||||
#define AT_CFUN_MAX AT_CFUN_BOTH
|
||||
/* Maximum value of supported functionality
|
||||
* level */
|
||||
#define AT_CFUN_FUN_DEFAULT AT_CFUN_MIN
|
||||
/* Default functionality level applied when
|
||||
* no value is given */
|
||||
/* Resetting parameter values */
|
||||
#define AT_CFUN_NORST 0 /* do not reset the ME before setting it
|
||||
* to <fun> power level (default when <rst>
|
||||
* is not given) */
|
||||
#define AT_CFUN_RST 1 /* reset the ME before setting it to <fun>
|
||||
* power level */
|
||||
#define AT_CFUN_RST_DEFAULT AT_CFUN_NORST
|
||||
/* Default resetting action applied when
|
||||
* no value is given */
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CFUN_FUN_MASK AT_COMMAND_PARAM1
|
||||
#define AT_CFUN_RST_MASK AT_COMMAND_PARAM2
|
||||
|
||||
/* CFUN AT command type */
|
||||
typedef struct {
|
||||
int fun;
|
||||
int rst;
|
||||
} at_cfun_t;
|
||||
|
||||
/* CPIN: Enter PIN
|
||||
* ---------------
|
||||
* Used to enter MT passwords which are needed before any other
|
||||
* functionality of the MT can be used
|
||||
* Parameter command:
|
||||
* +CPIN=<pin>[,<newpin>]
|
||||
* <pin> personal identification number
|
||||
* <newpin> new personal identification number
|
||||
*/
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CPIN_NEWPIN_MASK AT_COMMAND_PARAM2
|
||||
|
||||
/* CPIN AT command type */
|
||||
typedef struct {
|
||||
#define AT_CPIN_SIZE USER_PIN_SIZE /* Number of characters in pin parameter */
|
||||
char pin[AT_CPIN_SIZE+1];
|
||||
char newpin[AT_CPIN_SIZE+1];
|
||||
} at_cpin_t;
|
||||
|
||||
/* CSQ: Signal quality
|
||||
* -------------------
|
||||
* Returns received signal strength indication and channel bit error rate
|
||||
* from the Mobile Equipment
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CSQ AT command type */
|
||||
#define AT_COMMAND_CSQ_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_csq_s {} at_csq_t;
|
||||
|
||||
/* CESQ: Extented signal quality
|
||||
* -----------------------------
|
||||
* Returns received signal quality parameters.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CESQ AT command type */
|
||||
#define AT_COMMAND_CESQ_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cesq_s {} at_cesq_t;
|
||||
|
||||
/* CLAC: List all available AT commands
|
||||
* ------------------------------------
|
||||
* Returns one or more lines of AT Commands that are available for the user.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CLAC AT command type */
|
||||
#define AT_COMMAND_CLAC_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_clac_s {} at_clac_t;
|
||||
|
||||
/*
|
||||
* =========================
|
||||
* Mobile Termination errors
|
||||
* =========================
|
||||
*/
|
||||
/*
|
||||
* CMEE: Report mobile termination error
|
||||
* -------------------------------------
|
||||
* Disables or enables the use of final result code +CME ERROR: <err> as an
|
||||
* indication of an error relating to the functionality of the MT.
|
||||
* <n> = 0, disables result code and displays ERROR instead.
|
||||
* <n> = 1, enables result code and displays numeric <err>
|
||||
* <n> = 2, enables result code and displays verbose <err>
|
||||
* Parameter command:
|
||||
* +CMEE=[<n>]
|
||||
* <n> numeric parameter
|
||||
*/
|
||||
|
||||
/* Numeric parameter values */
|
||||
#define AT_CMEE_OFF 0 /* disable result code */
|
||||
#define AT_CMEE_NUMERIC 1 /* enable numeric result code */
|
||||
#define AT_CMEE_VERBOSE 2 /* enable verbose result code */
|
||||
#define AT_CMEE_N_MIN AT_CMEE_OFF
|
||||
/* Minimum value of supported numeric parameter */
|
||||
#define AT_CMEE_N_MAX AT_CMEE_VERBOSE
|
||||
/* Maximum value of supported numeric parameter */
|
||||
#define AT_CMEE_N_DEFAULT AT_CMEE_OFF
|
||||
/* Default value of supported numeric parameter */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CMEE_N_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CMEE AT command type */
|
||||
typedef struct {
|
||||
int n;
|
||||
} at_cmee_t;
|
||||
|
||||
/*
|
||||
* ================================
|
||||
* Network service related commands
|
||||
* ================================
|
||||
*/
|
||||
/* CNUM: Subscriber number
|
||||
* -----------------------
|
||||
* Returns the MSISDNs related to the subscriber.
|
||||
* Action command:
|
||||
* no parameters
|
||||
*/
|
||||
|
||||
/* CNUM AT command type */
|
||||
#define AT_COMMAND_CNUM_MASK AT_COMMAND_NO_PARAM
|
||||
typedef struct at_cnum_s {} at_cnum_t;
|
||||
|
||||
/* CLCK: Facility lock
|
||||
* -------------------
|
||||
* Used to lock, unlock or interrogate a MT or a network facility <fac>.
|
||||
* Action command:
|
||||
* +CLCK=<fac>,<mode>[,<passwd>]
|
||||
* <fac> facility value
|
||||
* <mode> operation mode
|
||||
* <passwd> password (pin code)
|
||||
*/
|
||||
|
||||
/* Facility values */
|
||||
#define AT_CLCK_SC "SC" /* SIM lock/unlock */
|
||||
|
||||
/* Operation mode */
|
||||
#define AT_CLCK_UNLOCK 0 /* Unlock (enable) a service */
|
||||
#define AT_CLCK_LOCK 1 /* Lock (disable) a service */
|
||||
#define AT_CLCK_STATUS 2 /* Query the status of a network service */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CLCK_PASSWD_MASK AT_COMMAND_PARAM3
|
||||
|
||||
/* CLCK AT command type */
|
||||
typedef struct {
|
||||
#define AT_CLCK_FAC_SIZE 2
|
||||
char fac[AT_CLCK_FAC_SIZE+1];
|
||||
int mode;
|
||||
#define AT_CLCK_PASSWD_SIZE USER_PIN_SIZE
|
||||
char passwd[AT_CLCK_PASSWD_SIZE+1];
|
||||
} at_clck_t;
|
||||
|
||||
/* COPS: PLMN selection
|
||||
* --------------------
|
||||
* Forces an attempt to select and register the GSM/UMTS/EPS network operator
|
||||
* using the SIM/USIM card installed in the currently selected card slot.
|
||||
* Parameter command:
|
||||
* +COPS=[<mode>[,<format>[,<oper>[,<AcT>]]]]
|
||||
* <mode> operation mode of the network selection
|
||||
* <format> representation format of the network operator
|
||||
* <oper> APN operator identifier
|
||||
* <AcT> access technology
|
||||
*/
|
||||
|
||||
/* Network selection operation modes */
|
||||
#define AT_COPS_AUTO 0 /* automatic mode */
|
||||
#define AT_COPS_MANUAL 1 /* manual mode */
|
||||
#define AT_COPS_DEREG 2 /* deregister from network */
|
||||
#define AT_COPS_FORMAT 3 /* set only <format> for read command +COPS? */
|
||||
#define AT_COPS_MANAUTO 4 /* manual/automatic mode; if manual selection
|
||||
* fails, automatic mode is entered */
|
||||
#define AT_COPS_MODE_DEFAULT AT_COPS_AUTO
|
||||
/* Default operation mode applied when no
|
||||
* value is given */
|
||||
/* Representation formats */
|
||||
#define AT_COPS_LONG NET_FORMAT_LONG /* long format alphanumeric */
|
||||
#define AT_COPS_SHORT NET_FORMAT_SHORT /* short format alphanumeric */
|
||||
#define AT_COPS_NUM NET_FORMAT_NUM /* numeric */
|
||||
#define AT_COPS_FORMAT_MIN AT_COPS_LONG
|
||||
/* Minimum value of supported representation
|
||||
* format */
|
||||
#define AT_COPS_FORMAT_MAX AT_COPS_NUM
|
||||
/* Maximum value of supported representation
|
||||
* format */
|
||||
#define AT_COPS_FORMAT_DEFAULT AT_COPS_LONG
|
||||
/* Default representation format applied when
|
||||
* no value is given */
|
||||
/* Access technology indicators */
|
||||
#define AT_COPS_GSM NET_ACCESS_GSM /* GSM */
|
||||
#define AT_COPS_COMPACT NET_ACCESS_COMPACT /* GSM Compact */
|
||||
#define AT_COPS_UTRAN NET_ACCESS_UTRAN /* UTRAN */
|
||||
#define AT_COPS_EGPRS NET_ACCESS_EGPRS /* GSM w/EGPRS */
|
||||
#define AT_COPS_HSDPA NET_ACCESS_HSDPA /* UTRAN w/HSDPA */
|
||||
#define AT_COPS_HSUPA NET_ACCESS_HSUPA /* UTRAN w/HSUPA */
|
||||
#define AT_COPS_HSDUPA NET_ACCESS_HSDUPA /* w/HSDPA and HSUPA */
|
||||
#define AT_COPS_EUTRAN NET_ACCESS_EUTRAN /* E-UTRAN */
|
||||
#define AT_COPS_ACT_MIN AT_COPS_GSM
|
||||
/* Minimum value of supported access
|
||||
* technology */
|
||||
#define AT_COPS_ACT_MAX AT_COPS_EUTRAN
|
||||
/* Maximum value of supported access
|
||||
* technology */
|
||||
#define AT_COPS_ACT_DEFAULT AT_COPS_GSM
|
||||
/* Default access technology applied when
|
||||
* no value is given */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_COPS_MODE_MASK AT_COMMAND_PARAM1
|
||||
#define AT_COPS_FORMAT_MASK AT_COMMAND_PARAM2
|
||||
#define AT_COPS_OPER_MASK AT_COMMAND_PARAM3
|
||||
#define AT_COPS_ACT_MASK AT_COMMAND_PARAM4
|
||||
|
||||
/* COPS AT command type */
|
||||
typedef struct {
|
||||
int mode;
|
||||
int format;
|
||||
#define AT_COPS_NUM_SIZE NET_FORMAT_NUM_SIZE
|
||||
/* Size of numeric representation format */
|
||||
#define AT_COPS_LONG_SIZE NET_FORMAT_LONG_SIZE
|
||||
/* Size of long alphanumeric representation format */
|
||||
#define AT_COPS_SHORT_SIZE NET_FORMAT_SHORT_SIZE
|
||||
/* Size of short alphanumeric representation format */
|
||||
network_plmn_t plmn;
|
||||
int AcT;
|
||||
} at_cops_t;
|
||||
|
||||
/* CREG: network registration
|
||||
* --------------------------
|
||||
* When <n>=1, returns +CREG: <stat>, the Mobile Equipment's circuit mode
|
||||
* network registration status in GERA/UTRA/E-UTRA Network.
|
||||
* When <n>=2, returns +CREG: <stat>[,<lac>,<ci>[,<AcT>]], the Mobile
|
||||
* Equipment's circuit mode network registration status and location information
|
||||
* in GERA/UTRA/E-UTRA Network.
|
||||
* Parameter command:
|
||||
* +CREG=[<n>]
|
||||
* <n> numeric parameter
|
||||
*/
|
||||
|
||||
/* Numeric parameter values */
|
||||
#define AT_CREG_OFF 0 /* disable network registration unsolicited
|
||||
* result code */
|
||||
#define AT_CREG_ON 1 /* enable network registration unsolicited
|
||||
* result code +CREG: <stat> */
|
||||
#define AT_CREG_BOTH 2 /* enable network registration and location
|
||||
* information unsolicited result code
|
||||
* +CREG: <stat>[,<lac>,<ci>[,<AcT>]] */
|
||||
#define AT_CREG_N_MIN AT_CREG_OFF
|
||||
/* Minimum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CREG_N_MAX AT_CREG_BOTH
|
||||
/* Maximum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CREG_N_DEFAULT AT_CREG_OFF
|
||||
/* Default unsolicited result code applied
|
||||
* when no value is given */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CREG_N_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CREG AT command type */
|
||||
typedef struct {
|
||||
int n;
|
||||
} at_creg_t;
|
||||
|
||||
/*
|
||||
* ==========================
|
||||
* Commands for Packet Domain
|
||||
* ==========================
|
||||
*/
|
||||
/* CGATT: EPS service attach/detach
|
||||
* --------------------------------
|
||||
* Used to attach the MT to, or detach the MT from, the EPS service.
|
||||
* Action command (with optional parameters):
|
||||
* +CGATT=[<state>]
|
||||
* <state> numeric parameter that indicates the state of EPS attachment
|
||||
*/
|
||||
|
||||
/* PS attachment status */
|
||||
#define AT_CGATT_DETACHED 0 /* To detach from EPS service */
|
||||
#define AT_CGATT_ATTACHED 1 /* To attach from EPS service */
|
||||
#define AT_CGATT_STATE_MIN AT_CGATT_DETACHED
|
||||
/* Minimum value of EPS attachment code */
|
||||
#define AT_CGATT_STATE_MAX AT_CGATT_ATTACHED
|
||||
/* Maximum value of EPS attachment code */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CGATT_STATE_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CGATT AT command type */
|
||||
typedef struct {
|
||||
int state;
|
||||
} at_cgatt_t;
|
||||
|
||||
/* CGREG: GPRS network registration status
|
||||
* ---------------------------------------
|
||||
* When <n>=1, returns +CGREG: <stat>, the Mobile Equipment's GPRS network
|
||||
* registration status in GERA/UTRA Network.
|
||||
* When <n>=2, returns +CGREG: <stat>[,<lac>,<ci>[,<AcT>,<rac>]], the Mobile
|
||||
* Equipment's GPRS network registration status and location information in
|
||||
* GERA/UTRA Network.
|
||||
* Parameter command:
|
||||
* +CGREG=[<n>]
|
||||
* <n> numeric parameter
|
||||
*/
|
||||
|
||||
/* Numeric parameter values */
|
||||
#define AT_CGREG_OFF 0 /* disable network registration unsolicited
|
||||
* result code */
|
||||
#define AT_CGREG_ON 1 /* enable network registration unsolicited
|
||||
* result code +CGREG: <stat> */
|
||||
#define AT_CGREG_BOTH 2 /* enable network registration and location
|
||||
* information unsolicited result code
|
||||
* +CGREG: <stat>[,<lac>,<ci>[,<AcT>,<rac>]] */
|
||||
#define AT_CGREG_N_MIN AT_CGREG_OFF
|
||||
/* Minimum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CGREG_N_MAX AT_CGREG_BOTH
|
||||
/* Maximum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CGREG_N_DEFAULT AT_CGREG_OFF
|
||||
/* Default unsolicited result code applied
|
||||
* when no value is given */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CGREG_N_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CGREG AT command type */
|
||||
typedef struct {
|
||||
int n;
|
||||
} at_cgreg_t;
|
||||
|
||||
/* CEREG: EPS network registration status
|
||||
* --------------------------------------
|
||||
* When <n>=1, returns +CEREG: <stat>, the Mobile Equipment's EPS services
|
||||
* registration status in EUTRA Network.
|
||||
* When <n>=2, returns +CEREG: <stat>[,<tac>,<ci>[,<AcT>]], the Mobile
|
||||
* Equipment's EPS services registration status and location information in
|
||||
* EUTRA Network.
|
||||
* Parameter command:
|
||||
* +CEREG=[<n>]
|
||||
* <n> numeric parameter
|
||||
*/
|
||||
|
||||
/* Numeric parameter values */
|
||||
#define AT_CEREG_OFF 0 /* disable network registration unsolicited
|
||||
* result code */
|
||||
#define AT_CEREG_ON 1 /* enable network registration unsolicited
|
||||
* result code +CEREG: <stat> */
|
||||
#define AT_CEREG_BOTH 2 /* enable network registration and location
|
||||
* information unsolicited result code
|
||||
* +CEREG: <stat>[,<tac>,<ci>[,<AcT>]] */
|
||||
#define AT_CEREG_N_MIN AT_CEREG_OFF
|
||||
/* Minimum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CEREG_N_MAX AT_CEREG_BOTH
|
||||
/* Maximum value of supported unsolicited
|
||||
* result code */
|
||||
#define AT_CEREG_N_DEFAULT AT_CEREG_OFF
|
||||
/* Default unsolicited result code applied
|
||||
* when no value is given */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CEREG_N_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CEREG AT command type */
|
||||
typedef struct {
|
||||
int n;
|
||||
} at_cereg_t;
|
||||
|
||||
/* CGDCONT: Define PDP Context
|
||||
* ---------------------------
|
||||
* Specifies PDP context parameter values for a PDP context identified by
|
||||
* the (local) context identification parameter, <cid>.
|
||||
* Parameter command:
|
||||
* +CGDCONT=[<cid>[,<PDP_type>[,<APN>[,<PDP_addr>[,<d_comp>[,<h_comp>
|
||||
* [,<IPv4AddrAlloc>[,<emergency indication>[,<P-CSCF_discovery>
|
||||
* [,<IM_CN_Signalling_Flag_Ind>]]]]]]]]]]
|
||||
* <cid> a numeric parameter which specifies a particular PDP
|
||||
* context definition
|
||||
* <PDP_type> type of packet data protocol ("IP", "IPV6", "IPV4V6")
|
||||
* <APN> Access Point logical Name
|
||||
* <PDP_addr> Mobile Equipment PDP address (not applicable to EPS)
|
||||
* <d_comp> PDP data compression parameter
|
||||
* <h_comp> PDP header compression parameter
|
||||
* <IPv4AddrAlloc> IPv4 address allocation parameter
|
||||
* <emergency indication> emergency bearer services support indication
|
||||
* <P-CSCF_discovery> P-CSCF address discovery parameter
|
||||
* <IM_CN_Signalling_Flag_Ind> IM CN subsystem-related signalling
|
||||
* support indication
|
||||
*/
|
||||
|
||||
/* PDP context identifier */
|
||||
#define AT_CGDCONT_CID_MIN 1 /* Minimum value of context identifier */
|
||||
#define AT_CGDCONT_CID_DEFAULT AT_CGDCONT_CID_MIN
|
||||
/* PDP data compression parameter values */
|
||||
#define AT_CGDCONT_D_COMP_OFF 0 /* PDP data compression is disabled */
|
||||
#define AT_CGDCONT_D_COMP_ON 1 /* manufacturer preferred compression */
|
||||
#define AT_CGDCONT_D_COMP_V42B 2 /* V.42bis */
|
||||
#define AT_CGDCONT_D_COMP_V44 3 /* V.44 */
|
||||
#define AT_CGDCONT_D_COMP_MIN AT_CGDCONT_D_COMP_OFF
|
||||
#define AT_CGDCONT_D_COMP_MAX AT_CGDCONT_D_COMP_V44
|
||||
#define AT_CGDCONT_D_COMP_DEFAULT AT_CGDCONT_D_COMP_OFF
|
||||
/* PDP header compression parameter values */
|
||||
#define AT_CGDCONT_H_COMP_OFF 0 /* PDP header compression is disabled */
|
||||
#define AT_CGDCONT_H_COMP_ON 1 /* manufacturer preferred compression */
|
||||
#define AT_CGDCONT_H_COMP_1144 2 /* RFC1144 (applicable for SNDCP only) */
|
||||
#define AT_CGDCONT_H_COMP_2507 3 /* RFC2507 */
|
||||
#define AT_CGDCONT_H_COMP_3095 4 /* RFC3095 (applicable for PDCP only) */
|
||||
#define AT_CGDCONT_H_COMP_MIN AT_CGDCONT_H_COMP_OFF
|
||||
#define AT_CGDCONT_H_COMP_MAX AT_CGDCONT_H_COMP_3095
|
||||
#define AT_CGDCONT_H_COMP_DEFAULT AT_CGDCONT_H_COMP_OFF
|
||||
/* IPv4AddrAlloc parameter values */
|
||||
#define AT_CGDCONT_IPV4_NAS 0 /* IPv4 Address Allocation through NAS
|
||||
* Signalling */
|
||||
#define AT_CGDCONT_IPV4_DHCP 1 /* IPv4 Address Allocation through DHCP */
|
||||
#define AT_CGDCONT_IPV4_MIN AT_CGDCONT_IPV4_NAS
|
||||
#define AT_CGDCONT_IPV4_MAX AT_CGDCONT_IPV4_DHCP
|
||||
#define AT_CGDCONT_IPV4_DEFAULT AT_CGDCONT_IPV4_NAS
|
||||
/* emergency_indication parameter values */
|
||||
#define AT_CGDCONT_EBS_OFF 0 /* PDP context is not for emergency bearer
|
||||
* services */
|
||||
#define AT_CGDCONT_EBS_ON 1 /* PDP context is for emergency bearer
|
||||
* services */
|
||||
#define AT_CGDCONT_EBS_MIN AT_CGDCONT_EBS_OFF
|
||||
#define AT_CGDCONT_EBS_MAX AT_CGDCONT_EBS_ON
|
||||
#define AT_CGDCONT_EBS_DEFAULT AT_CGDCONT_EBS_OFF
|
||||
/* P_CSCF_discovery parameter values */
|
||||
#define AT_CGDCONT_PCSCF_OFF 0 /* Preference of P-CSCF address discovery
|
||||
* not influenced by +CGDCONTPDP */
|
||||
#define AT_CGDCONT_PCSCF_NAS 1 /* Preference of P-CSCF address discovery
|
||||
* through NAS Signalling */
|
||||
#define AT_CGDCONT_PCSCF_DHCP 2 /* Preference of P-CSCF address discovery
|
||||
* through DHCP */
|
||||
#define AT_CGDCONT_PCSCF_MIN AT_CGDCONT_PCSCF_OFF
|
||||
#define AT_CGDCONT_PCSCF_MAX AT_CGDCONT_PCSCF_DHCP
|
||||
#define AT_CGDCONT_PCSCF_DEFAULT AT_CGDCONT_PCSCF_OFF
|
||||
/* IM_CN_Signalling_Flag_Ind parameter values */
|
||||
#define AT_CGDCONT_IM_CN_OFF 0 /* UE indicates that the PDP context is not
|
||||
* for IM CN subsystem-related signalling
|
||||
* only */
|
||||
#define AT_CGDCONT_IM_CN_ON 1 /* UE indicates that the PDP context is for
|
||||
* IM CN subsystem-related signalling
|
||||
* only */
|
||||
#define AT_CGDCONT_IM_CM_MIN AT_CGDCONT_IM_CN_OFF
|
||||
#define AT_CGDCONT_IM_CM_MAX AT_CGDCONT_IM_CN_ON
|
||||
#define AT_CGDCONT_IM_CM_DEFAULT AT_CGDCONT_IM_CN_OFF
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CGDCONT_CID_MASK AT_COMMAND_PARAM1
|
||||
#define AT_CGDCONT_PDP_TYPE_MASK AT_COMMAND_PARAM2
|
||||
#define AT_CGDCONT_APN_MASK AT_COMMAND_PARAM3
|
||||
#define AT_CGDCONT_PDP_ADDR_MASK AT_COMMAND_PARAM4
|
||||
#define AT_CGDCONT_D_COMP_MASK AT_COMMAND_PARAM5
|
||||
#define AT_CGDCONT_H_COMP_MASK AT_COMMAND_PARAM6
|
||||
#define AT_CGDCONT_IPV4ADDRALLOC_MASK AT_COMMAND_PARAM7
|
||||
#define AT_CGDCONT_EMERGECY_INDICATION_MASK AT_COMMAND_PARAM8
|
||||
#define AT_CGDCONT_P_CSCF_DISCOVERY_MASK AT_COMMAND_PARAM9
|
||||
#define AT_CGDCONT_IM_CN_SIGNALLING_FLAG_IND_MASK AT_COMMAND_PARAM10
|
||||
|
||||
/* CGDCONT AT command type */
|
||||
typedef struct {
|
||||
int cid;
|
||||
#define AT_CGDCONT_PDP_SIZE 6 /* PDP_type may be "IP", "IPV6", "IPV4V6" */
|
||||
char PDP_type[AT_CGDCONT_PDP_SIZE+1];
|
||||
#define AT_CGDCONT_APN_SIZE 100 /* number of characters in APN parameter */
|
||||
char APN[AT_CGDCONT_APN_SIZE+1];
|
||||
#define AT_CGDCONT_ADDR_SIZE 63 /* number of characters in PDP addr
|
||||
* parameter (IPv6 address notation) */
|
||||
char PDP_addr[AT_CGDCONT_ADDR_SIZE+1]; /* Does not apply to EPS */
|
||||
int d_comp;
|
||||
int h_comp;
|
||||
int IPv4AddrAlloc;
|
||||
int emergency_indication;
|
||||
int P_CSCF_discovery;
|
||||
int IM_CN_Signalling_Flag_Ind;
|
||||
} at_cgdcont_t;
|
||||
|
||||
/* CGACT: PDP context activate or deactivate
|
||||
* -----------------------------------------
|
||||
* Used to activate or deactivate the specified PDP context(s).
|
||||
* Action command (with optional parameters):
|
||||
* +CGACT=[<state>[,<cid>[,<cid>[,...]]]]
|
||||
* <state> numeric parameter that indicates the state of PDP context
|
||||
* activation
|
||||
* <cid> a numeric parameter which specifies a particular PDP context
|
||||
* definition
|
||||
*/
|
||||
|
||||
/* PDP context identifier */
|
||||
#define AT_CGACT_CID_MIN 1 /* Minimum value of context identifier */
|
||||
/* PDP context activation status */
|
||||
#define AT_CGACT_DEACTIVATED 0 /* To deactivate the PDP context */
|
||||
#define AT_CGACT_ACTIVATED 1 /* To activate the PDP context */
|
||||
#define AT_CGACT_STATE_MIN AT_CGACT_DEACTIVATED
|
||||
#define AT_CGACT_STATE_MAX AT_CGACT_ACTIVATED
|
||||
#define AT_CGACT_STATE_DEFAULT AT_CGACT_DEACTIVATED
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CGACT_STATE_MASK AT_COMMAND_PARAM1
|
||||
#define AT_CGACT_CID_MASK AT_COMMAND_PARAM2
|
||||
|
||||
/* CGACT AT command type */
|
||||
typedef struct {
|
||||
int state;
|
||||
int cid;
|
||||
} at_cgact_t;
|
||||
|
||||
/* CGPADDR: Show PDP address(es)
|
||||
* -----------------------------
|
||||
* Returns a list of PDP addresses for the specified context identifiers.
|
||||
* +CGPADDR=[<cid>[,<cid>[,...]]]
|
||||
* <cid> a numeric parameter which specifies a particular PDP
|
||||
* context definition
|
||||
*/
|
||||
|
||||
/* PDP context identifier */
|
||||
#define AT_CGPADDR_CID_MIN 1 /* Minimum value of context identifier */
|
||||
|
||||
/* Optional parameter bitmask */
|
||||
#define AT_CGPADDR_CID_MASK AT_COMMAND_PARAM1
|
||||
|
||||
/* CGPADDR AT command type */
|
||||
typedef struct {
|
||||
int cid;
|
||||
} at_cgpaddr_t;
|
||||
|
||||
/*
|
||||
* =================================
|
||||
* Global AT command type definition
|
||||
* =================================
|
||||
*/
|
||||
|
||||
/* AT command type */
|
||||
typedef struct {
|
||||
at_command_id_t id; /* AT command identifier */
|
||||
at_command_type_t type; /* AT command type */
|
||||
int mask; /* Optional parameter bitmask */
|
||||
union {
|
||||
at_cgsn_t cgsn;
|
||||
at_cgmm_t cgmm;
|
||||
at_cgmr_t cgmr;
|
||||
at_cimi_t cimi;
|
||||
at_cfun_t cfun;
|
||||
at_cpin_t cpin;
|
||||
at_csq_t csq;
|
||||
at_cesq_t cesq;
|
||||
at_clac_t clac;
|
||||
at_cmee_t cmee;
|
||||
at_cnum_t cnum;
|
||||
at_clck_t clck;
|
||||
at_cops_t cops;
|
||||
at_cgatt_t cgatt;
|
||||
at_creg_t creg;
|
||||
at_cgreg_t cgreg;
|
||||
at_cereg_t cereg;
|
||||
at_cgdcont_t cgdcont;
|
||||
at_cgact_t cgact;
|
||||
at_cgpaddr_t cgpaddr;
|
||||
} command;
|
||||
} at_command_t;
|
||||
|
||||
/****************************************************************************/
|
||||
/******************** G L O B A L V A R I A B L E S ********************/
|
||||
/****************************************************************************/
|
||||
|
||||
/****************************************************************************/
|
||||
/****************** E X P O R T E D F U N C T I O N S ******************/
|
||||
/****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
** **
|
||||
** Name: at_command_decode() **
|
||||
** **
|
||||
** Description: Parses AT command line and accordingly fills data struc- **
|
||||
** ture. The main functions of the AT command parser are: **
|
||||
** - check the AT command syntax **
|
||||
** - fill parameter values into the data structure **
|
||||
** **
|
||||
** Inputs: buffer: Pointer to the buffer containing AT com- **
|
||||
** mand line **
|
||||
** length: Number of bytes that should be processed **
|
||||
** Others: None **
|
||||
** **
|
||||
** Outputs: at_command: AT command data structure to be filled **
|
||||
** Return: The number of AT commands successfully **
|
||||
** decoded; RETURNerror if an error occurred **
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int at_command_decode(const char* buffer, int length, at_command_t* at_command);
|
||||
|
||||
/****************************************************************************
|
||||
** **
|
||||
** Name: at_command_get_list() **
|
||||
** **
|
||||
** Description: Returns the list of supported AT commands. **
|
||||
** **
|
||||
** Inputs: buffer: Pointer to the buffer containing the **
|
||||
** string representaton of the first AT com- **
|
||||
** mand that is supported by the NAS sublayer **
|
||||
** n_max: Maximum number of AT commands the buffer **
|
||||
** may contain **
|
||||
** Others: None **
|
||||
** **
|
||||
** Outputs: None **
|
||||
** Return: The number of AT commands actually suppor- **
|
||||
** ted by the NAS sublayer **
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int at_command_get_list(const char** buffer, int n_max);
|
||||
|
||||
#endif /* __AT_COMMAND_H__*/
|
||||
Reference in New Issue
Block a user