00001 #ifndef VR_DRCONTECISACOUNTER_H
00002 #define VR_DRCONTECISACOUNTER_H
00003
00004 #include "DRRealDevice.h"
00005 #include "DVCounterBase.h"
00006
00007 namespace Spr {
00008
00009
00010 class SPR_DLL DRContecIsaCounter:public DRRealDevice{
00011 public:
00012
00013 class VirtualDevice:public DVCounterBase{
00014 protected:
00015 int ch;
00016 DRContecIsaCounter* realDevice;
00017 char name[100];
00018 public:
00019 VirtualDevice(DRContecIsaCounter* r, int c);
00020 virtual DRRealDevice* RealDevice() { return realDevice; }
00021
00022 virtual void Count(long c){ realDevice->Count(ch, c); }
00023
00024 virtual long Count(){ return realDevice->Count(ch); }
00025
00026 virtual const char* Name() const{ return name; }
00027 };
00028 protected:
00029 char name[100];
00030
00031 int address;
00032
00033 public:
00034
00035
00036
00037 DRContecIsaCounter(int address);
00038
00039 virtual const char* Name() const { return name; }
00040
00041 virtual bool Init();
00042
00043 virtual void Register(DVVirtualDevicePool& vpool);
00044
00045 void Count(int ch, long c);
00046
00047 long Count(int ch);
00048 };
00049 }
00050
00051 #endif