esp32_BNO08x 1.31
C++ BNO08x IMU driver component for esp-idf.
Loading...
Searching...
No Matches
BNO08xRptStepCounter Class Reference

Class to represent step counter reports. (See Ref. Manual 6.5.29) More...

#include <BNO08xRptStepCounter.hpp>

Inheritance diagram for BNO08xRptStepCounter:
Collaboration diagram for BNO08xRptStepCounter:

Public Member Functions

 BNO08xRptStepCounter (uint8_t ID, EventBits_t rpt_bit, BNO08xPrivateTypes::bno08x_sync_ctx_t *sync_ctx)
 
bool enable (uint32_t time_between_reports, sh2_SensorConfig_t sensor_cfg=BNO08xPrivateTypes::default_sensor_cfg) override
 Enables step counter reports such that the BNO08x begins sending them.
 
bno08x_step_counter_t get ()
 Grabs most recent step counter data (rollover not accounted for in step count, just most recent report data).
 
uint32_t get_total_steps ()
 Grabs the total step count since boot, accounts for rollover in report data.
 
- Public Member Functions inherited from BNO08xRpt
bool disable (sh2_SensorConfig_t sensor_cfg=BNO08xPrivateTypes::default_sensor_cfg)
 Disables a sensor report by setting its period to 0us such that the BNO08x stops sending it.
 
bool register_cb (std::function< void(void)> cb_fxn)
 Registers a callback to execute when new data from a specific report is received.
 
bool has_new_data ()
 Checks if a new report has been received since the last time this function was called.
 
bool flush ()
 Flush all buffered reports for this sensor/report module.
 
bool get_sample_counts (bno08x_sample_counts_t &sample_counts)
 Gets sample counts for this sensor (see SH-2 ref manual 6.4.3.1)
 
bool clear_sample_counts ()
 Clears BNO08x internal sample counts for this sensor. (see SH-2 ref manual 6.4.3.1)
 
bool get_meta_data (bno08x_meta_data_t &meta_data)
 Retrieves meta data for this sensor/report by reading respective record in FRS (flash record system).
 

Private Member Functions

void update_data (sh2_SensorValue_t *sensor_val) override
 Updates step counter data from decoded sensor event.
 

Private Attributes

bno08x_step_counter_t data
 Most recent report data, doesn't account for step rollover.
 
uint32_t step_accumulator
 Every time step count rolls over, the previous steps are accumulated here such that the total steps can always be calculated.
 

Static Private Attributes

static const constexpr char * TAG = "BNO08xRptStepCounter"
 

Additional Inherited Members

- Protected Member Functions inherited from BNO08xRpt
bool rpt_enable (uint32_t time_between_reports, sh2_SensorConfig_t sensor_cfg=BNO08xPrivateTypes::default_sensor_cfg)
 Enables a sensor report such that the BNO08x begins sending it.
 
 BNO08xRpt (uint8_t ID, EventBits_t rpt_bit, BNO08xPrivateTypes::bno08x_sync_ctx_t *sync_ctx)
 BNO08xRpt report constructor.
 
void unlock_sh2_HAL ()
 Unlocks sh2 HAL lib to allow other tasks to call its APIs.
 
void lock_sh2_HAL ()
 Locks sh2 HAL lib to only allow the calling task to call its APIs.
 
void unlock_user_data ()
 Unlocks user data to allow other tasks to read/modify it.
 
void lock_user_data ()
 Locks locks user data to only allow the calling task to read/modify it.
 
void signal_data_available ()
 Signals to BNO08x::data_available() that a new report has arrived.
 
- Protected Attributes inherited from BNO08xRpt
uint8_t ID
 Report ID, ex. SH2_ACCELERATION.
 
EventBits_t rpt_bit
 Respective enable and data bit for report in evt_grp_rpt_en and evt_grp_rpt_data.
 
uint32_t period_us
 The period/interval of the report in microseconds.
 
BNO08xPrivateTypes::bno08x_sync_ctx_tsync_ctx
 
- Static Protected Attributes inherited from BNO08xRpt
static const constexpr float RAD_2_DEG
 Constant for radian to degree conversions, sed in quaternion to euler function conversions.
 
static const constexpr char * TAG = "BNO08xRpt"
 

Detailed Description

Class to represent step counter reports. (See Ref. Manual 6.5.29)

Constructor & Destructor Documentation

◆ BNO08xRptStepCounter()

BNO08xRptStepCounter::BNO08xRptStepCounter ( uint8_t ID,
EventBits_t rpt_bit,
BNO08xPrivateTypes::bno08x_sync_ctx_t * sync_ctx )
inline

Member Function Documentation

◆ enable()

bool BNO08xRptStepCounter::enable ( uint32_t time_between_reports,
sh2_SensorConfig_t sensor_cfg = BNO08xPrivateTypes::default_sensor_cfg )
overridevirtual

Enables step counter reports such that the BNO08x begins sending them.

Parameters
report_period_usThe period/interval of the report in microseconds.
sensor_cfgSensor special configuration (optional, see BNO08xPrivateTypes::default_sensor_cfg for defaults).
Returns
True if report was successfully enabled.

Implements BNO08xRpt.

Here is the call graph for this function:

◆ get()

bno08x_step_counter_t BNO08xRptStepCounter::get ( )

Grabs most recent step counter data (rollover not accounted for in step count, just most recent report data).

Returns
Struct containing requested data.
Here is the call graph for this function:

◆ get_total_steps()

uint32_t BNO08xRptStepCounter::get_total_steps ( )

Grabs the total step count since boot, accounts for rollover in report data.

Returns
Total steps since boot.
Here is the call graph for this function:

◆ update_data()

void BNO08xRptStepCounter::update_data ( sh2_SensorValue_t * sensor_val)
overrideprivatevirtual

Updates step counter data from decoded sensor event.

Parameters
sensor_valThe sh2_SensorValue_t struct used in sh2_decodeSensorEvent() call.
Returns
void, nothing to return

Implements BNO08xRpt.

Here is the call graph for this function:

Member Data Documentation

◆ data

bno08x_step_counter_t BNO08xRptStepCounter::data
private

Most recent report data, doesn't account for step rollover.

◆ step_accumulator

uint32_t BNO08xRptStepCounter::step_accumulator
private
Initial value:
=
0UL

Every time step count rolls over, the previous steps are accumulated here such that the total steps can always be calculated.

◆ TAG

const constexpr char* BNO08xRptStepCounter::TAG = "BNO08xRptStepCounter"
staticconstexprprivate

The documentation for this class was generated from the following files: