11 #include <mrpt/config.h>    35 #if defined(MRPT_OS_LINUX) || defined(MRPT_OS_APPLE)    38         void* usb_device_struct;
   122                 unsigned long dwReadTimeout_ms, 
unsigned long dwWriteTimeout_ms);
   131         size_t ReadSync(
void* Buffer, 
size_t Count) { 
return Read(Buffer, Count); }
   137                 return Write(Buffer, Count);
   155         size_t Read(
void* Buffer, 
size_t Count);
   164         size_t Write(
const void* Buffer, 
size_t Count);
   180                 void* lpvBuffer, 
unsigned long dwBuffSize,
   181                 unsigned long* lpdwBytesRead);
   183                 const void* lpvBuffer, 
unsigned long dwBuffSize,
   184                 unsigned long* lpdwBytes);
   186 #if defined(MRPT_OS_WINDOWS)   188         void checkErrorAndRaise(
int errorCode);
   190         void ftdi_open(
void* pvDevice);
   191         void ftdi_openEx(
void* pArg1, 
unsigned long dwFlags);
   192         void ftdi_listDevices(
void* pArg1, 
void* pArg2, 
unsigned long dwFlags);
   193         void ftdi_getQueueStatus(
unsigned long* lpdwAmountInRxQueue);
   196         unsigned long m_ftHandle;
   200         enum FT_STATUS{dummy};
   202         typedef FT_STATUS(__stdcall* PtrToOpen)(
void*, 
unsigned long*);
   205         typedef FT_STATUS(__stdcall* PtrToOpenEx)(
   206                 void*, 
unsigned long, 
unsigned long*);
   207         PtrToOpenEx m_pOpenEx;
   209         typedef FT_STATUS(__stdcall* PtrToListDevices)(
void*, 
void*, 
unsigned long);
   210         PtrToListDevices m_pListDevices;
   212         typedef FT_STATUS(__stdcall* PtrToClose)(
unsigned long);
   215         typedef FT_STATUS(__stdcall* PtrToRead)(
   216                 unsigned long, 
void*, 
unsigned long, 
unsigned long*);
   219         typedef FT_STATUS(__stdcall* PtrToWrite)(
   220                 unsigned long, 
const void*, 
unsigned long, 
unsigned long*);
   223         typedef FT_STATUS(__stdcall* PtrToResetDevice)(
unsigned long);
   224         PtrToResetDevice m_pResetDevice;
   226         typedef FT_STATUS(__stdcall* PtrToPurge)(
unsigned long, 
unsigned long);
   229         typedef FT_STATUS(__stdcall* PtrToSetTimeouts)(
   230                 unsigned long, 
unsigned long, 
unsigned long);
   231         PtrToSetTimeouts m_pSetTimeouts;
   233         typedef FT_STATUS(__stdcall* PtrToGetQueueStatus)(
   234                 unsigned long, 
unsigned long*);
   235         PtrToGetQueueStatus m_pGetQueueStatus;
   237         typedef FT_STATUS(__stdcall* PtrToSetLatencyTimer)(
   238                 unsigned long, 
unsigned char);
   239         PtrToSetLatencyTimer m_pSetLatencyTimer;
 bool isOpen()
Checks whether the chip has been successfully open. 
virtual size_t ReadBufferImmediate(void *Buffer, size_t Count)
Reads a block of bytes from the stream into Buffer, and returns the amound of bytes actually read...
unsigned __int16 uint16_t
void ResetDevice()
Reset the USB device. 
size_t Write(const void *Buffer, size_t Count)
Introduces a pure virtual method responsible for writing to the stream. 
void OpenBySerialNumber(const std::string &serialNumber)
Open by device serial number. 
void recursive_fill_list_devices(void *usb_device_structure, TFTDIDeviceList &outList)
Process recursively a USB device and its children: 
uint64_t getTotalBytesCount()
This virtual method does nothing in this class. 
size_t ReadSync(void *Buffer, size_t Count)
Tries to read, raising no exception if not all the bytes are available, but raising one if there is s...
void Close()
Close the USB device. 
void OpenByDescription(const std::string &description)
Open by device description. 
mrpt::utils::circular_buffer< uint8_t > m_readBuffer
Used in Read. 
std::string ftdi_description
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
void SetTimeouts(unsigned long dwReadTimeout_ms, unsigned long dwWriteTimeout_ms)
Change read & write timeouts, in milliseconds. 
void ListAllDevices(TFTDIDeviceList &outList)
Generates a list with all FTDI devices connected right now. 
GLsizei const GLchar ** string
size_t Read(void *Buffer, size_t Count)
Introduces a pure virtual method responsible for reading from the stream. 
std::deque< TFTDIDevice > TFTDIDeviceList
Used in CInterfaceFTDI::ListAllDevices. 
uint64_t getPosition()
This virtual method does nothing in this class. 
size_t WriteSync(const void *Buffer, size_t Count)
Tries to write, raising no exception if not all the bytes are available, but raising one if there is ...
unsigned __int64 uint64_t
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
CInterfaceFTDI & operator=(const CInterfaceFTDI &o)
This object cannot be copied. 
std::ostream & operator<<(std::ostream &o, const TFTDIDevice &d)
Print out all the information of a FTDI device in textual form. 
A definition of a CStream actually representing a USB connection to a FTDI chip. 
CInterfaceFTDI()
Constructor, which loads driver interface (the DLL under Windows). 
void ftdi_read(void *lpvBuffer, unsigned long dwBuffSize, unsigned long *lpdwBytesRead)
void Purge()
Purge the I/O buffers. 
void ftdi_write(const void *lpvBuffer, unsigned long dwBuffSize, unsigned long *lpdwBytes)
virtual ~CInterfaceFTDI()
Destructor, which closes the connection with the chip and unloads the driver interface. 
void SetLatencyTimer(unsigned char latency_ms)
Change the latency timer (in milliseconds) implemented on the FTDI chip: for a few ms...
std::string ftdi_manufacturer
A list of FTDI devices and their descriptors. 
uint64_t Seek(uint64_t Offset, CStream::TSeekOrigin Origin=sFromBeginning)
This virtual method does nothing in this class.