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

📄 atpte.c

📁 free sources for gsm
💻 C
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************/
/*  Title : IMEI used AT Command Functions                                                                                       */
/*---------------------------------------------------------------------------  */
/*  Developer : MTIS MI                                                                                                                      */
/*  Scope :  ADC, Caldate, Reset etc ... ...                                                                                                                                         */
/******************************************************************************/
/*
     #Log : 2003. 10. 06 MTIS MI Initial revision
                  - coding most AT Commands SET
                2003. 10. 15 MTIS MI 
 
/*- Header Definition --------------------------------------------------------*/
#ifdef MTS_IMEI  
#include "..\app\at\atextend.h"
#include "ker_port.h"
#include "..\uh\uhadc.h"         // HndlATsSTARTADC
#include "..\ui\mmiapi\uinvm.h"  // HndlATsCALDATE
#include "..\uh\uh.h"
#include "..\uh\uhppi.h"
#include "..\config\uhconfig.h"  
#include  "..\ct\ctlocal.h"
#if defined (__YAMAHA_KEYFOLDER__)
#include "mmi_head.h"
#endif
#include "..\sngs\types.h" // QoS
#include "..\system\sysprim.h"
#include "..\app\secmmi\inc\wapcommon.h"
#include "ker.h"
#include "..\app\secmmi\MMS\mms_type.h"
#include "..\app\secmmi\MMS\mms_handler.h"
#include "mms\mms_ffs\mms_ffs.h"
#include "mmi_nw.h"
#include "mmi_data.h"
#include "..\nv\trident\hwcaldat.h" // Include for IMEI function
#include "..\nv\trident\hwnvm.h"
//#include "..\config\uiuh.h"               // Include for KeyEvent function
 
#if defined (DITTO_MMS)
#include "mms\Mms_Setup_Util.h" //added by doors, ditto 040205
#endif

/* - Value Definition ---------------------------------------------------------*/
#if   !defined( UP_SIMIndex )
#define  UP_SIMIndex    0
#endif
#if defined( __NW_BROWSER__ )
#define  WAP_Proxies       NW_Proxies
#endif
#define MAX_MMS_PROXY_NUM 5
#define GPRS_BEARER 0
#define DATA_BEARER 1
#if   !defined( UP_SIMIndex )
#define  UP_SIMIndex    0
#endif
#if defined( __NW_BROWSER__ )
#define  WAP_Proxies    NW_Proxies
#endif
#define  SmscLimit      20 // +UIWVOI 
static UINT16 DummyArrayUINT16[2];
static BOOLEAN KeyActive = FALSE;
static UINT16 KeyPress;          /* When a keypress occurs, this stores the keycode for */
static UINT16 KeyHold[2];

/*- Variables Definition ------------------------------------------------------*/
typedef struct
{
   INT8 name[15];
   UINT16 offset;
   UINT16 size;
}NVM_ACCESS_DATA;

typedef struct MmsSetup_s
{
   u8 isActive;
   ProxyInfo MmsWapSetupInfo[5]; 
}MmsSetup_t;

extern int SM_WpushMode;
extern MmsSetup_t MMS_ProxyServer;
extern WCHAR PostInitAddr[50];
extern  const INT8 TimeDifference[22];
static CALIBRATION_DATA *HwCal;

extern void mmi_Mms_wapsetupindex_save(u8 index);
//extern MMS_SETUP gMmsSetup;  //removed by doors, ditto 040205
#if defined ( __SGH_E810_TARGET__ ) || defined(__SGH_E300_TARGET__) /* Function change by Ditto, So I change call function argues. by MTIS PBK*/
extern void mmi_Mms_setup_load(MmsSetup_t *current);
extern void mmi_Mms_setup_save(MmsSetup_t *current);
#else
extern void mmi_Mms_setup_load(u8 index , MmsSetup_t *current);
extern void mmi_Mms_setup_save(u8 index , MmsSetup_t *current);
#endif
static void KeyholdCallback(void * Dummy);
u8  Get_Expiry_Date_Inex(u32 expiry);
u8  Get_Delivery_Time_Index(u32 time);
u32 Get_Expiry_Date(u8 expiry_index);
u32 Get_Delivery_Time(u8 time_index);


const NVM_ACCESS_DATA nvm_offset_size[] = {
/* string data length limit : 14 
   "01234567890123", E2P_XXXXXXXXXX" 
*/
   "E2PTSTPATTERN",  E2P_E2PTSTPATTERN,
   "STCKTSTPATTERN", E2P_STCKTSTPATTERN,
   "LANGUAGE",       E2P_LANGUAGE,
   "OPLOGO",         E2P_OPLOGO,
   "OPERATOR",       E2P_OPERATOR,
   "SWRESET1",       NVM_SYSRESETVALUE,
   "PRODUCTNUM",     E2P_PRODUCTNUM,
   "BATTCALDATA",    E2P_BATTCALDATA,
   "SETTINGS",       E2P_SETTINGS,
#ifdef SEC_CPHS
   "RINGTONE1",      E2P_RINGTONE(0),
   "RINGTONE2",      E2P_RINGTONE(1),
#else
   "RINGTONE",       E2P_RINGTONE,
#endif   
   "KEYTONE",        E2P_KEYTONE,
   "SPKLEVEL",       E2P_SPKLEVEL,
   "RINGLEVEL",      E2P_RINGLEVEL,
   "KEYLEVEL",       E2P_KEYLEVEL,
   "MSGTONE",        E2P_MSGTONE,
   "RINGTYPE",       E2P_RINGTYPE,
   "STATUS",         E2P_STATUS,
   "LOCKPWD",        E2P_LOCKPWD,
   "CONTRAST",       E2P_CONTRAST,
#if defined (DUAL_LCD)
   "BABYCONTRAST",   E2P_BABYCONTRAST,
#endif
   "CALDATE",        E2P_CALDATE,
   "HWREV",          E2P_HWREV,
   "MSGTONE",        E2P_MSGTONE,
   "CBTONE",         E2P_CBTONE,     
   "RINGTYPE",       E2P_RINGTYPE,   
   "STATUS",         E2P_STATUS,     
   "LOCKPWD",        E2P_LOCKPWD,
   /*
   "GREETING",       E2P_GREETING,     replace CTSetBGIMGString() function 
   */
   "LOCALTIME",      E2P_LOCAL_TIME, 
   "ICCID",          E2P_ICCID,       
   "ALARMMODE",      E2P_ALARMMODE, 
   "DATEFORMAT",     E2P_DATEFORMAT,
   "TIMEFORMAT",     E2P_TIMEFORMAT,
   "AUTOATTACH",     NVM_AUTOATTACH,
#if defined ( __TRIBAND__ )
   "BANDMODE",   NVM_BANDMODE,
#endif   
#if defined(__YAMAHA_KEYFOLDER__)
   "FOLDERTONE",     E2P_FOLDERTONE,        
   "POWERTONE",     E2P_POWERTONE,        
#endif
};

static UINT8 NvmAccessElemArray[32] =
{ 
   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};


 
/*- Local Functions ---------------------------------------------------------  */
/* ADC Command( +STARTADC? )                                                                             
/* Name: HndlATrSTARTADC                                                                                           
/* Type: Read
/* Using : AT+STARTADC?
/* Desc : ADC俊 措茄 AT Command 瘤盔 咯何 犬牢
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/

ATCMD_RESULT HndlATrSTARTADC( void )
{
   extern UINT16 adcdataAG[3];
   
   INT8 *str = ( INT8 * ) GSMMalloc( 40 );

   GSMsprintf( str,"ADCData:%u",adcdataAG[uhBATT_VOLT]>>2 );

   ATSendReply( str );
   GSMFree( str );

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* ADC Command( +STARTADC )                                                                             
/* Name: HndlATsSTARTADC                                                                                           
/* Type: Set
/* Using : AT+STARTADC
/* Desc : ADC俊 措茄 AT Command 瘤盔 咯何 犬牢
/* Returns: OK or ERROR
/* Note : Parameter 蔼捞 绝促.
/* ------------------------------------------------------------------------*/

ATCMD_RESULT HndlATsSTARTADC(INT8 * paramStrPtr )
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];
   
   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if(paramArray[0].Value != 1)
      return AT_ECMDERROR;
   
   UHAdConvertStart(uhBATT_VOLT);

   return DIDIT;
}


/*- Local Functions ---------------------------------------------------------  */
/* ADC Command( +CALDATE=? )                                                                             
/* Name: HndlATrCALDATE                                                                                           
/* Type: Read
/* Using : AT+CALDATE=?
/* Desc : CALDATE俊 措茄 AT Command 瘤盔 咯何 犬牢
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrCALDATE(void)
{
   INT8 *str0 = ( INT8 * ) GSMMalloc( 256 );
   UINT8 data[256];

   NVM_Read( E2P_CALDATE, str0 );

   str0[8]='\0';

   GSMsprintf(data, "CalDate:\"%s\"",str0);
   ATSendReply( data );
   GSMFree( str0 );

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* ADC Command                                                                             
/* Name: HndlATsCALDATE                                                                                           
/* Type: Set
/* Using : AT+CALDATE="<Date value>"
/* Desc : CALDATE俊 措茄 蔼 技泼
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsCALDATE(INT8 *paramStrPtr)
{
   UINT8  nFinal, stringLen = 0;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];
   NVMMmiCal_t  MmiCal;

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if(result != DIDIT)
      return AT_ECMDERROR;

   if (paramArray[0].String.Len > 8 )
      stringLen = 8;
   else
      stringLen = paramArray[0].String.Len;

   GSMmemset(MmiCal.CalDate, 0x00, 8); /* garbage value reset */
   GSMmemcpy(MmiCal.CalDate, paramArray[0].String.Buffer, stringLen);  

   NVM_Write(E2P_CALDATE,MmiCal.CalDate);  

   return DIDIT;
   
}


/*- Local Functions ---------------------------------------------------------  */
/* BATTERYCALDATA Command                                                                             
/* Name: HndlATsBATTERYCALDATA                                                                                           
/* Type: Set
/* Using : AT+BATTERYCALDATA=<value0>,<value1>, ... ... , <value7>
/* Desc : BATTERYCALDATA俊 措茄 蔼 技泼
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/

#if 1  //Modified by dreamsoft_donghan.lee 2004.5.19 batt_cal
ATCMD_RESULT HndlATsBATTERYCALDATA(INT8 *paramStrPtr)
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[9];
   INT8  i;
   UINT8 *buff = ( UINT8 * ) GSMMalloc(256);
   //ker_memset(buff,0xff,256); 鞘夸 绝阑淀 老窜 林籍栏肺 扼档 持绢 焊磊 
   ParameterStructInit(paramArray, 9);
   result = ParseForNOptIntAndString( paramStrPtr, 9 , paramArray, &nFinal );

   if(result != DIDIT)
      return AT_ECMDERROR;
      
   for ( i = 0; i < nFinal ; i++ )
   {
      buff[i] = paramArray[i].Value;
   }

   WriteBattData(buff);

   GSMFree( buff );

   return DIDIT;   
}

#else
ATCMD_RESULT HndlATsBATTERYCALDATA(INT8 *paramStrPtr)
{
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[20];
   INT8  i;
   UINT8 *buff = ( UINT8 * ) GSMMalloc(256);

   ParameterStructInit(paramArray, 20);
   result = ParseForNOptIntAndString( paramStrPtr, 20, paramArray, &nFinal );

   if(result != DIDIT)
      return AT_ECMDERROR;
      
   for ( i = 0; i < nFinal ; i++ )
   {
      buff[i] = paramArray[i].Value;
   }

   WriteBattData(buff);

   GSMFree( buff );

   return DIDIT;   
}

#endif 

/*- Local Functions ---------------------------------------------------------  */
/* Command for NVM Mmi Field                                                                              
/* Name: HndlATsNVMMMIFIELD                                                                                           
/* Type: Set
/* Using : AT+NVMMMIFIELD = value
/* Desc : value 狼 蔼捞 1 牢 版快俊父 悼累茄促. 
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsNVMMMIFIELD(INT8 *paramStrPtr)
{
   INT8  i;
   UINT8 *buff = ( UINT8 * ) GSMMalloc( 512 );
   INT8 *str = ( INT8 * ) GSMMalloc( 256 );
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];

   ParameterStructInit(paramArray, 1);
   result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );

   if((result != DIDIT) || (paramArray[0].Value != 1))
      return AT_ECMDERROR;

   ATSendReply( "NVM mmi Field Name:offset,size\n" );

   for( i = 0; i < (sizeof(nvm_offset_size)/sizeof(NVM_ACCESS_DATA) ) ;i++ )
      {
      GSMsprintf( str,"%s:%d,%d",nvm_offset_size[i].name,
                                 nvm_offset_size[i].offset,
                                 nvm_offset_size[i].size);
      ATSendReply( str );
      }

   GSMFree( buff );
   GSMFree( str );

   return DIDIT;
}

/*- Local Functions ---------------------------------------------------------  */
/* Command for MMI NVM Contents
/* Name: HndlATsNVMCONTENTS                                                                                           
/* Type: Set
/* Using : AT+NVMCONTENTS="<Field Name>"
/* Desc : 秦寸 field 俊 措秦辑 MMINVMCONTENTS俊 措秦 技泼等 蔼甸阑 焊咯霖促. 
/* Returns: OK or ERROR
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsNVMCONTENTS(INT8* paramStrPtr)
{
   INT8  i,j,hexstr[10];
   INT8  str[256], str2[256];
   UINT8 buff[256], buff2[256], temp[256];
   UINT8  nFinal;
   ATCMD_RESULT result;
   PARAMETER_RECORD paramArray[1];
   

⌨️ 快捷键说明

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