DataThreads.h
00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DATATHREADS_H_
00009 #define DATATHREADS_H_
00010
00011 #include <opencv/cv.h>
00012
00013
00014 #define NUM_POINTS 1000
00015 #define OUTLIER_SUM_RANGE 7
00016
00017 #define OUTLIER_REJECT_ERROR 5
00018
00019 #define STARTING_SUM_NUM 1
00020
00021
00022 struct CollectedData {
00023 double imuPitchAngle[NUM_POINTS];
00024 double imuRollAngle[NUM_POINTS];
00025 double imuPitchGyroVal[NUM_POINTS];
00026 double imuPitchAccelVal[NUM_POINTS];
00027 double imuRollGyroVal[NUM_POINTS];
00028 double imuRollAccelVal[NUM_POINTS];
00029
00030 double camPitchAngle[NUM_POINTS];
00031 double camRollAngle[NUM_POINTS];
00032
00033 double imuOutlierSumPoints[OUTLIER_SUM_RANGE];
00034
00035 int oldestPoint;
00036
00037 double imuDeltaT[NUM_POINTS];
00038 long imuLastT;
00039
00040 bool guiReading;
00041
00042 IplImage * currentCamImage;
00043 CvPoint curRectangle[4];
00044 int frameCounter;
00045 };
00046
00047
00048
00049 #define RED_THRESH 40
00050
00051 void initializeDataThreads();
00052 void shutdownDataThreads();
00053 void * runIMUThread(void * var);
00054 void * runCamThread(void * var);
00055 void * runGuiThread(void * var);
00056
00057
00058 #endif