📄 atp5cmd.c
字号:
* Object : Execute +CBST=<param> Command *----------------------------------------------------------------------------* * Input parameters : * ------------------- * None * * Output parameters : * ------------------- * u8 : Result code * * Used variables : * ------------------- * i : surrent parameter index * * Used procedures : * ------------------- * atoi : transform a string into a number * *----------------------------------------------------------------------------* *----------------------------------------------------------------------------* * DESCRIPTION * *----------------------------------------------------------------------------* ***************************************************************************)P*//* #*/#undef PROCEDURE_NUMBER#define PROCEDURE_NUMBER 10u8 atp5_10SetCBSTParameter(void){ u32 i; t_hee_DataBitFields *pl_hee_DataBitFields = (t_hee_DataBitFields *)MC_PRM_READ_BLOCK_REQ(HEE_DATA_BITFIELDS); u8 vl_UserBearerRate=pl_hee_DataBitFields->v_UserBearerRate; u8 vl_InfoTrans=pl_hee_DataBitFields->v_InfoTrans; u8 vl_SyncAsync=pl_hee_DataBitFields->v_SyncAsync; u8 vl_TransferMode=pl_hee_DataBitFields->v_TransferMode; u8 vl_ConnElm=pl_hee_DataBitFields->v_ConnElm; /* for each received param */ for (i =0; i<s_atp_CurrentCommandInfo.v_NumberOfParam; i++) { /* if it length is not null */ if (s_atp_CurrentCommandInfo.a_ParamList[i].v_ParamLength)/*depending on the param */ switch (i) {/*speed*/ case 0:/* depending on the parameter value */ switch(atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param)) {/* set user rate of bearer capabilities */ case ATP_SPEED_V22BIS_2400: case ATP_SPEED_UDI_2400: vl_UserBearerRate = ATP_BC_USER_RATE_24; break;/* case ATP_SPEED_V32_4800: *//* case ATP_SPEED_UDI_4800: *//* vl_UserBearerRate = ATP_BC_USER_RATE_48; *//* break; */ case ATP_SPEED_V32_9600: case ATP_SPEED_UDI_9600: vl_UserBearerRate = ATP_BC_USER_RATE_96; break;#ifdef UMTS_FTR case ATP_SPEED_UDI_64000: vl_UserBearerRate = ATP_BC_USER_RATE_640; break;#endif default:/* Set additional result ot param invalid *//* v_atp_AddInfo = ATP_ER_PARAM_INVALID; *//* return an error */ return ATP_ERROR; } if(atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param) < ATP_SPEED_UDI_1200) { vl_InfoTrans = ATP_BC_31KHZ; } else { vl_InfoTrans = ATP_BC_UDI; } break; /* name */ case 1: switch(atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param)) {/* depending on the parameter value */ case ATP_NAME_CIRCUIT_ASYNC_UDI:#ifdef UMTS_FTR case ATP_NAME_CIRCUIT_SYNC_UDI:#endif/* Set SYNC/ASYNC of the bearer capabilities */ vl_SyncAsync = (atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param) & MASK_1_BIT)? 0 : 1;/* Set transfer mode of the bearer capabilities */ vl_TransferMode =atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param) & MASK_2_BIT; break; default:/* Set additional result ot param invalid *//* v_atp_AddInfo = ATP_ER_PARAM_INVALID; *//* return an error */ return ATP_ERROR; } break;/* connection element */ case 2: /* if the value is supported */ if (atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param) <= ATP_BC_NON_TRANSPARENT_FIRST)/* Set connection element of the bearer capabilities */ vl_ConnElm = atoi((ascii *)s_atp_CurrentCommandInfo.a_ParamList[i].p_Param); else {/* Set additional result ot param invalid *//* v_atp_AddInfo = ATP_ER_PARAM_INVALID; *//* return an error */ return ATP_ERROR; } /* Modif O.Houot 13/06/2001 : suppression of transparent mode (LMSdv56028) */#ifdef SUPPRESS_TRS_FTR if (vl_ConnElm != ATP_BC_NON_TRANSPARENT) #ifdef UMTS_FTR { if ((vl_ConnElm == ATP_BC_TRANSPARENT) &&(vl_UserBearerRate != ATP_BC_USER_RATE_640))#endif /* UMTS_FTR */ { return ATP_ERROR; }#ifdef UMTS_FTR }#endif /* UMTS_FTR */#endif /* SUPPRESS_TRS_FTR */ break; } }/* Don't accept all Bearer rate */ if( ((vl_ConnElm == ATP_BC_NON_TRANSPARENT) && (vl_UserBearerRate != ATP_BC_USER_RATE_96)) || ((vl_ConnElm == ATP_BC_TRANSPARENT) && (vl_UserBearerRate < ATP_BC_USER_RATE_24) ) ) {/* return an error */ v_atp_AddInfo = ATP_CME_ER_OPERATION_NOT_SUPPORTED; return ATP_ERROR; } pl_hee_DataBitFields->v_UserBearerRate=vl_UserBearerRate; pl_hee_DataBitFields->v_InfoTrans=vl_InfoTrans; pl_hee_DataBitFields->v_SyncAsync=vl_SyncAsync; pl_hee_DataBitFields->v_TransferMode=vl_TransferMode; pl_hee_DataBitFields->v_ConnElm=vl_ConnElm; MC_PRM_WRITE_BLOCK_IMAGE_REQ( HEE_DATA_BITFIELDS, (u8 *)pl_hee_DataBitFields );/* return OK result code */ return ATP_OK;}/*P(*************************************************************************** * Procedure name : atp5_11VCommand * Object : Execute the V command (Verbose response) *----------------------------------------------------------------------------* * Input parameters : * ------------------- * None * * Output parameters : * -------------------* u8 : return the result code. * * Used variables : * ------------------- * vl_Value : parameter value * * Used procedures : * ------------------- * atp5_109SetIfBoolean : Set paramater to Enable or Disable if correct * *----------------------------------------------------------------------------* *----------------------------------------------------------------------------* * DESCRIPTION * *----------------------------------------------------------------------------* ***************************************************************************)P*//* #*/#undef PROCEDURE_NUMBER#define PROCEDURE_NUMBER 11u8 atp5_11VCommand(void){ u8 vl_Value; t_hee_DataBitFields1 *pl_hee_DataBitFields1 = (t_hee_DataBitFields1 *)MC_PRM_READ_BLOCK_REQ(HEE_DATA_BITFIELDS1); vl_Value = atp5_109SetIfBoolean(); if (vl_Value == UNDEFINED) return ATP_ERROR; pl_hee_DataBitFields1->v_Verbose = vl_Value; MC_PRM_WRITE_BLOCK_IMAGE_REQ( HEE_DATA_BITFIELDS1, (u8 *)pl_hee_DataBitFields1 ); return ATP_OK;}/*P(*************************************************************************** * Procedure name : atp5_12QCommand * Object : Execute the Q command (Result code suppression) *----------------------------------------------------------------------------* * Input parameters : * ------------------- * None * * Output parameters : * -------------------* u8 : return the result code. * * Used variables : * ------------------- * vl_Value : parameter value * * Used procedures : * ------------------- * atp5_109SetIfBoolean : Set paramater to Enable or Disable if correct * *----------------------------------------------------------------------------* *----------------------------------------------------------------------------* * DESCRIPTION * *----------------------------------------------------------------------------* ***************************************************************************)P*//* #*/#undef PROCEDURE_NUMBER#define PROCEDURE_NUMBER 12u8 atp5_12QCommand(void){ u8 vl_Value; t_hee_DataBitFields1 *pl_hee_DataBitFields1 = (t_hee_DataBitFields1 *)MC_PRM_READ_BLOCK_REQ(HEE_DATA_BITFIELDS1); vl_Value = atp5_109SetIfBoolean(); if (vl_Value == UNDEFINED) return ATP_ERROR; pl_hee_DataBitFields1->v_SuppressResult = vl_Value; MC_PRM_WRITE_BLOCK_IMAGE_REQ( HEE_DATA_BITFIELDS1, (u8 *)pl_hee_DataBitFields1 ); return ATP_OK;}/*P(*************************************************************************** * Procedure name : atp5_13OCommand * Object : Execute the O command (Return to Online data state) *----------------------------------------------------------------------------* * Input parameters : * ------------------- * None * * Output parameters : * ------------------- * u8 : return the result code. * * Used variables : * ------------------- * None * * Used procedures : * ------------------- * MC_ATP_IS_ACTIVE : Tells wether a call is active or not * *----------------------------------------------------------------------------* *----------------------------------------------------------------------------* * DESCRIPTION * *----------------------------------------------------------------------------* ***************************************************************************)P*//* #*/#undef PROCEDURE_NUMBER#define PROCEDURE_NUMBER 13u8 atp5_13OCommand(void){/* if the parameter is 0 or there's no parameters */ if (!s_atp_CurrentCommandInfo.v_NumberOfParam || s_atp_CurrentCommandInfo.a_ParamList[0].p_Param[0] == '0') {#ifdef GPRS_FTR if ((atp1_162CountPdpInState(ATP_GPRS_PDP_PPP_OPENED) > 0) || (atp1_162CountPdpInState(ATP_GPRS_PDP_PPP_OPENING) > 0)) { /* disable standard response sending procedures. Alternatively ,the code from the BUILD CONNECT comment */ /* to this line : v_atp ...UNDEFINED can be suppressed, and the MIS_A1_CPR compilation switch asserted */ /* atp1_108Switch mode would have to be modified to send MIS_AT_GPRS_MODE, and the status of DCD */ /* should be checked */ v_atp_ReturnState = ATP_UNDEFINED; /* there is at least one opened PDP context */ atp5_132SendResponse(ATP_CONNECT); /* induce the next FSM state to be DATA */ return ATP_CONNECT; }#endif /* GPRS_FTR *//* if there's a call */ if ( MC_ATP_IS_ACTIVE( ) ) {/* return CONNECT result code and switch to data mode */ return ATP_CONNECT; } } else {/* Set Additionnal info to invalid parameter *//* v_atp_AddInfo = ATP_ER_PARAM_INVALID; *//* return ERROR result code */ return ATP_ERROR; } #ifdef GPRS_FTR /* there is currently no active com */ v_atp_ReturnState = ATP_UNDEFINED; atp5_132SendResponse(ATP_NO_CARRIER); return ATP_ERROR;#else /* GPRS_FTR */ /* return NO CARRIER result code */ return ATP_NO_CARRIER; #endif /* GPRS_FTR */ }/*P(*************************************************************************** * Procedure name : atp5_14XCommand * Object : Execute the X command (Result code selection) *----------------------------------------------------------------------------* * Input parameters : * ------------------- * None * * Output parameters : * ------------------- * u8 : return the result code. * * Used variables : * ------------------- * None * * Used procedures : * ------------------- * atoi : transform a string into a number * *----------------------------------------------------------------------------* *----------------------------------------------------------------------------* * DESCRIPTION * *----------------------------------------------------------------------------* ***************************************************************************)P*//* #*/#undef PROCEDURE_NUMBER#define PROCEDURE_NUMBER 14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -