OSDN Git Service

Small timestamps fixes
[android-x86/hardware-intel-libsensors.git] / calibration.h
index dd67ed3..4fb160d 100644 (file)
@@ -5,29 +5,11 @@
 #ifndef __CALIBRATION_H__
 #define __CALIBRATION_H__
 
-#define COMPASS_CALIBRATION_PATH "/data/compass.conf"
-#define DS_SIZE 48
-#define EPSILON 0.000000001
+#include "common.h"
 
+#define MAGN_DS_SIZE 32
 
-/* If no cal data is present - first calibration will
-   use a more relaxed set of values to get an initial
-   calibration faster */
-#define FIRST_MIN_DIFF 0.5f
-#define FIRST_MAX_SQR_ERR 5.0f
-#define FIRST_LOOKBACK_COUNT 4
-
-#define MIN_DIFF 1.0f
-#define MAX_SQR_ERR 3.5f
-#define LOOKBACK_COUNT 6
-
-
-#ifdef DBG_RAW_DATA
-#define RAW_DATA_FULL_PATH "/data/raw_compass_data_full_%d.txt"
-#define RAW_DATA_SELECTED_PATH "/data/raw_compass_data_selected_%d.txt"
-#endif
-
-typedef struct {
+struct compass_cal {
     /* hard iron offsets */
     double offset[3][1];
 
@@ -37,12 +19,25 @@ typedef struct {
     /* geomagnetic strength */
     double bfield;
 
-} calibration_data;
+    /* selection data */
+    float sample[MAGN_DS_SIZE][3];
+    unsigned int sample_count;
+};
+
+struct gyro_cal {
+    float bias_x, bias_y, bias_z;
+    int count;
+    float min_x, min_y, min_z;
+    float max_x, max_y, max_z;
+};
 
-typedef double mat_input_t[DS_SIZE][3];
+typedef double mat_input_t[MAGN_DS_SIZE][3];
 
-void calibrate_compass (struct sensors_event_t* event, int64_t time);
-void compass_read_data (const char* config_path);
-void compass_store_data (const char* config_path);
+void calibrate_compass (struct sensors_event_t* event, struct sensor_info_t* info);
+void compass_read_data (struct sensor_info_t* info);
+void compass_store_data (struct sensor_info_t* info);
 
+void calibrate_gyro(struct sensors_event_t* event, struct sensor_info_t* info);
+void gyro_cal_init(struct sensor_info_t* info);
+void gyro_store_data (struct sensor_info_t* info);
 #endif