TwiceAsNice  2019-02-18
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
GenTwoWinUSB Class Reference

USB IO class that communicates with the WinUSB driver. More...

#include <GenTwoWinUSB.h>

Inheritance diagram for GenTwoWinUSB:
Inheritance graph
Collaboration diagram for GenTwoWinUSB:
Collaboration graph

Public Types

enum  Direction { In, Out }
 

Public Member Functions

 GenTwoWinUSB (const uint16_t DeviceNum)
 
virtual ~GenTwoWinUSB ()
 
uint16_t ReadReg (uint16_t FpgaReg)
 
void WriteReg (uint16_t FpgaReg, const uint16_t FpgaData)
 
void GetVendorInfo (uint16_t &VendorId, uint16_t &ProductId, uint16_t &DeviceId)
 
void SetupSingleImgXfer (uint16_t Rows, uint32_t Cols)
 
void SetupSequenceImgXfer (uint16_t Rows, uint16_t Cols, uint16_t NumOfImages)
 
void CancelImgXfer ()
 
void ReadImage (uint16_t *ImageData, const uint32_t InSizeInBytes, uint32_t &OutSizeInBytes)
 
void GetStatus (uint8_t *status, uint32_t NumBytes)
 
void UsbRequestIn (uint8_t RequestCode, uint16_t Index, uint16_t Value, uint8_t *ioBuf, uint32_t BufSzInBytes)
 
void UsbRequestOut (uint8_t RequestCode, uint16_t Index, uint16_t Value, const uint8_t *ioBuf, uint32_t BufSzInBytes)
 
void GetSerialNumber (int8_t *ioBuf, uint32_t BufSzInBytes)
 
void GetUsbFirmwareVersion (int8_t *ioBuf, uint32_t BufSzInBytes)
 
std::string GetDriverVersion ()
 
bool IsError ()
 
uint16_t GetDeviceNum ()
 
void UsbReqOutWithExtendedTimeout (uint8_t RequestCode, uint16_t Index, uint16_t Value, const uint8_t *ioBuf, uint32_t BufSzInBytes)
 
void ReadSerialPort (uint16_t PortId, uint8_t *ioBuf, uint16_t BufSzInBytes)
 
- Public Member Functions inherited from IUsb
virtual ~IUsb ()
 

Protected Member Functions

void VendorRequest (enum Direction, unsigned char bRequest, unsigned short wValue, unsigned short wIndex, unsigned char *Buffer=NULL, size_t BufferSize=0)
 

Private Member Functions

 GenTwoWinUSB (const GenTwoWinUSB &)
 
GenTwoWinUSBoperator= (GenTwoWinUSB &)
 

Private Attributes

HANDLE m_device
 
WINUSB_INTERFACE_HANDLE m_winusb
 
USB_DEVICE_DESCRIPTOR m_Descriptor
 
std::string m_DeviceName
 
std::string m_DriverVersion
 
const std::string m_fileName
 
bool m_ReadImgError
 
bool m_IoError
 
uint16_t m_DeviceNum
 

Detailed Description

USB IO class that communicates with the WinUSB driver.

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Copyright(c) 2010 Apogee Instruments, Inc.

Member Enumeration Documentation

◆ Direction

Enumerator
In 
Out 

Constructor & Destructor Documentation

◆ GenTwoWinUSB() [1/2]

GenTwoWinUSB::GenTwoWinUSB ( const uint16_t  DeviceNum)

◆ ~GenTwoWinUSB()

GenTwoWinUSB::~GenTwoWinUSB ( )
virtual

◆ GenTwoWinUSB() [2/2]

GenTwoWinUSB::GenTwoWinUSB ( const GenTwoWinUSB )
private

Member Function Documentation

◆ CancelImgXfer()

void GenTwoWinUSB::CancelImgXfer ( )
virtual

Implements IUsb.

◆ GetDeviceNum()

uint16_t GenTwoWinUSB::GetDeviceNum ( )
inlinevirtual

Implements IUsb.

◆ GetDriverVersion()

std::string GenTwoWinUSB::GetDriverVersion ( )
virtual

Implements IUsb.

◆ GetSerialNumber()

void GenTwoWinUSB::GetSerialNumber ( int8_t ioBuf,
uint32_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ GetStatus()

void GenTwoWinUSB::GetStatus ( uint8_t status,
uint32_t  NumBytes 
)
virtual

Implements IUsb.

◆ GetUsbFirmwareVersion()

void GenTwoWinUSB::GetUsbFirmwareVersion ( int8_t ioBuf,
uint32_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ GetVendorInfo()

void GenTwoWinUSB::GetVendorInfo ( uint16_t VendorId,
uint16_t ProductId,
uint16_t DeviceId 
)
virtual

Implements IUsb.

◆ IsError()

bool GenTwoWinUSB::IsError ( )
virtual

Implements IUsb.

◆ operator=()

GenTwoWinUSB& GenTwoWinUSB::operator= ( GenTwoWinUSB )
private

◆ ReadImage()

void GenTwoWinUSB::ReadImage ( uint16_t ImageData,
const uint32_t  InSizeInBytes,
uint32_t OutSizeInBytes 
)
virtual

Implements IUsb.

◆ ReadReg()

uint16_t GenTwoWinUSB::ReadReg ( uint16_t  FpgaReg)
virtual

Implements IUsb.

◆ ReadSerialPort()

void GenTwoWinUSB::ReadSerialPort ( uint16_t  PortId,
uint8_t ioBuf,
uint16_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ SetupSequenceImgXfer()

void GenTwoWinUSB::SetupSequenceImgXfer ( uint16_t  Rows,
uint16_t  Cols,
uint16_t  NumOfImages 
)
virtual

Implements IUsb.

◆ SetupSingleImgXfer()

void GenTwoWinUSB::SetupSingleImgXfer ( uint16_t  Rows,
uint32_t  Cols 
)
virtual

Implements IUsb.

◆ UsbReqOutWithExtendedTimeout()

void GenTwoWinUSB::UsbReqOutWithExtendedTimeout ( uint8_t  RequestCode,
uint16_t  Index,
uint16_t  Value,
const uint8_t ioBuf,
uint32_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ UsbRequestIn()

void GenTwoWinUSB::UsbRequestIn ( uint8_t  RequestCode,
uint16_t  Index,
uint16_t  Value,
uint8_t ioBuf,
uint32_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ UsbRequestOut()

void GenTwoWinUSB::UsbRequestOut ( uint8_t  RequestCode,
uint16_t  Index,
uint16_t  Value,
const uint8_t ioBuf,
uint32_t  BufSzInBytes 
)
virtual

Implements IUsb.

◆ VendorRequest()

void GenTwoWinUSB::VendorRequest ( enum  Direction,
unsigned char  bRequest,
unsigned short  wValue,
unsigned short  wIndex,
unsigned char *  Buffer = NULL,
size_t  BufferSize = 0 
)
protected

◆ WriteReg()

void GenTwoWinUSB::WriteReg ( uint16_t  FpgaReg,
const uint16_t  FpgaData 
)
virtual

Implements IUsb.

Member Data Documentation

◆ m_Descriptor

USB_DEVICE_DESCRIPTOR GenTwoWinUSB::m_Descriptor
private

◆ m_device

HANDLE GenTwoWinUSB::m_device
private

◆ m_DeviceName

std::string GenTwoWinUSB::m_DeviceName
private

◆ m_DeviceNum

uint16_t GenTwoWinUSB::m_DeviceNum
private

◆ m_DriverVersion

std::string GenTwoWinUSB::m_DriverVersion
private

◆ m_fileName

const std::string GenTwoWinUSB::m_fileName
private

◆ m_IoError

bool GenTwoWinUSB::m_IoError
private

◆ m_ReadImgError

bool GenTwoWinUSB::m_ReadImgError
private

◆ m_winusb

WINUSB_INTERFACE_HANDLE GenTwoWinUSB::m_winusb
private

The documentation for this class was generated from the following files: