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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? smcgui.c

?? 經(jīng)過(guò)測(cè)試好用的讀卡器源程序
?? C
字號(hào):
#include <ansi_c.h>
#include <utility.h>
#include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */
#include <userint.h>
#include "SMCanalyzer.h"
#include "hwcfg.h"
#include "common.h"
#include "HwAccess.h"


// Variable definition
static int panelHandle;
unsigned char 	page_data[528],write_data[528],spare_data[16];
unsigned int  	page_add;
unsigned char   Card_State,pagedata_string[4000];

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)	/* Needed if linking in external compiler; harmless otherwise */
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "SMCanalyzer.uir", PANEL)) < 0)
		return -1;
	if (GetCurrentPlatform() == 3)			  // Is WINNT?
	  {
	  if (CVILowLevelSupportDriverLoaded() == 0)  // Lowlevel Driver had loaded at startup?
	    {
	    MessagePopup ("Error","WINNT didn't load the low level driver");
	    QuitUserInterface (0);
	    }
	  }
	HwInitial();
	Hw_VccOff();
	DisplayPanel (panelHandle);
	RunUserInterface ();
	return 0;
}

int CVICALLBACK Timer_5ms_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned char status;
	int dimmed_state;
	switch (event)
	
		{
		case EVENT_TIMER_TICK:
			/* Check Reader */
			if (CheckReader())
			  {
			  SetCtrlVal (PANEL,PANEL_READER,1);
    	      SetCtrlAttribute (panelHandle, PANEL_ALERT_PIC,ATTR_VISIBLE,0);
    	      SetCtrlAttribute (panelHandle, PANEL_ALERT_TEXT,ATTR_VISIBLE,0);
			  /* Check SmartMedia Card status */
			  Card_State = Hw_ChkCardIn();
			  SetCtrlVal (PANEL,PANEL_CARDDET_LED,Card_State);
			  SetCtrlVal (PANEL,PANEL_BUSY_LED,Hw_ChkBusy());
			  if (Card_State) dimmed_state = 0;
			  else dimmed_state = 1;
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PRAMETER, ATTR_DIMMED, dimmed_state);
    	      SetCtrlAttribute (panelHandle, PANEL_FORMAT, ATTR_DIMMED, dimmed_state);
    	      SetCtrlAttribute (panelHandle, PANEL_ERASEALL, ATTR_DIMMED, dimmed_state);			
    	      SetCtrlAttribute (panelHandle, PANEL_ERASEBLOCK, ATTR_DIMMED, dimmed_state);
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PHYSICAL_BLOCK, ATTR_DIMMED, dimmed_state);			
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PHYSICAL_ALL, ATTR_DIMMED, dimmed_state);			
    	      SetCtrlAttribute (panelHandle, PANEL_WRITE_PHYSICAL_BLOCK, ATTR_DIMMED, dimmed_state);
    	      }
    	    else
    	      {
    	      ResetTextBox (panelHandle, PANEL_SMC_PHY_DATA, " ");
    	      SetCtrlAttribute (panelHandle, PANEL_ALERT_PIC,ATTR_VISIBLE,1);
    	      SetCtrlAttribute (panelHandle, PANEL_ALERT_TEXT,ATTR_VISIBLE,1);
    	      SetCtrlVal (PANEL,PANEL_READER,0);
			  SetCtrlVal (PANEL,PANEL_CARDDET_LED,0);
			  SetCtrlVal (PANEL,PANEL_BUSY_LED,0);
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PRAMETER, ATTR_DIMMED, 1);
    	      SetCtrlAttribute (panelHandle, PANEL_FORMAT, ATTR_DIMMED, 1);
    	      SetCtrlAttribute (panelHandle, PANEL_ERASEALL, ATTR_DIMMED, 1);			
    	      SetCtrlAttribute (panelHandle, PANEL_ERASEBLOCK, ATTR_DIMMED, 1);
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PHYSICAL_BLOCK, ATTR_DIMMED, 1);			
    	      SetCtrlAttribute (panelHandle, PANEL_READ_PHYSICAL_ALL, ATTR_DIMMED, 1);			
    	      SetCtrlAttribute (panelHandle, PANEL_WRITE_PHYSICAL_BLOCK, ATTR_DIMMED, 1);
    	      }
			break;
		}
	return 0;
}

int CVICALLBACK Quit_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_COMMIT:
			QuitUserInterface (0);
			break;
		}
	return 0;
}

int CVICALLBACK About_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_COMMIT:
			MessagePopup ("About me","This is a Smart-Media Card Reader with parallel port interface(EPP mode).\n\nDesigned by Janeslee\n\nAll Right Reserved");
			break;
		}
	return 0;
}

int CVICALLBACK Erase_Block_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned int i,j,addstring,start_address;
	short int block_number;
	unsigned char page_number,*pagedata_pnt;
	switch (event)
		{
		case EVENT_COMMIT:
			GetCtrlVal(PANEL,PANEL_PHYSICAL_BLOCK_NUMBER,&block_number);
			GetCtrlVal(PANEL,PANEL_PHYSICAL_PAGE_NUMBER,&page_number);
			start_address = block_number * 0x4000 + page_number * 0x200;
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);               // Delay 100ms
			ReadID();
			Delay(0.02);
			if (BlockErase(start_address) != PASS) printf("Erase failure");
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			Hw_VccOff();
			break;
		}
	return 0;
}

int CVICALLBACK Erase_All_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned int page_add,max_page_add,i;
	
	switch (event)
		{
		case EVENT_COMMIT:
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
			ReadID();
            max_page_add = (unsigned int)(info_flash[3]*info_flash[2]);
            Delay(0.01);
            for(page_add=0;page_add<max_page_add; )
               {
               if (BlockErase(page_add<<9) != PASS) printf("Erase failure at %x",(page_add<<8));
               page_add +=0x20;
               }
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			Hw_VccOff();
			break;
		}
	return 0;
}

int CVICALLBACK Dos_Format_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_COMMIT:

			break;
		}
	return 0;
}

int CVICALLBACK Read_Prameter_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned char parameter_string[20],line_index;
	unsigned int i;
	switch (event)
		{
		case EVENT_COMMIT:
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
			ReadID();
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			Hw_VccOff();
			for (line_index = 0;line_index < 10;line_index++)
			  {
			  if (line_index == 0) 
			     {
			     switch ( info_flash[0] )
			         {
			         case 0xec: sprintf(parameter_string,"  0x%x -- SAMSUNG",info_flash[line_index]);break;
			         case 0x98: sprintf(parameter_string,"  0x%x -- TOSHIBA",info_flash[line_index]);break;
			         default:   sprintf(parameter_string,"  0x%x -- UNKNOWN",info_flash[line_index]);break;
			         }
			     }
			  else if (line_index == 1) sprintf(parameter_string,"  %d MB NAND FLASH",info_flash[line_index]);
    		  else   sprintf(parameter_string,"  %d",info_flash[line_index]);
			  ReplaceTextBoxLine (PANEL,PANEL_SMC_PARAMETER,(line_index*2+1),parameter_string);
			  }
			break;
		}
	return 0;
}

int CVICALLBACK Read_Physical_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned int i,j,addstring,start_address;
	short int block_number;
	unsigned char page_number,*pagedata_pnt;
	switch (event)
		{
		case EVENT_COMMIT:
			GetCtrlVal(PANEL,PANEL_PHYSICAL_BLOCK_NUMBER,&block_number);
			GetCtrlVal(PANEL,PANEL_PHYSICAL_PAGE_NUMBER,&page_number);
			start_address = block_number * 0x4000 + page_number * 0x200;
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
			ReadID();
			Delay(0.01);
			PageRead(page_data,start_address);
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			Hw_VccOff();
			pagedata_pnt = pagedata_string;
			for (i=0;i < (info_flash[4]/16);i++)             // 528 / 16 Line
			   {
			   if (i == (info_flash[4]/16 - 1)) sprintf (pagedata_pnt,"   SPARE    :     ");
			   else 
			      {
			      addstring = (start_address & 0xfffffe00) + (i<<4);
			      sprintf (pagedata_pnt,"   %.8X :     ",addstring);
			      }
			   pagedata_pnt += 18;
			   for (j=0;j<16;j++)
			      {
			      sprintf (pagedata_pnt,"%.2X ",page_data[i*16+j]);
			      pagedata_pnt +=3;
			      }
			   sprintf (pagedata_pnt,"\n");
			   pagedata_pnt++;
			   }
			ResetTextBox (PANEL,PANEL_SMC_PHY_DATA,pagedata_string);
			SetCtrlAttribute (panelHandle, PANEL_MDY_PHYSICAL_PAGE, ATTR_DIMMED, 0);
			break;
		}
	return 0;
}

int CVICALLBACK Read_Physical_AllBlock_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned int address,i,j,addstring;
	short int block_number;
	unsigned char page_number,pagedata_string[4000],*pagedata_pnt;

	switch (event)
		{
		case EVENT_COMMIT:
			GetCtrlVal(PANEL,PANEL_PHYSICAL_BLOCK_NUMBER,&block_number);
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
			ResetTextBox (PANEL,PANEL_SMC_PHY_DATA,"");
			ReadID();
			Delay(0.01);
			//info_flash[2]*info_flash[3]*info_flash[5]
			for (address=block_number*0x4000;address < ((block_number+1)*0x4000);address += info_flash[5] )
			   {
			   PageRead(page_data,address);
			   pagedata_pnt = pagedata_string;
			   for (i=0;i < (info_flash[4]/16);i++)
			      {
			      if (i == (info_flash[4]/16 - 1)) sprintf (pagedata_pnt,"   SPARE    :     ");
			      else 
			         {
			         addstring = (address & 0xfffffe00) + (i<<4);
			         sprintf (pagedata_pnt,"   %.8X :     ",addstring);
			         }
			      pagedata_pnt += 18;
			      for (j=0;j<16;j++)
			         {
			         sprintf (pagedata_pnt,"%.2X ",page_data[i*16+j]);
			         pagedata_pnt +=3;
			         }
			      sprintf (pagedata_pnt,"\n");
			      pagedata_pnt++;
			      }
			   SetCtrlVal (PANEL,PANEL_SMC_PHY_DATA,pagedata_string);
			   }
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			Hw_VccOff();
			break;
		}
	return 0;
}

int CVICALLBACK Read_Logical_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_COMMIT:

			break;
		}
	return 0;
}

int CVICALLBACK Write_Physical_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned int i,j,addstring,start_address;
	short int block_number;
	unsigned char page_number,pagedata_string[4000],*pagedata_pnt;

	switch (event)
		{
		case EVENT_COMMIT:
			GetCtrlVal(PANEL,PANEL_PHYSICAL_BLOCK_NUMBER,&block_number);
			GetCtrlVal(PANEL,PANEL_PHYSICAL_PAGE_NUMBER,&page_number);
			start_address = block_number * 0x4000 + page_number * 0x200;
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
			for(i=0;i<528;i++) pagedata_string[i]=(unsigned char)i;
			
			
			PageWrite(pagedata_string,start_address);
			Delay(0.1);
			Hw_VccOff();
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			break;
		}
	return 0;
}

int CVICALLBACK Modify_Physical_Callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned char modify_data[528],data_buff[100],modify_byte1,modify_byte2,page_number;
	short int block_number;
	unsigned int i,row,linep,bytep,start_address,err;
	switch (event)
		{
		case EVENT_COMMIT:
			GetCtrlVal(PANEL,PANEL_PHYSICAL_BLOCK_NUMBER,&block_number);
			GetCtrlVal(PANEL,PANEL_PHYSICAL_PAGE_NUMBER,&page_number);
			start_address = block_number * 0x4000 + page_number * 0x200;
			Hw_VccOn();
			SetCtrlVal (PANEL,PANEL_POWER_LED,1);
			Delay(0.2);
            
/* Transform ASCII data to HEX data */
			err = bytep = 0;
			for(row=0;row<(info_flash[4]/16);row++)
			   {
               GetTextBoxLine (panelHandle,PANEL_SMC_PHY_DATA,row,data_buff);    // Get text from current line
			   for(i=0;i<16;i++)
			      {
			      modify_byte1 = data_buff[18 + i*3];
			      if (0x2F < modify_byte1 && modify_byte1 < 0x3A)      modify_byte1 -= 0x30;
			      else if (0x40 < modify_byte1 && modify_byte1 < 0x47) modify_byte1 -= 0x37;
			      else { printf("Character error"); err = 0xFF; break; }
	      
			      modify_byte2 = data_buff[18 + i*3 + 1];
			      if (0x2F < modify_byte2 && modify_byte2 < 0x3A)      modify_byte2 -= 0x30;
			      else if (0x40 < modify_byte2 && modify_byte2 < 0x47) modify_byte2 -= 0x37;
			      else { printf("Character error"); err = 0xFF; break; }
			      
			      modify_data[bytep++] = modify_byte1 * 16 + modify_byte2;
			      }
			   if (err) break;
			   }
            if (err) break;

			PageWrite(modify_data,start_address);
			Delay(0.1);
			Hw_VccOff();
			SetCtrlVal (PANEL,PANEL_POWER_LED,0);
			SetCtrlAttribute (panelHandle, PANEL_MDY_PHYSICAL_PAGE, ATTR_DIMMED, 1);
			break;
		}
	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线观看一区二区| 欧美军同video69gay| 日本高清不卡aⅴ免费网站| 欧美亚洲图片小说| 精品电影一区二区| 综合久久国产九一剧情麻豆| 亚洲男人的天堂一区二区| 午夜精品久久久久久久| 韩国精品久久久| 97超碰欧美中文字幕| 欧美肥妇free| 欧美经典一区二区| 午夜精品免费在线| 高清不卡一区二区| 欧美精品在线一区二区| 国产精品理论在线观看| 石原莉奈一区二区三区在线观看| 国产毛片精品视频| 亚洲免费看黄网站| 麻豆免费看一区二区三区| eeuss国产一区二区三区| 91精品久久久久久久91蜜桃| 中文字幕第一页久久| 丝袜美腿亚洲综合| 色综合视频在线观看| 欧美精品一区二| 亚洲国产精品尤物yw在线观看| 国产**成人网毛片九色| 7777精品久久久大香线蕉 | 国产+成+人+亚洲欧洲自线| 欧美日高清视频| 国产精品第一页第二页第三页| 日韩电影免费在线看| 91精品办公室少妇高潮对白| 久久久久国产精品麻豆| 免费成人av在线播放| 91精品91久久久中77777| 国产精品久久精品日日| 精品一区二区三区日韩| 制服丝袜中文字幕一区| 玉足女爽爽91| 波多野结衣在线aⅴ中文字幕不卡| 欧美一区二区三区的| 一区二区三区成人在线视频| 不卡区在线中文字幕| 精品国产三级a在线观看| 亚洲成av人片一区二区三区| 91麻豆文化传媒在线观看| 久久久久久久精| 久草在线在线精品观看| 91精品国产综合久久久久久久久久| 日韩一区欧美一区| 粉嫩高潮美女一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 亚洲国产精品一区二区久久| 972aa.com艺术欧美| 亚洲国产精品精华液2区45| 激情成人午夜视频| 精品久久久久久久人人人人传媒| 青青草原综合久久大伊人精品| 欧美三级日韩三级国产三级| 一区二区三区在线观看网站| proumb性欧美在线观看| 国产精品国产精品国产专区不蜜| 国产成人av在线影院| 久久久久久综合| 国产一区二区导航在线播放| 日韩久久精品一区| 精品在线亚洲视频| 欧美va亚洲va在线观看蝴蝶网| 毛片av中文字幕一区二区| 91精品国产综合久久香蕉的特点| 亚洲chinese男男1069| 欧美日韩色综合| 肉色丝袜一区二区| 欧美一级片在线观看| 麻豆精品国产91久久久久久| 日韩美女主播在线视频一区二区三区 | 亚洲大片精品永久免费| 欧美午夜免费电影| 日本视频中文字幕一区二区三区| 在线不卡中文字幕播放| 男女视频一区二区| 欧美r级在线观看| 国产精品 日产精品 欧美精品| 国产日本欧美一区二区| 成人免费视频播放| 亚洲日本一区二区| 欧美性生活影院| 蜜桃精品视频在线观看| 精品乱码亚洲一区二区不卡| 国产成人精品免费| 亚洲另类色综合网站| 欧美色图激情小说| 日本不卡一区二区三区高清视频| 日韩欧美国产电影| 丁香婷婷综合网| 亚洲蜜桃精久久久久久久| 欧美日韩国产色站一区二区三区| 奇米影视7777精品一区二区| 国产亚洲欧美在线| 色偷偷久久人人79超碰人人澡| 亚洲国产精品久久人人爱| 日韩欧美色综合网站| 国产精品一线二线三线精华| 亚洲欧洲成人精品av97| 在线视频国内自拍亚洲视频| 青青草国产精品97视觉盛宴| 国产三级久久久| 欧美图区在线视频| 精品一区二区在线看| 中文字幕一区二区三区在线播放| 在线观看成人小视频| 蜜臀av性久久久久av蜜臀妖精| 国产欧美精品一区二区色综合| 欧美亚洲一区三区| 国产精品白丝av| 亚洲一区二区三区四区五区黄| 精品国产乱码久久久久久久| 99久久777色| 裸体歌舞表演一区二区| 一区视频在线播放| 日韩欧美一级二级三级久久久| 不卡的av电影| 麻豆精品视频在线观看视频| 1区2区3区国产精品| 日韩欧美卡一卡二| 91麻豆精东视频| 国产自产高清不卡| 亚洲图片有声小说| 亚洲国产精品精华液ab| 欧美一区在线视频| 91网上在线视频| 精品一区二区三区在线观看 | 欧美日韩在线播| 国产成人亚洲综合色影视| 婷婷久久综合九色国产成人| 国产精品情趣视频| 欧美成人a∨高清免费观看| 色婷婷精品久久二区二区蜜臀av| 精品一区二区精品| 亚洲va韩国va欧美va精品| 欧美国产日本韩| 日韩欧美电影在线| 欧美日本在线视频| 色欧美88888久久久久久影院| 狠狠色丁香久久婷婷综合_中 | 日韩欧美三级在线| 欧美日韩成人综合天天影院 | 亚洲.国产.中文慕字在线| 国产精品免费网站在线观看| 日韩一卡二卡三卡四卡| 欧美视频一区二区三区在线观看 | 成人av综合在线| 久久成人免费电影| 天天色综合成人网| 亚洲国产三级在线| 一区二区三区在线观看网站| 国产精品国产三级国产aⅴ入口 | 丁香婷婷综合激情五月色| 麻豆精品视频在线| 蜜桃久久av一区| 日韩福利电影在线| 午夜久久久久久久久久一区二区| 日韩美女啊v在线免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美午夜理伦三级在线观看| 91在线播放网址| hitomi一区二区三区精品| 国产成人免费视频一区| 久久99久久99| 精品一区二区在线观看| 久久国产精品色| 久久精品国产亚洲5555| 蜜臀精品一区二区三区在线观看 | 精品粉嫩超白一线天av| 欧美va亚洲va在线观看蝴蝶网| 日韩午夜小视频| 欧美一卡2卡三卡4卡5免费| 欧美高清www午色夜在线视频| 欧美色图激情小说| 欧美丰满少妇xxxxx高潮对白| 欧洲一区二区三区免费视频| 欧美亚洲动漫另类| 欧美影视一区在线| 在线播放亚洲一区| 91精品国产日韩91久久久久久| 欧美丰满美乳xxx高潮www| 91精品欧美综合在线观看最新| 欧美高清性hdvideosex| 91麻豆精品91久久久久同性| 欧美一区二区三区视频免费播放| 91麻豆精品国产91久久久久| 91精品久久久久久久91蜜桃| 日韩欧美不卡在线观看视频| 欧美成人精品福利| 国产喷白浆一区二区三区| 国产精品人成在线观看免费| 中文字幕一区二区在线观看| 亚洲一二三专区|