📄 l1tm_cust_add.c
字号:
/************* Revision Controle System Header *************
* GSM Layer 1 software
* L1TM_CUST_ADD.C
*
* Filename %M%
* Version %I%
* Date %G%
*
* $History: Mmidict.c
01/08/02 huangxl creat.
* $end
************* Revision Controle System Header *************/
//#include "l1_types.h"
#ifndef TYPE_DEF
#define TYPE_DEF
//typedef char CHAR;
typedef unsigned char UWORD8;
typedef unsigned short UWORD16;
#endif
#define BUGS 0
#define ENTITY_MFW
/* includes */
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "ffs.h"
#include "pcm.h"
#include "header.h"
#include "mfw_mfw.h"
#include "mfw_tim.h"
#include "mfw_ffs.h"
#include "mfw_smsi.h"
//typedef long LONG;
#define GLOBAL
#include "mfw_phb.h"
#include "mfw_sms.h"
#include "Mfw_cnvt.h"
#include "L1tm_cust_add.h"
#define WRITE 6
static MfwHnd tim;
static MfwHnd win;
UBYTE command=0;
PhbData Sim_PhbData;
PCCMDSTATUS PcCmdStatus={0,0,0,0,0,0,0,0,0,0};
static const PhbData SimPhbDefaultData=
{
{
{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},
{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"},{"\0","\0"}
}
};
static char i=0;//每个Sim卡电话本文件有20个记录(0 19)MAXSIMPHBNUM-1
//sms的记录号
static UBYTE k=0;//有k个Sim卡电话本/sms 文件
static T_MFW_SMS_IDX *psmsidx=NULL;//sms的存储index T_MFW_SMS_MSG
static UBYTE *pWriteSmsdata=NULL;//sms写入文件的数据地址,1k
static char *pReadSmsdata=NULL;//sms读出文件的数据地址,1k
static SHORT unreadsms=0;//sms还未读的个数
static int totallen=0;//sms file total len
static T_MFW_SMS_MO *psenddata=NULL;//发送sms的数据指针
static int OldNum=0;//chenjun add 0331
static int read_sim_phb_cb(void);
static int excute_tim_cb( MfwEvt e, MfwTim *tc );
static void InitPcCmdStatus(void);
static int return_info(int ret, void *p1,int p1len,void *p2,int p2len);
static int read_sim_sms_cb(void);
static void write_sms_file(void);
static int get_data_and_send(void);
static int write_nvm_phb_cb(void);
static void Sleep_wait(unsigned short times) ;//waiting....
int hstrcpy( char *d,const char *r);
int hstrlen(const char * txt);
void save_send_sms(T_MFW_SMS_MO_TYPE type);
extern BOOL smsidle_get_ready_state(void);
extern T_MFW_MEM_INFO memory;
/*******************************************************************************
$Function: write_imei
$Description: This function invokes the operation for writtting the IMEI.
$Returns:
$Arguments:
*******************************************************************************/
int write_imei(UWORD8 *imei)
{
UWORD8 retVal; /* holds return value */
UWORD8 buf[SIZE_EF_IMEI];
retVal = pcm_WriteFile ((UWORD8 *)EF_IMEI_ID, SIZE_EF_IMEI, imei);
if( retVal EQ PCM_INVALID_SIZE OR retVal EQ PCM_INVALID_FILE )
return( FALSE );
return( TRUE );
}
/*******************************************************************************
$Function: write_SerialNumber
$Description: This function invokes the operation for writting the SerialNumber.
$Returns:
$Arguments:
*******************************************************************************/
int write_SerialNumber(UWORD8 *value)
{
if(strlen((char *)value)<=8)
memcpy(Ffs_const_data.serialnumber,value,strlen((char*)value));
else
memcpy(Ffs_const_data.serialnumber,value,8);
flash_constdata_write();
return( TRUE );
}
/*******************************************************************************
$Function: read_SerialNumber
$Description: This function invokes the operation for getting the SerialNumber.
$Returns:
$Arguments:
*******************************************************************************/
int read_SerialNumber(char *table)
{
flash_constdata_read();
memcpy(table,Ffs_const_data.serialnumber,8);
table[8]=0; // Null teminator for the end of the string
return( TRUE );
}
// Jeffrey, for production test, 04/06/04
short write_TestNumber(UWORD16 value)
{
effs_t ret;
ret = ffs_fwrite("/pcm/TestNum", (void*)&value, 2);
return ret;
}
int read_TestNumber(short* value)
{
int ret;
ret = ffs_fread("/pcm/TestNum", value, 2);
return ret;
}
/*******************************************************************************
$Function: checksim
$Description: This function invokes the operation for check the sim card.
$Returns:
$Arguments:
*******************************************************************************/
UWORD16 checksim()
{
UWORD16 nret;
nret=get_sim_status();
return nret;
}
/*******************************************************************************
$Function: checknetavail
$Description: This function invokes the operation for check the net
$Returns:
$Arguments:
*******************************************************************************/
UWORD16 checknetavail()
{
UWORD8 nret;
nret=get_net_status();
return nret;
}
/*******************************************************************************
$Function: ctrlcd
$Description: This function invokes the operation for lcd
$Returns:
$Arguments:
*******************************************************************************/
UWORD8 ctrlcd(UWORD16 value)
{
/* Jeffrey modified this to use our own LCD backlight control API, 04/01/04 */
switch(value)
{
case OFF://lcd off
LedLightnessAdjust(0);
break;
case ON://lcd on
LedLightnessAdjust(255);
break;
default:
break;
}
return 1;
}
/*******************************************************************************
$Function: ctrled
$Description: This function invokes the operation for led
$Returns:
$Arguments:
*******************************************************************************/
UWORD8 ctrled(UWORD16 value)
{
switch(value)
{
case OFF://led off
LED_OFF();
break;
case ON://led on
LED_ON();
break;
default:
break;
}
return 1;
}
/*******************************************************************************
$Function: ctrbacklight
$Description: This function invokes the operation for backlight
$Returns:
$Arguments:
*******************************************************************************/
UWORD8 ctrbacklight(UWORD16 value)
{
switch(value)
{
case OFF://backlight off
Backlight_OFF();
break;
case ON://backlight on
Backlight_ON();
break;
default:
break;
}
return 1;
}
/*******************************************************************************
$Function: ctrvibrator
$Description: This function invokes the operation for vibrator
$Returns:
$Arguments:
*******************************************************************************/
UWORD8 ctrvibrator(UWORD16 value)
{
switch(value)
{
case OFF://vibrator off
StopVibrator();
break;
case ON://vibrator on
StartVibrator();
break;
default:
break;
}
return 1;
}
/*******************************************************************************
$Function: ctrbuzzer
$Description: This function invokes the operation for buzzer
$Returns:
$Arguments:
*******************************************************************************/
UWORD8 ctrbuzzer(UWORD16 value)
{
switch(value)
{
case OFF://buzzer off
StopTone();
break;
case ON://buzzer on
StartTone();
break;
default:
break;
}
return 1;
}
/*******************************************************************************
$Function: key_simulation
$Description: This function invokes the operation for key_simulation
$Returns:
$Arguments:
*******************************************************************************/
int key_simulation(UWORD8 size,UWORD8 *keycode)
{
int i;
for(i=0;i<size;i++){
// drvKeyUpDown(0,keycode[i]);
kbd_test(keycode[i]);
}
return( TRUE );
}
/*******************************************************************************
$Function: read_rtc
$Description: This function invokes the operation for getting the rtc.
$Returns:
$Arguments:
*******************************************************************************/
int read_rtc(char *table)
{
return( TRUE );
}
/*******************************************************************************
$Function: excute_tim_cb
$Description: The time out has occured
$Returns: MFW_EVENT_CONSUMED always
$Arguments: e, event, tc timer context
*******************************************************************************/
static int excute_tim_cb( MfwEvt e, MfwTim *tc )
{
char test[20];
int excuteret=0;
// stop running timer.
if (tim != NULL ) {
timStop(tim);
}
switch(command){
case READ_SIM_PHB_CMD:
excuteret=read_sim_phb_cb();
break;
case WRITE_SIM_PHB_CMD:
excuteret=write_sim_phb_cb();
break;
case WRITE_NVM_PHB_CMD:
excuteret=write_nvm_phb_cb();
break;
case READ_NEW_SMS_CMD:
case READ_SIM_SMS_CMD:
excuteret=read_sim_sms_cb();
break;
case SEND_SMS_CMD:
excuteret=send_sms_cb();
break;
default:
break;
}
//sprintf(test,"ret:%d",excuteret);
//dspl_TextOut(8, 48, 0, test);
timDelete(tim);
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: read_sim_phb
$Description: This function creat the timer and start to excute.
$Returns:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -