| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #pragma once
- #include <stdint.h>
- #include "esp_err.h"
- #include "hal/temperature_sensor_types.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @brief Type of temperature sensor driver handle
- */
- typedef struct temperature_sensor_obj_t *temperature_sensor_handle_t;
- /**
- * @brief Configuration of measurement range for the temperature sensor.
- *
- * @note If you see the log `the boundary you gave cannot meet the range of internal temperature sensor`. You may need to refer to
- * predefined range listed doc ``api-reference/peripherals/Temperature sensor``.
- */
- typedef struct {
- int range_min; /**< the minimum value of the temperature you want to test */
- int range_max; /**< the maximum value of the temperature you want to test */
- temperature_sensor_clk_src_t clk_src; /**< the clock source of the temperature sensor. */
- } temperature_sensor_config_t;
- /**
- * @brief temperature_sensor_config_t default constructure
- */
- #define TEMPERAUTRE_SENSOR_CONFIG_DEFAULT(min, max) \
- { \
- .range_min = min, \
- .range_max = max, \
- .clk_src = TEMPERATURE_SENSOR_CLK_SRC_DEFAULT, \
- }
- /**
- * @brief Install temperature sensor driver
- *
- * @param tsens_config Pointer to config structure.
- * @param ret_tsens Return the pointer of temperature sensor handle.
- * @return
- * - ESP_OK if succeed
- */
- esp_err_t temperature_sensor_install(const temperature_sensor_config_t *tsens_config, temperature_sensor_handle_t *ret_tsens);
- /**
- * @brief Uninstall the temperature sensor driver
- *
- * @param tsens The handle created by `temperature_sensor_install()`.
- * @return
- * - ESP_OK if succeed.
- */
- esp_err_t temperature_sensor_uninstall(temperature_sensor_handle_t tsens);
- /**
- * @brief Enable the temperature sensor
- *
- * @param tsens The handle created by `temperature_sensor_install()`.
- * @return
- * - ESP_OK Success
- * - ESP_ERR_INVALID_STATE if temperature sensor is enabled already.
- */
- esp_err_t temperature_sensor_enable(temperature_sensor_handle_t tsens);
- /**
- * @brief Disable temperature sensor
- *
- * @param tsens The handle created by `temperature_sensor_install()`.
- * @return
- * - ESP_OK Success
- * - ESP_ERR_INVALID_STATE if temperature sensor is not enabled yet.
- */
- esp_err_t temperature_sensor_disable(temperature_sensor_handle_t tsens);
- /**
- * @brief Read temperature sensor data that is converted to degrees Celsius.
- * @note Should not be called from interrupt.
- *
- * @param tsens The handle created by `temperature_sensor_install()`.
- * @param out_celsius The measure output value.
- * @return
- * - ESP_OK Success
- * - ESP_ERR_INVALID_ARG invalid arguments
- * - ESP_ERR_INVALID_STATE Temperature sensor is not enabled yet.
- * - ESP_FAIL Parse the sensor data into ambient temperature failed (e.g. out of the range).
- */
- esp_err_t temperature_sensor_get_celsius(temperature_sensor_handle_t tsens, float *out_celsius);
- #ifdef __cplusplus
- }
- #endif
|