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

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

?? d13_muchdlg.cpp

?? 實(shí)現(xiàn)philips pdiusbd12芯片進(jìn)行usb通信的上位機(jī)源碼
?? CPP
字號:
// D13_MuchDlg.cpp : implementation file
//

#include "stdafx.h"
#include "D13_Much.h"
#include "D13_MuchDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CD13_MuchDlg dialog

CD13_MuchDlg::CD13_MuchDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CD13_MuchDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CD13_MuchDlg)
	m_SendByte = _T("");
	m_ReceiveByte = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CD13_MuchDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CD13_MuchDlg)
	DDX_Text(pDX, IDC_SENDBYTE, m_SendByte);
	DDX_Text(pDX, IDC_RECEIVEBYTE, m_ReceiveByte);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CD13_MuchDlg, CDialog)
	//{{AFX_MSG_MAP(CD13_MuchDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_SEND, OnSend)
	ON_EN_CHANGE(IDC_SENDBYTE, OnChangeSendbyte)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CD13_MuchDlg message handlers

BOOL CD13_MuchDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CD13_MuchDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CD13_MuchDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CD13_MuchDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}


//////////////下面為一些數(shù)據(jù)類型轉(zhuǎn)換函數(shù)/////////////////////////////////////

/***********************************************************
** 函數(shù)名稱: CString IntToASCII(unsigned char input)
** 功能描述: 將兩位的無符號整數(shù)轉(zhuǎn)換為字符串
** 輸   入: unsigned char input : 16進(jìn)制數(shù)
** 輸    出: input  的字符串形式  
** 例    如: 0xFF - > "FF" 
************************************************************/
CString IntToASCII(unsigned char input)
{
	char temp[2];
	char exchange;
	CString output = "";		

	itoa(input,temp,16);		//結(jié)果高位放于temp[0],低位放于temp[1]
	if (temp[1] == 0)	        //因?yàn)槿绻鹖nput為0x0F 時(shí),結(jié)果為 'F','0';	
	{						    //所以要交換一下temp[1]與temp[0]
		exchange = temp[1];
		temp[1]  = temp[0];
		temp[0]  = exchange;
	}	

	if (temp[0] == 0)  output += "0";
	   else	           output += temp[0];

    if (temp[1] == 0)  output += "0";
	   else            output += temp[1];

	 return output;
}


/***********************************************************
** 函數(shù)名稱: void StrToHex(CString str,__int16 len,unsigned char *databuff)
** 功能描述: 將一串字符串轉(zhuǎn)換為一串兩位的16進(jìn)制數(shù)
** 輸   入: CString   str              : 輸入的字符串
			 __int16   outlen           : 輸出的字節(jié)的長度
** 輸    出: unsigned char  *databuff   : 輸出的16進(jìn)制數(shù)串
** 例    如: "FF" - > 0xFF ; "1236" - > 12 36
** 備    注:len <= 256
************************************************************/
void StrToHex(CString str,__int16 outlen,unsigned char *databuff)
{
	__int16 temp;

	for (__int16 i = 0; i < outlen; i++)
	{
		CString StrChar = str.Mid(2 * i,2);			//取出其中的兩個(gè)字符
		sscanf(StrChar,"%x",&temp);			//轉(zhuǎn)換為16進(jìn)制數(shù)
		databuff[i] = (unsigned char)temp;
	}
}

/***********************************************************
** 函數(shù)名稱: OnChangeSendbyte
** 功能描述: 格式化輸入的數(shù)據(jù)
************************************************************/
void CD13_MuchDlg::OnChangeSendbyte() 
{
	char tmp;								
    __int16 TxtLen = 0;
	
	UpdateData(TRUE);						//取得數(shù)據(jù)
	TxtLen = m_SendByte.GetLength();
	
	if (TxtLen == 0) return;
	if (TxtLen > 2)							//編輯框輸入字節(jié)不允許超過167字節(jié)
	{
		m_SendByte.Delete(TxtLen -1);
	}
	else
	{
		tmp = m_SendByte.GetAt(TxtLen - 1);
		if ((tmp > 'A' - 1) && (tmp < 'F' + 1)||
			(tmp > 'a' - 1) && (tmp < 'f' + 1)||
			(tmp > '0' - 1) && (tmp < '9' + 1))
		{									//只許輸入0 ~ 9 ;A(a) ~ F(f)
			m_SendByte.MakeUpper();			//轉(zhuǎn)為大字
		}
		else
		{
			m_SendByte.Delete(TxtLen - 1);    //否則不接收
		}
	}
	
	UpdateData(FALSE);
	UpdateData(TRUE);
	((CEdit *)GetDlgItem(IDC_SENDBYTE))->SetSel(m_SendByte.GetLength(),
		m_SendByte.GetLength(),TRUE);	
}


/************************************************************************************

							下面處理USB相關(guān)部分

*************************************************************************************/

#include "EasyUSB.h"					//包含頭文件

#define EP2_PACKET_SIZE 64				//D12端點(diǎn)2數(shù)據(jù)包的大小
unsigned int aa[EP2_PACKET_SIZE];
/***********************************************************
** 函數(shù)名稱: int senddata(unsigned char *psend,int len)
** 功能描述: 向D12的端點(diǎn)2發(fā)送數(shù)據(jù)
** 輸	 入: unsigned char *psend:  發(fā)送緩沖區(qū)
		     int len:				發(fā)送字節(jié)數(shù)
** 輸	 出: 0 -- 發(fā)送正確     1 -- 發(fā)送錯(cuò)誤
************************************************************/
int senddata(unsigned char *psend,int len)
{
	int i,j,k;
	int ret;
	unsigned char ack;
	unsigned char sendBuf[EP2_PACKET_SIZE];
	int offset = 0;
	
	i = len / (EP2_PACKET_SIZE - 4);						//計(jì)算有多少個(gè)整數(shù)包(每包64字節(jié))
	j = len % (EP2_PACKET_SIZE - 4);						//剩余包數(shù)
	
	for (k = 0; k < i; k++)
	{
		sendBuf[0] = 0x01;									//命令
		sendBuf[1] = offset / 256;							//下位機(jī)接收緩沖區(qū)偏移offset
		sendBuf[2] = offset % 256;
		sendBuf[3] = EP2_PACKET_SIZE - 4;					//發(fā)送的數(shù)據(jù)的字節(jié)數(shù)
 		memcpy(&sendBuf[4],psend,EP2_PACKET_SIZE - 4);
		
		ret = WriteData(3,sendBuf,EP2_PACKET_SIZE,3000);	//每次發(fā)送64字節(jié)
		if (ret != EP2_PACKET_SIZE) return -1;				//發(fā)送錯(cuò)誤

		ret = ReadData(2,&ack,1,3000);						//接收下位機(jī)的響應(yīng)
		if (ret != 1)			return -1;					//接收錯(cuò)誤
		if (ack != 1)			return -1;					//響應(yīng)錯(cuò)誤

		psend = psend + EP2_PACKET_SIZE - 4;			
		offset = offset + EP2_PACKET_SIZE - 4;
	}

	if (j != 0)		
	{	
		sendBuf[0] = 0x01;
		sendBuf[1] = offset / 256;
		sendBuf[2] = offset % 256;
		sendBuf[3] = j;
		memcpy(&sendBuf[4],psend,j);
		
		ret = WriteData(3,sendBuf,j + 4,3000);				//發(fā)送不夠整數(shù)包的數(shù)據(jù)	
		if (ret != j + 4) 	return -1;
		
		ret = ReadData(2,&ack,1,3000);
		if (ret != 1)	return -1;
		if (ack != 1)	return -1;	
	}

	return 0;		//正確
}

/***********************************************************
** 函數(shù)名稱: int recdata(unsigned char *prec,int len)
** 功能描述: 從D12的端點(diǎn) 2 接收數(shù)據(jù)
** 輸	 入: unsigned char *psend:  發(fā)送緩沖區(qū)
		     int len:	            發(fā)送字節(jié)數(shù)
** 輸	 出: 0 -- 發(fā)送正確     1 -- 發(fā)送錯(cuò)誤
************************************************************/
int recdata(unsigned char *prec,int len)
{
	int i,j,k;
	unsigned char sendbuf[4];
	int ret;

	i = len / (EP2_PACKET_SIZE * 2);
	j = len % (EP2_PACKET_SIZE * 2);
	int offset = 0;
	
	for(k = 0; k < i; k++)
	{
		sendbuf[0] = 0x02;									//命令字節(jié)
		sendbuf[1] = offset / 256;							//偏移量
		sendbuf[2] = offset % 256;
		sendbuf[3] = EP2_PACKET_SIZE * 2;					//每次讀的長度:128字節(jié)	
			
		ret = WriteData(3,sendbuf,4,3000);					//發(fā)送讀命令
		if (ret != 4) 	return -1;

		ret = ReadData(2,prec,EP2_PACKET_SIZE * 2,3000);	//讀數(shù)據(jù)
		if (ret != EP2_PACKET_SIZE * 2)  return -1;

		offset = offset + EP2_PACKET_SIZE * 2;
		prec = 	prec + EP2_PACKET_SIZE * 2;
	}
	
	if (j != 0)
	{											//讀不夠128字節(jié)的數(shù)據(jù)
		sendbuf[0] = 0x02;
		sendbuf[1] = offset / 256;
		sendbuf[2] = offset % 256;
		sendbuf[3] = j;

		ret = WriteData(3,sendbuf,4,3000);		//發(fā)送讀命令
		if (ret != 4) 	return -1;
		
		ret = ReadData(2,prec,j,3000);			//讀j個(gè)字節(jié)
		if (ret != j)  return -1;
	}
		
	return 0;	//讀成功
}


/***********************************************************
** 函數(shù)名稱: void CD13_MuchDlg::OnSend() 
** 功能描述: 按 "發(fā)送" 按鍵觸發(fā)的事件 
** 輸	 入: 無
** 輸	 出: 無
************************************************************/
void CD13_MuchDlg::OnSend() 
{
	unsigned char sendbuf[1024];			//發(fā)送緩沖區(qū)
	unsigned char recbuf[1024];				//接收緩沖區(qū)
	unsigned char Inbyte;					//要發(fā)送的字節(jié)
	int i,ret;

	UpdateData(TRUE);

	if (m_SendByte.GetLength() != 2)	
	{										//取得要發(fā)送的字節(jié)
		MessageBox("請輸入要發(fā)送的字節(jié)");
		return;
	}
	
	StrToHex(m_SendByte,1,&Inbyte);			//將字符串轉(zhuǎn)換為字節(jié)
	for (i = 0; i < 1024; i++)
		sendbuf[i] = Inbyte;				//填充發(fā)送緩沖區(qū):1024個(gè)字節(jié)

	ret = senddata(sendbuf,1024);			//發(fā)到1024個(gè)字節(jié)到D12
	if (ret != 0)
	{										//發(fā)送錯(cuò)誤
		MessageBox("發(fā)送數(shù)據(jù)錯(cuò)誤!");		
		return;
	}
		
	ret = recdata(recbuf,1024);				//從D12接收1024個(gè)字節(jié)
	if (ret != 0)
	{
		MessageBox("接收數(shù)據(jù)錯(cuò)誤!");
		return;
	}

	ret = memcmp(recbuf,sendbuf,1024);		//比較發(fā)送的字節(jié)與接收到的是否相同
	if (ret != 0)
	{
		MessageBox("發(fā)送的數(shù)據(jù)與收到的不相同");
		return;
	}

	//下面將收到的1024個(gè)字節(jié)顯示在界面上
	m_ReceiveByte = "";
	for (i = 0; i < 1024; i++)
		m_ReceiveByte += IntToASCII(recbuf[i]) + " ";

	UpdateData(FALSE);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级精品在线| 欧美日韩国产一二三| 亚洲一卡二卡三卡四卡| 欧美电视剧在线观看完整版| av电影在线观看完整版一区二区| 婷婷久久综合九色国产成人| 国产精品卡一卡二卡三| 日韩一区二区在线播放| 91蝌蚪porny| 国产乱码精品一区二区三区忘忧草 | 天堂久久一区二区三区| 国产日韩亚洲欧美综合| 欧美精品一级二级三级| 97se亚洲国产综合在线| 国产精品小仙女| 日韩成人一区二区| 亚洲一级片在线观看| 国产精品久久三区| wwwwxxxxx欧美| 欧美一级在线免费| 欧美伊人久久久久久久久影院| 国产精品一区二区果冻传媒| 日本欧美大码aⅴ在线播放| 亚洲曰韩产成在线| 亚洲欧美在线视频观看| 国产女人水真多18毛片18精品视频| 777欧美精品| 欧美日韩成人综合在线一区二区| 91在线观看污| bt欧美亚洲午夜电影天堂| 国产999精品久久久久久| 激情五月婷婷综合网| 免费不卡在线观看| 日本在线不卡视频| 青青青伊人色综合久久| 日韩黄色片在线观看| 亚洲一区二区精品久久av| 亚洲精品欧美激情| 亚洲综合在线第一页| 一区二区三区精品视频在线| 久久 天天综合| 日本亚洲免费观看| 午夜伦欧美伦电影理论片| 亚洲高清视频在线| 亚洲成人自拍网| 婷婷开心激情综合| 久久精品国产色蜜蜜麻豆| 日本欧美一区二区| 精品亚洲aⅴ乱码一区二区三区| 男女激情视频一区| 精品无人码麻豆乱码1区2区 | 99精品久久99久久久久| 北条麻妃一区二区三区| 91影院在线免费观看| 欧美在线一区二区三区| 欧美日韩一卡二卡| 日韩欧美一二三四区| 精品国产免费人成在线观看| 久久九九久久九九| 中文字幕一区二区三区精华液 | 久久只精品国产| 国产欧美一区二区精品性色| 国产精品久久久久久户外露出 | 亚洲女爱视频在线| 亚洲一区视频在线观看视频| 亚洲成精国产精品女| 丝袜美腿亚洲一区| 久久不见久久见免费视频1| 国产精品羞羞答答xxdd| 91理论电影在线观看| 91精品在线麻豆| 国产丝袜欧美中文另类| 亚洲毛片av在线| 日本欧美一区二区三区| 成人精品亚洲人成在线| 在线视频一区二区免费| 欧美一区二区三区思思人| 国产日韩成人精品| 亚洲精品成a人| 久久精品国产成人一区二区三区 | 国产精品美日韩| 亚洲国产成人va在线观看天堂| 久久黄色级2电影| 99在线精品一区二区三区| 欧美日韩国产免费一区二区| 久久久久久夜精品精品免费| 亚洲欧洲综合另类| 久久99精品国产91久久来源| 99国产一区二区三精品乱码| 日韩午夜av电影| 国产**成人网毛片九色 | 日本黄色一区二区| 男男视频亚洲欧美| 国产主播一区二区| 在线视频亚洲一区| 精品va天堂亚洲国产| 亚洲老司机在线| 中文字幕国产一区| 在线这里只有精品| 欧美怡红院视频| 欧美国产综合色视频| 日韩成人午夜电影| 99精品欧美一区二区三区小说 | 国产成人亚洲综合a∨婷婷图片| 日本韩国欧美三级| 久久精品免视看| 日韩成人dvd| 色女孩综合影院| 欧美国产精品中文字幕| 奇米影视7777精品一区二区| av色综合久久天堂av综合| 亚洲精品在线免费观看视频| 亚洲午夜私人影院| www.66久久| 久久久99精品免费观看| 蜜桃一区二区三区四区| 欧美午夜精品免费| 亚洲人成7777| 99久久精品国产导航| 久久久久国产精品麻豆ai换脸| 日产欧产美韩系列久久99| 欧美亚洲综合在线| 亚洲精品日日夜夜| 91女神在线视频| 1区2区3区国产精品| 成人深夜视频在线观看| 久久精品亚洲国产奇米99| 极品销魂美女一区二区三区| 欧美一区二区三区在线视频| 亚洲444eee在线观看| 精品视频在线视频| 亚洲国产日日夜夜| 欧美综合一区二区| 亚洲综合色婷婷| 91精品1区2区| 亚洲国产cao| 欧美精品 日韩| 日韩成人一区二区三区在线观看| 欧美日韩国产免费| 日本一不卡视频| 欧美不卡123| 国产在线视视频有精品| 久久新电视剧免费观看| 国产剧情一区二区三区| 国产亚洲精品福利| 成人性视频免费网站| 中文字幕日韩一区二区| 一本一道久久a久久精品综合蜜臀| 亚洲四区在线观看| 色琪琪一区二区三区亚洲区| 亚欧色一区w666天堂| 欧美一区二区三区在线观看| 国产尤物一区二区| 中文字幕一区二区三区在线播放 | 中文av一区二区| 99国产一区二区三精品乱码| 亚洲精选视频在线| 9191成人精品久久| 极品少妇xxxx偷拍精品少妇| 国产免费成人在线视频| 91视频一区二区三区| 亚洲成人一区二区| 精品免费日韩av| 国产 日韩 欧美大片| 亚洲一区二区中文在线| 日韩欧美一级精品久久| 懂色av中文字幕一区二区三区| 亚洲三级电影网站| 欧美一区二区三区四区五区| 国产成人高清在线| 一区二区成人在线视频| 91精品婷婷国产综合久久性色 | 欧美精品在线视频| 久久99久久久久| 国产精品久久久久久久久动漫 | 26uuu国产日韩综合| 99综合电影在线视频| 丝袜美腿亚洲一区| 国产精品黄色在线观看| 在线电影欧美成精品| 东方欧美亚洲色图在线| 亚洲成人一区在线| 国产精品理论片在线观看| 欧美日韩国产高清一区二区 | 国产露脸91国语对白| 亚洲综合偷拍欧美一区色| 精品日韩成人av| 在线观看中文字幕不卡| 黄色资源网久久资源365| 最新日韩在线视频| 久久亚洲欧美国产精品乐播| 欧美日韩国产a| 不卡视频一二三| 久久电影网站中文字幕 | 国产精品美女久久久久久2018| 欧美午夜在线一二页| 国产成人亚洲综合色影视| 丝袜亚洲精品中文字幕一区| 亚洲欧美日韩成人高清在线一区| 欧美一卡二卡在线|