cphidgetinterfacekit.h
Go to the documentation of this file.
00001 #ifndef __CPHIDGETINTERFACEKIT
00002 #define __CPHIDGETINTERFACEKIT
00003 #include "cphidget.h"
00004 
00011 DPHANDLE(InterfaceKit)
00012 CHDRSTANDARD(InterfaceKit)
00013 
00019 CHDRGET(InterfaceKit, InputCount, int *count)
00026 CHDRGETINDEX(InterfaceKit, InputState, int *inputState)
00033 CHDREVENTINDEX(InterfaceKit, InputChange, int inputState)
00034 
00040 CHDRGET(InterfaceKit, OutputCount, int *count)
00047 CHDRGETINDEX(InterfaceKit, OutputState, int *outputState)
00054 CHDRSETINDEX(InterfaceKit, OutputState, int outputState)
00061 CHDREVENTINDEX(InterfaceKit, OutputChange, int outputState)
00062 
00068 CHDRGET(InterfaceKit, SensorCount, int *count)
00075 CHDRGETINDEX(InterfaceKit, SensorValue, int *sensorValue)
00082 CHDRGETINDEX(InterfaceKit, SensorRawValue, int *sensorRawValue)
00089 CHDREVENTINDEX(InterfaceKit, SensorChange, int sensorValue)
00096 CHDRGETINDEX(InterfaceKit, SensorChangeTrigger, int *trigger)
00103 CHDRSETINDEX(InterfaceKit, SensorChangeTrigger, int trigger)
00109 CHDRGET(InterfaceKit, Ratiometric, int *ratiometric)
00115 CHDRSET(InterfaceKit, Ratiometric, int ratiometric)
00116 
00117 //This is the event rate
00118 //since we're not going to run an extra thread, the accuracy of the data rate is limited by the interrupt endpoint data rate (>=8ms)
00125 CHDRGETINDEX(InterfaceKit, DataRate, int *milliseconds)
00132 CHDRSETINDEX(InterfaceKit, DataRate, int milliseconds)
00139 CHDRGETINDEX(InterfaceKit, DataRateMax, int *max)
00146 CHDRGETINDEX(InterfaceKit, DataRateMin, int *min)
00147 
00148 #ifndef REMOVE_DEPRECATED
00149 DEP_CHDRGET("Deprecated - use CPhidgetInterfaceKit_getInputCount",InterfaceKit, NumInputs, int *)
00150 DEP_CHDRGET("Deprecated - use CPhidgetInterfaceKit_getOutputCount",InterfaceKit, NumOutputs, int *)
00151 DEP_CHDRGET("Deprecated - use CPhidgetInterfaceKit_getSensorCount",InterfaceKit, NumSensors, int *)
00152 #endif
00153 
00154 #ifndef EXTERNALPROTO
00155 #define IFKIT_MAXINPUTS 32
00156 #define IFKIT_MAXOUTPUTS 32
00157 #define IFKIT_MAXSENSORS 8
00158 
00159 #define IFKIT_MAXSENSORCHANGE 1000 //BL: Had to check for this, might as well use a define
00160 
00161 //usually it is <=8, but could be bigger if a packet gets missed.
00162 #define IFKIT_MAX_DATA_PER_PACKET       16
00163 //in milliseconds - this is the fastest hardware rate of any device
00164 #define IFKIT_MAX_DATA_RATE 1
00165 //1 second is the longest between events that we support
00166 #define IFKIT_MIN_DATA_RATE 1000
00167 //add 200ms for timing differences (late events, etc) - should be plenty
00168 #define IFKIT_DATA_BUFFER_SIZE ((IFKIT_MIN_DATA_RATE + 200)/IFKIT_MAX_DATA_RATE)
00169 
00170 struct _CPhidgetInterfaceKit {
00171         CPhidget phid;
00172 
00173         int (CCONV *fptrOutputChange)(CPhidgetInterfaceKitHandle, void *, int, int);
00174         int (CCONV *fptrInputChange)(CPhidgetInterfaceKitHandle, void *, int, int);
00175         int (CCONV *fptrSensorChange)(CPhidgetInterfaceKitHandle, void *, int, int);
00176 
00177         void *fptrOutputChangeptr;
00178         void *fptrInputChangeptr;
00179         void *fptrSensorChangeptr;
00180 
00181         unsigned char ratiometric;
00182         unsigned char ratiometricEcho;
00183         unsigned char ratiometricSwitching;
00184 
00185         // output fields all protected by outputLock
00186         unsigned char outputStates[IFKIT_MAXOUTPUTS];
00187         unsigned char nextOutputStates[IFKIT_MAXOUTPUTS];
00188         unsigned char changedOutputs[IFKIT_MAXOUTPUTS];
00189         int lastChangedOutput;
00190 
00191         unsigned char outputEchoStates[IFKIT_MAXOUTPUTS];               // Values returned from the device
00192         unsigned char physicalState[IFKIT_MAXINPUTS];
00193 
00194         int sensorChangeTrigger[IFKIT_MAXSENSORS];
00195         int sensorRawValue[IFKIT_MAXSENSORS];
00196         int sensorValue[IFKIT_MAXSENSORS];
00197         int sensorLastValue[IFKIT_MAXSENSORS];
00198         
00199         int sensorRawValueAccumulator[IFKIT_MAXSENSORS];
00200         int sensorRawValueAccumulatorCount[IFKIT_MAXSENSORS];
00201         
00202         int dataRate[IFKIT_MAXSENSORS];
00203         int interruptRate;
00204         int dataRateMax, dataRateMin;
00205 
00206         int lastPacketCount;
00207         int maxDataPerPacket;
00208 
00209         int dataSinceAttach;
00210 
00211         CPhidget_EventMode eventMode[IFKIT_MAXSENSORS];
00212 
00213         unsigned char fullStateEcho;
00214 } typedef CPhidgetInterfaceKitInfo;
00215 #endif
00216 
00219 #endif


pedal_monitor
Author(s): Pedro Mendes
autogenerated on Fri Jun 6 2014 18:37:20