00001 #ifndef VR_DVPIOBASE_H
00002 #define VR_DVPIOBASE_H
00003
00004 #include "DVVirtualDevice.h"
00005
00006 namespace Spr {;
00007
00008
00009
00010
00011 class SPR_DLL DVPortEnum{
00012 enum TLevel {LEVEL_LO, LEVEL_HI};
00013 enum TDir {DIR_IN, DIR_OUT};
00014 };
00015
00016 class SPR_DLL DVInputPortBase:public DVVirtualDevice, public DVPortEnum{
00017 public:
00018
00019 virtual const char* Name() const =0;
00020
00021 virtual int Get()=0;
00022
00023
00024 static const char* TypeS() { return "input port"; }
00025
00026 virtual const char* Type() const{ return TypeS(); }
00027 };
00028
00029
00030 class SPR_DLL DVOutputPortBase:public DVVirtualDevice, public DVPortEnum{
00031 public:
00032
00033 virtual const char* Name() const =0;
00034
00035 virtual void Set(int l)=0;
00036
00037
00038 static const char* TypeS() { return "output port"; }
00039
00040 virtual const char* Type() const{ return TypeS(); }
00041 };
00042
00043
00044
00045 class SPR_DLL DVPioBase:public DVVirtualDevice, public DVPortEnum{
00046 public:
00047
00048 virtual int Get()=0;
00049
00050 virtual void Set(int l)=0;
00051
00052 virtual const char* Name() const =0;
00053
00054 static const char* TypeS() { return "PIO"; }
00055
00056 virtual const char* Type() const{ return TypeS(); }
00057 };
00058
00059 }
00060 #endif