The Pedigree Project 0.1
Public Member Functions | Private Attributes | List of all members
FtdiSerialDevice Class Reference
+ Inheritance diagram for FtdiSerialDevice:
+ Collaboration diagram for FtdiSerialDevice:

Public Member Functions

 FtdiSerialDevice (UsbDevice *dev)
 
virtual void initialiseDriver ()
 Implemented by the driver class, initialises driver-specific stuff.
 
virtual void setBase (uintptr_t nBaseAddr)
 
virtual bool hasData ()
 
virtual char read ()
 
virtual char readNonBlock ()
 
virtual void write (char c)
 
virtual void getName (String &str)
 
- Public Member Functions inherited from UsbDevice
 UsbDevice (UsbHub *pHub, uint8_t nPort, UsbSpeed speed)
 Default constructor.
 
 UsbDevice (UsbDevice *pDev)
 Copy constructor.
 
virtual ~UsbDevice ()
 Destructor.
 
void initialise (uint8_t nAddress)
 Initialises the device at the given address.
 
virtual void getUsbDeviceName (String &str)
 
uint8_t getAddress ()
 Returns the current address of the device.
 
uint8_t getPort ()
 Returns the number of the port on which the device is connected.
 
UsbHub * getHub () const
 
UsbSpeed getSpeed ()
 Returns the speed at which the device operates.
 
UsbState getUsbState ()
 Returns the current state of the device.
 
DeviceDescriptor * getDescriptor ()
 Returns the device descriptor of the device.
 
ConfigDescriptor * getConfiguration ()
 Returns the configuration in use.
 
Interface * getInterface ()
 Returns the interface in use.
 
void useConfiguration (uint8_t nConfig)
 Switches to the given configuration.
 
void useInterface (uint8_t nInterface)
 Switches to the given interface.
 
UsbDeviceContainer * getContainer () const
 Gets our Device container, for replacing parents on hubs etc.
 
virtual bool hasSubtree () const
 Do we expose our own Device tree?
 
virtual Device * getDevice ()
 
virtual void prepareForDriverRetirement ()
 
virtual void quiesceForRetirement ()
 
virtual void prepareForDisconnection ()
 
- Public Member Functions inherited from Serial
virtual void write_str (const char *c)
 
virtual void write_str (const char *c, size_t len)
 
virtual void write_str (const Cord &cord)
 
template<unsigned int N>
void write_str (const StaticCord< N > &cord)
 
template<unsigned int N>
void write_str (const char(&c)[N])
 
template<unsigned int N>
void write_str (const StaticString< N >(&c))
 

Private Attributes

Endpoint * m_pInEndpoint
 
Endpoint * m_pOutEndpoint
 

Additional Inherited Members

- Public Types inherited from UsbDevice
enum  UsbState {
  Connected = 0 , Addressed , HasDescriptors , Configured ,
  HasInterface , HasDriver
}
 Possible states for an USB device. More...
 
- Public Attributes inherited from UsbDevice
struct UsbDevice::Setup PACKED
 
struct UsbDevice::DeviceQualifier PACKED
 
- Protected Member Functions inherited from UsbDevice
ssize_t doSync (Endpoint *pEndpoint, UsbPid pid, uintptr_t pBuffer, size_t nBytes, size_t timeout)
 
ssize_t syncIn (Endpoint *pEndpoint, uintptr_t pBuffer, size_t nBytes, size_t timeout=5000)
 
ssize_t syncOut (Endpoint *pEndpoint, uintptr_t pBuffer, size_t nBytes, size_t timeout=5000)
 
MUST_USE_RESULT bool addInterruptInHandler (Endpoint *pEndpoint, uintptr_t pBuffer, uint16_t nBytes, void(*pCallback)(uintptr_t, ssize_t), UsbInterruptInHandle &handle, uintptr_t pParam=0)
 
bool controlRequest (uint8_t nRequestType, uint8_t nRequest, uint16_t nValue, uint16_t nIndex, uint16_t nLength=0, uintptr_t pBuffer=0, uint32_t timeout=5000)
 Performs an USB control request.
 
