00001 /* 00002 * $RCSfile: USB_AO16_Family.hpp,v $ 00003 * $Revision: 1.6 $ 00004 * $Date: 2009/12/23 22:39:10 $ 00005 * jEdit:tabSize=4:indentSize=4:collapseFolds=1: 00006 * 00007 * class USB_AO16_Family declarations 00008 */ 00009 00010 #if ! defined( USB_AO16_Family_hpp ) 00011 #define USB_AO16_Family_hpp 00012 00013 // {{{ includes 00014 #include <USBDevice.hpp> 00015 #include <AO16_AnalogOutputSubsystem.hpp> 00016 #include <DigitalIOSubsystem.hpp> 00017 // }}} 00018 00019 namespace AIOUSB { 00020 00035 class USB_AO16_Family : public USBDevice { 00036 friend class USBDeviceManager; 00037 00038 // {{{ static members 00039 private: 00040 static IntArray supportedProductIDs; 00041 00042 static void initialize(); 00043 // }}} 00044 00045 // {{{ protected members 00046 protected: 00047 AO16_AnalogOutputSubsystem analogOutputSubsystem; 00048 DigitalIOSubsystem digitalIOSubsystem; 00049 // }}} 00050 00051 // {{{ protected methods 00052 protected: 00053 USB_AO16_Family( int productID, int deviceIndex ); 00054 virtual ~USB_AO16_Family(); 00055 // }}} 00056 00057 // {{{ public methods 00058 public: 00059 00060 /* 00061 * properties 00062 */ 00063 00064 static StringArray getSupportedProductNames(); 00065 static IntArray getSupportedProductIDs(); 00066 static bool isSupportedProductID( int productID ); 00067 virtual std::ostream &print( std::ostream &out ); 00068 00069 /* 00070 * subsystems 00071 */ 00072 00078 AO16_AnalogOutputSubsystem &dac() { 00079 return analogOutputSubsystem; 00080 } // adc() 00081 00087 DigitalIOSubsystem &dio() { 00088 return digitalIOSubsystem; 00089 } // dio() 00090 00091 // }}} 00092 00093 }; // class USB_AO16_Family 00094 00095 } // namespace AIOUSB 00096 00097 #endif 00098 00099 /* end of file */