00001 #ifndef DRADAPIO_H
00002 #define DRADAPIO_H
00003
00004 #include "DRRealDevice.h"
00005 #include "DVDaBase.h"
00006 #include "DVAdBase.h"
00007 #include "tuadapio.h"
00008
00009 namespace Spr {
00010
00011
00012 class SPR_DLL DRAdapio:public DRRealDevice{
00013 public:
00014
00015 class DVDA:public DVDaBase{
00016 protected:
00017 int ch;
00018 DRAdapio* realDevice;
00019 char name[100];
00020 public:
00021 DVDA(DRAdapio* r, int c);
00022 virtual DRRealDevice* RealDevice() { return realDevice; }
00023 virtual void Voltage(float v){ realDevice->DAVoltage(ch, v); }
00024 virtual void Digit(int d){ realDevice->DADigit(ch, d); }
00025 virtual const char* Name() const{ return name; }
00026 };
00027 class DVAD:public DVAdBase{
00028 protected:
00029 int ch;
00030 DRAdapio* realDevice;
00031 char name[100];
00032 public:
00033 DVAD(DRAdapio* r, int c);
00034 virtual DRRealDevice* RealDevice() { return realDevice; }
00035 virtual int Digit(){ return realDevice->ADDigit(ch); }
00036 virtual float Voltage(){ return realDevice->ADVoltage(ch); }
00037 virtual const char* Name() const{ return name; }
00038 };
00039 protected:
00040 char name[100];
00041 int id;
00042 public:
00043
00044
00045 DRAdapio(int id=0);
00046 virtual ~DRAdapio();
00047
00048 virtual const char* Name() const { return name; }
00049
00050 virtual bool Init();
00051
00052 virtual void Register(DVVirtualDevicePool& vpool);
00053
00054 void DAVoltage(int ch, float v);
00055 void DADigit(int ch, int d);
00056
00057 float ADVoltage(int ch);
00058 int ADDigit(int ch);
00059
00060 virtual void CloseDevice();
00061 };
00062
00063
00064 }
00065
00066 #endif