📄 usb.cpp
字号:
#include "usb.h"
#include "ezusbsys.h"
#include "WINDEF.h"
#include "stdafx.h"
#include "main.h"
#include "devioctl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define MAX_DRIVER_NAME 255
extern HANDLE m_hDevice;
BYTE data[8192]; //定义 接收从51中读出的块的 变量 qiulibo
bool threadController=0;
DWORD lenBytes=0;
unsigned int count=0;
///////////////////////////////////////////////////////////////////////
HWND hWindow;
//PointP* m_PointList;
short MinValue,MaxValue;
long m_InnerUHScreen;
long m_InnerDHScreen;
long m_InnerLWScreen;
long m_InnerRWScreen;
bool g_KeepGoing = false;
bool g_Transfering = false;
/*********************打开设备*********************/
HANDLE WINAPI EzusbOpen()
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
char pcDriverName[MAX_DRIVER_NAME] = "";
HANDLE hDevice=NULL;
for(int i =0; i<32; i++)
{
sprintf(pcDriverName, "Ezusb-%d", i);
if (bOpenDriver (&hDevice, pcDriverName) == TRUE)
{
//AfxMessageBox(pcDriverName);
break;
}
}
if(i==32)
return NULL;
return hDevice;
}
/**************************不知道 ********************************/
/*CUSBApp::CUSBApp()
{
}*/
/////////////////////////////////////////////////////////////////////////////
// The one and only CUSBApp object
//CUSBApp theApp;
/***************************初始化设备*******************************/
CUSBApp initialization
BOOL CUSBApp::InitInstance()
{
AfxEnableControlContainer();
HANDLE hObject = CreateMutex(NULL,FALSE,"CHINAYCLL");
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hObject);
AfxMessageBox("程序已经运行!");
return FALSE;
}
}
/****************************读设备endpoint**********************************/
BOOL EzusbShortdataIn(HANDLE hDevice, BYTE *data, DWORD &lenBytes)
{
BULK_TRANSFER_CONTROL bulkControl;
bulkControl.pipeNum=0x03; //管道号,原来是0x02
BOOLEAN bResult= FALSE;
unsigned short temp,TempMax,TempMin;
bResult = DeviceIoControl (hDevice,
IOCTL_EZUSB_BULK_READ, //io控制,读块 qiulibo
&bulkControl,
sizeof (BULK_TRANSFER_CONTROL),
data,
8192,
&lenBytes,
NULL);
for (int i=0;i<(unsigned int)(lenBytes/16);i++)
{
temp=data[4*i]+(data[4*i+1])*16;
//if(temp>4096) temp=2048;
m_PointList[count++].y = temp;
if (count==256) count=0;
}
TempMax=TempMin=m_PointList[0].y;
for (i=1;i<256;i++)
{
if(m_PointList[i].y>TempMax)
TempMax=m_PointList[i].y;
else if(m_PointList[i].y<TempMin)
TempMin=m_PointList[i].y;
}
MaxValue=TempMax+100;
MinValue=TempMin-100;
CRect r;
r.SetRect(m_InnerLWScreen , m_InnerUHScreen, m_InnerRWScreen , m_InnerDHScreen);
InvalidateRect(r,TRUE);
return bResult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -