supla-device
Loading...
Searching...
No Matches
SuplaDeviceClass Class Reference
Inheritance diagram for SuplaDeviceClass:
Collaboration diagram for SuplaDeviceClass:

Public Member Functions

void fillStateData (TDSC_ChannelState *channelState) const
 
void addClock (Supla::Clock *clock)
 
Supla::ClockgetClock () const
 
bool begin (const char GUID[SUPLA_GUID_SIZE], const char *Server, const char *email, const char authkey[SUPLA_AUTHKEY_SIZE], unsigned char protoVersion=23)
 
bool begin (unsigned char protoVersion=23)
 
void setName (const char *Name)
 
void setGUID (const char GUID[SUPLA_GUID_SIZE])
 
void setAuthKey (const char authkey[SUPLA_AUTHKEY_SIZE])
 
void setEmail (const char *email)
 
void setServer (const char *server)
 
void setSwVersion (const char *)
 
void setManufacturerId (int16_t)
 
void setProductId (int16_t)
 
void addFlags (int32_t)
 
void removeFlags (int32_t)
 
bool isSleepingDeviceEnabled () const
 
int generateHostname (char *, int macSize=6)
 
void onTimer (void)
 
void onFastTimer (void)
 
void iterate (void)
 
void status (int status, const __FlashStringHelper *msg, bool alwaysLog=false)
 
void setStatusFuncImpl (_impl_arduino_status impl_arduino_status)
 
void setServerPort (int value)
 
int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request, TDS_DeviceCalCfgResult *result=nullptr)
 
void enterConfigMode ()
 
void leaveConfigModeWithoutRestart ()
 
void enterNormalMode ()
 
void scheduleSoftRestart (int timeout=0)
 
void scheduleProtocolsRestart (int timeout=0)
 
void softRestart ()
 
void saveStateToStorage ()
 
void restartCfgModeTimeout (bool requireRestart)
 
void resetToFactorySettings ()
 
void disableLocalActionsIfNeeded ()
 
void requestCfgMode ()
 
int8_t getCurrentStatus () const
 
bool loadDeviceConfig ()
 
bool prepareLastStateLog ()
 
char * getLastStateLog ()
 
void addLastStateLog (const char *)
 
void enableLastStateLog ()
 
void disableLastStateLog ()
 
void setRsaPublicKeyPtr (const uint8_t *ptr)
 
const uint8_t * getRsaPublicKey () const
 
enum Supla::DeviceMode getDeviceMode () const
 
void setActivityTimeout (_supla_int_t newActivityTimeout)
 
uint32_t getActivityTimeout ()
 
void handleAction (int event, int action) override
 
void setAutomaticResetOnConnectionProblem (unsigned int timeSec)
 
void setLastStateLogger (Supla::Device::LastStateLogger *logger)
 
void setSuplaCACert (const char *)
 
void setSupla3rdPartyCACert (const char *)
 
const char * getSuplaCACert () const
 
Supla::Protocol::SuplaSrpcgetSrpcLayer ()
 
void setCustomHostnamePrefix (const char *prefix)
 
void enableNetwork ()
 
void disableNetwork ()
 
bool getStorageInitResult ()
 
bool isSleepingAllowed ()
 
void allowWorkInOfflineMode (int mode=1)
 Allows device to work in offline mode DEPRECATED: use setInitialMode() instead.
 
void setInitialMode (Supla::InitialMode mode)
 Sets the initial mode of the device.
 
Supla::InitialMode getInitialMode () const
 Returns the initial mode of the device @See Supla::InitialMode.
 
bool isRemoteDeviceConfigEnabled () const
 Checks if remote device configuration is enabled.
 
void setShowUptimeInChannelState (bool value)
 Sets if "uptime" should be added to channel state (i)
 
void setProtoVerboseLog (bool value)
 Enables/disables verbose logging of Supla protocol.
 
Supla::MutexgetTimerAccessMutex ()
 
void setChannelConflictResolver (Supla::Device::ChannelConflictResolver *resolver)
 
void setSubdevicePairingHandler (Supla::Device::SubdevicePairingHandler *handler)
 
void setMacLengthInHostname (int value)
 
void setStatusLed (Supla::Device::StatusLed *led)
 
void setLeaveCfgModeAfterInactivityMin (int valueMin)
 Sets the leave configuration mode after inactivity timeout in minutes.
 
bool isLeaveCfgModeAfterInactivityEnabled () const
 Checks if leave configuration mode after inactivity is enabled.
 
bool isAutomaticFirmwareUpdateEnabled () const
 Checks if automatic firmware update is supported.
 
void setAutomaticFirmwareUpdateSupported (bool value)
 Sets automatic firmware update support.
 
void identifyStatusLed ()
 Triggers "identify" action on status LED.
 
