📄 usb_base2.cpp
字号:
/*
===========================================================================
File Name : USB_Base.cpp
Function : All USB Basic Function
UPDATE NOTE
----------+---------------------------------------------------+------------
DATE | Bug or Description for this Version | VERSION
----------+---------------------------------------------------+------------
2004/9/21 First Release V0.001
2004/9/21
Modified by Frank Chiang
============================================================================
*/
DWORD instance=0x00;
//=======USB Basic Function======================================================================
/*
------------------------------------------------------------------------------
bool Search_USB_Port (void)
Function : Search usb port
Input :
Output :
return 0 , device offline
return 1 , device online
Note :
------------------------------------------------------------------------------
*/
bool Search_USB_Port (void)
{
if(hWNDLL == NULL)
{
hWNDLL = ::LoadLibrary("9kdUSBDLL.DLL");
if (hWNDLL)
{
_OpenDevice = (int (WINAPI *) (DWORD))
GetProcAddress(hWNDLL, (LPSTR)"OpenDevice");
_CloseDevice = (int (WINAPI *) (DWORD))
GetProcAddress(hWNDLL, (LPSTR)"CloseDevice");
_Write320Command = (int (WINAPI *) (DWORD, UCHAR*, int))
GetProcAddress(hWNDLL, (LPSTR)"Write320Command");
_USB_WriteOut = (BOOL (WINAPI *) (DWORD, UCHAR*, ULONG))
GetProcAddress(hWNDLL, (LPSTR)"USB_WriteOut");
_USB_ReadIn = (int (WINAPI *) (DWORD, UCHAR*, ULONG))
GetProcAddress(hWNDLL, (LPSTR)"USB_ReadIn");
}
else
{
AfxMessageBox("Can't find 9kdUSBDLL.DLL ,please check again !!!",MB_OK,0);
return 0;
}
}
if(_OpenDevice(instance) != 1)
{
// AfxMessageBox("Please Connect USB DEVICE !!!",MB_OK,0);
_CloseDevice(instance);
::FreeLibrary(hWNDLL);
hWNDLL = NULL;
return 0;
}
_CloseDevice(instance);
return 1;
}
bool Close_USB()
{
if(hWNDLL != NULL)
{
::FreeLibrary(hWNDLL);
hWNDLL = NULL;
}
return 1;
}
/*
------------------------------------------------------------------------------
DWORD USBICE_Write(UCHAR * pBuffer, int dwSize)
Function : Basic USB write function
Input :
UCHAR * pBuffer , Data Buffer Point
int dwSize , Data Buffer Size & MAX Buffer Size is [ 64Byte ]
Output :
return 0 , Write command error
return 1 , Write command susceed
Note :
------------------------------------------------------------------------------
*/
DWORD USBICE_Write(UCHAR * pBuffer, int dwSize)
{
int Status;
Status = _USB_WriteOut(instance, pBuffer, dwSize);
if (!Status)
{
AfxMessageBox ("Bulk Write error on usb transfer !!!",MB_OK,0);
}
return Status;
}
DWORD USBICE_WriteCmd(UCHAR * pBuffer, int dwSize)
{
int Status = 1;
Status = _Write320Command(instance, pBuffer, dwSize);
/*
if (!Status)
{
AfxMessageBox ("Write command error on usb transfer !!!",MB_OK,0);
}
*/
return Status;
}
/*
------------------------------------------------------------------------------
DWORD USBICE_Read(UCHAR * pBuffer, int dwSize)
Function : Basic USB read function
Input :
UCHAR * pBuffer , Data Buffer Point
int dwSize , Data Buffer Size & MAX Buffer Size is [ 16Byte ]
Output :
return 0 , Read command error
return 1 , Read command susceed
Note :
------------------------------------------------------------------------------
*/
DWORD USBICE_Read(UCHAR * pBuffer, unsigned long dwSize)
{
int Status;
Status = _USB_ReadIn(instance, pBuffer, dwSize);
if (!Status)
{
AfxMessageBox ("Bulk Read error on usb transfer !!!",MB_OK,0);
}
return Status;
}
/*
------------------------------------------------------------------------------
bool Write1L_Cmd (BYTE Command, UINT Data)
Function : Write 1 byte command
Input :
BYTE Command ,
BYTE Data
Output :
return 0 , Write command error
return 1 , Write command susceed
Note :
------------------------------------------------------------------------------
*/
bool Write1L_Cmd (BYTE Command, BYTE Data)
{
BYTE * pBuffer;
BYTE Data_Buf[64];
int Status;
Data_Buf[0]=Command;
Data_Buf[1]=Data & 0xFF;
pBuffer = &Data_Buf[0x00];
Status = USBICE_WriteCmd(pBuffer, 64);
if (Status)
return 1;
else
return 0;
}
/*
------------------------------------------------------------------------------
bool Write2L_Cmd (BYTE Command, UINT Data)
Function : Write 2 byte command
Input :
BYTE Command ,
BYTE Data
Output :
return 0 , Write command error
return 1 , Write command susceed
Note :
------------------------------------------------------------------------------
*/
bool Write2L_Cmd (BYTE Command, BYTE Data)
{
BYTE * pBuffer;
BYTE Data_Buf[64];
int Status;
Data_Buf[0]=Command;
Data_Buf[1]=Data & 0xFF;
Data_Buf[2]=( Data >> 8 ) & 0xFF;
pBuffer = &Data_Buf[0x00];
Status = USBICE_WriteCmd(pBuffer, 64);
if (Status)
return 1;
else
return 0;
}
/*
------------------------------------------------------------------------------
bool Write4L_Cmd (BYTE Command, UINT Data)
Function : Write 4 byte command
Input :
BYTE Command ,
BYTE Data
Output :
return 0 , Write command error
return 1 , Write command susceed
Note :
------------------------------------------------------------------------------
*/
bool Write4L_Cmd (BYTE Command, UINT Data)
{
BYTE * pBuffer;
BYTE Data_Buf[64];
int Status;
Data_Buf[0]=Command;
Data_Buf[1]=( Data >> 16 ) & 0xFF;
Data_Buf[2]=( Data >> 24 ) & 0xFF;
Data_Buf[3]=Data & 0xFF;
Data_Buf[4]=( Data >> 8 ) & 0xFF;
pBuffer = &Data_Buf[0x00];
Status = USBICE_WriteCmd(pBuffer, 64);
if (Status)
return 1;
else
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -