#ifndef __BSEC_H__ #define __BSEC_H__ #include #include #include "nrf_log.h" #include "app_timer.h" #include "bsec_datatypes.h" #include "bsec_interface.h" #include "bme68x.h" /** Gas Wait Shared */ #define GAS_WAIT_SHARED UINT8_C(140) #define CHECK_BSEC_INPUT(x, shift) (x & (1 << (shift-1))) #define ARRAY_LEN(array) (sizeof(array)/sizeof(array[0])) typedef enum { CONTROL_STEP, MEASUREMENT_STEP, LAST_STEP } bsec_step; typedef struct { bsec_output_t outputs[BSEC_NUMBER_OUTPUTS]; uint8_t len; } BsecOutput; void initialize_bsec_library(); bool set_config(const uint8_t *state); bool update_subscription(bsec_virtual_sensor_t sensor_list[], uint8_t num_of_sensors, float sample_rate); bool process_bme_data(int64_t curr_time_ns, const struct bme68x_data *data); bool read_sensor_and_process_data(void); int64_t get_time_ms(void); void set_bme68x_forced_mode(void); void set_bme68x_sleep_mode(void); void set_bme68x_parallel_mode(void); void print_bsec_processed_data(const struct bme68x_data *input); //void print_bsec_processed_data(const struct bme68x_data *input, const BsecOutput *outputs); #endif