亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test.c

?? 無線音頻電話(gprs)
?? C
?? 第 1 頁 / 共 2 頁
字號:
//去掉LCD背光測試                          2001.11.29
#include "st3lib10.h"

#define	DEF_BLOCK_SIZE		0x0800
#define	DEF_ADDR_BLOCK		0xFF85
#define	DEF_ADDR_LEFT		0xFF8A
#define DEF_DELAY_TIMES		2000
#define DEF_AUTOTEST_FUNCS	13
#define MAG2_LENGTH			37
#define MAG3_LENGTH			99

extern void	_OutHighAddr(uchar HA); //dxs
extern uchar	PUB_XMEM_Page[32];
void	SetBuff(uchar *SrcBuff, Val);
uchar	TestCard(uchar CardID);
uchar	Input(uchar line, uchar *InBuff, uchar InLen);

void	AutoTest(void);
void	TestCardUp(void);
void	TestCardDn(void);
void	TestCardSAM(void);
void	TestCardPower(uchar CardID);
uchar	TestKey(void);
uchar	TestClock(void);
uchar	TestSysRW(void);
uchar	TestMem(void);
void	TestModem(void);
uchar	TestModemRS(void);
void	TestModemManualDial(void);
uchar	TestPrint(uint Val);
uchar	TestBackup(void);
void    TestMemcard(void);
void	TestBkLight(void);
uint    RdMem(uchar page);
uint    WrMem(uchar page);

#define		DEF_SECTOR_LEN	384//lxj256
uchar		PubBuff[DEF_SECTOR_LEN+5];
uchar		PUB_AutoTestFlag;
uint		OKCount[DEF_AUTOTEST_FUNCS+2];
uint		t0,t1,t2,t3,t4,t5,t6,t7;
extern		uchar	PUB_HIGH_Card;

void	MyApplication()
{
	uchar key, Line, i;
	ulong i1, i2;
	uint ii;
	uchar Disp[20];
	stClock		ClockNow;

	PUB_AutoTestFlag = 0;
	_AsyncOpen(9600,0);
	_Buzzer();	_Buzzer(); 	_Delay(250);	_Buzzer();

	while(1)
	{
		_SetBkLight(0);
	    _ClearScreen();
	    _DispXY(1, 3,3, "ST3 功能演示");
	    _DispXY(2, 1,1, "1上,2下,3SAM,4Pt");
	    _DispXY(3, 1,0," 5鍵,6時,7系統");
	    _DispXY(4, 1,2, " 8內,9MD,0備份");


		_CardSetCard(0);
	    while(( !_KeyBoardTest())&&(!_CardTestDoor())) ;//Ide_ARE();//lxj
		_ClearScreen();
		if (_CardTestDoor())	TestCardUp();
		else
		{
			key = _KeyBoardGet();
			switch(key)
			{
				case DEF_KEY_0:		TestBackup();	break;
				case DEF_KEY_1:		TestCardUp();	break;
				case DEF_KEY_2:		TestCardDn();	break;
				case DEF_KEY_3:		TestCardSAM();	break;
				case DEF_KEY_4:		TestPrint(1);	break;
				case DEF_KEY_5:		TestKey();		break;
				case DEF_KEY_6:		TestClock();	break;
				case DEF_KEY_7:		TestSysRW();	break;
				case DEF_KEY_8:		TestMem();		break;
				case DEF_KEY_9:		TestModem();	break;
			}
				if ( key==DEF_KEY_DOT)
				{
					_ClearScreen();
					_DispXY(1, 1,0, "1 上卡電源");
					_DispXY(2, 1,0, "2 下卡電源");
					_DispXY(3, 1,0, "3  LCD背光");
					_DispXY(4, 1,0, "4 系統復位");
					while(( !_KeyBoardTest())&&(!_CardTestDoor())) Ide_ARE();//lxj
					_ClearScreen();
					key = _KeyBoardGet();
					switch(key)
					{
						case DEF_KEY_1:		TestCardPower(0);	break;
						case DEF_KEY_2:		TestCardPower(1);	break;
						case DEF_KEY_3:		TestBkLight();	break;
						case DEF_KEY_4:		_Reset();		break;
					}	
				}
		}	
	}
}

