📄 smi_aca.c
字号:
return;
/*
*-----------------------------------------------------------------
* make a copy of the key sequence
*-----------------------------------------------------------------
*/
strncpy (hnd->keySeq, inSeq, MAX_KEYSEQ_SIZE);
hnd->keySeq[MAX_KEYSEQ_SIZE] = NULL_TERM;
hnd->nextSeq = hnd->keySeq;
hnd->restSeq = hnd->nextSeq;
hnd->grp = SEQGRP_UNKNOWN;
hnd->atReturn = AT_FAIL;
do
{
if (ksd_decode (hnd->nextSeq,
cal_isWithinCall (),
&hnd->grp,
&hnd->restSeq,
&hnd->param) EQ TRUE)
{
switch (hnd->grp)
{
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_MS_OFF
*---------------------------------------------------------
*/
case (SEQGRP_MS_OFF):
hnd->atReturn = reg_powerOff ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_MS_ON
*---------------------------------------------------------
*/
case (SEQGRP_MS_ON):
hnd->atReturn = reg_powerOn ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_HOOK_OFF
*---------------------------------------------------------
*/
case (SEQGRP_HOOK_OFF):
hnd->atReturn = cal_acceptCall ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_HOOK_ON
*---------------------------------------------------------
*/
case (SEQGRP_HOOK_ON):
hnd->atReturn = cal_releaseCall ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_DTMF
*---------------------------------------------------------
*/
case (SEQGRP_DTMF):
hnd->atReturn = cal_sendDtmf (hnd->param.dtmf, TRUE);
hnd->atReturn = cal_sendDtmf (hnd->param.dtmf, FALSE);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_KEYPAD_IND
*---------------------------------------------------------
*/
case (SEQGRP_KEYPAD_IND):
ui_keypadInd (hnd->param.keypad.keyCode, KEY_STAT_PRS);
ui_keypadInd (hnd->param.keypad.keyCode, KEY_STAT_REL);
hnd->atReturn = AT_CMPL;
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_LCD_TEST
*---------------------------------------------------------
*/
case (SEQGRP_LCD_TEST):
ui_startLcdTest ();
hnd->atReturn = AT_CMPL;
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SHOW_CALL_TABLE
*---------------------------------------------------------
*/
case (SEQGRP_SHOW_CALL_TABLE):
hnd->atReturn = cal_showCallTable ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SET_ABBR_DIAL
*---------------------------------------------------------
*/
case (SEQGRP_SET_ABBR_DIAL):
cal_setAbbrDial (hnd->param.abbrDial.index,
hnd->param.abbrDial.number);
hnd->atReturn = AT_CMPL;
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_CHANGE_REGISTER
*---------------------------------------------------------
*/
case (SEQGRP_CHANGE_REGISTER):
hnd->atReturn = reg_setReg (&hnd->param.cops);
if (hnd->atReturn EQ AT_CMPL)
hnd->atReturn = reg_changeReg ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SET_REGISTER
*---------------------------------------------------------
*/
case (SEQGRP_SET_REGISTER):
hnd->atReturn = reg_setReg (&hnd->param.cops);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_START_REGISTER
*---------------------------------------------------------
*/
case (SEQGRP_START_REGISTER):
hnd->atReturn = reg_setReg (&hnd->param.cops);
if (hnd->atReturn EQ AT_CMPL)
hnd->atReturn = reg_startReg ();
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_SEND
*---------------------------------------------------------
*/
case (SEQGRP_SMS_SEND):
hnd->atReturn = sms_startInputProc (SMS_PROC_SEND);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_SEND_FROM_MEM
*---------------------------------------------------------
*/
case (SEQGRP_SMS_SEND_FROM_MEM):
hnd->atReturn = sms_startInputProc (SMS_PROC_SEND_FROM_MEM);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_WRITE
*---------------------------------------------------------
*/
case (SEQGRP_SMS_WRITE):
hnd->atReturn = sms_startInputProc (SMS_PROC_WRITE);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_DELETE
*---------------------------------------------------------
*/
case (SEQGRP_SMS_DELETE):
hnd->atReturn = sms_startInputProc (SMS_PROC_DELETE);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_READ
*---------------------------------------------------------
*/
case (SEQGRP_SMS_READ):
hnd->atReturn = sms_startInputProc (SMS_PROC_READ);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_LIST
*---------------------------------------------------------
*/
case (SEQGRP_SMS_LIST):
hnd->atReturn = sms_startInputProc (SMS_PROC_LIST);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_SMS_READ_SINGLE
*---------------------------------------------------------
*/
case (SEQGRP_SMS_READ_SINGLE):
hnd->atReturn = sms_startInputProc (SMS_PROC_READ_SINGLE);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_DIAL
*---------------------------------------------------------
*/
case (SEQGRP_DIAL):
hnd->atReturn = cal_setupCall (&hnd->param.dial);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_CB):
hnd->atReturn = ss_changeCb (inSeq, &hnd->param.cb);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_CF):
hnd->atReturn = ss_changeCf (inSeq, &hnd->param.cf);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_CL):
switch (hnd->param.cl.ssCd)
{
case (KSD_SS_CLIP):
hnd->atReturn = ss_intrgtClip ();
break;
case (KSD_SS_CLIR):
hnd->atReturn = ss_intrgtClir ();
break;
case (KSD_SS_COLP):
hnd->atReturn = ss_intrgtColp ();
break;
case (KSD_SS_COLR):
break;
}
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_CW):
hnd->atReturn = ss_changeCw (inSeq, &hnd->param.cw);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_PWD):
hnd->atReturn = sec_regPasswd (inSeq, &hnd->param.pwd);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_UBLK):
break;
/*
*---------------------------------------------------------
* handling of sequence groups which are handled by the
* ACI dirctly by using the sAT_Dn function
*---------------------------------------------------------
*/
case (SEQGRP_USSD):
break;
/*
*---------------------------------------------------------
* handling of sequence groups which results in a change
* of CLIR parameter
* in temporary mode a call is set up
*---------------------------------------------------------
*/
case (SEQGRP_SUP_CLIR):
case (SEQGRP_INV_CLIR):
if (strlen (hnd->restSeq) EQ 0)
hnd->atReturn = ss_changeClir (&hnd->param.Clir);
else
{
/*
*-----------------------------------------------------
* in temporary mode a call is set up
*-----------------------------------------------------
*/
T_KSD_CLIR Clir;
T_KSD_SEQGRP nextGrp = SEQGRP_UNKNOWN;
CHAR* remSeq = NULL;
Clir.mode = hnd->param.Clir.mode;
if (ksd_decode (hnd->restSeq, FALSE,
&nextGrp, &remSeq,
&hnd->param) EQ TRUE
AND
nextGrp EQ SEQGRP_DIAL)
{
switch (Clir.mode)
{
case (CLIR_MOD_Invoc):
hnd->param.dial.clirOvrd = D_CLIR_OVRD_Invoc;
break;
case (CLIR_MOD_Supp):
hnd->param.dial.clirOvrd = D_CLIR_OVRD_Supp;
break;
default:
hnd->param.dial.clirOvrd = D_CLIR_OVRD_Default;
break;
}
hnd->atReturn = cal_setupCall (&hnd->param.dial);
}
}
break;
/*
*---------------------------------------------------------
* handling of sequence groups which results in a change
* of CLIP parameter
*---------------------------------------------------------
*/
case (SEQGRP_SUP_CLIP):
case (SEQGRP_INV_CLIP):
hnd->atReturn = ss_changeClip (&hnd->param.Clip);
break;
/*
*---------------------------------------------------------
* handling of sequence groups which results in a change
* of COLR parameter
*---------------------------------------------------------
*/
case (SEQGRP_SUP_COLR):
case (SEQGRP_INV_COLR):
break;
/*
*---------------------------------------------------------
* handling of sequence groups which results in a change
* of COLP parameter
*---------------------------------------------------------
*/
case (SEQGRP_SUP_COLP):
case (SEQGRP_INV_COLP):
hnd->atReturn = ss_changeColp (&hnd->param.Colp);
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_PRSNT_IMEI
*---------------------------------------------------------
*/
case (SEQGRP_PRSNT_IMEI):
hnd->atReturn = cmhSS_ksdIMEI ( CMD_SRC_LCL );
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_ACT_SIM_LOCK
*---------------------------------------------------------
*/
case (SEQGRP_ACT_SIM_LOCK):
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_DEACT_SIM_LOCK
*---------------------------------------------------------
*/
case (SEQGRP_DEACT_SIM_LOCK):
break;
/*
*---------------------------------------------------------
* handling of sequence group SEQGRP_INTRGT_SIM_LOCK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -