00001 #if !defined(AFX_DRUSBH8_H__618658E7_7169_4BF7_A25E_562BC6BDEE17__INCLUDED_)
00002 #define AFX_DRUSBH8_H__618658E7_7169_4BF7_A25E_562BC6BDEE17__INCLUDED_
00003 #if _MSC_VER > 1000
00004 #pragma once
00005 #endif // _MSC_VER > 1000
00006
00007 #include "DVCounterBase.h"
00008 #include "DVDaBase.h"
00009 #include "DRRealDevice.h"
00010 #include <WinBasis/WBWin.h>
00011
00012 namespace Spr {
00013
00014
00015 class SPR_DLL DRUsbH8Simple:public DRRealDevice
00016 {
00017 public:
00018
00019 class VirtualDeviceDa:public DVDaBase{
00020 protected:
00021 int ch;
00022 DRUsbH8Simple* realDevice;
00023 char name[100];
00024 public:
00025 VirtualDeviceDa(DRUsbH8Simple* r, int c);
00026 virtual DRRealDevice* RealDevice() { return realDevice; }
00027 virtual void Voltage(float v){ realDevice->Voltage(ch, v); }
00028 virtual void Digit(int v){ realDevice->Digit(ch, v); }
00029 virtual const char* Name() const{ return name; }
00030 };
00031 class VirtualDeviceCounter:public DVCounterBase{
00032 protected:
00033 int ch;
00034 DRUsbH8Simple* realDevice;
00035 char name[100];
00036 public:
00037 VirtualDeviceCounter(DRUsbH8Simple* r, int c);
00038 virtual DRRealDevice* RealDevice() { return realDevice; }
00039
00040 virtual void Count(long c){ realDevice->Count(ch, c); }
00041
00042 virtual long Count(){ return realDevice->Count(ch); }
00043
00044 virtual const char* Name() const{ return name; }
00045 };
00046
00047 protected:
00048 char name[100];
00049 int channel;
00050 HANDLE hSpidar;
00051
00052 int sign[8];
00053 long count[8];
00054 long countOffset[8];
00055 int daOut[8];
00056 public:
00057 DRUsbH8Simple(int ch);
00058
00059 virtual const char* Name() const { return name; }
00060
00061 virtual bool Init();
00062
00063 virtual void Register(DVVirtualDevicePool& vpool);
00064
00065
00066 void Voltage(int ch, float v);
00067
00068 void Digit(int ch, int v);
00069
00070 void Count(int ch, long c);
00071
00072 long Count(int ch);
00073
00074 virtual void Update();
00075 };
00076
00077 }
00078
00079 #endif // !defined(AFX_DRUSBH8_H__618658E7_7169_4BF7_A25E_562BC6BDEE17__INCLUDED_)