uint RdMem(uchar page)
{
    uint i,j,ValFrm;
    uchar ErrFlag,key;
	
	ErrFlag = 0;
	_OutHighAddr(page);
	ValFrm = 36*t0 + 1092*page;
	j=DEF_BLOCK_SIZE*CBYTE[DEF_ADDR_BLOCK&0x7fff]+(CBYTE[DEF_ADDR_LEFT&0x7fff]<<8)
		+CBYTE[(DEF_ADDR_LEFT+1)&0x7fff]-ValFrm;
	i=0;
	if (page==12) {i=0x10;ValFrm=ValFrm+0x10;}
		for (; i<j; i++)
		{
			if ( XBYTE[0x8000 + i] != CBYTE[ValFrm] )
			{
				sprintf(PubBuff,"%d頁[%x]數據錯",(uint)page,0x8000+i);
				_Display(2,PubBuff);
				sprintf(PubBuff,"%d頁[%04x]",(uint)page,ValFrm);
				_Display(3,PubBuff);
				if (!ErrFlag)
				{_Buzzer();
				_Delay(50);
				_Buzzer();}
				ErrFlag = 1;
				_Display(4,"ENT繼續ESC退出");
				while( !_KeyBoardTest());
				key = _KeyBoardGet();
				if( key == DEF_KEY_ESC )	return 2;
				if( key != DEF_KEY_ENTER )	return 1;
				_Display(4,"              ");
				_OutHighAddr(page);
			}
		ValFrm++;
	}
	ValFrm=0;
	for (i=j; i<0x8000; i++)
	{
			if ( XBYTE[0x8000 + i] != CBYTE[ValFrm] )
			{
				sprintf(PubBuff,"%d頁[%x]數據錯",(uint)page,0x8000+i);
				_Display(2,PubBuff);
				sprintf(PubBuff,"%d頁[%04x]",(uint)page,ValFrm);
				_Display(3,PubBuff);
				if (!ErrFlag)
				{_Buzzer();
				_Delay(50);
				_Buzzer();}
				ErrFlag = 1;
				_Display(4,"ENT繼續ESC退出");
				while( !_KeyBoardTest());
				key = _KeyBoardGet();
				if( key == DEF_KEY_ESC )	return 2;
				if( key != DEF_KEY_ENTER )	return 1;
				_Display(4,"              ");
				_OutHighAddr(page);
			}
		ValFrm++;
	}
	if (!ErrFlag)	return 0;
	return 1;
}

uint WrMem(uchar page)
{
    stClock      ClockNow;
    uint         i,j,ValFrm;
	
	_ClockRead((stClock*)(&ClockNow));
	t0 = ClockNow.day;
	_OutHighAddr(page);
	ValFrm = 36*t0 + 1092*page;
	j=DEF_BLOCK_SIZE*CBYTE[DEF_ADDR_BLOCK&0x7fff]+(CBYTE[DEF_ADDR_LEFT&0x7fff]<<8)
		+CBYTE[(DEF_ADDR_LEFT+1)&0x7fff]-ValFrm;
	for (i=0; i<j; i++)
	{
		XBYTE[0x8000 + i] = CBYTE[ValFrm];
		ValFrm++;
	}
	ValFrm=0;
	for (i=j; i<0x8000; i++)
	{
		XBYTE[0x8000 + i] = CBYTE[ValFrm];
		ValFrm++;
	}
	ValFrm = 36*t0 + 1092*page;
	for (i=0; i<j; i++)
	{
		if ( XBYTE[0x8000 + i] != CBYTE[ValFrm] )
			return (uint)(0x8000 + i);
		ValFrm++;
	}
	ValFrm=0;
	for (i=j; i<0x8000; i++)
	{
		if ( XBYTE[0x8000 + i] != CBYTE[ValFrm] )
			return (uint)(0x8000 + i);
		ValFrm++;
	}
	return 0;
}
uchar	TestMem(void)
{
    uint  i=0,j=0,k;
    uchar key;
    uchar Buff[32];

	i = ((uint)(_XMemPage()));
	memcpy(Buff, PUB_XMEM_Page,32);
	sprintf(PubBuff, "擴展內存%dK", i*32);
	_Display(1, PubBuff);
	
		for(j=0;j<i;j++)
		{
			k = RdMem(PUB_XMEM_Page[j+1]);
			if(k==0)
			{
				sprintf(PubBuff,"%d頁數據正確",(uint)PUB_XMEM_Page[j+1]);
				_Display(2,PubBuff);
			}
			if(k==2) break;
		}

			if(k==0)	_Buzzer();
		    _ClearScreen();
			_Display(1,"基本內存測試");
			_Display(4,"ENT繼續");
			while( !_KeyBoardTest());
			_ClearScreen();
			key = _KeyBoardGet();
			if( key != DEF_KEY_ENTER )	return ;

			k=t0;
			for(j=Buff+32;j<0x7f00;j++)
			{
				XBYTE[j]=0x55;
				if(XBYTE[j]!=0x55)	break;
				XBYTE[j]=0xaa;
				if(XBYTE[j]!=0xaa)	break;
			}
			t0=k;
			memcpy( PUB_XMEM_Page,Buff,32);
			PUB_HIGH_Card=0;
			if (j==0x7f00)
			{
          		_Display(1,"基本內存正確");
				_Buzzer();
			}
			else
			{
				_Buzzer();
				_Delay(50);
				_Buzzer();
				_Display(1,"基本內存錯誤");
				sprintf(PubBuff,"%x",j);
				_Display(2,PubBuff);
			}

			_Display(3,"擴展內存寫");
			_Display(4,"ENT繼續");
			while( !_KeyBoardTest());
			_ClearScreen();
			key = _KeyBoardGet();
			if( key != DEF_KEY_ENTER )	Reset() ;

	for(j=0;j<i;j++)
	{
		k = WrMem(PUB_XMEM_Page[j+1]);
		if(k==0)
		{
			sprintf(PubBuff,"%d頁寫正確",(uint)PUB_XMEM_Page[j+1]);
			_Display(2,PubBuff);
		}
		else
		{
			sprintf(PubBuff,"%d頁[%x]寫錯",(uint)PUB_XMEM_Page[j+1],k);
			_Display(2,PubBuff);
			_Buzzer();
			_Delay(50);
			_Buzzer();
		}
	}
	Reset();
}

void	TestCardUp(void)
{
	while ( TestCard(0) != 2 );
	return;
}                                  

void	TestCardDn(void)
{
	while ( TestCard(1) != 2 );
	return;
}                                  

void	TestCardSAM(void)
{
	uchar i;

	for(i=2; i<4; i++)
	{
		TestCard(i);
		_Delay(DEF_DELAY_TIMES);
	}
	return;
}   

uchar	TestCard(uchar CardID)
{
    APDU_COMM  apducomm;
    APDU_RESP  apduresp;
    uchar DataIn[10];
    uchar DataOut[60];
	uint WaitCount;

		memset(PubBuff, 0, DEF_SECTOR_LEN);
		_CardSetCard(CardID);
		switch ( CardID )
		{
			case 0: strcpy(PubBuff, "上卡座,請插卡");	break;
			case 1: strcpy(PubBuff, "下卡座,請插卡");	break;
			case 2: strcpy(PubBuff, "1號SAM卡");	break;
			case 3: strcpy(PubBuff, "2號SAM卡");	break;
		}
        _Display(1, PubBuff);
        _Display(2, "");
		//****** Test insert card
		if (CardID < 2)
		{
	        _Display(2, "ESC 取消");
			WaitCount = 1000;
	        while( (!_CardTestDoor()) && (WaitCount) )
		    {
				if( _KeyBoardTest() )
					if( _KeyBoardGet() == DEF_KEY_CANCEL )
						return 2;
				WaitCount--;
				if ( WaitCount==0 )
				{
					if ( PUB_AutoTestFlag )
						return 0;
					else
						WaitCount = 1000;
				}
		    }
			PubBuff[6] = 0;
	        _Display(1, PubBuff);
		    _Display(2, "");
		}//if Up&Down card

		//****** Open CPU card
        if( _CardSmartOpen() )
        {
			_CardSmartClose();
			if (CardID < 2)
			{
				_Display(2, "打開錯,請抽卡"); 
				if ( ! PUB_AutoTestFlag )
					while( _CardTestDoor() );
			}
			else
				_Display(2, "沒放置SAM卡"); 
			return 0;
		}
		memcpy(apducomm.Command, "\x80\xb8\x00\x00", 4);//mpcos
		apducomm.LengthIn = 0;
		apducomm.DataIn = DataIn;
		apducomm.LengthExpected = 8;
		apduresp.DataOut= DataOut;
        if ( (CardID<2) && (!_CardTestDoor()) )
        {
			_CardSmartClose();
			return 0;
        }
		if( _CardSmartApdu(&apducomm, &apduresp) )
		{
			_Display(2, "APDU錯1,請抽卡"); 
			_CardSmartClose();
			if ( ! PUB_AutoTestFlag )
				while( _CardTestDoor());
			return 0;
		}
        if( apduresp.Status != 0x9000 )
        {
			memcpy(apducomm.Command, "\x00\xb0\x00\x00", 4);//pcos
			apducomm.LengthIn = 0;
			apducomm.DataIn = DataIn;
			apducomm.LengthExpected = 8;
			apduresp.DataOut= DataOut;
	        if ( (CardID<2) && (!_CardTestDoor()) )
		    {
				_CardSmartClose();
				return 0;
	        }
			if( _CardSmartApdu( &apducomm, &apduresp) )
			{
				_Display(2, "APDU錯2,請抽卡"); 
				_CardSmartClose();
				if ( ! PUB_AutoTestFlag )
					while( _CardTestDoor());
				return 0;
			}
			if(apduresp.Status != 0x9000)
			{
				sprintf(PubBuff, "讀結果錯:%x", apduresp.Status);
				_Display(2, PubBuff); 
				_CardSmartClose();
				if ( ! PUB_AutoTestFlag )
					while( _CardTestDoor());
				return 0;
			}
		}
		_Buzzer();
		_CardSmartClose();
		if ( CardID < 2 )
		{
			_Display(2, "正確, 請抽卡");
			if ( ! PUB_AutoTestFlag )
				while( _CardTestDoor() );
		}
		else
			_Display(2, "SAM測試正確");
		return 1;
}                                  

void	TestCardPower(uchar CardID)
{
	uchar card[20];

	if (CardID == 0)
		strcpy(card, "上");
	else
		strcpy(card, "下");
	strcat(card, "卡座已加電");
    _Display(1, card);
    _Display(2, "請測電流/電壓");
    _CardSetCard(CardID);
	_CardSetPower(1);
	while (1)
	{
		if ( _KeyBoardTest() )
			if ( _KeyBoardGet() == DEF_KEY_CANCEL )
				break;
	}
	_CardSetPower(0);
    _Buzzer();
	return;
}

uchar	TestKey(void)
{
    uchar  sKeyTested[30];
    uchar  szBuf[20];
    uchar  szBuf1[20];
    uchar  ucIn, cESC;

	cESC = 0;
    _Display(1, "   鍵盤測試");
    _Display(2, "請按遍所有的鍵");
    memset(sKeyTested, '0', 20);
    memset(szBuf , ' ', 20);
    memset(szBuf1, ' ', 20);
    szBuf[16]=0;
    szBuf1[16]=0;
	while(1)
	{
		if ( memcmp(sKeyTested, "11111111111111", 14) == 0 ) //dxs
		{
			_Buzzer();
			_Display(2, "鍵盤測試完成");
			_Delay(DEF_DELAY_TIMES);
			return 1;
		}
		while ( ! _KeyBoardTest() );
			_Buzzer();
		ucIn = _KeyBoardGet();
		switch ( ucIn )
		{
			case DEF_KEY_0:		sKeyTested[0]='1';	szBuf[0]='0';	break;
            case DEF_KEY_1:		sKeyTested[1]='1';	szBuf[1]='1';	break;
            case DEF_KEY_2:		sKeyTested[2]='1';	szBuf[2]='2';	break;
            case DEF_KEY_3:		sKeyTested[3]='1';	szBuf[3]='3';	break;
            case DEF_KEY_4:		sKeyTested[4]='1';	szBuf[4]='4';	break;
            case DEF_KEY_5:		sKeyTested[5]='1';	szBuf[5]='5';	break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
尤物av一区二区| 91免费精品国自产拍在线不卡| 青青草伊人久久| 国产精品18久久久久久久网站| 91农村精品一区二区在线| 日韩一区二区视频在线观看| 最新高清无码专区| 丁香啪啪综合成人亚洲小说| 日韩一区二区三区免费看 | 国产成人精品网址| 欧美系列一区二区| 成人免费视频在线观看| 狠狠狠色丁香婷婷综合久久五月| 色婷婷av一区| 一区二区在线观看免费视频播放| 国产大陆a不卡| www久久久久| 日产国产欧美视频一区精品| 欧美亚洲国产怡红院影院| 亚洲福利视频一区| av亚洲精华国产精华精| 欧美精品一区二| 蜜臀av性久久久久蜜臀aⅴ四虎| av激情成人网| 亚洲丝袜美腿综合| 9l国产精品久久久久麻豆| 久久久国产一区二区三区四区小说 | 久久伊99综合婷婷久久伊| 丝袜亚洲另类丝袜在线| 欧美三级电影精品| 亚洲一区二区视频在线观看| 91美女片黄在线观看| 亚洲色图清纯唯美| 日本乱码高清不卡字幕| 一区二区三区小说| 欧美在线观看一二区| 午夜伦欧美伦电影理论片| 欧美日韩久久久一区| 丝袜国产日韩另类美女| 日韩一区二区三区在线| 国产精品一区二区三区网站| 久久精品夜夜夜夜久久| 豆国产96在线|亚洲| 日韩一区中文字幕| 欧美视频一区在线观看| 亚洲成人久久影院| 欧美一级片在线| 国产精品亚洲综合一区在线观看| 国产女同互慰高潮91漫画| 成人av影院在线| 一区二区在线看| 91精品久久久久久蜜臀| 久久99国产精品免费| 欧美国产日本视频| 在线中文字幕一区二区| 日本不卡1234视频| 国产欧美一二三区| 欧美在线你懂得| 久久99精品久久久久久国产越南 | 欧美一区日韩一区| 国产资源在线一区| 国产精品嫩草99a| 欧美性感一类影片在线播放| 麻豆久久一区二区| 国产精品成人在线观看| 欧美福利视频一区| 国产盗摄女厕一区二区三区| 亚洲自拍另类综合| 国产日韩欧美高清| 欧美在线免费观看亚洲| 国产精品小仙女| 香蕉成人啪国产精品视频综合网| 精品国产乱码久久久久久夜甘婷婷| 国产成人精品影院| 日韩中文字幕亚洲一区二区va在线| 久久蜜臀精品av| 欧美性感一类影片在线播放| 国产精品一卡二| 日本中文字幕一区二区视频 | 男女视频一区二区| 国产精品美女视频| 精品日韩一区二区| 在线观看三级视频欧美| 国产精品性做久久久久久| 午夜日韩在线电影| 亚洲精品国产视频| 国产欧美视频一区二区三区| 91精品一区二区三区在线观看| 99精品一区二区三区| 国产成人在线免费| 日韩av一级电影| 亚洲成人在线观看视频| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美国产精品一区二区| 日韩视频一区二区三区在线播放| 94色蜜桃网一区二区三区| 国内精品久久久久影院薰衣草| 亚洲国产精品久久久久婷婷884 | 久久99久久久欧美国产| 亚洲综合色在线| 亚洲欧美日韩久久| 国产欧美精品国产国产专区| 日韩你懂的在线观看| 欧美日韩免费高清一区色橹橹 | 亚洲成a天堂v人片| 亚洲精品水蜜桃| 综合激情成人伊人| 国产成人av网站| 一区二区三区欧美久久| 国产91在线观看丝袜| 紧缚奴在线一区二区三区| 婷婷综合另类小说色区| 亚洲伊人色欲综合网| 亚洲激情男女视频| 亚洲影院免费观看| 亚洲图片欧美一区| 日韩精品一级中文字幕精品视频免费观看| 欧美在线观看视频在线| 欧美最新大片在线看| 欧美网站一区二区| 69久久夜色精品国产69蝌蚪网| 欧美日韩国产在线观看| 欧美亚洲动漫制服丝袜| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美韩国日本不卡| 亚洲国产激情av| 亚洲天堂av老司机| 亚洲综合色视频| 天天影视网天天综合色在线播放| 午夜视频一区二区三区| 日韩高清不卡一区二区| 久久99久国产精品黄毛片色诱| 国内外成人在线视频| 国产成人精品免费网站| eeuss鲁片一区二区三区在线看| 91亚洲精品乱码久久久久久蜜桃| 一本一本久久a久久精品综合麻豆| 欧美午夜在线观看| 日韩欧美激情一区| 国产精品视频看| 亚洲夂夂婷婷色拍ww47 | 欧美α欧美αv大片| 久久久不卡网国产精品一区| 国产精品视频免费看| 午夜国产精品一区| 国产成人av自拍| 色婷婷久久99综合精品jk白丝| 欧美一级免费大片| 国产精品欧美经典| 日韩中文字幕一区二区三区| 国产成人小视频| 欧美日韩一区三区| 国产午夜精品久久久久久久 | 久久国产精品露脸对白| 99国产精品国产精品毛片| 欧美日韩国产123区| 国产亚洲欧洲997久久综合| 亚洲一区二区在线视频| 高清av一区二区| 91麻豆精品国产91久久久久| 日本一区二区三区国色天香| 亚洲成人av资源| 99久久伊人久久99| 精品免费国产一区二区三区四区| 国产精品国产自产拍在线| 蜜桃久久av一区| 91在线看国产| 久久久久久日产精品| 婷婷国产在线综合| 色哦色哦哦色天天综合| 欧美本精品男人aⅴ天堂| 亚洲丰满少妇videoshd| 播五月开心婷婷综合| 欧美变态tickle挠乳网站| 五月婷婷激情综合| 欧美性淫爽ww久久久久无| 国产精品久久夜| 国产成人自拍网| 久久奇米777| 在线观看不卡一区| 国产精品久久久久久久久动漫| 久久国产精品色婷婷| 91麻豆精品国产91久久久资源速度| 亚洲精品欧美综合四区| 97久久人人超碰| 亚洲欧洲99久久| 成人91在线观看| 国产精品久久午夜夜伦鲁鲁| 国产成人精品在线看| 久久蜜桃av一区二区天堂| 蜜桃av一区二区三区电影| 欧美一区二区三区人| 青青草伊人久久| 日韩一级片网址| 蜜桃精品视频在线| 精品88久久久久88久久久| 国精产品一区一区三区mba桃花| 日韩精品中文字幕一区二区三区 | 亚洲摸摸操操av| 在线免费精品视频|