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

📄 smi_dmy.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 4 页
字号:
/* 
+----------------------------------------------------------------------------- 
|  Project :  GSM-F&D (8411)
|  Modul   :  SMI_DMY
+----------------------------------------------------------------------------- 
|  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 is used to implement all callback functions
|             which are not yet supported by the SMI.
+----------------------------------------------------------------------------- 
*/ 

#ifndef SMI_DMY_C
#define SMI_DMY_C
#endif

#define ENTITY_SMI

/*==== INCLUDES ===================================================*/
#include <stdio.h>
#include <string.h>
#include "typedefs.h"
#include "vsi.h"
#include "custom.h"
#include "gsm.h"
#include "prim.h"
#include "tok.h"
#include "message.h"

#include "aci_cmh.h"
#include "ksd.h"
#include "aca.h"
#include "smi.h"

/*==== CONSTANTS ==================================================*/
#undef FAC_TRACE   /* Facility Trace */

/*==== TYPES ======================================================*/

/*==== EXPORT =====================================================*/

/*==== VARIABLES ==================================================*/

/*==== FUNCTIONS ==================================================*/

#ifdef FAC_TRACE
LOCAL void smi_trace_ss_opcode  (UBYTE opcode);
LOCAL void smi_trace_ss_codes   (UBYTE ss_code);
LOCAL void smi_trace_ss_error   (UBYTE ss_error);
LOCAL void smi_trace_ss_status  (UBYTE ss_status);
LOCAL void smi_trace_clir_opt   (UBYTE clir_opt);
LOCAL void smi_trace_ovr_ctg    (UBYTE ovr_ctg);
LOCAL void smi_trace_cf_feature (T_CF_FEAT * feature);
LOCAL void smi_trace_cw_feature (T_Cx_BSG  * feature);
LOCAL void smi_trace_cb_feature (T_CB_INFO * feature);
LOCAL void smi_trace_bs_ts      (UBYTE bsTp, UBYTE bsCd);
LOCAL void smi_trace_bs         (UBYTE bsCd);
LOCAL void smi_trace_ts         (UBYTE bsCd);
LOCAL void smi_trace_ton        (UBYTE ton);
LOCAL void smi_trace_npi        (UBYTE npi);
LOCAL void smi_trace_tos        (UBYTE tos);
#endif /* FAC_TRACE */
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-F&D (8411)              MODULE  : ACI_RET            |
| STATE   : code                        ROUTINE : smi_trace_ss_opcode|
+--------------------------------------------------------------------+

  PURPOSE : Traces the SS opcode

*/
#ifdef FAC_TRACE
LOCAL void smi_trace_ss_opcode (UBYTE opcode)
{

  switch (opcode)
  {
    case KSD_OP_IRGT:
      TRACE_EVENT ("Operation: Interrogate SS");
      break;
    case KSD_OP_REG:
      TRACE_EVENT ("Operation: Register SS");
      break;
    case KSD_OP_ERS:
      TRACE_EVENT ("Operation: Erase SS");
      break;
    case KSD_OP_ACT:
      TRACE_EVENT ("Operation: Activate SS");
      break;
    case KSD_OP_DEACT:
      TRACE_EVENT ("Operation: Deactivate SS");
      break;
  }

}
#endif /* FAC_TRACE */

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-F&D (8411)              MODULE  : ACI_RET            |
| STATE   : code                        ROUTINE : smi_trace_clir_opt |
+--------------------------------------------------------------------+

  PURPOSE : Traces the Clir Options

*/
#ifdef FAC_TRACE
LOCAL void smi_trace_clir_opt (UBYTE clir_opt)
{
  switch (clir_opt)
  {
    case KSD_CO_NOT_VALID:
      TRACE_EVENT ("CLIR opt : Not available");
      break;
    case KSD_CO_PERMANENT:
      TRACE_EVENT ("CLIR opt : Permanent");
      break;
    case KSD_CO_TEMPORARY:
      TRACE_EVENT ("CLIR opt : Temporary Default");
      break;
    case KSD_CO_ALLOWED:
      TRACE_EVENT ("CLIR opt : Allowed Temporary Default");
      break;
  }
}
#endif /* FAC_TRACE */

