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

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

?? dlgpgbustopology.cpp

?? 1394測(cè)試程序
?? CPP
字號(hào):
// DlgPgBusTopology.cpp : implementation file
//

#include "stdafx.h"
#include "TestApp.h"
#include "DlgPgBusTopology.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgPgBusTopology dialog


CDlgPgBusTopology::CDlgPgBusTopology(CWnd* pParent /*=NULL*/)
	: CDialogPage(CDlgPgBusTopology::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgPgBusTopology)
	m_CheckForceRoot = FALSE;
	m_ValResetGenerationCount = 0;
	m_CheckUseLocalNode = FALSE;
	m_uintForceRoot = 0;
	m_uintGapCount = 0;
	m_uintInverse = 0;
	m_uintPacketId = 0;
	m_uintPhyId = 0;
	m_uintSetGapCount = 0;
	m_uintReserved2 = 0;
	m_uintReserved1 = 0;
	//}}AFX_DATA_INIT

	m_ThreadRunning = FALSE;

}


void CDlgPgBusTopology::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgPgBusTopology)
	DDX_Check(pDX, IDC_CHECK_FORCE_ROOT, m_CheckForceRoot);
	DDX_Text(pDX, IDC_EDIT_GENERATION_COUNT, m_ValResetGenerationCount);
	DDX_Check(pDX, IDC_CHECK_MAX_SPEED, m_CheckUseLocalNode);
	DDX_Text(pDX, IDC_EDIT_FORCE_ROOT, m_uintForceRoot);
	DDX_Text(pDX, IDC_EDIT_GAP_COUNT, m_uintGapCount);
	DDX_Text(pDX, IDC_EDIT_INVERSE, m_uintInverse);
	DDX_Text(pDX, IDC_EDIT_PACKET_ID, m_uintPacketId);
	DDX_Text(pDX, IDC_EDIT_PHY_ID, m_uintPhyId);
	DDX_Text(pDX, IDC_EDIT_SET_GAP_COUNT, m_uintSetGapCount);
	DDX_Text(pDX, IDC_EDIT_RESERVED2, m_uintReserved2);
	DDX_Text(pDX, IDC_EDIT_RESERVED1, m_uintReserved1);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgPgBusTopology, CDialog)
	//{{AFX_MSG_MAP(CDlgPgBusTopology)
	ON_BN_CLICKED(IDC_BUTTON_GET_GENERATION, OnButtonGetGeneration)
	ON_BN_CLICKED(IDC_BUTTON_RESET, OnButtonReset)
	ON_BN_CLICKED(IDC_BUTTON_EN_RES_NOTIFY, OnButtonEnResNotify)
	ON_BN_CLICKED(IDC_BUTTON_DIS_RES_NOTIFY, OnButtonDisResNotify)
//	ON_MESSAGE(WM_USER_THREAD_TERMINATED,OnMessageThreadTerminated)
	ON_MESSAGE(WM_USER_BUS_RESET,OnMessageBusReset)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON_PCP_SEND, OnButtonPcpSend)
	ON_BN_CLICKED(IDC_BUTTON_SPEED_BETWEEN_DEVICES, OnButtonSpeedBetweenDevices)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CDlgPgBusTopology message handlers


BOOL CDlgPgBusTopology::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// set initial state of some controls
//	UpdateEditBoxesStates();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


//
// Message Handler for WM_USER_THREAD_TERMINATED
// called in the context of main thread
//



//
// Message Handler for WM_USER_BUS_RESET
// called in the context of main thread
//
long CDlgPgBusTopology::OnMessageBusReset(UINT nID, LPARAM lParam)
{
	// just display a message
	PrintOut("!!! BUS RESET !!!"NL);

	return 0;
}


void CDlgPgBusTopology::OnDestroy() 
{
	// this instance is about to be closed
	// stop m_ResetHandler if running
	if ( m_ThreadRunning == TRUE ) {
		// shutdown worker thread
		// this call blocks until the thread has terminated
//		m_ResetHandler.ShutdownThread();	
		// save state of worker thread
		m_ThreadRunning = FALSE;
		// close instance
//		m_ResetHandler.Close();
	}

	CDialog::OnDestroy();
}


void CDlgPgBusTopology::OnButtonGetGeneration() 
{
	ULONG       generationCount;
	// call driver (through class library)
	DWORD Status = g_CurrentDev.GetResetGenerationCount(&generationCount);
	if (Status == STATUS_SUCCESS) {
		// update display
		m_ValResetGenerationCount=generationCount;
		UpdateData(FALSE);

		// update global var, must be thread-save
		InterlockedExchange((LPLONG)(&g_ResetGenerationCount), m_ValResetGenerationCount);

		PrintOut("Get current reset generation count was successful."NL);
	} else {
		PrintOut(NL"GetResetGenerationCount() failed"NL);
		PrintError(Status);
	}	
	PrintOut(NL);
/*	VHPD_GENERATION_COUNT GenCount;

	// call driver (through class library)
	DWORD Status = g_CurrentDev.GetResetGenerationCount(&GenCount);
	if (Status == STATUS_SUCCESS) {
		// update display
		m_ValResetGenerationCount=GenCount.Count;
		UpdateData(FALSE);

		// update global var, must be thread-save
		InterlockedExchange((LPLONG)(&g_ResetGenerationCount), m_ValResetGenerationCount);

		PrintOut("Get current reset generation count was successful."NL);
	} else {
		PrintOut(NL"GetResetGenerationCount() failed"NL);
		PrintError(Status);
	}	
	PrintOut(NL);*/
}


void CDlgPgBusTopology::OnButtonReset() 
{
	ULONG Flags;
	Flags = 0;
	if ( UpdateData(TRUE) ) 
	{
		if( m_CheckForceRoot )
			Flags |= BUS_RESET_FLAGS_FORCE_ROOT;
		// call driver (through class library)
		DWORD Status = g_CurrentDev.ForceBusReset(Flags);
		if ( Status == STATUS_SUCCESS ) {
			PrintOut("Bus Reset successfully initiated."NL);
		} 
		else 
		{
			PrintOut(NL"ForceBusReset() failed"NL);
			PrintError(Status);
		}	
		PrintOut(NL);
	}
/*	VHPD_BUS_RESET BusResetParams;
	::ZeroMemory(&BusResetParams,sizeof(BusResetParams));

	// get user parameters from dialog
	if ( UpdateData(TRUE) ) {
		// put user parameters to input structure
		if ( m_CheckForceRoot == TRUE ) {
			BusResetParams.Flags |= VHPD_FLAG_RESET_FORCE_ROOT;
		}

		// call driver (through class library)
		DWORD Status = g_CurrentDev.ForceBusReset(&BusResetParams);
		if (Status == STATUS_SUCCESS) {
			PrintOut("Bus Reset successfully initiated."NL);
		} else {
			PrintOut(NL"ForceBusReset() failed"NL);
			PrintError(Status);
		}	
		PrintOut(NL);
	}
*/
}


void CDlgPgBusTopology::OnButtonEnResNotify() 
{
	ULONG   fulFlags;
	fulFlags = REGISTER_NOTIFICATION_ROUTINE;

	DWORD Status = g_CurrentDev.BusResetNotification(fulFlags);
	if (Status == STATUS_SUCCESS) 
	{
		PrintOut("Bus Reset Notification successfully initiated."NL);
	} 
	else 
	{
		PrintOut(NL"Bus Reset Notification failed"NL);
		PrintError(Status);
	}	
	PrintOut(NL);
/*
	// init members of worker thread
	m_ResetHandler.SetParentWnd(GetSafeHwnd());

	// create a new instance of the device
	Status = m_ResetHandler.Open(g_DeviceNumber,g_DevList,&g_Test1394DefaultIID);
	if (Status != STATUS_SUCCESS) {
		PrintOut(NL"Open device %d failed"NL,g_DeviceNumber);
		PrintError(Status);
		DisplayMessageBox("Failed to create new instance of device %d (Status 0x%08X)",g_DeviceNumber,Status);
		return;
	}

	// start worker thread
	if (!m_ResetHandler.StartThread()) {
		PrintOut("Start Thread failed"NL);
	} else {
		m_ThreadRunning = TRUE;
		PrintOut("Bus Reset Notification Handler installed"NL);
	}
*/
}


void CDlgPgBusTopology::OnButtonDisResNotify() 
{
	DWORD Status;
	ULONG   fulFlags;
	fulFlags = DEREGISTER_NOTIFICATION_ROUTINE;
	Status = g_CurrentDev.BusResetNotification(fulFlags);
	if (Status == STATUS_SUCCESS) 
	{
		PrintOut("Bus Reset Notification successfully disabled."NL);
	} 
	else 
	{
		PrintOut(NL"Bus Reset Notification failed"NL);
		PrintError(Status);
	}	
	PrintOut(NL);
/*	// shutdown worker thread
	// this call blocks until the thread has terminated
	m_ResetHandler.ShutdownThread();	
	// save state of worker thread
	m_ThreadRunning = FALSE;
	// close instance
	m_ResetHandler.Close();*/
}

