supla-device
Loading...
Searching...
No Matches
Supla::Sensor::MultiDsHandler Class Reference
Inheritance diagram for Supla::Sensor::MultiDsHandler:
Collaboration diagram for Supla::Sensor::MultiDsHandler:

Public Member Functions

 MultiDsHandler (SuplaDeviceClass *sdc, uint8_t pin)
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
double getTemperature (const uint8_t *address) override
 
double getTemperature (uint8_t idx)
 
Supla::Sensor::MultiDsSensorgetThermometer (uint8_t idx)
 
void setUseSynchronousCommunication (bool synchronous)
 Enables or disables synchronous (blocking) temperature conversion.
 
- Public Member Functions inherited from Supla::Sensor::MultiDsHandlerBase
 MultiDsHandlerBase (SuplaDeviceClass *sdc, uint8_t pin)
 
void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc) override
 Method called each time when device successfully registers to Supla server.
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
bool iterateConnected () override
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
 
void onLoadConfig (SuplaDeviceClass *sdc) override
 First method called on element in SuplaDevice.begin().
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
bool startPairing (Supla::Protocol::SuplaSrpc *srpc, TCalCfg_SubdevicePairingResult *result) override
 
bool onChannelConflictReport (uint8_t *channelReport, uint8_t channelReportSize, bool hasConflictInvalidType, bool hasConflictChannelMissingOnServer, bool hasConflictChannelMissingOnDevice) override
 
void setMaxDeviceCount (uint8_t count)
 Sets the maximum number of DS18B20 devices handled by this instance.
 
void setChannelNumberOffset (uint8_t offset)
 Sets the offset for channel number.
 
void setUseSubDevices (bool useSubDevices)
 Sets the channel number offset for paired thermometers.
 
void setPairingTimeout (uint8_t timeout)
 Sets the timeout for the pairing process.
 
void disableSensorsChannelState ()
 Disables channel state in all thermometers managed by this handler.
 
void searchForFirstSensorDuringInitialization ()
 Sets automatic single-sensor initialization mode.
 
- Public Member Functions inherited from Supla::Element
 Element (ElementMode mode=ElementMode::Registered)
 
Elementnext ()
 Returns next Element from the list.
 
virtual void purgeConfig ()
 Removes all configration data related to the element from Storage::Config.
 
virtual void onLoadState ()
 Second method called on element in SuplaDevice.begin().
 
virtual void onSaveState ()
 Method called periodically during SuplaDevice iteration.
 
virtual bool isStateStorageMigrationNeeded () const
 Method called after onInit() to check if state storage migration is needed.
 
virtual bool iterateConnected (void *ptr)
 deprecated
 
virtual void onTimer ()
 Method called on timer interupt.
 
virtual void onFastTimer ()
 Method called on fast timer interupt.
 
virtual void onSoftReset ()
 Method called when device soft restart is triggered.
 
virtual void onDeviceConfigChange (uint64_t fieldBit)
 Method called when device config is changed.
 
virtual int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue)
 Handles "new value" request from server.
 
virtual void fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value)
 Fills TSD_SuplaChannelNewValue based on current state.
 
virtual bool getRemainingCountdownTimerSec (uint32_t *remainingSec) const
 Returns active countdown timer remaining time in seconds.
 
virtual void handleGetChannelState (TDSC_ChannelState *channelState)
 Handles "get channel state (i)" request from server.
 
virtual int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request)
 Handles CALCFG requests from server.
 
virtual uint32_t getCalcfgPendingTimeoutMs (TSD_DeviceCalCfgRequest *request) const
 Returns timeout in milliseconds for CALCFG requests that become pending.
 
virtual uint8_t handleChannelConfig (TSD_ChannelConfig *newChannelConfig, bool local=false)
 Handles "set channel config" request from server.
 
virtual uint8_t handleWeeklySchedule (TSD_ChannelConfig *newWeeklySchedule, bool altSchedule=false, bool local=false)
 Handles "set channel config" with "weekly schedule" type request from server.
 
virtual void handleSetChannelConfigResult (TSDS_SetChannelConfigResult *result)
 Handles "set channel config" reply from server.
 
virtual void handleChannelConfigFinished ()
 Handles "channel config finished" message from server.
 
virtual void handleChannelConfigFinished (int channelNumber)
 Handles "channel config finished" for a specific channel.
 
int getChannelNumber () const
 Returns channel number.
 
int getSecondaryChannelNumber () const
 Returns secondary channel number.
 
virtual bool isOwnerOfSubDeviceId (int subDeviceId) const
 Returns true if element is owner of subDeviceId.
 
virtual const ChannelgetChannel () const
 Returns pointer to main channel.
 
virtual ChannelgetChannel ()
 
virtual const ChannelgetSecondaryChannel () const
 Returns pointer to secondary channel.
 
virtual ChannelgetSecondaryChannel ()
 
const ChannelgetChannelByChannelNumber (int channelNumber) const
 Returns pointer to the channel matching channelNumber.
 
