00001 /* 00002 * $RCSfile: USB_AI16_Family.hpp,v $ 00003 * $Revision: 1.14 $ 00004 * $Date: 2009/11/23 04:24:03 $ 00005 * jEdit:tabSize=4:indentSize=4:collapseFolds=1: 00006 * 00007 * class USB_AI16_Family declarations 00008 */ 00009 00010 00011 #if ! defined( USB_AI16_Family_hpp ) 00012 #define USB_AI16_Family_hpp 00013 00014 // {{{ includes 00015 #include <USBDevice.hpp> 00016 #include <AnalogInputSubsystem.hpp> 00017 #include <DigitalIOSubsystem.hpp> 00018 #include <CounterSubsystem.hpp> 00019 // }}} 00020 00021 namespace AIOUSB { 00022 00023 // {{{ class USB_AI16_Family declarations 00024 00025 /* 00026 * this class supports all product IDs from USB_AI16_16A to USB_AI12_128E 00027 */ 00028 00029 class USB_AI16_Family : public USBDevice { 00030 protected: 00031 /* 00032 * the subsystems of this device are implemented as separate objects 00033 */ 00034 AnalogInputSubsystem analogInputSubsystem; 00035 DigitalIOSubsystem digitalIOSubsystem; 00036 CounterSubsystem counterSubsystem; 00037 00038 public: 00039 USB_AI16_Family( int productID, int deviceIndex ); 00040 virtual ~USB_AI16_Family(); 00041 00042 AnalogInputSubsystem &adc() { 00043 return analogInputSubsystem; 00044 } // adc() 00045 00046 DigitalIOSubsystem &dio() { 00047 return digitalIOSubsystem; 00048 } // dio() 00049 00050 CounterSubsystem &ctr() { 00051 return counterSubsystem; 00052 } // ctr() 00053 00054 virtual std::ostream &print( std::ostream &out ); 00055 }; // class USB_AI16_Family 00056 00057 // }}} 00058 00059 } // namespace AIOUSB 00060 00061 #endif 00062 00063 00064 /* end of file */