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

📄 aca.h

📁 是一个手机功能的模拟程序
💻 H
字号:
/* 
+----------------------------------------------------------------------------- 
|  Project :  GSM-F&D (8411)
|  Modul   :  ACA
+----------------------------------------------------------------------------- 
|  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 :  Definitions for the ACI adapter.
+----------------------------------------------------------------------------- 
*/ 

#ifndef ACA_H
#define ACA_H

/*==== CONSTANTS ==================================================*/

#define MAX_KEYSEQ_SIZE (MAX_SM_LEN + 10) /* must be equal to */
                                          /* MAX_INPUT_SIZE   */     

/*
 *-------------------------------------------------------------------
 * service types (substate) of the MMI
 *-------------------------------------------------------------------
 */
#define SRV_NONE    0  /* out of service                        */
#define SRV_LIMITED 1  /* limited service (registered but no    */
                       /* SIM or SIM but no authentification)   */
#define SRV_NORMAL  2  /* normal service: SIM inserted and      */
                       /* authorized                            */

/*
 *-------------------------------------------------------------------
 * States of the Man Machine Interface
 *-------------------------------------------------------------------
 */
#define MMI_OFF            0
#define MMI_ON             1
#define MMI_WAIT_FOR_PIN   2
#define MMI_WAIT_FOR_PUK   3
#define MMI_IDLE           4
#define MMI_WAIT_FOR_REG   5 
#define MMI_WAIT_FOR_DEREG 6 

/*
 *-------------------------------------------------------------------
 * signals send from UI->ACA
 *-------------------------------------------------------------------
 */
#define ACA_SIG_POWER_ON    0
#define ACA_SIG_POWER_OFF   1
#define ACA_SIG_PININPUT    2
#define ACA_SIG_PUKINPUT    3
#define ACA_SIG_BATLEV_REQ  5
#define ACA_SIG_KEYSEQUENCE 7
#define ACA_SIG_DIAL_NUMBER 8
#define ACA_SIG_RELEASE     9
#define ACA_SIG_ACCEPT      10
#define ACA_SIG_REGISTER    11
#define ACA_SIG_SEND_DTMF   12
#define ACA_SIG_VOLUME      13

/*                                      
 *-------------------------------------------------------------------
 * signals send from UI->SMS
 *-------------------------------------------------------------------
 */
#define SMS_SIG_START_LIST_VIEW 0
#define SMS_SIG_NEXT_LIST_VIEW  1
#define SMS_SIG_PREV_LIST_VIEW  2
#define SMS_SIG_START_MSG_VIEW  3
#define SMS_SIG_DELETE          4
#define SMS_SIG_WRITE           5
#define SMS_SIG_SUBMIT          6
#define SMS_SIG_SUBMIT_FROM_MEM 7
#define SMS_SIG_READ_SINGLE     8

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

typedef enum
{
  SS_RSLT_FAIL   = 0,  /* SS request failed with unspecific error  */
  SS_RSLT_OK     = 1,  /* SS request passed with unspecific effect */
  SS_RSLT_NET    = 2,  /* SS is provisioned acc. to the network    */
  SS_RSLT_ACT    = 3,  /* SS is activated                          */
  SS_RSLT_DEACT  = 4,  /* SS is deactivated                        */
  SS_RSLT_REG    = 5,  /* SS is registered                         */
  SS_RSLT_ERASE  = 6,  /* SS is erased                             */
  SS_RSLT_INVOC  = 7,  /* SS is invoked                            */
  SS_RSLT_SUPP   = 8,  /* SS is suppressed                         */
  SS_RSLT_LOCK   = 9,  /* SS is locked                             */
  SS_RSLT_UNLOCK = 10  /* SS is unlocked                           */
}
T_SS_ACA_RSLT;

typedef enum          /* used to indicate source callback function */
{
  NO_CARRIER,         /* rAT_NO_CARRIER ()                         */
  BUSY,               /* rAT_BUSY       ()                         */
  NO_ANSWER           /* rAT_NO_ANSWER  ()                         */
}
T_MMI_RCB_ID;
  
typedef enum              /* used to indicate the input procedure  */
{                         /* which will be presented to the user   */
  SMS_PROC_SEND,
  SMS_PROC_SEND_FROM_MEM,
  SMS_PROC_WRITE,
  SMS_PROC_DELETE,
  SMS_PROC_READ,
  SMS_PROC_LIST,
  SMS_PROC_READ_SINGLE
}
T_ACA_SMS_PROC;

typedef enum
{
  SMS_TYP_SM,         /* used to indicate a short message          */
  SMS_TYP_CBM         /* used to indicate a cell broadcast message */
}
T_ACA_SMS_TYP;

