FreeCalypso > hg > fc-tourmaline
diff src/g23m-aci/aci/cmh_gmmq.c @ 1:fa8dc04885d8
src/g23m-*: import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:25:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-aci/aci/cmh_gmmq.c Fri Oct 16 06:25:50 2020 +0000 @@ -0,0 +1,220 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : This module provides the query functions related to the +| protocol stack adapter for GPRS mobility management ( GMM ). ++----------------------------------------------------------------------------- +*/ + +#if defined (GPRS) && defined (DTI) + +#ifndef CMH_GMMQ_C +#define CMH_GMMQ_C +#endif + +#include "aci_all.h" + +/*==== INCLUDES ===================================================*/ +#include "dti.h" /* functionality of the dti library */ +#include "aci_cmh.h" +#include "ati_cmd.h" +#include "aci_cmd.h" + +#include "dti_conn_mng.h" + +#include "pcm.h" + +#include "gaci.h" +#include "gaci_cmh.h" +#include "psa.h" +#include "psa_gmm.h" + +#include "cmh.h" +#include "cmh_gmm.h" + +/*==== CONSTANTS ==================================================*/ + +/*==== EXPORT =====================================================*/ + +/*==== VARIABLES ==================================================*/ + +/*==== FUNCTIONS ==================================================*/ + +/* ++--------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : CMH_GMMQ | +| STATE : finished ROUTINE : qAT_PlusCGATT | ++--------------------------------------------------------------------+ + + PURPOSE : This is the functional counterpart to the +CGATT? AT + command which returns the current state of GPRS attachment. +*/ + +GLOBAL T_ACI_RETURN qAT_PlusCGATT ( T_ACI_CMD_SRC srcId, T_CGATT_STATE *state ) +{ + TRACE_FUNCTION ("qAT_PlusCGATT()"); + + if ( !cmh_IsVldCmdSrc (srcId) ) + { + ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter ); + return( AT_FAIL ); + } + + switch ( cmhGMM_Get_state() ) + { + case AS_ATTACHED: + case AS_SUSPENTED: + *state = CGATT_STATE_ATTACHED; + break; + case AS_INVALID_STATE: + case AS_MOBILE_OFF: + case AS_DETACHED: + case AS_ATTACHING: + case AS_DETACHING: + default: + *state = CGATT_STATE_DETACHED; + break; + } + + return( AT_CMPL ); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : CMH_GMMQ | +| STATE : code ROUTINE : qAT_PlusCGCLASS | ++--------------------------------------------------------------------+ + + PURPOSE : This is the functional counterpart to the +CGCLASS? AT + command which returns current GACI mobile class. +*/ + +GLOBAL T_ACI_RETURN qAT_PlusCGCLASS ( T_ACI_CMD_SRC srcId, T_CGCLASS_CLASS *m_class ) +{ + TRACE_FUNCTION ("qAT_PlusCGCLASS()"); + +/* + *------------------------------------------------------------------- + * check command source - should be Serial link ? + *------------------------------------------------------------------- + */ + if ( !cmh_IsVldCmdSrc (srcId) ) { + ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter ); + return( AT_FAIL ); + } + +/* + *------------------------------------------------------------------- + * fill in parameters + *------------------------------------------------------------------- + */ + switch ( gmmShrdPrm.mobile_class ) + { + case GMMREG_CLASS_A: + *m_class = CGCLASS_CLASS_A; /* mobile class A (highest) */ + break; + case GMMREG_CLASS_B: + case GMMREG_CLASS_BC: + case GMMREG_CLASS_BG: + *m_class = CGCLASS_CLASS_B; /* mobile class B */ + break; + case GMMREG_CLASS_CG: + *m_class = CGCLASS_CLASS_CG; /* mobile class CG (GPRS only mode) */ + break; + case GMMREG_CLASS_CC: + *m_class = CGCLASS_CLASS_CC; /* mobile class CC (circuit switched only mode - lowest) */ + break; + default: /*bad user command */ + ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter ); + return AT_FAIL; + } + + return( AT_CMPL ); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : CMH_GMMQ | +| STATE : finished ROUTINE : qAT_PercentCGAATT | ++--------------------------------------------------------------------+ + + PURPOSE : This command get the mode of automatic attach / detach. +*/ + +GLOBAL T_ACI_RETURN qAT_PercentCGAATT ( T_ACI_CMD_SRC srcId, T_CGAATT_ATTACH_MODE *att_m, T_CGAATT_DETACH_MODE *det_m ) + +{ + TRACE_FUNCTION ("qAT_PercentCGAATT()"); + + *att_m = automatic_attach_mode; + *det_m = automatic_detach_mode; + + return( AT_CMPL ); +} + +GLOBAL T_ACI_RETURN qAT_PlusCGREG( T_ACI_CMD_SRC srcId, T_CGREG_STAT *stat, USHORT *lac, USHORT *ci ) +{ + TRACE_FUNCTION ("qAT_PlusCGREG()"); + + *stat = gmmShrdPrm.cgreg_stat; + *lac = gmmShrdPrm.lac; + *ci = gmmShrdPrm.cid; + + return( AT_CMPL ); +} + +GLOBAL T_ACI_RETURN qAT_PercentCGREG ( T_ACI_CMD_SRC srcId, T_P_CGREG_STAT *stat, USHORT *lac, USHORT *ci ) +{ + TRACE_FUNCTION ("qAT_PercentCGREG()"); + + *stat = gmmShrdPrm.p_cgreg_stat; + *lac = gmmShrdPrm.lac; + *ci = gmmShrdPrm.cid; + + return( AT_CMPL ); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : CMH_GMMQ | +| STATE : code ROUTINE : qAT_PercentCGCLASS | ++--------------------------------------------------------------------+ + + PURPOSE : This is the functional counterpart to the %CGCLASS? AT + command which returns current GPRS mobile class. +*/ +GLOBAL T_ACI_RETURN qAT_PercentCGCLASS ( T_ACI_CMD_SRC srcId, T_PERCENT_CGCLASS *m_class, T_PERCENT_CGCLASS *currentClass ) +{ + TRACE_FUNCTION ("qAT_PercentCGCLASS()"); + + *m_class = *currentClass = gaciMobileClass.current; + if( PERCENT_CGCLASS_BX EQ gaciMobileClass.current) + { + switch ( gmmShrdPrm.mobile_class ) + { + case GMMREG_CLASS_BC: + *currentClass = PERCENT_CGCLASS_BC; + break; + case GMMREG_CLASS_BG: + *currentClass = PERCENT_CGCLASS_BG; + break; + } + } + + return( AT_CMPL ); +} +#endif /* GPRS */ +/*==== EOF ========================================================*/