📄 atpte.c
字号:
/******************************************************************************/
/* 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 + -