Add DSP code to filter data, allowing for integration/differentiation
[fw/altos] / ao-tools / lib / cc.h
index 3975cf1b46d8c470cc4debe3670f78bc441278e4..356794e0558cee186e3d33d75eae482f5b3191aa 100644 (file)
@@ -75,6 +75,7 @@ struct cc_timedata {
        int                     num;
        int                     size;
        struct cc_timedataelt   *data;
+       double                  time_offset;
 };
 
 
@@ -92,8 +93,8 @@ struct cc_gpselt {
 struct cc_gpsdata {
        int                     num;
        int                     size;
-       double                  time_offset;
        struct cc_gpselt        *data;
+       double                  time_offset;
 };
 
 /*
@@ -267,4 +268,32 @@ cc_timedata_min(struct cc_timedata *d, double min_time, double max_time);
 int
 cc_timedata_max(struct cc_timedata *d, double min_time, double max_time);
 
+int
+cc_perioddata_min(struct cc_perioddata *d, double min_time, double max_time);
+
+int
+cc_perioddata_max(struct cc_perioddata *d, double min_time, double max_time);
+
+double *
+cc_low_pass(double *data, int data_len, double omega_pass, double omega_stop, double error);
+
+struct cc_perioddata *
+cc_period_make(struct cc_timedata *td, double start_time, double stop_time);
+
+struct cc_perioddata *
+cc_period_low_pass(struct cc_perioddata *raw, double omega_pass, double omega_stop, double error);
+
+struct cc_timedata *
+cc_timedata_convert(struct cc_timedata *d, double (*f)(double v, double a), double a);
+
+struct cc_timedata *
+cc_timedata_integrate(struct cc_timedata *d);
+
+struct cc_perioddata *
+cc_perioddata_differentiate(struct cc_perioddata *i);
+
+struct cc_flightcooked *
+cc_flight_cook(struct cc_flightraw *raw);
+
+
 #endif /* _CC_H_ */