Demo fro training
Dependencies: X_NUCLEO_IKS01A1 d7a_1x mbed-rtos mbed wizzi-utils
sensors.h
- Committer:
- mikl_andre
- Date:
- 2016-11-21
- Revision:
- 0:429446fe396d
File content as of revision 0:429446fe396d:
#ifndef _SENSORS_H_ #define _SENSORS_H_ #include "hts221/hts221_class.h" #include "lis3mdl/lis3mdl_class.h" #include "lps25h/lps25h_class.h" #include "lsm6ds0/lsm6ds0_class.h" #include "d7a.h" // Simulate the sensors (if X_NUCLEO_IKS01A1 not connected) //#define _SENSORS_SIMU_ 1 extern LIS3MDL *magnetometer; extern LSM6DS0 *accelerometer; extern LSM6DS0 *gyroscope; extern LPS25H *pressure_sensor; extern LPS25H *temp_sensor2; extern HTS221 *humidity_sensor; extern HTS221 *temp_sensor1; // Types of reporting typedef enum { REPORT_ALWAYS, REPORT_ON_DIFFERENCE, REPORT_ON_THRESHOLD, } report_type_t; // Sensor reporting configuration TYPEDEF_STRUCT_PACKED { uint8_t report_type; // Type of report asked uint32_t period; // Measure period (ms) uint32_t max_period; // Maximum time between reports (s) uint32_t max_diff; // Maximum difference allowed between two reported values int32_t threshold_high; // High threshold value triggering a report int32_t threshold_low; // Low threshold value triggering a report } sensor_config_t; typedef struct { // Number of data fields uint32_t nb_values; // Total size of data uint32_t data_size; // Read value function bool (*read_value)(int32_t*); // Last reported value int32_t* last_report_value; // Current measured value int32_t* current_value; // Time elapsed since last report (ms) uint32_t last_report_time; // File ID of the sensor value file uint8_t value_file_id; // Sensor configuration file ID uint8_t cfg_file_id; // Sensor configuration context sensor_config_t cfg; } sensor_thread_ctx_t; bool Init_HTS221(HTS221* ht_sensor); bool Init_LIS3MDL(LIS3MDL* magnetometer); bool Init_LPS25H(LPS25H* pt_sensor); bool Init_LSM6DS0(LSM6DS0* gyro_lsm6ds0); bool mag_get_value(int32_t* buf); bool acc_get_value(int32_t* buf); bool gyr_get_value(int32_t* buf); bool pre_get_value(int32_t* buf); bool hum_get_value(int32_t* buf); bool tem1_get_value(int32_t* buf); bool tem2_get_value(int32_t* buf); #endif // _SENSORS_H_