⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smi_ss.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:
  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;

  ui_signal (UI_SIG_UNHND_CME_ERR, err);

  if (CCFCqryrsn EQ RSN_CHANGE)
  {
    CCFCmode   = KSD_OP_NONE;
    CCFCqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_CcfcCnf               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void ss_CcfcCnf (T_ACI_AT_CMD cmdId)
{
  TRACE_FUNCTION ("ss_CcfcCnf ()");

  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;
  else 
    return;

  if (CCFCqryrsn EQ RSN_CHANGE)
  {
    switch (CCFCmode)
    {
      case (KSD_OP_NONE):
        ss_sigCcfc (SS_RSLT_FAIL);
        break;

      case (KSD_OP_DEACT):  
        ss_sigCcfc (SS_RSLT_DEACT);
        break;

      case (KSD_OP_ACT):
        ss_sigCcfc (SS_RSLT_ACT);
        break;

      case (KSD_OP_REG):
        ss_sigCcfc (SS_RSLT_REG);
        break;

      case (KSD_OP_ERS):
        ss_sigCcfc (SS_RSLT_ERASE);
        break;
    }

    CCFCmode   = KSD_OP_NONE;
    CCFCqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_sigClck               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
LOCAL void ss_sigClck (T_SS_ACA_RSLT rslt)
{
  TRACE_FUNCTION ("ss_sigClck ()");

  ui_signal (UI_SIG_SS, rslt);
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_changeCb              |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL T_ACI_RETURN ss_changeCb (CHAR* seq, T_ACI_KSD_CB_PRM* prm)
{
  T_ACI_RETURN ret;

  TRACE_FUNCTION ("ss_changeCb ()");

  /*
   *-----------------------------------------------------------------
   * call to ACI function when no answer on a further ACI function
   * call is expected
   *-----------------------------------------------------------------
   */
  if (currSsCmd EQ AT_CMD_NONE)
  {  
    ret = sAT_Dn (CMD_SRC_LCL,
                  seq,
                  D_CLIR_OVRD_Default,
                  D_CUG_CTRL_NotPresent,
                  D_TOC_Voice);

    CLCKmode   = prm->opCd;
    CLCKqryrsn = RSN_CHANGE;
    currSsCmd  = KSD_CMD_CB;

    switch (ret)
    {
      case (AT_CMPL):
        rAT_OK (currSsCmd);
        break;

      case (AT_EXCT):
        break;

      default:
        rAT_PlusCME (currSsCmd, 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_SS                   |
| STATE   : code                  ROUTINE : ss_ClckRej               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void ss_ClckRej (T_ACI_AT_CMD  cmdId,
                        T_ACI_CME_ERR err)
{
  TRACE_FUNCTION ("ss_ClckRej ()");

  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;

  ui_signal (UI_SIG_UNHND_CME_ERR, err);

  if (CLCKqryrsn EQ RSN_CHANGE)
  {
    CLCKmode   = KSD_OP_NONE;
    CLCKqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_ClckCnf               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void ss_ClckCnf (T_ACI_AT_CMD cmdId)
{
  TRACE_FUNCTION ("ss_ClckCnf ()");

  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;
  else 
    return;

  if (CLCKqryrsn EQ RSN_CHANGE)
  {
    switch (CLCKmode)
    {
      case (KSD_OP_NONE):
        ss_sigClck (SS_RSLT_FAIL);
        break;

      case (KSD_OP_ACT):  
        ss_sigClck (SS_RSLT_LOCK);
        break;

      case (KSD_OP_DEACT):
        ss_sigClck (SS_RSLT_UNLOCK);
        break;
    }

    CLCKmode   = KSD_OP_NONE;
    CLCKqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_sigCcwa               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
LOCAL void ss_sigCcwa (T_SS_ACA_RSLT rslt)
{
  TRACE_FUNCTION ("ss_sigCcwa ()");

  ui_signal (UI_SIG_SS, rslt);
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_changeCcwa            |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL T_ACI_RETURN ss_changeCw (CHAR* seq, T_ACI_KSD_CW_PRM* prm)
{
  T_ACI_RETURN ret = AT_FAIL;

  TRACE_FUNCTION ("ss_changeCcwa ()");

  /*
   *-----------------------------------------------------------------
   * call to ACI function when no answer on a further ACI function
   * call is expected
   *-----------------------------------------------------------------
   */
  if (currSsCmd EQ AT_CMD_NONE)
  {  
    switch (prm->opCd)
    {
      case (KSD_OP_ACT):
      case (KSD_OP_DEACT):
        ret = sAT_Dn (CMD_SRC_LCL,
                      seq,
                      D_CLIR_OVRD_Default,
                      D_CUG_CTRL_NotPresent,
                      D_TOC_Voice);


        CCWAmode   = prm->opCd;
        CCWAqryrsn = RSN_CHANGE;
        currSsCmd  = KSD_CMD_CW;

        /*
         *-----------------------------------------------------------
         * process result code of ACI function call
         *-----------------------------------------------------------
         */   
        switch (ret)
        {
          case (AT_CMPL):
            rAT_OK (currSsCmd);
            break;

          case (AT_EXCT):
            break;

          default:
            rAT_PlusCME (currSsCmd, CME_ERR_Unknown);
            break;
        }
        break;

      default:
        ss_sigCcwa (SS_RSLT_FAIL);
        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_SS                   |
| STATE   : code                  ROUTINE : ss_CcwaCnf               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void ss_CcwaCnf (T_ACI_AT_CMD cmdId)
{
  TRACE_FUNCTION ("ss_CcwaCnf ()");

  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;
  else 
    return;

  if (CCWAqryrsn EQ RSN_CHANGE)
  {
    switch (CCWAmode)
    {
      case (KSD_OP_NONE):
        ss_sigCcwa (SS_RSLT_FAIL);
        break;

      case (KSD_OP_ACT):  
        ss_sigCcwa (SS_RSLT_ACT);
        break;

      case (KSD_OP_DEACT):
        ss_sigCcwa (SS_RSLT_DEACT);
        break;
    }

    CCWAmode   = KSD_OP_NONE;
    CCWAqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : ss_CcwaRej               |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void ss_CcwaRej (T_ACI_AT_CMD  cmdId, 
                        T_ACI_CME_ERR err)
{
  TRACE_FUNCTION ("ss_CcwaRej ()");

  if (cmdId EQ currSsCmd)
    currSsCmd = AT_CMD_NONE;

  ui_signal (UI_SIG_UNHND_CME_ERR, err);

  if (CCWAqryrsn EQ RSN_CHANGE)
  {
    CCWAmode   = KSD_OP_NONE;
    CCWAqryrsn = RSN_NONE;
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCCWA             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
#ifdef NO_ASCIIZ
GLOBAL void rAT_PlusCCWA (T_ACI_CLSSTAT* clsStatLst,
                          CHAR*          number,
                          T_ACI_TOA*     type,
                          U8             validity,
                          T_ACI_CLASS    class_type,
                          T_ACI_PB_TEXT* pbText)
#else  /* #ifdef NO_ASCIIZ */
GLOBAL void rAT_PlusCCWA (T_ACI_CLSSTAT* clsStatLst,
                          CHAR*          number,
                          T_ACI_TOA*     type,
                          U8             validity,
                          T_ACI_CLASS    class_type,
                          CHAR*          alpha)
#endif /* #ifdef NO_ASCIIZ */
{
#ifdef NO_ASCIIZ
  char  alphaBuf[MAX_ALPHA_LEN], *alpha;

  if ( ( pbText NEQ NULL ) AND ( pbText->len NEQ 0 ) )
  {
    memcpy ( alphaBuf, pbText->data, pbText->len );
    alphaBuf[pbText->len] = '\0';
    alpha = alphaBuf;
  }
  else
  {
    alpha = NULL;
  }
#endif /* #ifdef NO_ASCIIZ */

  TRACE_FUNCTION ("rAT_PlusCCWA ()");

  if (clsStatLst EQ NULL)
  {
    if (alpha NEQ NULL)
      ui_signal (UI_SIG_WAITING_CALL, alpha);
    else if (number NEQ NULL)
      ui_signal (UI_SIG_WAITING_CALL, number);
    else
      ui_signal (UI_SIG_WAITING_CALL, "");
  }
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCSSI             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void rAT_PlusCSSI  ( T_ACI_CSSI_CODE code,
                            SHORT           index)
{
  TRACE_FUNCTION ("rAT_PlusCSSI ()");

}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCSSU             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/
GLOBAL void rAT_PlusCSSU  ( T_ACI_CSSU_CODE code,
                            SHORT           index,
                            CHAR           *number,
                            T_ACI_TOA      *type,
                            CHAR           *subaddr,
                            T_ACI_TOS      *satype)
{
  TRACE_FUNCTION ("rAT_PlusCSSU ()");

}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCUSD             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/

GLOBAL void rAT_PlusCUSD  ( T_ACI_CUSD_MOD   m,
                            T_ACI_USSD_DATA *ussd,
                            SHORT            dcs)
{
  TRACE_FUNCTION ("rAT_PlusCUSD ()");

}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCCFC             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/

GLOBAL void rAT_PlusCCFC  ( T_ACI_CCFC_SET * setting )
{
  TRACE_FUNCTION ("rAT_PlusCCFC ()");
}

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)         MODULE  : SMI_SS                   |
| STATE   : code                  ROUTINE : rAT_PlusCLCK             |
+--------------------------------------------------------------------+

  PURPOSE : 
*/

GLOBAL void rAT_PlusCLCK  ( T_ACI_CLSSTAT * clsStat )
{
  TRACE_FUNCTION ("rAT_PlusCLCK ()");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -