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

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

?? pro.cpp

?? 包含51單片機并口串口下載線的上位機及下位機的源程序
?? CPP
字號:
//////////////////////////////////////////////////////////////////////
// Pro.cpp: implementation of the CPro class.
//這個類負責管理串行編程器和下載線,提供串口編程器或并口編程器類
//與界面的通信
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EPro.h"
#include "Pro.h"
#include "EProDlg.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPro::CPro()
{
	m_pReadBuf=(BYTE*)GlobalAlloc(GMEM_FIXED,0x10000);//建立緩沖2
	m_pWriteBuf=(BYTE*)GlobalAlloc(GMEM_FIXED,0x10000);//建立緩沖1
	memset(m_pReadBuf,0xff,0x10000);
	memset(m_pWriteBuf,0xff,0x10000);
	m_pSerialPro=NULL;
	m_pParlPro=NULL;
	m_nChipSel=0;
}

CPro::~CPro()
{

}

BOOL CPro::InitPro(CWnd* pWnd,int nProType,int nIspSpd)
{
	m_pDlg=(CEProDlg*)pWnd;
	m_nProType=nProType;//編程器類型
	if(m_nProType==0)
	{
		if(m_pSerialPro!=NULL)
			delete m_pSerialPro;
		m_pSerialPro=new CSerialPro;
		switch(m_nBaudSel)//初始化串口
		{
			case 0:
				return m_pSerialPro->InitPort(this,m_nSerialPort,9600);
			case 1:
				return m_pSerialPro->InitPort(this,m_nSerialPort,19200);
			case 2:
				return m_pSerialPro->InitPort(this,m_nSerialPort,28800);
			case 3:
				return m_pSerialPro->InitPort(this,m_nSerialPort,57600);
			default : FALSE;
		}
	}
	else if(m_nProType>=1 && m_nProType<=3)//使用并口的編程器
	{
		m_pParlPro=new CParallelPro;
		return m_pParlPro->InitPort(this,0x378,m_nProType,nIspSpd);//初始化并口
	}
	return FALSE;
}

void CPro::Notify(int nInfo)//向界面發送消息
{
	PostMessage(m_pDlg->m_hWnd, WM_PRO_MSG, (WPARAM)nInfo, 0);
}

void CPro::DetectPro(int nChipSel)//檢測編程器
{
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->DetectPro(GetChipType(nChipSel)->FID);
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->DetectPro(GetChipType(nChipSel)->FID);
	}
}

void CPro::DetectChip(int nChipSel)//檢測器件,就是讀特征字再比較特征字
{
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->ReadSign(GetChipType(nChipSel)->FID);
		
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->ReadSign(GetChipType(nChipSel)->FID);
	}
}

void CPro::Erase(int nChipSel)//擦除器件
{
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->Erase(GetChipType(nChipSel)->FID);
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->Erase(GetChipType(nChipSel)->FID);
	}
}

void CPro::Write(int nChipSel)//寫器件
{
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->BeginWrite(GetChipType(nChipSel)->FID);
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->BeginWrite(GetChipType(nChipSel)->FID);
	}
}

void CPro::Read(int nChipSel)//讀器件
{
	memset(m_pReadBuf,0xff,0x10000);
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->BeginRead(GetChipType(nChipSel)->FID);
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->BeginRead(GetChipType(nChipSel)->FID);
	}

}

void CPro::LockBit(int nChipSel, int nBit)//寫鎖定位
{
	if(m_nProType==0)//如果是串口的
	{
		m_pSerialPro->LockBit(GetChipType(nChipSel)->FID,nBit);
	}
	else if(m_nProType>=1 && m_nProType<=3)//如果是并口的
	{
		m_pParlPro->LockBit(GetChipType(nChipSel)->FID,nBit);
	}
}

extern CString m_strAppPath;//應用程序所在的目錄
void CPro::LoadChipList()//從ChipList.chip中載入器件列表
{
	CFile fileOpen;
	if(fileOpen.Open(m_strAppPath+"ChipList.chip",CFile::shareCompat|CFile::modeRead,NULL))
	{
		int	BufSize=fileOpen.GetLength();
		int	nVer;
		int	nChip;
		BYTE* fileBuf=new BYTE[BufSize];
		fileOpen.Read(fileBuf,BufSize);
		memcpy(&nVer,fileBuf,4);
		memcpy(&nChip,&fileBuf[4],4);
		ChipType* pChip=(ChipType*)&fileBuf[8];
		CString strChip;
		for(int n=0;n<=nChip-1;n++)
		{
			m_arChips.Add(&pChip[n]);
			strChip=pChip[n].Name;
			m_pDlg->m_comboChipType.InsertString(n,strChip);
		}
		fileOpen.Close();
	}
}

ChipType* CPro::GetCurChip()//得到當前的器件類型
{	
	return GetChipType(m_nChipSel);
}

ChipType* CPro::GetChipType(int nChipSel)//根據器件序號的到器件類型
{
	if(nChipSel<0)
		nChipSel=0;
	m_nChipSel=nChipSel;
	return m_arChips.GetAt(nChipSel);
}

int CPro::GetMinLength(BYTE *pBuf, int nLength)
{//計算緩沖中最小數據塊的長度,跳過0xFF
	int n;
	for(n=nLength-1;n>=0;n--)
	{
		if(pBuf[n]!=0xff)
		{
			if(n==0)
			 return m_nDataLength=1;
			break;
		}
	}
	if(n==0)
		return m_nDataLength=0;
	n++;
	if(n>GetCurChip()->RomSize*1024)
		return m_nDataLength=GetCurChip()->RomSize*1024;
	return m_nDataLength=n;
}

BOOL CPro::CheckChip()//根據特征字緩沖中數據查找與之匹配的器件
{
	int n;
	for(n=0;n<m_arChips.GetSize();n++)
	{
		if(SignByte[0]==m_arChips.GetAt(n)->SignBytes[0]
		&& SignByte[1]==m_arChips.GetAt(n)->SignBytes[1]
		&& SignByte[2]==m_arChips.GetAt(n)->SignBytes[2])
		{
			Notify(PRO_DETECTCHIP_SEC);
			m_nChipSel=n;
			m_pDlg->m_comboChipType.SetCurSel(n);
			return TRUE;
		}
	}
	Notify(PRO_DETECTCHIP_ER);
	return FALSE;
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲狠狠丁香婷婷综合久久久| 欧美乱熟臀69xxxxxx| 亚洲一区二区三区三| 精品国产电影一区二区 | 天天av天天翘天天综合网色鬼国产 | 自拍偷拍亚洲综合| 欧美v国产在线一区二区三区| 国产91精品露脸国语对白| 日韩av中文在线观看| 一区二区中文视频| 国产欧美日韩不卡| 久久久国产一区二区三区四区小说| 欧美视频一区二区在线观看| 成人黄色网址在线观看| 狠狠色综合色综合网络| 亚洲成人精品一区| 夜夜嗨av一区二区三区四季av | 欧美一区二区福利视频| 91成人看片片| 欧美视频精品在线观看| 欧美欧美欧美欧美| 色先锋资源久久综合| 91福利资源站| 欧美日韩在线播放| 91精品欧美一区二区三区综合在| 在线看国产一区二区| 欧美日韩一二区| 欧美丰满少妇xxxbbb| 日韩精品一区二区三区视频| 日韩一区二区麻豆国产| 日韩欧美国产三级电影视频| 精品伦理精品一区| 欧美日韩一卡二卡| 99国产精品久久久久久久久久| 亚洲一区二区3| 日日摸夜夜添夜夜添国产精品| 五月天亚洲婷婷| 精品亚洲成av人在线观看| 国产69精品久久777的优势| av在线不卡网| 日韩亚洲欧美中文三级| 国产三区在线成人av| 亚洲国产一二三| 国内成+人亚洲+欧美+综合在线| 成人中文字幕电影| 欧美日韩亚洲综合一区二区三区| 欧美一区二区三区免费视频 | 高清久久久久久| 欧美精品视频www在线观看| 欧美一级一区二区| 亚洲人成人一区二区在线观看| 亚洲午夜久久久久久久久电影网 | 91色乱码一区二区三区| 欧美一级片在线看| 亚洲一区二区在线观看视频| 丁香五精品蜜臀久久久久99网站| 在线电影欧美成精品| 亚洲视频小说图片| 国产不卡在线视频| 久久亚洲精品小早川怜子| 日韩va亚洲va欧美va久久| 在线免费观看日韩欧美| 国产视频一区二区三区在线观看| 亚洲第一激情av| 欧洲激情一区二区| 国产精品欧美精品| 国产69精品一区二区亚洲孕妇| 欧美一区二区三区人| 日韩成人午夜电影| 欧美性受xxxx黑人xyx性爽| 日韩美女久久久| www.激情成人| 国产精品久久久久影院亚瑟| 国产成人综合视频| 中文字幕精品—区二区四季| 成人小视频免费在线观看| 久久精品夜色噜噜亚洲a∨| 精品一二三四区| 精品美女被调教视频大全网站| 久久国产福利国产秒拍| 国产视频视频一区| 99在线精品一区二区三区| 亚洲另类在线视频| 91麻豆精品国产91久久久资源速度 | 91精品国产综合久久久久| 香蕉成人啪国产精品视频综合网 | 欧美三级在线播放| 日韩福利电影在线| 久久亚洲免费视频| 日韩欧美一区二区不卡| 蜜臀va亚洲va欧美va天堂| 欧美一级精品大片| av中文字幕在线不卡| 午夜精品爽啪视频| 国产欧美精品一区| 欧美三级蜜桃2在线观看| 国产一区二区三区四区五区美女| 国产精品毛片久久久久久| 欧美日韩大陆在线| 国产91在线观看丝袜| 亚洲成av人在线观看| 国产精品免费视频网站| 911精品产国品一二三产区| 成人深夜福利app| 麻豆一区二区在线| 午夜精品一区二区三区免费视频 | 日韩午夜在线观看视频| 99免费精品视频| 国产馆精品极品| 久久精品国产亚洲高清剧情介绍| 亚洲少妇屁股交4| 久久久国产精华| 亚洲欧美综合在线精品| 精品国产三级a在线观看| 91国偷自产一区二区三区成为亚洲经典 | 婷婷一区二区三区| 亚洲最大的成人av| 亚洲另类色综合网站| 亚洲男人的天堂在线观看| 国产精品你懂的| 亚洲欧美在线观看| 欧美韩日一区二区三区四区| 久久午夜老司机| 欧美日韩一区中文字幕| 亚洲人亚洲人成电影网站色| 一本久道中文字幕精品亚洲嫩| 精品亚洲成a人在线观看 | 久久国产生活片100| 视频在线在亚洲| 免费看日韩a级影片| 日日夜夜免费精品视频| 亚洲图片一区二区| 亚洲国产综合人成综合网站| 亚洲成a人片在线观看中文| 亚洲电影中文字幕在线观看| 亚洲成人免费看| 精品亚洲免费视频| 国产盗摄一区二区| 99国产欧美久久久精品| 欧美三级电影在线看| 91精品国产欧美日韩| 久久久蜜桃精品| 亚洲色图欧美激情| 日本不卡视频在线| 丁香桃色午夜亚洲一区二区三区| 99久久伊人久久99| 日韩一区二区在线观看视频播放| 久久久久久久久久久黄色| 一区二区三区国产豹纹内裤在线| 日日夜夜精品视频天天综合网| 国产一区二区免费看| 在线精品视频小说1| 日韩一区二区三区视频在线观看| 精品国产一区二区三区忘忧草| 亚洲日本中文字幕区| 毛片av中文字幕一区二区| 日本韩国欧美国产| 久久久久综合网| 日韩在线卡一卡二| 色综合色狠狠综合色| 精品久久久久久久久久久久久久久久久 | 欧美裸体bbwbbwbbw| ...xxx性欧美| av电影天堂一区二区在线观看| 日韩一区二区视频| 亚洲一区二区三区四区在线观看 | 国产成人福利片| 精品第一国产综合精品aⅴ| 午夜欧美视频在线观看| 色一情一伦一子一伦一区| 中文字幕不卡的av| 粉嫩久久99精品久久久久久夜| 日韩视频在线永久播放| 日韩高清一区二区| 欧美高清视频一二三区 | 免播放器亚洲一区| 欧美色视频在线观看| 亚洲成在人线免费| 欧美一区二区三区在线| 日韩电影免费在线| 精品国产一区二区在线观看| 久久99精品国产麻豆不卡| 欧美tickle裸体挠脚心vk| 久久99精品久久久久久| 久久精品夜色噜噜亚洲a∨| 成人激情小说乱人伦| 亚洲欧美另类小说| 日韩午夜激情免费电影| 久久se精品一区精品二区| 国产亚洲综合在线| 99国产精品久久久久久久久久| 亚洲五月六月丁香激情| 欧美一区二区三区在线| 成人性生交大片免费看中文网站| 亚洲天堂网中文字| 日韩欧美国产午夜精品| 福利电影一区二区| 丝袜美腿一区二区三区| www国产精品av| 欧美色网一区二区|