/* * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The OpenAirInterface Software Alliance licenses this file to You under * the OAI Public License, Version 1.1 (the "License"); you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://www.openairinterface.org/?page_id=698 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------------------- * For more information about the OpenAirInterface (OAI) Software Alliance: * contact@openairinterface.org */ /***************************************************************************** Source at_response.h Version 0.1 Date 2012/03/09 Product NAS stack Subsystem Application Programming Interface Author Frederic Maurel Description Defines structure of the AT command response returned after completion of AT command processing. *****************************************************************************/ #ifndef __AT_RESPONSE_H__ #define __AT_RESPONSE_H__ #include "at_command.h" #include "commonDef.h" #include "networkDef.h" /****************************************************************************/ /********************* G L O B A L C O N S T A N T S *******************/ /****************************************************************************/ /* * Total number of characters, including line terminators, in information text */ #define AT_RESPONSE_INFO_TEXT_SIZE 2048 /* * Value of the mask parameter for AT command reponses without any optional * parameters */ #define AT_RESPONSE_NO_PARAM AT_COMMAND_PARAM0 /* * Maximum value of an AT command response identifier */ #define AT_RESPONSE_ID_MAX AT_COMMAND_ID_MAX /****************************************************************************/ /************************ G L O B A L T Y P E S ************************/ /****************************************************************************/ /* * ================ * 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: * +CGSN returns * information text containing the IMEI */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGSN_MASK AT_RESPONSE_NO_PARAM /* CGSN AT command response type */ typedef struct { char sn[AT_RESPONSE_INFO_TEXT_SIZE+1]; } at_cgsn_resp_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: * +CGMI returns * information text containing the manufacturer id */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGMI_MASK AT_RESPONSE_NO_PARAM /* CGMI AT command response type */ typedef struct { char manufacturer[AT_RESPONSE_INFO_TEXT_SIZE+1]; } at_cgmi_resp_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. * +CGMM returns * information text containing the model id */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGMM_MASK AT_RESPONSE_NO_PARAM /* CGMM AT command response type */ typedef struct { char model[AT_RESPONSE_INFO_TEXT_SIZE+1]; } at_cgmm_resp_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. * +CGMR returns * information text containing the revision of the firmware */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGMR_MASK AT_RESPONSE_NO_PARAM /* CGMR AT command response type */ typedef struct { char revision[AT_RESPONSE_INFO_TEXT_SIZE+1]; } at_cgmr_resp_t; /* CIMI: Request International Mobile Subscriber Identity * ------------------------------------------------------ * Returns , 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: * +CIMI returns * International Mobile Subscriber Identity (string without * double quotes) */ /* Optional parameter bitmask */ #define AT_RESPONSE_CIMI_MASK AT_RESPONSE_NO_PARAM /* CIMI AT command response type */ typedef struct { char IMSI[AT_RESPONSE_INFO_TEXT_SIZE+1]; } at_cimi_resp_t; /* * ============================================== * Mobile Termination control and status commands * ============================================== */ /* CFUN: Set phone functionality * ----------------------------- * Used to set the Mobile Equipment to different power consumption states * Read parameter command: * +CFUN? returns +CFUN: * integer type - level of functionality * Test parameter command: * +CFUN=? returns +CFUN: (list of supported s),(list of supported s) */ /* Optional parameter bitmask */ #define AT_RESPONSE_CFUN_MASK AT_RESPONSE_NO_PARAM /* CFUN AT command response type */ typedef struct { int fun; } at_cfun_resp_t; /* CPIN: Enter PIN * --------------- * Used to enter MT passwords which are needed before any other * functionality of the MT can be used * Read parameter command: * +CPIN? returns +CPIN: * string - value may be: "READY", "SIM PIN" */ /* Optional parameter bitmask */ #define AT_RESPONSE_CPIN_MASK AT_RESPONSE_NO_PARAM /* CPIN AT command response type */ typedef struct { #define AT_CPIN_RESP_SIZE 16 char code[AT_CPIN_RESP_SIZE+1]; } at_cpin_resp_t; /* CSQ: Signal quality * ------------------- * Returns received signal strength indication and channel bit error rate * from the Mobile Equipment * Action command: * +CSQ returns +CSQ: , * integer type - received signal strength indication (in dBm) * integer type - channel bit error rate (in percent) */ /* Received signal strength indicator */ #define AT_CSQ_RSSI_0 0 /* -113 dBm or less */ #define AT_CSQ_RSSI_31 31 /* -51 dBm or greater */ #define AT_CSQ_RSSI_UNKNOWN 99 /* not known or not detectable */ /* Channel bit error rate */ #define AT_CSQ_BER_0 0 /* BER < 0.2 % */ #define AT_CSQ_BER_1 1 /* 0.2 % < BER < 0.4 % */ #define AT_CSQ_BER_2 2 /* 0.4 % < BER < 0.8 % */ #define AT_CSQ_BER_3 3 /* 0.8 % < BER < 1.6 % */ #define AT_CSQ_BER_4 4 /* 1.6 % < BER < 3.2 % */ #define AT_CSQ_BER_5 5 /* 3.2 % < BER < 6.4 % */ #define AT_CSQ_BER_6 6 /* 6.4 % < BER < 12.8 % */ #define AT_CSQ_BER_7 7 /* 12.8 % < BER */ #define AT_CSQ_BER_UNKNOWN 99 /* not known or not detectable */ /* Optional parameter bitmask */ #define AT_RESPONSE_CSQ_MASK AT_RESPONSE_NO_PARAM /* CSQ AT command response type */ typedef struct { int rssi; int ber; } at_csq_resp_t; /* CESQ: Extended signal quality * ----------------------------- * Returns received signal quality parameters. * Action command: * +CESQ returns +CESQ: ,,,,, * integer type - received signal strength indication (in dBm) * integer type - channel bit error rate (in percent) * integer type - received signal code power (in dBm) * integer type - ratio of the received energy per PN chip (in dBm) * integer type - reference signal received quality (in dBm) * integer type - reference signal received power (in dBm) */ /* Received signal strength indicator */ #define AT_CESQ_RSSI_0 0 /* -113 dBm or less */ #define AT_CESQ_RSSI_31 31 /* -51 dBm or greater */ #define AT_CESQ_RSSI_UNKNOWN 99 /* not known or not detectable */ /* Channel bit error rate */ #define AT_CESQ_BER_0 0 /* BER < 0.2 % */ #define AT_CESQ_BER_1 1 /* 0.2 % < BER < 0.4 % */ #define AT_CESQ_BER_2 2 /* 0.4 % < BER < 0.8 % */ #define AT_CESQ_BER_3 3 /* 0.8 % < BER < 1.6 % */ #define AT_CESQ_BER_4 4 /* 1.6 % < BER < 3.2 % */ #define AT_CESQ_BER_5 5 /* 3.2 % < BER < 6.4 % */ #define AT_CESQ_BER_6 6 /* 6.4 % < BER < 12.8 % */ #define AT_CESQ_BER_7 7 /* 12.8 % < BER */ #define AT_CESQ_BER_UNKNOWN 99 /* not known or not detectable */ /* Received signal code power */ #define AT_CESQ_RSCP_0 0 /* -120 dBm or less */ #define AT_CESQ_RSCP_96 96 /* -24 dBm or greater */ #define AT_CESQ_RSCP_UNKNOWN 255 /* not known or not detectable */ /* Ratio of the received energy per PN chip (Ec/No) */ #define AT_CESQ_ECNO_0 0 /* -24 dBm or less */ #define AT_CESQ_ECNO_49 49 /* 0,5 dBm or greater */ #define AT_CESQ_ECNO_UNKNOWN 255 /* not known or not detectable */ /* Reference signal received quality */ #define AT_CESQ_RSRQ_0 0 /* -19,5 dBm or less */ #define AT_CESQ_RSRQ_34 34 /* -2,5 dBm or greater */ #define AT_CESQ_RSRQ_UNKNOWN 255 /* not known or not detectable */ /* Reference signal received power */ #define AT_CESQ_RSRP_0 0 /* -140 dBm or less */ #define AT_CESQ_RSRP_97 97 /* -43 dBm or greater */ #define AT_CESQ_RSRP_UNKNOWN 255 /* not known or not detectable */ /* Optional parameter bitmask */ #define AT_RESPONSE_CESQ_MASK AT_RESPONSE_NO_PARAM /* CSQ AT command response type */ typedef struct { int rssi; int ber; int rscp; int ecno; int rsrq; int rsrp; } at_cesq_resp_t; /* CLAC: List all available AT commands * ------------------------------------ * Returns one or more lines of AT Commands that are available for the user. * Action command: * +CLAC returns +CLAC: [[...]] * string - defines the AT command including the prefix AT */ /* Optional parameter bitmask */ #define AT_RESPONSE_CLAC_MASK AT_RESPONSE_NO_PARAM /* CLAC AT command response type */ typedef struct { int n_acs; #define AT_CLAC_RESP_SIZE 100 const char* ac[AT_CLAC_RESP_SIZE]; } at_clac_resp_t; /* * ========================= * Mobile Termination errors * ========================= */ /* * CMEE: Report mobile termination error * ------------------------------------- * Disables or enables the use of final result code +CME ERROR: as an * indication of an error relating to the functionality of the MT. * Read parameter command: * +CMEE? returns +CMEE: * numeric parameter */ /* Optional parameter bitmask */ #define AT_RESPONSE_CMEE_MASK AT_RESPONSE_NO_PARAM /* CMEE AT command response type */ typedef at_cmee_t at_cmee_resp_t; /* * ================================ * Network service related commands * ================================ */ /* CNUM: Subscriber number * ----------------------- * Returns the MSISDNs related to the subscriber. * Action command: * +CNUM returns +CNUM: ,[ * +CNUM: ,[...]] * string type phone number of format specified by * type of address octet in integer format */ /* Optional parameter bitmask */ #define AT_RESPONSE_CNUM_MASK AT_RESPONSE_NO_PARAM /* CNUM AT command response type */ typedef struct { #define AT_CNUM_NUMBER_SIZE MSISDN_DIGIT_SIZE char number[AT_CNUM_NUMBER_SIZE]; int type; } at_cnum_resp_t; /* CLCK: Facility lock * ------------------- * Used to lock, unlock or interrogate a MT or a network facility . * When =2, returns +CLCK: * state of the network service */ /* Network service status */ #define AT_CLCK_RESP_STATUS_NOT_ACTIVE 0 #define AT_CLCK_RESP_STATUS_ACTIVE 1 /* Optional parameter bitmask */ #define AT_RESPONSE_CLCK_MASK AT_RESPONSE_NO_PARAM /* CLCK AT command response type */ typedef struct { int status; } at_clck_resp_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. * Read parameter command: * +COPS? returns +COPS:[,,[,]] * operation mode of the network selection * representation format of the network operator * APN operator identifier * access technology * Test command returns a set of parameters, each representing an operator * present in the network: * +COPS=? returns +COPS: [list of supported (,long alphanumeric , * short alphanumeric ,numeric [,])s][,,(list of supported * s),(list of supported s)] * network operator availability */ /* Optional parameter bitmask */ #define AT_COPS_RESP_FORMAT_MASK AT_COMMAND_PARAM2 #define AT_COPS_RESP_OPER_MASK AT_COMMAND_PARAM3 #define AT_COPS_RESP_ACT_MASK AT_COMMAND_PARAM4 /* Structure of COPS AT test parameter command */ typedef struct { const char* data; /* String representation of the list of operators */ int size; /* Size in byte of the data to be dislayed */ } at_cops_tst_t; /* Structure of COPS AT read parameter command */ typedef at_cops_t at_cops_get_t; /* COPS AT command response type */ typedef union { at_cops_tst_t tst; at_cops_get_t get; } at_cops_resp_t; /* CREG: network registration * -------------------------- * When =1, returns +CREG: , the Mobile Equipment's circuit mode * network registration status in GERA/UTRA/E-UTRA Network. * When =2, returns +CREG: [,,[,]], the Mobile * Equipment's circuit mode network registration status and location information * in GERA/UTRA/E-UTRA Network. * Read parameter command: * +CREG? returns +CREG:,[,,[,]] * numeric parameter * numeric parameter that indicates the circuit mode registration * status * string type; two byte location area code in hexadecimal format * string type; four byte GERAN/UTRAN/E-UTRAN cell ID in hexadeci- * mal format * a numeric parameter that indicates the access technology of * the serving cell */ /* Network registration status */ #define AT_CREG_RESP_REG_OFF NET_REG_STATE_OFF #define AT_CREG_RESP_REG_HN NET_REG_STATE_HN #define AT_CREG_RESP_REG_ON NET_REG_STATE_ON #define AT_CREG_RESP_REG_DENIED NET_REG_STATE_DENIED #define AT_CREG_RESP_REG_UNKNOWN NET_REG_STATE_UNKNOWN #define AT_CREG_RESP_REG_SMS_HN NET_REG_STATE_SMS_HN #define AT_CREG_RESP_REG_SMS_ROAMING NET_REG_STATE_SMS_ROAMING #define AT_CREG_RESP_REG_ROAMING NET_REG_STATE_ROAMING /* Access technology indicators */ #define AT_CREG_RESP_GSM NET_ACCESS_GSM /* GSM */ #define AT_CREG_RESP_COMPACT NET_ACCESS_COMPACT /* GSM Compact */ #define AT_CREG_RESP_UTRAN NET_ACCESS_UTRAN /* UTRAN */ #define AT_CREG_RESP_EGPRS NET_ACCESS_EGPRS /* GSM w/EGPRS */ #define AT_CREG_RESP_HSDPA NET_ACCESS_HSDPA /* UTRAN w/HSDPA */ #define AT_CREG_RESP_HSUPA NET_ACCESS_HSUPA /* UTRAN w/HSUPA */ #define AT_CREG_RESP_HSDUPA NET_ACCESS_HSDUPA /* w/HSDPA and HSUPA */ #define AT_CREG_RESP_EUTRAN NET_ACCESS_EUTRAN /* E-UTRAN */ /* Optional parameter bitmask */ //#define AT_CREG_RESP_N_MASK AT_COMMAND_PARAM1 #define AT_CREG_RESP_LAC_MASK AT_COMMAND_PARAM3 #define AT_CREG_RESP_CI_MASK AT_COMMAND_PARAM4 #define AT_CREG_RESP_ACT_MASK AT_COMMAND_PARAM5 /* CREG AT command response type */ typedef struct { int n; int stat; #define AT_CREG_RESP_LAC_SIZE 4 char lac[AT_CREG_RESP_LAC_SIZE+1]; #define AT_CREG_RESP_CI_SIZE 8 char ci[AT_CREG_RESP_CI_SIZE+1]; int AcT; } at_creg_resp_t; /* * ========================== * Commands for Packet Domain * ========================== */ /* CGATT: GPRS service attach/detach * --------------------------------- * Used to attach the MT to, or detach the MT from, the GPRS service. * Read parameter command: * +CGATT? returns CGATT: * numeric parameter that indicates the state of GPRS attachment * Test parameter command: * +CGATT=? returns CGATT: (list of supported s) */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGATT_MASK AT_RESPONSE_NO_PARAM /* CGATT AT command response type */ typedef struct { int state; } at_cgatt_resp_t; /* CGREG: GPRS network registration status * --------------------------------------- * When =1, returns +CGREG: , the Mobile Equipment's GPRS network * registration status in GERA/UTRA Network. * When =2, returns +CGREG: [,,[,,]], the Mobile * Equipment's GPRS network registration status and location information in * GERA/UTRA Network. * Read parameter command: * +CGREG? returns +CGREG:,[,,[,,]] * numeric parameter * numeric parameter that indicates the GPRS registration status * string type; two byte location area code in hexadecimal format * string type; four byte GERAN/UTRAN cell ID in hexadecimal format * a numeric parameter that indicates the access technology of * the serving cell * string type; one byte routing area code in hexadecimal format */ /* Network registration status */ #define AT_CGREG_RESP_REG_OFF NET_REG_STATE_OFF #define AT_CGREG_RESP_REG_HN NET_REG_STATE_HN #define AT_CGREG_RESP_REG_ON NET_REG_STATE_ON #define AT_CGREG_RESP_REG_DENIED NET_REG_STATE_DENIED #define AT_CGREG_RESP_REG_UNKNOWN NET_REG_STATE_UNKNOWN #define AT_CGREG_RESP_REG_ROAMING NET_REG_STATE_ROAMING #define AT_CGREG_RESP_REG_EMERGENCY NET_REG_STATE_EMERGENCY /* Access technology indicators */ #define AT_CGREG_RESP_GSM NET_ACCESS_GSM /* GSM */ #define AT_CGREG_RESP_COMPACT NET_ACCESS_COMPACT /* GSM Compact */ #define AT_CGREG_RESP_UTRAN NET_ACCESS_UTRAN /* UTRAN */ #define AT_CGREG_RESP_EGPRS NET_ACCESS_EGPRS /* GSM w/EGPRS */ #define AT_CGREG_RESP_HSDPA NET_ACCESS_HSDPA /* UTRAN w/HSDPA */ #define AT_CGREG_RESP_HSUPA NET_ACCESS_HSUPA /* UTRAN w/HSUPA */ #define AT_CGREG_RESP_HSDUPA NET_ACCESS_HSDUPA /* w/HSDPA and HSUPA */ /* Optional parameter bitmask */ //#define AT_CGREG_RESP_N_MASK AT_COMMAND_PARAM1 #define AT_CGREG_RESP_LAC_MASK AT_COMMAND_PARAM3 #define AT_CGREG_RESP_CI_MASK AT_COMMAND_PARAM4 #define AT_CGREG_RESP_ACT_MASK AT_COMMAND_PARAM5 #define AT_CGREG_RESP_RAC_MASK AT_COMMAND_PARAM6 /* CGREG AT command response type */ typedef struct { int n; int stat; #define AT_CGREG_RESP_LAC_SIZE 4 char lac[AT_CGREG_RESP_LAC_SIZE+1]; #define AT_CGREG_RESP_CI_SIZE 8 char ci[AT_CGREG_RESP_CI_SIZE+1]; int AcT; #define AT_CGREG_RESP_RAC_SIZE 2 char rac[AT_CGREG_RESP_RAC_SIZE+1]; } at_cgreg_resp_t; /* CEREG: EPS network registration status * -------------------------------------- * When =1, returns +CEREG: , the Mobile Equipment's EPS services * registration status in EUTRA Network. * When =2, returns +CEREG: [,,[,]], the Mobile * Equipment's EPS services registration status and location information in * EUTRA Network. * Read parameter command: * +CEREG? returns +CEREG:,[,,[,]] * numeric parameter * numeric parameter that indicates the EPS registration status * string type; two byte tracking area code in hexadecimal format * string type; four byte E-UTRAN cell ID in hexadecimal format * a numeric parameter that indicates the access technology of * the serving cell */ /* Network registration status */ #define AT_CEREG_RESP_REG_OFF NET_REG_STATE_OFF #define AT_CEREG_RESP_REG_HN NET_REG_STATE_HN #define AT_CEREG_RESP_REG_ON NET_REG_STATE_ON #define AT_CEREG_RESP_REG_DENIED NET_REG_STATE_DENIED #define AT_CEREG_RESP_REG_UNKNOWN NET_REG_STATE_UNKNOWN #define AT_CEREG_RESP_REG_ROAMING NET_REG_STATE_ROAMING #define AT_CEREG_RESP_REG_EMERGENCY NET_REG_STATE_EMERGENCY /* Access technology indicators */ #define AT_CEREG_RESP_EUTRAN NET_ACCESS_EUTRAN /* E-UTRAN */ /* Optional parameter bitmask */ //#define AT_CEREG_RESP_N_MASK AT_COMMAND_PARAM1 #define AT_CEREG_RESP_TAC_MASK AT_COMMAND_PARAM3 #define AT_CEREG_RESP_CI_MASK AT_COMMAND_PARAM4 #define AT_CEREG_RESP_ACT_MASK AT_COMMAND_PARAM5 /* CEREG AT command response type */ typedef struct { int n; int stat; #define AT_CEREG_RESP_TAC_SIZE 4 char tac[AT_CEREG_RESP_TAC_SIZE+1]; #define AT_CEREG_RESP_CI_SIZE 8 char ci[AT_CEREG_RESP_CI_SIZE+1]; int AcT; } at_cereg_resp_t; /* CGDCONT: Define PDP Context * --------------------------- * Specifies PDP context parameter values for a PDP context identified by * the (local) context identification parameter, . * Read parameter command: * +CGDCONT? returns +CGDCONT: ,,,,, * [,[,[,[,]]]][ * +CGDCONT: ,,,,, * [,[,[,[,]]]] * [...]] * a numeric parameter which specifies a particular PDP * context definition * type of packet data protocol ("IP", "IPV6", "IPV4V6") * Access Point logical Name * Mobile Equipment PDP address (not applicable to EPS) * PDP data compression parameter * PDP header compression parameter * IPv4 address allocation parameter * emergency bearer services support indication * P-CSCF address discovery parameter * IM CN subsystem-related signalling * support indication */ /* Optional parameter bitmask */ #define AT_CGDCONT_RESP_IPV4ADDRALLOC_MASK AT_COMMAND_PARAM7 #define AT_CGDCONT_RESP_EMERGECY_INDICATION_MASK AT_COMMAND_PARAM8 #define AT_CGDCONT_RESP_P_CSCF_DISCOVERY_MASK AT_COMMAND_PARAM9 #define AT_CGDCONT_RESP_IM_CN_SIGNALLING_FLAG_IND_MASK AT_COMMAND_PARAM10 /* Structure of CGDCONT AT read parameter command */ typedef struct { #define AT_CGDCONT_RESP_SIZE 8 int n_pdns; /* Number of defined PDN contexts in the lists */ int cid[AT_CGDCONT_RESP_SIZE]; /* List of PDN context identifiers */ int PDP_type[AT_CGDCONT_RESP_SIZE]; const char* APN[AT_CGDCONT_RESP_SIZE]; int d_comp[AT_CGDCONT_RESP_SIZE]; int h_comp[AT_CGDCONT_RESP_SIZE]; } at_cgdcont_get_t; /* Structure of CGDCONT AT read parameter command */ typedef struct { int n_cid; /* Range of supported PDN context identifiers */ } at_cgdcont_tst_t; /* CGDCONT AT command response type */ typedef union { at_cgdcont_tst_t tst; at_cgdcont_get_t get; } at_cgdcont_resp_t; /* CGACT: PDP context activate or deactivate * ----------------------------------------- * Read command returns the current activation states for all the defined * PDP contexts. * Read parameter command: * +CGACT? returns +CGACT: ,[+CGACT: ,[...]] * a numeric parameter which specifies a particular PDP context * definition * numeric parameter that indicates the state of PDP context * activation */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGACT_MASK AT_RESPONSE_NO_PARAM /* CGACT AT command response type */ typedef struct { #define AT_CGACT_RESP_SIZE AT_CGDCONT_RESP_SIZE int n_pdns; /* Number of defined PDN contexts in the lists */ int cid[AT_CGACT_RESP_SIZE]; /* List of PDN context identifiers */ int state[AT_CGACT_RESP_SIZE]; /* List of PDN context states */ } at_cgact_resp_t; /* CGPADDR: Show PDP address(es) * ----------------------------- * Returns a list of PDP addresses for the specified context identifiers. * +CGPADDR= returns +CGPADDR: [,PDP_addr_1[,PDP_addr_2]][ * +CGPADDR: [,PDP_addr_1[,PDP_addr_2]][...]] * a numeric parameter which specifies a particular PDP * context definition * string that identifies the MT in the address space * applicable to the PDP */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGPADDR_MASK AT_RESPONSE_NO_PARAM /* CGPADDR AT command response type */ typedef struct { #define AT_CGPADDR_RESP_SIZE AT_CGDCONT_RESP_SIZE int n_pdns; /* Number of defined PDP addresses in the lists */ int cid[AT_CGPADDR_RESP_SIZE]; /* List of PDN context identifiers */ /* List of IPv4 addresses */ const char* PDP_addr_1[AT_CGPADDR_RESP_SIZE]; /* List of IPv6 addresses */ const char* PDP_addr_2[AT_CGPADDR_RESP_SIZE]; } at_cgpaddr_resp_t; /* CGEV: Unsolicited result * ------------------------ * Returns unsolicited result codes in case of certain events occurring * in the Packet Domain MT or the network. * +CGREV: * unsolicited result code * a numeric parameter which specifies a particular PDP * context definition */ /* Optional parameter bitmask */ #define AT_RESPONSE_CGEV_MASK AT_RESPONSE_NO_PARAM /* Unsolicited result codes */ #define AT_CGEV_RESP_NW_PDN_ACT (-1) /* Not applicable for LTE */ #define AT_CGEV_RESP_ME_PDN_ACT NET_PDN_MT_DEFAULT_ACT #define AT_CGEV_RESP_NW_PDN_DEACT NET_PDN_NW_DEFAULT_DEACT #define AT_CGEV_RESP_ME_PDN_DEACT NET_PDN_MT_DEFAULT_DEACT #define AT_CGEV_RESP_NW_ACT NET_PDN_NW_DEDICATED_ACT #define AT_CGEV_RESP_ME_ACT NET_PDN_MT_DEDICATED_ACT #define AT_CGEV_RESP_NW_DEACT NET_PDN_NW_DEDICATED_DEACT #define AT_CGEV_RESP_ME_DEACT NET_PDN_MT_DEDICATED_DEACT /* CGEV unsolicited result type */ typedef struct { int code; int cid; } at_cgev_resp_t; /* * ========================================== * Global AT command response type definition * ========================================== */ /* AT command response type */ typedef struct { at_command_id_t id; /* AT command identifier */ at_command_type_t type; /* AT command type */ int mask; /* Optional parameter bitmask */ int cause_code; /* AT command error cause code */ union { at_cgsn_resp_t cgsn; at_cgmi_resp_t cgmi; at_cgmm_resp_t cgmm; at_cgmr_resp_t cgmr; at_cimi_resp_t cimi; at_cfun_resp_t cfun; at_cpin_resp_t cpin; at_csq_resp_t csq; at_cesq_resp_t cesq; at_clac_resp_t clac; at_cmee_resp_t cmee; at_cnum_resp_t cnum; at_clck_resp_t clck; at_cops_resp_t cops; at_cgatt_resp_t cgatt; at_creg_resp_t creg; at_cgreg_resp_t cgreg; at_cereg_resp_t cereg; at_cgdcont_resp_t cgdcont; at_cgact_resp_t cgact; at_cgpaddr_resp_t cgpaddr; at_cgev_resp_t cgev; } response; } at_response_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 ******************/ /****************************************************************************/ int at_response_encode(char* buffer, const at_response_t* at_response); #endif /* __AT_RESPONSE_H__*/