ssize_t controlRequestResult (uint8_t nRequestType, uint8_t nRequest, uint16_t nValue, uint16_t nIndex, uint16_t nLength=0, uintptr_t pBuffer=0, uint32_t timeout=5000)
 Returns data bytes transferred, or a negative UsbError.
 
uint16_t getStatus ()
 Gets device's current status.
 
bool clearEndpointHalt (Endpoint *pEndpoint)
 Clears a halt on the given endpoint.
 
void * getDescriptor (uint8_t nDescriptorType, uint8_t nDescriptorIndex, uint16_t nBytes, uint8_t requestType=0)
 Gets a descriptor from the device.
 
uint8_t getDescriptorLength (uint8_t nDescriptorType, uint8_t nDescriptorIndex, uint8_t requestType=0)
 Gets a descriptor's length from the device.
 
String getString (uint8_t nString)
 Gets a string.
 
- Protected Attributes inherited from UsbDevice
uint8_t m_nAddress
 The current address of the device.
 
uint16_t m_ControlPacketSize
 
uint8_t m_nPort
 The number of the port on which the device is connected.
 
uint8_t m_nRootPort
 Root-controller connection which owns this device generation.
 
size_t m_nRootPortGeneration
 
UsbSpeed m_Speed
 The speed at which the device operates.
 
UsbState m_UsbState
 The current state of the device.
 
DeviceDescriptor * m_pDescriptor
 Device descriptor for this device.
 
ConfigDescriptor * m_pConfiguration
 Configuration in use.
 
Interface * m_pInterface
 Interface in use.
 
UsbHub * m_pHub
 Parent USB hub.
 
UsbDeviceContainer * m_pContainer
 Our current container.
 

Detailed Description

Definition at line 29 of file FtdiSerialDevice.h.

Constructor & Destructor Documentation

◆ FtdiSerialDevice()

FtdiSerialDevice::FtdiSerialDevice ( UsbDevice *  dev)

Definition at line 33 of file FtdiSerialDevice.cc.

◆ ~FtdiSerialDevice()

FtdiSerialDevice::~FtdiSerialDevice ( )
virtual

Definition at line 36 of file FtdiSerialDevice.cc.

Member Function Documentation

◆ getName()

virtual void FtdiSerialDevice::getName ( String &  str)
inlinevirtual

Definition at line 46 of file FtdiSerialDevice.h.

◆ hasData()

virtual bool FtdiSerialDevice::hasData ( )
inlinevirtual

Implements Serial.

Definition at line 37 of file FtdiSerialDevice.h.

◆ initialiseDriver()

void FtdiSerialDevice::initialiseDriver ( )
virtual

Implemented by the driver class, initialises driver-specific stuff.

Reimplemented from UsbDevice.

Definition at line 38 of file FtdiSerialDevice.cc.

References UsbDevice::controlRequest(), UsbDevice::m_pInterface, and UsbDevice::m_UsbState.

◆ read()

char FtdiSerialDevice::read ( )
virtual

Implements Serial.

Definition at line 73 of file FtdiSerialDevice.cc.

◆ readNonBlock()

virtual char FtdiSerialDevice::readNonBlock ( )
inlinevirtual

Implements Serial.

Definition at line 41 of file FtdiSerialDevice.h.

◆ setBase()

virtual void FtdiSerialDevice::setBase ( uintptr_t  nBaseAddr)
inlinevirtual
Todo:
make this generic for Mmaped and port IO.

Implements Serial.

Definition at line 36 of file FtdiSerialDevice.h.

◆ write()

void FtdiSerialDevice::write ( char  c)
virtual

Implements Serial.

Definition at line 80 of file FtdiSerialDevice.cc.

Member Data Documentation

◆ m_pInEndpoint

Endpoint* FtdiSerialDevice::m_pInEndpoint
private

Definition at line 51 of file FtdiSerialDevice.h.

◆ m_pOutEndpoint

Endpoint* FtdiSerialDevice::m_pOutEndpoint
private

Definition at line 52 of file FtdiSerialDevice.h.


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