* Consolidate SHTs into one class * Remove separate SHT imports * Create one single SHTXX sensor type * Let the SHTXXSensor class handle variant detection * Minor logging improvements * Add functions to set accuracy on SHT3X and SHT4X * Fix variable init in constructor * Add bus to SHT sensor init * Update src/modules/Telemetry/Sensor/SHTXXSensor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/modules/Telemetry/Sensor/SHTXXSensor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix accuracy conditions on SHTXX Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Merge upstream * Add SHT2X detection on 0x40 * Read second part of SHT2X serial number --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
29 lines
918 B
C++
29 lines
918 B
C++
#include "configuration.h"
|
|
|
|
#if !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && __has_include(<SHTSensor.h>)
|
|
|
|
#include "../mesh/generated/meshtastic/telemetry.pb.h"
|
|
#include "TelemetrySensor.h"
|
|
#include <SHTSensor.h>
|
|
|
|
class SHTXXSensor : public TelemetrySensor
|
|
{
|
|
private:
|
|
SHTSensor sht;
|
|
TwoWire *_bus{};
|
|
uint8_t _address{};
|
|
SHTSensor::SHTAccuracy accuracy{};
|
|
bool setAccuracy(SHTSensor::SHTAccuracy newAccuracy);
|
|
|
|
public:
|
|
SHTXXSensor();
|
|
virtual bool getMetrics(meshtastic_Telemetry *measurement) override;
|
|
virtual bool initDevice(TwoWire *bus, ScanI2C::FoundDevice *dev) override;
|
|
void getSensorVariant(SHTSensor::SHTSensorType);
|
|
const char *sensorVariant{};
|
|
|
|
AdminMessageHandleResult handleAdminMessage(const meshtastic_MeshPacket &mp, meshtastic_AdminMessage *request,
|
|
meshtastic_AdminMessage *response) override;
|
|
};
|
|
|
|
#endif |