calculate
Dependencies: mbed X_NUCLEO_IKS01A3 Mahony_Algorithm
CalculateData.cpp
- Committer:
- zollecy1
- Date:
- 2020-04-01
- Revision:
- 0:313fbc3a198a
- Child:
- 1:48e219526d0f
File content as of revision 0:313fbc3a198a:
/** |**********************************************************************; * Project : Projektarbeit Systemtechnik PES4 * * Program name : Beispiel * * Author : PES4 Team1 * * Team : **Team 1** * Fabio Bernard * Lukas Egli * Matthias Ott * Pascal Novacki * Robin Wanner * Vincent Vescoli * Cyrill Zoller * * Date created : 20.02.2020 * * Purpose : Beispiel * |**********************************************************************; **/ #include "CalculateData.h" #include "mbed.h" #include "XNucleoIKS01A3.h" using namespace std; const float CalculateData::PERIOD = 0.01f; //Periode von 10 ms static XNucleoIKS01A3 *mems_expansion_board; static LIS2MDLSensor *magnetometer; static HTS221Sensor *hum_temp; static LPS22HHSensor *press_temp; static LSM6DSOSensor *acc_gyro; static LIS2DW12Sensor *accelerometer; static STTS751Sensor *temp; float value1, value2; int32_t axes[3]; CalculateData::CalculateData(PinName p0, PinName p1, PinName p2, PinName p3, PinName p4, PinName p5, PinName p6){ /* Instantiate the expansion board */ mems_expansion_board = XNucleoIKS01A3::instance(p0, p1, p2, p3, p4, p5, p6); /* Retrieve the composing elements of the expansion board */ magnetometer = mems_expansion_board->magnetometer; hum_temp = mems_expansion_board->ht_sensor; press_temp = mems_expansion_board->pt_sensor; acc_gyro = mems_expansion_board->acc_gyro; accelerometer = mems_expansion_board->accelerometer; temp = mems_expansion_board->t_sensor; /* Enable all sensors */ hum_temp->enable(); press_temp->enable(); temp->enable(); magnetometer->enable(); accelerometer->enable_x(); acc_gyro->enable_x(); acc_gyro->enable_g(); /*while(1){ printf("\r\n"); hum_temp->get_temperature(&value1); hum_temp->get_humidity(&value2); printf("HTS221: [temp] %4.2f C, [hum] %4.2f%%\r\n", value1, value2); press_temp->get_temperature(&value1); press_temp->get_pressure(&value2); printf("LPS22HH: [temp] %4.2f C, [press] %6.2f mbar\r\n", value1, value2); temp->get_temperature(&value1); printf("STTS751: [temp] %4.2f C\r\n", value1); printf("---\r\n"); magnetometer->get_m_axes(axes); printf("LIS2MDL [mag/mgauss]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); accelerometer->get_x_axes(axes); printf("LIS2DW12 [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); acc_gyro->get_x_axes(axes); printf("LSM6DSO [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); acc_gyro->get_g_axes(axes); printf("LSM6DSO [gyro/mdps]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); }*/ } CalculateData::~CalculateData() { } void CalculateData::enable(){ //Starten des periodischen Task ticker.attach(callback(this, &CalculateData::run), PERIOD); } void CalculateData::disable(){ ticker.detach(); // Stoppt den periodischen Task } void CalculateData::getData(){ printf("\r\n"); hum_temp->get_temperature(&value1); hum_temp->get_humidity(&value2); printf("HTS221: [temp] %4.2f C, [hum] %4.2f%%\r\n", value1, value2); press_temp->get_temperature(&value1); press_temp->get_pressure(&value2); printf("LPS22HH: [temp] %4.2f C, [press] %6.2f mbar\r\n", value1, value2); temp->get_temperature(&value1); printf("STTS751: [temp] %4.2f C\r\n", value1); printf("---\r\n"); magnetometer->get_m_axes(axes); printf("LIS2MDL [mag/mgauss]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); accelerometer->get_x_axes(axes); printf("LIS2DW12 [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); acc_gyro->get_x_axes(axes); printf("LSM6DSO [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); acc_gyro->get_g_axes(axes); printf("LSM6DSO [gyro/mdps]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); } //Periodischer Task void CalculateData::run() { getData(); }