ChannelgetChannelByChannelNumber (int channelNumber)
 
virtual void generateKey (char *output, const char *key) const
 Generates key used for Config.
 
ElementdisableChannelState ()
 Disables channel state (i) function.
 
bool isChannelStateEnabled () const
 Returns true if channel state (i) function is enabled.
 
virtual bool isAnyUpdatePending () const
 Returns true if any update is pending.
 
void setInitialCaption (const char *caption, bool secondaryChannel=false)
 Sets initial caption.
 
bool setDefaultFunction (uint32_t defaultFunction)
 Sets default channel's function.
 
bool setFunction (uint32_t newFunction)
 Sets channel's function.
 
virtual bool setRuntimeFunction (uint32_t newFunction)
 Sets channel's function at runtime.
 
virtual void onFunctionChange (uint32_t currentFunction, uint32_t newFunction)
 Called when channel function changes.
 
- Public Member Functions inherited from Supla::Device::SubdevicePairingHandler
void setPairingObserver (SubdevicePairingObserver *newObserver)
 
- Public Member Functions inherited from Supla::Device::ChannelConflictResolver
void setChannelConflictObserver (ChannelConflictObserver *newObserver)
 

Protected Member Functions

int refreshSensorsCount () override
 
void requestTemperatures () override
 
bool getSensorAddress (uint8_t *address, int index) override
 
- Protected Member Functions inherited from Supla::Sensor::MultiDsHandlerBase
Supla::Sensor::MultiDsSensoraddDevice (uint8_t *deviceAddress, int channelNumber=-1, int subDeviceId=-1)
 
int findFreeSensorSlot () const
 
int findNextFreeSubDeviceId () const
 
int findChannelNumber (int sensorSlot) const
 
- Protected Member Functions inherited from Supla::Device::SubdevicePairingHandler
void notifySubdevicePairingStarted (uint16_t maximumDurationSec)
 
void notifySubdevicePairingFinished (const TCalCfg_SubdevicePairingResult &result)
 
- Protected Member Functions inherited from Supla::Device::ChannelConflictResolver
void notifyChannelConflictResolution (bool handled)
 

Protected Attributes

OneWire oneWire
 
DallasTemperature dallasTemperature
 
- Protected Attributes inherited from Supla::Sensor::MultiDsHandlerBase
SuplaDeviceClasssdc = nullptr
 
MultiDsSensorsensors [MULTI_DS_MAX_DEVICES_COUNT] = {}
 
- Protected Attributes inherited from Supla::Element
bool registeredElement = true
 
ElementnextPtr = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from Supla::Element
static Elementbegin ()
 Returns first Element (based on creation order)
 
static Elementlast ()
 Returns last Element (based on creation order)
 
static ElementgetElementByChannelNumber (int channelNumber)
 Returns Element by channel number.
 
static ElementgetOwnerOfSubDeviceId (int subDeviceId)
 Returns Element which owns given subDeviceId.
 
static bool IsAnyUpdatePending ()
 Checks if any element has pending update for remote server.
 
static void NotifyElementsAboutConfigChange (uint64_t fieldBit)
 Notifies all elements about device config change.
 
static bool IsInvalidPtrSet ()
 When "invalid pointer" is set, previously obtained Element pointer may be invalid.
 
static void ClearInvalidPtr ()
 Clears "invalid pointer" flag.
 
- Static Protected Attributes inherited from Supla::Element
static ElementfirstPtr = nullptr
 
static bool invalidatePtr = false
 

Member Function Documentation

◆ getSensorAddress()

bool Supla::Sensor::MultiDsHandler::getSensorAddress ( uint8_t * address,
int index )
inlineoverrideprotectedvirtual

◆ getTemperature()

double Supla::Sensor::MultiDsHandler::getTemperature ( const uint8_t * address)
inlineoverridevirtual

◆ onInit()

void Supla::Sensor::MultiDsHandler::onInit ( )
inlineoverridevirtual

Third method called on element in SuplaDevice.begin()

Method called during SuplaDevice initialization. I.e. load initial state, initialize pins etc.

Reimplemented from Supla::Element.

◆ refreshSensorsCount()

int Supla::Sensor::MultiDsHandler::refreshSensorsCount ( )
inlineoverrideprotectedvirtual

◆ requestTemperatures()

void Supla::Sensor::MultiDsHandler::requestTemperatures ( )
inlineoverrideprotectedvirtual

◆ setUseSynchronousCommunication()

void Supla::Sensor::MultiDsHandler::setUseSynchronousCommunication ( bool synchronous)
inline

Enables or disables synchronous (blocking) temperature conversion.

By default, DallasTemperature operates in asynchronous mode (false), meaning requestTemperatures() starts the conversion and returns immediately (non-blocking mode). The caller is then responsible for ensuring that enough time has passed before reading the temperature value.

When set to true, requestTemperatures() blocks execution until the DS18B20 conversion is complete (up to 750 ms at 12-bit resolution).

This method is a wrapper for DallasTemperature::setWaitForConversion().


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