void CDlgPgBusTopology::OnButtonPcpSend() 
{
	PHY_CONFIGURATION_PACKET    phyConfigPacket;
	/*
	typedef struct _PHY_CONFIGURATION_PACKET 
	{
		ULONG               PCP_Phys_ID:6;          // Byte 0 - Bits 0-5
		ULONG               PCP_Packet_ID:2;        // Byte 0 - Bits 6-7
		ULONG               PCP_Gap_Count:6;        // Byte 1 - Bits 0-5
		ULONG               PCP_Set_Gap_Count:1;    // Byte 1 - Bit 6
		ULONG               PCP_Force_Root:1;       // Byte 1 - Bit 7
		ULONG               PCP_Reserved1:8;        // Byte 2 - Bits 0-7
		ULONG               PCP_Reserved2:8;        // Byte 3 - Bits 0-7
		ULONG               PCP_Inverse;            // Inverse quadlet
	} PHY_CONFIGURATION_PACKET, *PPHY_CONFIGURATION_PACKET;
	*/
    DWORD                       Status;

//    TRACE(TL_TRACE, (hWnd, "Enter w1394_SendPhyConfigPacket\r\n"));

    phyConfigPacket.PCP_Phys_ID = 0;
    phyConfigPacket.PCP_Packet_ID = 0;
    phyConfigPacket.PCP_Gap_Count = 0;
    phyConfigPacket.PCP_Set_Gap_Count = 0;
    phyConfigPacket.PCP_Force_Root = 0;
    phyConfigPacket.PCP_Reserved1 = 0;
    phyConfigPacket.PCP_Reserved2 = 0;
    phyConfigPacket.PCP_Inverse = 0;
	if( UpdateData(TRUE) ) 
	{
		phyConfigPacket.PCP_Phys_ID = m_uintPhyId;
		phyConfigPacket.PCP_Packet_ID = m_uintPacketId;
		phyConfigPacket.PCP_Gap_Count = m_uintGapCount;
		phyConfigPacket.PCP_Set_Gap_Count = m_uintSetGapCount;
		phyConfigPacket.PCP_Force_Root = m_uintForceRoot;
		phyConfigPacket.PCP_Reserved1 = m_uintReserved1;
		phyConfigPacket.PCP_Reserved2 = m_uintReserved2;
		phyConfigPacket.PCP_Inverse = m_uintInverse;

		Status = g_CurrentDev.SendPhyConfigPacket(&phyConfigPacket);
		if (Status == STATUS_SUCCESS) {
			PrintOut("PHY Config Packet successfully sent."NL);
		} else {
			PrintOut(NL"SendPhyConfigPacket() failed"NL);
			PrintError(Status);
		}	
		PrintOut(NL);
	}
	
/*
	::ZeroMemory(&SendPCP, sizeof(VHPD_SEND_PHY_CONFIG_PACKET));

	if ( UpdateData(TRUE) ) {
		if ( m_CheckPCPForceRoot ) {
			SendPCP.PhyConfigPacket.u.ForceRoot = 1;
			SendPCP.PhyConfigPacket.u.NewRootID = m_ValPCPNewRootID;
		}
		if ( m_CheckPCPUpdGapCount ) {
			SendPCP.PhyConfigPacket.u.UpdateGapCount = 1;
			SendPCP.PhyConfigPacket.u.NewGapCount = m_ValPCPNewGapCountValue;
		}
		SendPCP.PhyConfigPacket.Inverse = ~SendPCP.PhyConfigPacket.u.Quadlet;
	}

	// call driver (through class library)
	DWORD Status = g_CurrentDev.SendPhyConfigPacket(&SendPCP);
	if (Status == STATUS_SUCCESS) {
		PrintOut("PHY Config Packet successfully sent."NL);
	} else {
		PrintOut(NL"SendPhyConfigPacket() failed"NL);
		PrintError(Status);
	}	
	PrintOut(NL);*/
}



//DEL void CDlgPgBusTopology::UpdateEditBoxesStates()
//DEL {
//DEL 	// edit box IDC_EDIT_PCP_NEWROOT
//DEL 	if ( m_ButtonPCPForceRoot.GetCheck()==0 ) {
//DEL 		// checkbox is unchecked
//DEL 		m_EditCtrlPCPNewRootID.EnableWindow(FALSE);
//DEL 	} else {
//DEL 		// checkbox is checked
//DEL 		m_EditCtrlPCPNewRootID.EnableWindow(TRUE);
//DEL 	}
//DEL 
//DEL 	// edit box IDC_EDIT_PCP_NEWGAPCOUNT
//DEL 	if ( m_ButtonPCPUpdGapCount.GetCheck()==0 ) {
//DEL 		// checkbox is unchecked
//DEL 		m_EditCtrlPCPNewGapCountValue.EnableWindow(FALSE);
//DEL 	} else {
//DEL 		// checkbox is checked
//DEL 		m_EditCtrlPCPNewGapCountValue.EnableWindow(TRUE);
//DEL 	}
//DEL }

void CDlgPgBusTopology::OnButtonSpeedBetweenDevices() 
{
	GET_MAX_SPEED_BETWEEN_DEVICES   getMaxSpeed;
	/*
	typedef struct _GET_MAX_SPEED_BETWEEN_DEVICES {
		//input
		ULONG           fulFlags;//0:the calling   USE_LOCAL_NODE:the computer itself
		ULONG           ulNumberOfDestinations;//目標(biāo)設(shè)備個(gè)數(shù)
		ULONG           hDestinationDeviceObjects[64];//目標(biāo)設(shè)備的設(shè)備對(duì)象隊(duì)列
		//output
		ULONG           fulSpeed;//最大速度
	} GET_MAX_SPEED_BETWEEN_DEVICES, *PGET_MAX_SPEED_BETWEEN_DEVICES;
	*/
	if ( UpdateData(TRUE)	) 
	{
		getMaxSpeed.fulFlags = 0;
		if ( m_CheckUseLocalNode ) //USE_LOCAL_NODE
		{
			getMaxSpeed.fulFlags = USE_LOCAL_NODE;
		}
		//設(shè)定目標(biāo)設(shè)備參數(shù),現(xiàn)不知道怎樣設(shè)
		getMaxSpeed.ulNumberOfDestinations = 0;
		// call driver (through class library)		
		DWORD Status = g_CurrentDev.GetSpeedBetweenDevices(&getMaxSpeed);	
		if ( Status == STATUS_SUCCESS ) 
		{}
		else
		{}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本韩国视频一区二区| 黄页网站大全一区二区| 日韩高清国产一区在线| 精品中文av资源站在线观看| 国产91在线看| 欧美性色综合网| 精品国产区一区| ...中文天堂在线一区| 日本中文字幕一区二区视频| 国产精品一卡二| 欧美亚日韩国产aⅴ精品中极品| 在线不卡中文字幕播放| 久久综合久色欧美综合狠狠| 亚洲免费观看高清在线观看| 毛片一区二区三区| 99久久精品99国产精品| 欧美一区二区三区四区久久| 中文成人综合网| 亚洲成人免费在线观看| 国产精品自拍毛片| 欧美丝袜自拍制服另类| 国产欧美日韩不卡| 日韩不卡一二三区| 暴力调教一区二区三区| 日韩欧美一区二区在线视频| 国产精品久久久久久久第一福利| 日韩国产在线一| av一二三不卡影片| 精品国产精品网麻豆系列| 亚洲精品日产精品乱码不卡| 国产剧情av麻豆香蕉精品| 欧美欧美欧美欧美首页| 1000部国产精品成人观看| 精品在线播放免费| 欧美色中文字幕| 国产精品成人免费在线| 麻豆专区一区二区三区四区五区| 99精品偷自拍| 国产夜色精品一区二区av| 亚洲va欧美va人人爽| 波多野结衣一区二区三区| 欧美成人福利视频| 午夜欧美在线一二页| 99视频精品在线| 久久影院电视剧免费观看| 三级欧美在线一区| 日本高清不卡一区| 综合色天天鬼久久鬼色| 国产精品一二三在| 日韩精品一区二区三区蜜臀| 婷婷开心激情综合| 欧美中文字幕一区| 日韩伦理av电影| 岛国一区二区三区| 精品国产免费一区二区三区四区 | 国产一区二区精品久久99| 欧美日韩一卡二卡| 亚洲欧美日韩人成在线播放| 高清成人在线观看| 国产三级精品视频| 国产馆精品极品| 久久久久久久av麻豆果冻| 日韩精品欧美成人高清一区二区| 欧美网站大全在线观看| 亚洲精品国产第一综合99久久| 成人sese在线| 中文字幕在线一区二区三区| 国产成人精品亚洲日本在线桃色 | 蜜桃av一区二区| 在线综合亚洲欧美在线视频| 午夜精品福利一区二区三区av| 日本高清不卡一区| 亚洲一区二区精品视频| 欧美影院午夜播放| 亚洲成av人**亚洲成av**| 欧美日韩一区二区欧美激情| 亚洲第一二三四区| 5858s免费视频成人| 午夜精品久久久久久久99水蜜桃| 欧美日韩一级视频| 日本va欧美va精品发布| 日韩欧美二区三区| 国产剧情一区在线| 中文字幕一区二区三区在线不卡| 97久久精品人人澡人人爽| 日韩久久一区二区| 欧美午夜精品一区二区三区| 亚洲电影在线播放| 欧美一区欧美二区| 精品亚洲成a人| 国产精品萝li| 91黄色在线观看| 亚洲电影一级黄| 欧美tickling挠脚心丨vk| 国产在线播精品第三| 日本一区二区三区四区| 91麻豆6部合集magnet| 亚洲综合激情小说| 日韩一区二区三区电影在线观看| 久久99精品久久久久| 中文字幕免费在线观看视频一区| 99免费精品视频| 性做久久久久久| 精品国产免费一区二区三区四区| 粉嫩久久99精品久久久久久夜 | 在线免费观看日韩欧美| 五月天久久比比资源色| 日韩欧美国产一二三区| www.亚洲精品| 五月婷婷激情综合网| 久久久久久久久伊人| 91亚洲国产成人精品一区二区三 | 69堂成人精品免费视频| 韩国理伦片一区二区三区在线播放| 欧美韩日一区二区三区四区| 91久久精品一区二区三区| 男男视频亚洲欧美| 国产精品久久久久久久久动漫| 欧美日韩一区二区三区在线看| 久久精品999| 亚洲欧美一区二区三区久本道91| 欧美二区三区的天堂| 国产福利不卡视频| 亚洲不卡一区二区三区| 久久久久久影视| 欧美日韩一区不卡| 粉嫩高潮美女一区二区三区| 亚洲午夜视频在线| 欧美激情综合五月色丁香小说| 在线日韩国产精品| 国产一区二区伦理| 亚洲h在线观看| 中文字幕二三区不卡| 日韩色在线观看| 在线亚洲高清视频| 国产高清一区日本| 天天综合天天综合色| 欧美高清一级片在线观看| 91精品欧美综合在线观看最新 | 伊人色综合久久天天| 精品理论电影在线观看 | 肉丝袜脚交视频一区二区| 国产日韩欧美a| 日韩午夜精品视频| 欧美综合一区二区三区| 国产69精品久久99不卡| 全部av―极品视觉盛宴亚洲| 亚洲另类在线视频| 国产人久久人人人人爽| 精品美女在线播放| 欧美日韩国产另类不卡| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品久久久久久久久果冻传媒 | 国产亚洲精品超碰| 91精品久久久久久久99蜜桃| 色先锋资源久久综合| 国产成都精品91一区二区三| 日本三级韩国三级欧美三级| 一区二区三区在线观看欧美| 国产精品不卡一区| 欧美国产日韩精品免费观看| 精品国产百合女同互慰| 在线电影一区二区三区| 精品视频一区 二区 三区| 色哟哟一区二区在线观看 | 亚洲欧美一区二区三区久本道91| 欧美高清一级片在线观看| 久久先锋影音av| 久久综合色综合88| 亚洲精品一区二区三区99| 日韩一区二区在线看| 欧美精品三级在线观看| 欧美色视频在线观看| 91福利区一区二区三区| 色88888久久久久久影院野外| 99久久精品免费| 99国产一区二区三精品乱码| 成人污污视频在线观看| 国产不卡视频一区| 国产精品69毛片高清亚洲| 国产精品综合视频| 国产成人综合亚洲91猫咪| 国产精品一区二区在线观看不卡 | 26uuu亚洲综合色欧美| 日韩免费在线观看| 日韩一级大片在线观看| 91精品国产综合久久精品app| 欧美美女bb生活片| 91精品久久久久久久91蜜桃| 欧美一级在线视频| 精品国一区二区三区| 精品播放一区二区| 日韩欧美国产不卡| 久久嫩草精品久久久精品| 久久久久久久网| 国产精品麻豆一区二区| 亚洲精品乱码久久久久久黑人| 一区二区三区在线免费| 五月婷婷另类国产| 九一久久久久久|