diff --git a/src/SensorBHI260AP.cpp b/src/SensorBHI260AP.cpp index 268801a..2990b07 100644 --- a/src/SensorBHI260AP.cpp +++ b/src/SensorBHI260AP.cpp @@ -716,6 +716,15 @@ void SensorBHI260AP::setUpdateProcessCallback(ProcessCallback callback, void *us _process_callback = callback; } +/** + * @brief availableSensorNums + * @note Get the number of available sensors + * @retval available sensors + */ +const uint8_t SensorBHI260AP::availableSensorNums() +{ + return _sensor_available_nums; +} /** * @brief bootFromFlash @@ -1094,6 +1103,7 @@ bool SensorBHI260AP::initImpl(bhy2_intf interface) // Only register valid sensor IDs for (uint8_t i = 0; i < BHY2_SENSOR_ID_MAX; i++) { if (bhy2_is_sensor_available(i, _bhy2.get())) { + _sensor_available_nums++; bhy2_register_fifo_parse_callback(i, BoschParseStatic::parseData, this, _bhy2.get()); } } diff --git a/src/SensorBHI260AP.hpp b/src/SensorBHI260AP.hpp index a227230..f36ba8e 100644 --- a/src/SensorBHI260AP.hpp +++ b/src/SensorBHI260AP.hpp @@ -464,6 +464,13 @@ class SensorBHI260AP : public BoschVirtualSensor, BoschParseBase */ void setUpdateProcessCallback(ProcessCallback callback, void *user_data = nullptr); + /** + * @brief availableSensorNums + * @note Get the number of available sensors + * @retval available sensors + */ + const uint8_t availableSensorNums(); + protected: void parseData(const struct bhy2_fifo_parse_data_info *fifo, void *user_data) override; @@ -508,6 +515,7 @@ class SensorBHI260AP : public BoschVirtualSensor, BoschParseBase SensorEventCallback _event_callback; SensorDebugMessageCallback _debug_callback; BoschParseCallbackManager _callback_manager; + uint8_t _sensor_available_nums; char _err_buffer[128]; };