calculate
Dependencies: mbed X_NUCLEO_IKS01A3 Mahony_Algorithm
Diff: CalculateData.h
- Revision:
- 3:795998b31c32
- Parent:
- 2:4cccdc792719
- Child:
- 4:7d13076ecece
--- a/CalculateData.h Wed Apr 15 12:13:15 2020 +0000 +++ b/CalculateData.h Thu Apr 16 19:34:49 2020 +0000 @@ -28,6 +28,7 @@ #include "mbed.h" #include "XNucleoIKS01A3.h" +#include "Liste.h" class CalculateData { @@ -39,38 +40,43 @@ virtual ~CalculateData(); void enable(); void disable(); - void run(); - void getAccelerometer(int *array); - void getSpeed(int *array); - void getPosition(int *array); - void getGyro(int *array); - void getAngle(int *array); + void getValue(Liste *list); - int32_t acc[3]; - int32_t acc_old[3]; - int32_t gyro[3]; - int32_t gyro_old[3]; - int32_t speed[3]; - int32_t speed_old[3]; - int32_t angle[3]; - int32_t pos[3]; - int32_t t; - int32_t t_old; private: - static const float PERIOD; - void integrate(int *x, int *x_old, int *y, int t, int t_old); + void integrate(double *x, double *x_old, double *y, double t, double t_old); //void transform(int *acc, int *angle); - void filter(int *array, int type); + void filterAcc(int array[3][30],int index, double *target); + void filterGyro(int array[3][30],int index, double *target); + void filterSpeed(double *array, double *target); + void run(); - Ticker ticker; - Timer timer; + Thread thread; + Timer timer; + + int array_acc[3][30]; //Matrix periodiv Sensor Data + int array_gyro[3][30]; //Matrix periodiv Sensor Data + int counter; //count Matrix records + bool periodic_task; //boolean periodic condition + + int buf_acc[3]; + int buf_gyro[3]; + double acc[3]; + double gyro[3]; + double acc_old[3]; + double gyro_old[3]; + double speed[3]; + double speed_old[3]; + double angle[3]; + double pos[3]; + double t[30]; + double t_old; };