/*
+--------------------------------------------------------------------+
| PROJECT : GSM-F&D (8411)              MODULE  : ACI_RET            |
| STATE   : code                        ROUTINE : smi_trace_bs       |
+--------------------------------------------------------------------+

  PURPOSE : Trace Bearer Service

*/
#ifdef FAC_TRACE
LOCAL void smi_trace_bs (UBYTE bsCd)
{
  switch (bsCd)
  {
    case KSD_BS_ALL_BS:
      TRACE_EVENT ("Bearer   : all bearer services");
      break;
    case KSD_BS_ALL_DATA_CDA:
      TRACE_EVENT ("Bearer   : all data CDA services");
      break;
    case KSD_BS_CDA_300:
      TRACE_EVENT ("Bearer   : data CDA 300 bps");
      break;
    case KSD_BS_CDA_1200:
      TRACE_EVENT ("Bearer   : data CDA 1200 bps");
      break;
    case KSD_BS_CDA_1200_75:
      TRACE_EVENT ("Bearer   : data CDA 1200/75 bps");
      break;
    case KSD_BS_CDA_2400:
      TRACE_EVENT ("Bearer   : data CDA 2400 bps");
      break;
    case KSD_BS_CDA_4800:
      TRACE_EVENT ("Bearer   : data CDA 4800 bps");
      break;
    case KSD_BS_CDA_9600:
      TRACE_EVENT ("Bearer   : data CDA 9600 bps");
      break;
    case KSD_BS_ALL_DATA_CDS:
      TRACE_EVENT ("Bearer   : all data CDS services");
      break;
    case KSD_BS_CDS_1200:
      TRACE_EVENT ("Bearer   : data CDS 1200 bps");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch
     * with too many cases, the assembler produces
     * failures)
     */
    case KSD_BS_CDS_2400:
      TRACE_EVENT ("Bearer   : data CDS 2400 bps");
      break;
    case KSD_BS_CDS_4800:
      TRACE_EVENT ("Bearer   : data CDS 4800 bps");
      break;
    case KSD_BS_CDS_9600:
      TRACE_EVENT ("Bearer   : data CDS 9600 bps");
      break;
    case KSD_BS_ALL_DATA_PAD:
      TRACE_EVENT ("Bearer   : all data PAD services");
      break;
    case KSD_BS_PAD_300:
      TRACE_EVENT ("Bearer   : data PAD 300 bps");
      break;
    case KSD_BS_PAD_1200:
      TRACE_EVENT ("Bearer   : data PAD 1200 bps");
      break;
    case KSD_BS_PAD_1200_75:
      TRACE_EVENT ("Bearer   : data PAD 1200/75 bps");
      break;
    case KSD_BS_PAD_2400:
      TRACE_EVENT ("Bearer   : data PAD 2400 bps");
      break;
    case KSD_BS_PAD_4800:
      TRACE_EVENT ("Bearer   : data PAD 4800 bps");
      break;
    case KSD_BS_PAD_9600:
      TRACE_EVENT ("Bearer   : data PAD 9600 bps");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch
     * with too many cases, the assembler produces
     * failures)
     */
    case KSD_BS_ALL_DATA_PDS:
      TRACE_EVENT ("Bearer   : all data PDS services");
      break;
    case KSD_BS_PDS_2400:
      TRACE_EVENT ("Bearer   : data PDS 2400 bps");
      break;
    case KSD_BS_PDS_4800:
      TRACE_EVENT ("Bearer   : data PDS 4800 bps");
      break;
    case KSD_BS_PDS_9600:
      TRACE_EVENT ("Bearer   : data PDS 9600 bps");
      break;
    case KSD_BS_SPCH_ALT_CDA:
      TRACE_EVENT ("Bearer   : all data CDA alternating speech");
      break;
    case KSD_BS_SPCH_ALT_CDS:
      TRACE_EVENT ("Bearer   : all data CDS alternating speech");
      break;
    case KSD_BS_SPCH_FLD_CDA:
      TRACE_EVENT ("Bearer   : all data speech followed by CDA");
      break;
    case KSD_BS_SPCH_FLD_CDS:
      TRACE_EVENT ("Bearer   : all data speech followed by CDS");
      break;
    case KSD_BS_ALL_DC_ASYN:
      TRACE_EVENT ("Bearer   : all data circuit asynchronous");
      break;
    case KSD_BS_ALL_ASYN:
      TRACE_EVENT ("Bearer   : all asynchronous");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch
     * with too many cases, the assembler produces
     * failures)
     */
    case KSD_BS_ALL_DC_SYN:
      TRACE_EVENT ("Bearer   : all data circuit synchronous");
      break;
    case KSD_BS_ALL_SYN:
      TRACE_EVENT ("Bearer   : all synchronous");
      break;
    case KSD_BS_ALL_PSSS:
      TRACE_EVENT ("Bearer   : all PLMN specific bearer service");
      break;
    case KSD_BS_PLMN1:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 1");
      break;
    case KSD_BS_PLMN2:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 2");
      break;
    case KSD_BS_PLMN3:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 3");
      break;
    case KSD_BS_PLMN4:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 4");
      break;
    case KSD_BS_PLMN5:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 5");
      break;
    case KSD_BS_PLMN6:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 6");
      break;
    case KSD_BS_PLMN7:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 7");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch
     * with too many cases, the assembler produces
     * failures)
     */
    case KSD_BS_PLMN8:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 8");
      break;
    case KSD_BS_PLMN9:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 9");
      break;
    case KSD_BS_PLMNA:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 10");
      break;
    case KSD_BS_PLMNB:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 11");
      break;
    case KSD_BS_PLMNC:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 12");
      break;
    case KSD_BS_PLMND:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 13");
      break;
    case KSD_BS_PLMNE:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 14");
      break;
    case KSD_BS_PLMNF:
      TRACE_EVENT ("Bearer   : PLMN specific bearer service 15");
      break;
  }
}
#endif /* FAC_TRACE */


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-F&D (8411)              MODULE  : ACI_RET            |
| STATE   : code                        ROUTINE : smi_trace_ts       |
+--------------------------------------------------------------------+

  PURPOSE : Trace Tele Service

*/
#ifdef FAC_TRACE
LOCAL void smi_trace_ts (UBYTE bsCd)
{
  switch (bsCd)
  {
    case KSD_TS_ALL_TS:
      TRACE_EVENT ("Tele     : all tele services");
      break;
    case KSD_TS_ALL_SPCH:
      TRACE_EVENT ("Tele     : all speech transmission services");
      break;
    case KSD_TS_TLPHNY:
      TRACE_EVENT ("Tele     : telephony");
      break;
    case KSD_TS_EMRGNCY:
      TRACE_EVENT ("Tele     : emergency calls");
      break;
    case KSD_TS_ALL_SMS:
      TRACE_EVENT ("Tele     : all SMS services");
      break;
    case KSD_TS_SMS_MT:
      TRACE_EVENT ("Tele     : SMS MT PP");
      break;
    case KSD_TS_SMS_MO:
      TRACE_EVENT ("Tele     : SMS MO PP");
      break;
    case KSD_TS_ALL_FAX:
      TRACE_EVENT ("Tele     : all FAX services");
      break;
    case KSD_TS_FAX3_ALT_SPCH:
      TRACE_EVENT ("Tele     : FAX group 3 alternating speech");
      break;
    case KSD_TS_FAX3_AUTO:
      TRACE_EVENT ("Tele     : FAX group 3 automatic");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch
     * with too many cases, the assembler produces
     * failures)
     */
    case KSD_TS_FAX4:
      TRACE_EVENT ("Tele     : FAX group 4");
      break;
    case KSD_TS_ALL_DATA:
      TRACE_EVENT ("Tele     : all FAX and SMS services");
      break;
    case KSD_TS_ALL_XCPT_SMS:
      TRACE_EVENT ("Tele     : all FAX and Speech services");
      break;
    case KSD_TS_ALL_PSSS:
      TRACE_EVENT ("Tele     : all PLMN specific tele services");
      break;
    case KSD_TS_PLMN1:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 1");
      break;
    case KSD_TS_PLMN2:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 2");
      break;
    case KSD_TS_PLMN3:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 3");
      break;
    case KSD_TS_PLMN4:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 4");
      break;
    case KSD_TS_PLMN5:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 5");
      break;
    case KSD_TS_PLMN6:
      TRACE_EVENT ("Tele     : PLMN specifc tele service 6");
      break;
  }

  switch (bsCd)
  {
    /*
     * this construct needed due to a bug in
     * the target compiler (don磘 use switch

⌨️ 快捷键说明

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