📄 smi_cal.c
字号:
T_ACI_CME_ERR err)
{
TRACE_FUNCTION ("cal_HRejWhilePlusCME ()");
if (cmdId EQ currCalCmd)
currCalCmd = AT_CMD_NONE;
ui_signal (UI_SIG_UNHND_CME_ERR, err);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_HRej |
+--------------------------------------------------------------------+
PURPOSE : This function is called when an error occured during call
release. It handles the errors signaled by the ACI
callback functions rAT_NO_CARRIER, rAT_BUSY and
rAT_NO_ANSWER.
<cbId>: identity of the related ACI callback function
*/
GLOBAL void cal_HRej (T_MMI_RCB_ID cbId)
{
TRACE_FUNCTION ("cal_HRej ()");
ui_signal (UI_SIG_UNHND_CME_ERR, CME_ERR_Unknown);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_HCnf |
+--------------------------------------------------------------------+
PURPOSE : This function is called when call release is successfull.
*/
GLOBAL void cal_HCnf (T_ACI_AT_CMD cmdId)
{
TRACE_FUNCTION ("cal_HCnf ()");
if (cmdId EQ currCalCmd)
{
currCalCmd = AT_CMD_NONE;
ui_signal (UI_SIG_DISCONNECT, cal_getCause ());
if (currIbt NEQ CPI_IBT_True OR currTch NEQ CPI_TCH_True)
ui_signal (UI_SIG_NIBT, NIBT_DISC);
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_acceptCall |
+--------------------------------------------------------------------+
PURPOSE : This function is called to stimulate an acception of an
incoming call by the ACI.
returns: status information concerning the acception
progress
*/
GLOBAL T_ACI_RETURN cal_acceptCall ()
{
T_ACI_RETURN ret = AT_FAIL; /* holds the status information */
TRACE_FUNCTION ("cal_acceptCall ()");
/*
*-----------------------------------------------------------------
* call to ACI function when no answer on a further ACI function
* call is expected
*-----------------------------------------------------------------
*/
if (currCalCmd EQ AT_CMD_NONE)
{
ret = sAT_A(CMD_SRC_LCL);
currCalCmd = AT_CMD_A;
/*
*---------------------------------------------------------------
* process result code of ACI function call
*---------------------------------------------------------------
*/
switch (ret)
{
case (AT_CMPL):
ui_signal (UI_SIG_CONNECTING);
rAT_OK (currCalCmd);
break;
case (AT_EXCT):
ui_signal (UI_SIG_CONNECTING);
break;
default:
rAT_PlusCME (currCalCmd, CME_ERR_Unknown);
break;
}
}
else
{
/*
*---------------------------------------------------------------
* error handling while waiting for answer on further ACI
* function call
*---------------------------------------------------------------
*/
ui_signal (UI_SIG_UNHND_CME_ERR, CME_ERR_Unknown);
ret = AT_CMPL;
}
return ret;
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_ARejWhilePlusCME |
+--------------------------------------------------------------------+
PURPOSE : This function is called when an error occured during call
acception. It handles the errors signaled by the ACI
callback function rAT_PlusCME.
<err>: error code
*/
GLOBAL void cal_ARejWhilePlusCME (T_ACI_AT_CMD cmdId,
T_ACI_CME_ERR err)
{
TRACE_FUNCTION ("cal_ARejWhilePlusCME ()");
if (cmdId EQ currCalCmd)
currCalCmd = AT_CMD_NONE;
if (currAbrtCmd EQ AT_CMD_ABRT)
{
currAbrtCmd = AT_CMD_NONE;
ui_signal (UI_SIG_UNHND_CME_ERR, CME_ERR_FailedToAbort);
}
else
ui_signal (UI_SIG_UNHND_CME_ERR, err);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_ARej |
+--------------------------------------------------------------------+
PURPOSE : This function is called when an error occured during call
acception. It handles the errors signaled by the ACI
callback functions rAT_NO_CARRIER, rAT_BUSY and
rAT_NO_ANSWER.
<cbId>: identity of the related ACI callback function
*/
GLOBAL void cal_ARej (T_MMI_RCB_ID cbId)
{
TRACE_FUNCTION ("cal_ARej ()");
ui_signal (UI_SIG_DISCONNECT, cal_getCause ());
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_ACnf |
+--------------------------------------------------------------------+
PURPOSE : This function is called when call acception is
successfull.
*/
GLOBAL void cal_ACnf (T_ACI_AT_CMD cmdId)
{
TRACE_FUNCTION ("cal_ACnf ()");
if (cmdId EQ currCalCmd)
{
currCalCmd = AT_CMD_NONE;
if ( currAbrtCmd EQ AT_CMD_ABRT )
{
currAbrtCmd = AT_CMD_NONE;
ui_signal (UI_SIG_DISCONNECT, cal_getCause ());
}
else
ui_signal (UI_SIG_CONNECTED);
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : rAT_PlusCRING |
+--------------------------------------------------------------------+
PURPOSE : This function is called to signal an incoming call.
<mode>: mode of call sequence
<type1>: type of call 1
<type2>: type of call 2
*/
GLOBAL void rAT_PlusCRING (T_ACI_CRING_MOD mode,
T_ACI_CRING_TYP type1,
T_ACI_CRING_TYP type2)
{
TRACE_FUNCTION ("rAT_PlusCRING ()");
/*
*-----------------------------------------------------------------
* process parameter mode
*-----------------------------------------------------------------
*/
switch (mode)
{
case (CRING_MOD_Direct):
/*
*-------------------------------------------------------------
* process parameter type1 when mode = CRING_MOD_Direct
*-------------------------------------------------------------
*/
switch (type1)
{
case (CRING_TYP_Async):
case (CRING_TYP_Sync):
case (CRING_TYP_RelAsync):
case (CRING_TYP_RelSync):
case (CRING_TYP_Fax):
break;
case (CRING_TYP_Voice):
ui_signal (UI_SIG_INCOMMING_CALL);
break;
}
break;
case (CRING_MOD_Alternate):
break;
case (CRING_MOD_NotPresent):
break;
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : rAT_PlusCRING_OFF |
+--------------------------------------------------------------------+
PURPOSE : This function is called to indicate that an incoming call
is no longer waiting.
*/
GLOBAL void rAT_PlusCRING_OFF ( SHORT cId )
{
TRACE_FUNCTION ("rAT_PlusCRING_OFF ()");
ui_signal (UI_SIG_RING_OFF);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : rAT_PercentSIMREM |
+--------------------------------------------------------------------+
PURPOSE : This function is called to indicate that the SIM card was
removed.
*/
GLOBAL void rAT_PercentSIMREM (T_ACI_SIMREM_TYPE srType)
{
TRACE_FUNCTION ("rAT_PercentSIMREM ()");
ui_signal (UI_SIG_SIM_NOT_INSERT);
if (mmi_data->serviceType NEQ SRV_NONE)
{
mmi_data->serviceType = SRV_LIMITED;
ui_signal (UI_SIG_LIMITED_SERVICE);
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_setCbst |
+--------------------------------------------------------------------+
PURPOSE : This function is used to select the bearer service type.
<cbst>: holds all bearer service related information
returns: status information concerning the selection
progress
*/
GLOBAL T_ACI_RETURN cal_setCbst (T_KSD_CBST* cbst)
{
TRACE_FUNCTION ("cal_setCbst ()");
return sAT_PlusCBST (CMD_SRC_LCL,
cbst->speed, cbst->name, cbst->ce);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_setCrlp |
+--------------------------------------------------------------------+
PURPOSE : This function is used to set the parameter for the radio
link protocol.
<crlp>: holds all radio link protocol related information
returns: status information concerning the setting
progress
*/
GLOBAL T_ACI_RETURN cal_setCrlp (T_KSD_CRLP* crlp)
{
TRACE_FUNCTION ("cal_setCrlp ()");
#ifdef FAX_AND_DATA
return sAT_PlusCRLP (CMD_SRC_LCL,
crlp->iws, crlp->mws, crlp->t1, crlp->n2);
#else
return AT_FAIL;
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_setDs |
+--------------------------------------------------------------------+
PURPOSE : This function is used to set the parameter for the data
compression.
<cbst>: holds all data compression related information
returns: status information concerning the setting
progress
*/
GLOBAL T_ACI_RETURN cal_setDs (T_KSD_DS* ds)
{
TRACE_FUNCTION ("cal_setDs ()");
#ifdef FAX_AND_DATA
return sAT_PlusDS (CMD_SRC_LCL,
ds->dir, ds->comp, ds->maxDict, ds->maxStr);
#else
return AT_FAIL;
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : rAT_CONNECT |
+--------------------------------------------------------------------+
PURPOSE : This function is used to indicate that a MO data call is
successfully established.
*/
GLOBAL void rAT_CONNECT (T_ACI_AT_CMD cmdId, T_ACI_BS_SPEED speed,
SHORT cId )
{
/* used for transfer of speed enumerator into numerical value */
static const struct T_CAL_SPEED_TAB
{
const T_ACI_BS_SPEED enumSpeed; /* speed defined as */
/* enumerator */
const USHORT valSpeed; /* speed defined as */
/* numerical value */
}
speedTab[] =
{
BS_SPEED_300_V21, 300,
BS_SPEED_1200_V22, 1200,
BS_SPEED_1200_75_V23, 1200,
BS_SPEED_2400_V22bis, 2400,
BS_SPEED_2400_V26ter, 2400,
BS_SPEED_4800_V32, 4800,
BS_SPEED_9600_V32, 9600,
BS_SPEED_1200_V120, 1200,
BS_SPEED_2400_V120, 2400,
BS_SPEED_4800_V120, 4800,
BS_SPEED_9600_V120, 9600,
BS_SPEED_14400_V120, 14400,
BS_SPEED_300_V110, 300,
BS_SPEED_1200_V110, 1200,
BS_SPEED_2400_V110, 2400,
BS_SPEED_4800_V110, 4800,
BS_SPEED_9600_V110, 9600,
BS_SPEED_14400_V110, 14400,
BS_SPEED_NotPresent, -1
};
CHAR buf[20];
sprintf (buf, "rAT_CONNECT (%d)", cmdId);
TRACE_FUNCTION (buf);
if (cmdId NEQ currCalCmd)
return;
currCalCmd = AT_CMD_NONE;
if (cmdId EQ AT_CMD_D)
{
USHORT i = 0;
/*
*---------------------------------------------------------------
* searching for numerical speed value
*---------------------------------------------------------------
*/
while (speedTab[i].enumSpeed NEQ BS_SPEED_NotPresent AND
speedTab[i].enumSpeed NEQ speed)
i++;
ui_signal (UI_SIG_DATA_CONNECTED, speedTab[i].valSpeed);
if (currIbt NEQ CPI_IBT_True OR currTch NEQ CPI_TCH_True)
ui_signal (UI_SIG_NIBT, NIBT_OFF);
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147) MODULE : SMI_CAL |
| STATE : code ROUTINE : cal_sigChldCtfr |
+--------------------------------------------------------------------+
PURPOSE : This function is called to signal the result of the
handling of supplementary services within a call according
to GSM 02.30.
<rslt>: result code
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -