INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

NONFRAMEWORK CODE
Driver Interfaces
Drivers
Libraries
Utilities

FRAMEWORK CODE
Interfaces
Components
Libraries
Utilities

Full Software Listings

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

usbftdi.h

00001 /*
00002  * Orca-Robotics Project: Components for robotics 
00003  *               http://orca-robotics.sf.net/
00004  * Copyright (c) 2004-2009 Alex Brooks, Alexei Makarenko, Tobias Kaupp
00005  *
00006  * This copy of Orca is licensed to you under the terms described in
00007  * the LICENSE file included in this distribution.
00008  *
00009  */
00010 
00011 #ifndef USBFTDI_H
00012 #define USBFTDI_H
00013 
00014 #include <ftd2xx.h>
00015 #include <string>
00016 #include "usbftdiexceptions.h"
00017 
00018 namespace usbftdi
00019 {
00020 
00021     // Return codes
00022     const int USBFTDI_OK=0;
00023     const int USBFTDI_TIMEOUT=-1;
00024 
00025 
00026 //
00027 // @author Alex Brooks
00028 //
00029 class UsbFtdi
00030 {
00031 
00032 public: 
00033 
00034     // 
00035     // Params are:
00036     //   - Vendor ID
00037     //   - Product ID
00038     //   - Description (as the device reports itself)
00039     //
00040     UsbFtdi( DWORD iVID, DWORD iPID, const std::string &description, int debugLevel=0 );
00041     ~UsbFtdi();
00042 
00043     void write( const unsigned char *data, int numBytes );
00044 
00045     // 
00046     // Waits for one or more bytes to arrive
00047     //
00048     // Timeout is 100ms (TODO: this should be configurable)
00049     //
00050     // Returns: 
00051     //   USBFTDI_OK
00052     //   USBFTDI_TIMEOUT 
00053     int waitForData();
00054 
00055     int bytesInRxQueue();
00056 
00057     // Returns the number of bytes read.
00058     // Caller has the responsibility to ensure that there's enough space.
00059     int readNonBlocking( unsigned char *bytes, int maxBytesToRead );
00060 
00061 private: 
00062 
00063     void reset();
00064 
00065     // for debugging
00066     void printQueueStatus();
00067 
00068     // handle to the USB device
00069     FT_HANDLE ftHandle_;
00070 
00071     // event handle we'll use to block on data arrival
00072     EVENT_HANDLE eventHandle_;
00073 
00074     int debugLevel_;
00075 };
00076 
00077 }
00078 
00079 #endif
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5