Go to the documentation of this file.00001 #ifndef __CPHIDGETFREQUENCYCOUNTER
00002 #define __CPHIDGETFREQUENCYCOUNTER
00003 #include "cphidget.h"
00004
00015 typedef enum {
00016 PHIDGET_FREQUENCYCOUNTER_FILTERTYPE_ZERO_CROSSING = 1,
00017 PHIDGET_FREQUENCYCOUNTER_FILTERTYPE_LOGIC_LEVEL,
00018 PHIDGET_FREQUENCYCOUNTER_FILTERTYPE_UNKNOWN
00019 } CPhidgetFrequencyCounter_FilterType;
00020
00021 DPHANDLE(FrequencyCounter)
00022 CHDRSTANDARD(FrequencyCounter)
00023
00029 CHDRGET(FrequencyCounter,FrequencyInputCount,int *count)
00036 CHDRGETINDEX(FrequencyCounter,Frequency,double *frequency)
00043 CHDRGETINDEX(FrequencyCounter,TotalTime,__int64 *time)
00050 CHDRGETINDEX(FrequencyCounter,TotalCount,__int64 *count)
00057 CHDRSETINDEX(FrequencyCounter,Timeout,int timeout)
00064 CHDRGETINDEX(FrequencyCounter,Timeout,int *timeout)
00071 CHDRSETINDEX(FrequencyCounter,Enabled,int enabledState)
00078 CHDRGETINDEX(FrequencyCounter,Enabled,int *enabledState)
00085 CHDRSETINDEX(FrequencyCounter,Filter,CPhidgetFrequencyCounter_FilterType filter)
00092 CHDRGETINDEX(FrequencyCounter,Filter,CPhidgetFrequencyCounter_FilterType *filter)
00098 PHIDGET21_API int CCONV CPhidgetFrequencyCounter_reset(CPhidgetFrequencyCounterHandle phid, int index);
00105 CHDREVENTINDEX(FrequencyCounter,Count,int time,int counts)
00106
00107 #ifndef EXTERNALPROTO
00108 CHDRGETINDEX(FrequencyCounter,TotalTime32,int *time)
00109 CHDRGETINDEX(FrequencyCounter,TotalCount32,int *count)
00110 #define FREQCOUNTER_MAXINPUTS 2
00111
00112 #define FREQCOUNTER_TICKS_PER_SEC 100000
00113 #define FREQCOUNTER_MICROSECONDS_PER_TICK (1000000 / FREQCOUNTER_TICKS_PER_SEC)
00114
00115
00116 #define FREQCOUNTER_FLAG_CH1_LOGIC 0x01
00117 #define FREQCOUNTER_FLAG_CH0_LOGIC 0x02
00118 #define FREQCOUNTER_FLAG_CH1_ENABLE 0x04
00119 #define FREQCOUNTER_FLAG_CH0_ENABLE 0x08
00120
00121 struct _CPhidgetFrequencyCounter {
00122 CPhidget phid;
00123
00124 int (CCONV *fptrCount)(CPhidgetFrequencyCounterHandle, void *, int, int, int);
00125 void *fptrCountptr;
00126
00127 int timeout[FREQCOUNTER_MAXINPUTS];
00128 CPhidgetFrequencyCounter_FilterType filter[FREQCOUNTER_MAXINPUTS];
00129 unsigned char enabled[FREQCOUNTER_MAXINPUTS];
00130
00131 CPhidgetFrequencyCounter_FilterType filterEcho[FREQCOUNTER_MAXINPUTS];
00132 unsigned char enabledEcho[FREQCOUNTER_MAXINPUTS];
00133
00134 double frequency[FREQCOUNTER_MAXINPUTS];
00135 int totalTicksSinceLastCount[FREQCOUNTER_MAXINPUTS];
00136
00137 __int64 totalCount[FREQCOUNTER_MAXINPUTS];
00138 __int64 totalTime[FREQCOUNTER_MAXINPUTS];
00139
00140 int flip[FREQCOUNTER_MAXINPUTS];
00141 int lastPacketCount;
00142
00143 CThread_mutex_t resetlock;
00144
00145 int countsGood[FREQCOUNTER_MAXINPUTS];
00146
00147 unsigned char outputPacket[MAX_OUT_PACKET_SIZE];
00148 unsigned int outputPacketLen;
00149 } typedef CPhidgetFrequencyCounterInfo;
00150 #endif
00151
00154 #endif