typedef enum
{
  RSN_INTRGT,          /* interrogation is in progress             */
  RSN_CHANGE,          /* change of SS settings is in progress     */
  RSN_NONE             /* none of all                              */
}
T_ACA_RSN;

typedef struct
{
  CHAR      number[MAX_SMS_NUM_LEN];
  T_ACI_TOA type;
}
T_ACA_NUMBER;

typedef struct
{
  UBYTE        state;
  UBYTE        serviceType;
}
T_MMI_DATA;

typedef struct
{
  CHAR           keySeq[MAX_KEYSEQ_SIZE + 1];
  CHAR*          nextSeq;
  CHAR*          restSeq;
  T_KSD_SEQGRP   grp;
  T_KSD_SEQPARAM param;
  T_ACI_RETURN   atReturn;
}
T_KEYSEQ_HND;

/*==== PROTOTYPES SS ==============================================*/

EXTERN void         ss_initialize  (BOOL isStartup);

EXTERN T_ACI_RETURN ss_changeClip  (T_KSD_CLIP *Clip);

EXTERN T_ACI_RETURN ss_intrgtClip  (void);

EXTERN T_ACI_RETURN ss_changeClir  (T_KSD_CLIR *Clir);

EXTERN T_ACI_RETURN ss_intrgtClir  (void);

EXTERN T_ACI_RETURN ss_changeColp  (T_KSD_COLP *Colp);

EXTERN T_ACI_RETURN ss_intrgtColp  (void);

EXTERN T_ACI_RETURN ss_changeCf    (CHAR             *seq,
                                    T_ACI_KSD_CF_PRM *prm);

EXTERN void         ss_CcfcCnf     (T_ACI_AT_CMD cmdId);

EXTERN void         ss_CcfcRej     (T_ACI_AT_CMD  cmdId,
                                    T_ACI_CME_ERR err);

EXTERN T_ACI_RETURN ss_changeCb    (CHAR             *seq,
                                    T_ACI_KSD_CB_PRM *prm);

EXTERN void         ss_ClckCnf     (T_ACI_AT_CMD cmdId);

EXTERN void         ss_ClckRej     (T_ACI_AT_CMD  cmdId,
                                    T_ACI_CME_ERR err);

EXTERN T_ACI_RETURN ss_changeCw    (CHAR             *seq,
                                    T_ACI_KSD_CW_PRM *prm);

EXTERN void         ss_CcwaCnf     (T_ACI_AT_CMD cmdId);

EXTERN void         ss_CcwaRej     (T_ACI_AT_CMD  cmdId,
                                    T_ACI_CME_ERR err);

/*==== PROTOTYPES REG =============================================*/

EXTERN void         reg_initialize  (BOOL isStartup);

EXTERN void         reg_CopsRej     (T_ACI_AT_CMD  cmdId,
                                     T_ACI_CME_ERR err);
                
EXTERN void         reg_CopsCnf     (T_ACI_AT_CMD cmdId);

EXTERN T_ACI_RETURN reg_changeReg   (void);

EXTERN T_ACI_RETURN reg_setReg      (T_KSD_COPS *cops);

EXTERN T_ACI_RETURN reg_startReg    ();

EXTERN T_ACI_RETURN reg_powerOn     (void);

EXTERN T_ACI_RETURN reg_powerOff    (void);

EXTERN void         reg_CfunRej     (T_ACI_AT_CMD  cmdId,
                                     T_ACI_CME_ERR err);

EXTERN void         reg_CfunCnf     (T_ACI_AT_CMD cmdId);

EXTERN void         reg_setOperName (CHAR* oper);

EXTERN void         reg_pinState    (BOOL cnf, BOOL need);

/*==== PROTOTYPES SMS =============================================*/

EXTERN void         sms_initialize     (BOOL isStartup);

EXTERN T_ACI_RETURN sms_startInputProc (T_ACA_SMS_PROC proc);

EXTERN void         sms_signal         (UBYTE sigCode, ...);

EXTERN void         sms_CmgdCnf        (T_ACI_AT_CMD cmdId);

EXTERN void         sms_setSca         (CHAR* inSca);

EXTERN void         sms_setDa          (CHAR* inDa);

EXTERN void         sms_setMsg         (CHAR* inMsg);

EXTERN void         sms_setVp          (SHORT inVp);

EXTERN void         sms_getSca         (CHAR*);

EXTERN void         sms_getDa          (CHAR*);

EXTERN void         sms_getMsg         (CHAR*);

EXTERN SHORT        sms_getVp          (void);

/*==== PROTOTYPES ACA =============================================*/

EXTERN void         aca_init          (BOOL isStartup);

EXTERN void         aca_signal        (UBYTE sigCode,
                                       ...);
                
EXTERN void         aca_keySeqInd     (CHAR*         inSeq,
                                       T_KEYSEQ_HND* hnd);
                
EXTERN void         aca_keySeqHndInit (T_KEYSEQ_HND* hnd);

EXTERN void         aca_cvtNumber     (CHAR*         inNumber,
                                       T_ACA_NUMBER* outNumber);

EXTERN void         aca_recvtNumber   (T_ACA_NUMBER* inNumber,
                                       CHAR*         outNumber);

EXTERN T_ACI_RETURN aca_setupVolume   (UBYTE audioIn,
                                       UBYTE audioOut);

EXTERN BOOL         aca_setAbrtCmd    (T_ACI_AT_CMD cmd);

/*==== PROTOTYPES SEC =============================================*/

EXTERN void         sec_initialize (BOOL isStartup);

EXTERN void         sec_pinEntered (CHAR* input);
              
EXTERN void         sec_pukEntered (CHAR* puk,
                                    CHAR* npin1,
                                    CHAR* npin2);
              
EXTERN void         sec_CpinRej    (T_ACI_AT_CMD  cmdId,
                                    T_ACI_CME_ERR err);
                
EXTERN void         sec_CpinCnf    (T_ACI_AT_CMD cmdId);
                
EXTERN T_ACI_RETURN sec_regPasswd  (CHAR              *seq,
                                    T_ACI_KSD_PWD_PRM *prm);

EXTERN void         sec_CpwdCnf    (T_ACI_AT_CMD cmdId);

EXTERN void         sec_CpwdRej    (T_ACI_AT_CMD  cmdId,
                                    T_ACI_CME_ERR err);

/*==== PROTOTYPES CAL =============================================*/

EXTERN void         cal_initialize       (BOOL isStartup);

EXTERN T_ACI_RETURN cal_setupCall        (T_KSD_DIAL *dial);
                                        
EXTERN T_ACI_RETURN cal_setupUssd        (T_KSD_DIAL *ussd);
                                        
EXTERN T_ACI_RETURN cal_releaseCall      (void);
                                        
EXTERN T_ACI_RETURN cal_acceptCall       (void);
                                        
EXTERN T_ACI_RETURN cal_changeCall       (T_KSD_CHLD *chld);

GLOBAL T_ACI_RETURN cal_invokeCTFR       (T_KSD_CTFR *ctfr);

EXTERN T_ACI_RETURN cal_showCallTable    (void);

EXTERN T_ACI_RETURN cal_setCbst          (T_KSD_CBST *bst);
                                        
EXTERN T_ACI_RETURN cal_setCrlp          (T_KSD_CRLP *crlp);
                                        
EXTERN T_ACI_RETURN cal_setDs            (T_KSD_DS *ds);
                                        
EXTERN void         cal_DCnf             (T_ACI_AT_CMD cmdId);
                                        
EXTERN void         cal_DRejWhilePlusCME (T_ACI_AT_CMD  cmdId,
                                          T_ACI_CME_ERR err);

EXTERN void         cal_HCnf             (T_ACI_AT_CMD cmdId);
                                        
EXTERN void         cal_HRejWhilePlusCME (T_ACI_AT_CMD  cmdId,
                                          T_ACI_CME_ERR err);

EXTERN void         cal_ACnf             (T_ACI_AT_CMD cmdId);
                                        
EXTERN void         cal_ARejWhilePlusCME (T_ACI_AT_CMD  cmdId,
                                          T_ACI_CME_ERR err);

EXTERN void         cal_ChldCtfrCnf      (T_ACI_AT_CMD cmdId);

EXTERN void         cal_ChldCtfrRej      (T_ACI_AT_CMD  cmdId, 
                                          T_ACI_CME_ERR err);

EXTERN void         cal_VtsCnf           (T_ACI_AT_CMD cmdId);
                                        
EXTERN void         cal_VtsRej           (T_ACI_AT_CMD  cmdId, 
                                          T_ACI_CME_ERR err);

EXTERN BOOL         cal_isWithinCall     (void);

#if 0 /* Code disabled as it may not be needed anymore */
EXTERN BOOL         cal_isCallActive     (void);
#endif

EXTERN BOOL         cal_isDTMFPossible   (void);

EXTERN BOOL         cal_isCallWaiting    (void);

EXTERN BOOL         cal_isFirstCallWait  (void);

EXTERN BOOL         cal_isNoCall         (void);

EXTERN void         cal_setAbbrDial      (BYTE  index,
                                          CHAR *number);

EXTERN CHAR*        cal_getAbbrDial      (UBYTE index);

EXTERN T_ACI_RETURN cal_sendDtmf         (CHAR dtmf, BOOL pressed);

EXTERN void         cal_sendAudioToneReq (UBYTE callTone,
                                          UBYTE volume,
                                          UBYTE toneStat);

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

EXTERN T_MMI_DATA *mmi_data;

#endif

⌨️ 快捷键说明

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