void testStepStatusLed (int times)
 Triggers special status LED flashing sequence based on provided "times".
 
void addSecurityLog (uint32_t source, const char *log) const
 Adds security log.
 
void addSecurityLog (Supla::SecurityLogSource source, const char *log) const
 Adds security log.
 
void setSecurityLogger (Supla::Device::SecurityLogger *logger)
 Sets instance of Supla::Device::SecurityLogger.
 
bool isSecurityLogEnabled () const
 Checks if security log is enabled.
 
- Public Member Functions inherited from Supla::ActionHandler
virtual void activateAction (int action)
 
virtual bool deleteClient ()
 
virtual ActionHandlergetRealClient ()
 
- Public Member Functions inherited from Supla::LocalAction
virtual void addAction (uint16_t action, ActionHandler &client, uint16_t event, bool alwaysEnabled=false)
 
virtual void addAction (uint16_t action, ActionHandler *client, uint16_t event, bool alwaysEnabled=false)
 
virtual void runAction (uint16_t event) const
 
virtual bool isEventAlreadyUsed (uint16_t event, bool ignoreAlwaysEnabled)
 
virtual ActionHandlerClientgetHandlerForFirstClient (uint16_t event)
 
virtual ActionHandlerClientgetHandlerForClient (ActionHandler *client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler *client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler *client, uint16_t event)
 
virtual void disableAction (int32_t action, ActionHandler *client, int32_t event)
 
virtual void enableAction (int32_t action, ActionHandler *client, int32_t event)
 
virtual bool disableActionsInConfigMode ()
 

Public Attributes

Supla::Uptime uptime
 

Protected Member Functions

void iterateSwUpdate ()
 Performs software update if needed.
 
bool initSwUpdateInstance (bool performUpdate, int securityOnly=-1)
 Initializes SW update instance.
 
void iterateAlwaysElements (uint32_t _millis)
 
bool iterateNetworkSetup ()
 
bool iterateSuplaProtocol (uint32_t _millis)
 
void handleLocalActionTriggers ()
 
void checkIfLeaveCfgModeOrRestartIsNeeded ()
 
void createSrpcLayerIfNeeded ()
 
void setupDeviceMode ()
 

Protected Attributes

uint32_t networkIsNotReadyCounter = 0
 
uint32_t deviceRestartTimeoutTimestamp = 0
 
uint32_t protocolRestartTimeoutTimestamp = 0
 
uint32_t waitForIterate = 0
 
uint32_t lastIterateTime = 0
 
uint32_t enterConfigModeTimestamp = 0
 
uint32_t forceRestartTimeMs = 0
 
uint32_t protocolRestartTimeMs = 0
 
uint32_t resetOnConnectionFailTimeoutSec = 0
 
uint32_t lastSwUpdateCheckTimestamp = 0
 
enum Supla::DeviceMode deviceMode = Supla::DEVICE_MODE_NOT_SET
 
bool triggerResetToFactorySettings = false
 
bool triggerStartLocalWebServer = false
 
bool triggerStopLocalWebServer = false
 
bool triggerCheckSwUpdate = false
 
bool requestNetworkLayerRestart = false
 
bool isNetworkSetupOk = false
 
bool skipNetwork = false
 
bool storageInitResult = false
 
bool showUptimeInChannelState = true
 
bool lastStateLogEnabled = true
 
bool initializationDone = false
 
bool goToConfigModeAsap = false
 
bool triggerSwUpdateIfAvailable = false
 
uint8_t leaveCfgModeAfterInactivityMin = 5
 
uint8_t macLengthInHostname = 6
 
int8_t currentStatus = STATUS_UNKNOWN
 
Supla::InitialMode initialMode = Supla::InitialMode::StartInNotConfiguredMode
 
Supla::CfgModeState cfgModeState = Supla::CfgModeState::NotSet
 
Supla::ConfigurationState configurationState = {}
 
Supla::Protocol::SuplaSrpcsrpcLayer = nullptr
 
Supla::Device::SwUpdateswUpdate = nullptr
 
Supla::ElementiterateConnectedPtr = nullptr
 
Supla::Device::LastStateLoggerlastStateLogger = nullptr
 
Supla::MutextimerAccessMutex = nullptr
 
Supla::Device::SubdevicePairingHandlersubdevicePairingHandler = nullptr
 
Supla::Device::StatusLedstatusLed = nullptr
 
Supla::Device::SecurityLoggersecurityLogger = nullptr
 
const uint8_t * rsaPublicKey = nullptr
 
char * customHostnamePrefix = nullptr
 
_impl_arduino_status impl_arduino_status = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from Supla::LocalAction
static void DeleteActionsHandledBy (const ActionHandler *client)
 
static void DeleteActionsTriggeredBy (const LocalAction *action)
 
static void NullifyActionsHandledBy (const ActionHandler *client)
 
static ActionHandlerClientgetClientListPtr ()
 

Member Function Documentation

◆ addSecurityLog() [1/2]

void SuplaDeviceClass::addSecurityLog ( Supla::SecurityLogSource source,
const char * log ) const

Adds security log.

It requires instance of Supla::Device::SecurityLogger to be added earlier by calling setSecurityLogger

Parameters
sourcesource of security log
loglog text (max 52 B)

◆ addSecurityLog() [2/2]

void SuplaDeviceClass::addSecurityLog ( uint32_t source,
const char * log ) const

Adds security log.

It requires instance of Supla::Device::SecurityLogger to be added earlier by calling setSecurityLogger

Parameters
sourcesource of security log, i.e. IP address. Values < 10 have special meaning
loglog text (max 52 B)

◆ allowWorkInOfflineMode()

void SuplaDeviceClass::allowWorkInOfflineMode ( int mode = 1)

Allows device to work in offline mode DEPRECATED: use setInitialMode() instead.

Parameters
mode1 - offline mode with empty config, but communication protocols may be enabled 2 - offline mode only with empty config and communication protocols disabled 0 - no offline mode

◆ getInitialMode()

Supla::InitialMode SuplaDeviceClass::getInitialMode ( ) const
inline

Returns the initial mode of the device @See Supla::InitialMode.

Returns
the initial mode

◆ handleAction()

void SuplaDeviceClass::handleAction ( int event,
int action )
overridevirtual

Implements Supla::ActionHandler.

◆ initSwUpdateInstance()

bool SuplaDeviceClass::initSwUpdateInstance ( bool performUpdate,
int securityOnly = -1 )
protected

Initializes SW update instance.

Parameters
performUpdatetrue to perform SW update, false to check for update
securityOnly0 to check for all updates, 1 to check for security updates, -1 will use value from device config
Returns
true if SW update instance was initialized

◆ isAutomaticFirmwareUpdateEnabled()

bool SuplaDeviceClass::isAutomaticFirmwareUpdateEnabled ( ) const

Checks if automatic firmware update is supported.

Returns
true if automatic update is supported

◆ isLeaveCfgModeAfterInactivityEnabled()

bool SuplaDeviceClass::isLeaveCfgModeAfterInactivityEnabled ( ) const

Checks if leave configuration mode after inactivity is enabled.

It requires leaveCfgModeAfterInactivityMin > 0 and initialMode to be set to: StartWithCfgModeThenOffline, StartOffline, StartInNotConfiguredMode

Returns
true if function is enabled

◆ isRemoteDeviceConfigEnabled()

bool SuplaDeviceClass::isRemoteDeviceConfigEnabled ( ) const

Checks if remote device configuration is enabled.

Returns
true if remote device configuration is enabled

◆ isSecurityLogEnabled()

bool SuplaDeviceClass::isSecurityLogEnabled ( ) const

Checks if security log is enabled.

Returns
true if security log is enabled

◆ setAutomaticFirmwareUpdateSupported()

void SuplaDeviceClass::setAutomaticFirmwareUpdateSupported ( bool value)

Sets automatic firmware update support.

Parameters
valuetrue to enable, false to disable

◆ setInitialMode()

void SuplaDeviceClass::setInitialMode ( Supla::InitialMode mode)

Sets the initial mode of the device.

This defines the behavior when the device starts up with factory defaults (missing configuration). @See Supla::InitialMode

Parameters
modethe initial mode

◆ setLeaveCfgModeAfterInactivityMin()

void SuplaDeviceClass::setLeaveCfgModeAfterInactivityMin ( int valueMin)

Sets the leave configuration mode after inactivity timeout in minutes.

Device will automatically leave configuration mode after specified inactivity timeout (no HTTP GET/POST requests).

Parameters
valueMininactivity timeout in minutes. Use 0 to disable

◆ setProtoVerboseLog()

void SuplaDeviceClass::setProtoVerboseLog ( bool value)

Enables/disables verbose logging of Supla protocol.

Parameters
valuetrue to enable verbose logging

◆ setSecurityLogger()

void SuplaDeviceClass::setSecurityLogger ( Supla::Device::SecurityLogger * logger)

Sets instance of Supla::Device::SecurityLogger.

Parameters
logger

◆ setShowUptimeInChannelState()

void SuplaDeviceClass::setShowUptimeInChannelState ( bool value)

Sets if "uptime" should be added to channel state (i)

Parameters
valuetrue if "uptime" should be added

◆ testStepStatusLed()

void SuplaDeviceClass::testStepStatusLed ( int times)

Triggers special status LED flashing sequence based on provided "times".

Parameters
timesnumber of times to flash

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