# esp32_BNO08x: BNO08xRptStepCounter Class Reference

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:
[legend]
Collaboration diagram for BNO08xRptStepCounter:
[legend]

## 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_t * | sync_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_us | The period/interval of the report in microseconds.
  sensor_cfg | Sensor 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_val | The 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:

- include/report/BNO08xRptStepCounter.hpp
- source/report/BNO08xRptStepCounter.cpp