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

📄 l1tm_cust_add.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:
/************* 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 + -