00001 /* 00002 * $RCSfile: USB_AI16_Family.hpp,v $ 00003 * $Revision: 1.18 $ 00004 * $Date: 2009/12/23 22:39:10 $ 00005 * jEdit:tabSize=4:indentSize=4:collapseFolds=1: 00006 * 00007 * class USB_AI16_Family declarations 00008 */ 00009 00010 #if ! defined( USB_AI16_Family_hpp ) 00011 #define USB_AI16_Family_hpp 00012 00013 // {{{ includes 00014 #include <USBDevice.hpp> 00015 #include <AnalogInputSubsystem.hpp> 00016 #include <DigitalIOSubsystem.hpp> 00017 #include <CounterSubsystem.hpp> 00018 // }}} 00019 00020 namespace AIOUSB { 00021 00038 class USB_AI16_Family : public USBDevice { 00039 friend class USBDeviceManager; 00040 00041 // {{{ static members 00042 private: 00043 static IntArray supportedProductIDs; 00044 00045 static void initialize(); 00046 // }}} 00047 00048 // {{{ protected members 00049 protected: 00050 AnalogInputSubsystem analogInputSubsystem; 00051 DigitalIOSubsystem digitalIOSubsystem; 00052 CounterSubsystem counterSubsystem; 00053 // }}} 00054 00055 // {{{ protected methods 00056 protected: 00057 USB_AI16_Family( int productID, int deviceIndex ); 00058 virtual ~USB_AI16_Family(); 00059 // }}} 00060 00061 // {{{ public methods 00062 public: 00063 00064 /* 00065 * properties 00066 */ 00067 00068 static StringArray getSupportedProductNames(); 00069 static IntArray getSupportedProductIDs(); 00070 static bool isSupportedProductID( int productID ); 00071 virtual std::ostream &print( std::ostream &out ); 00072 00073 /* 00074 * subsystems 00075 */ 00076 00082 AnalogInputSubsystem &adc() { 00083 return analogInputSubsystem; 00084 } // adc() 00085 00091 DigitalIOSubsystem &dio() { 00092 return digitalIOSubsystem; 00093 } // dio() 00094 00100 CounterSubsystem &ctr() { 00101 return counterSubsystem; 00102 } // ctr() 00103 00104 // }}} 00105 00106 }; // class USB_AI16_Family 00107 00108 } // namespace AIOUSB 00109 00110 #endif 00111 00112 /* end of file */