59class SuplaSrpc :
public ProtocolLayer {
61 static bool isSuplaSSLEnabled;
68 void onInit()
override;
69 bool onLoadConfig()
override;
70 bool verifyConfig()
override;
71 bool isEnabled()
override;
72 void disconnect()
override;
73 bool iterate(uint32_t _millis)
override;
74 bool isNetworkRestartRequested()
override;
75 uint32_t getConnectionFailTime()
override;
76 bool isRegisteredAndReady()
override;
79 void sendActionTrigger(uint8_t channelNumber, uint32_t actionId)
override;
80 void sendRegisterNotification(
82 bool sendNotification(
int context,
85 int soundId)
override;
87 void getUserLocaltime()
override;
88 void sendChannelValueChanged(uint8_t channelNumber, int8_t *value,
89 uint8_t offline, uint32_t validityTimeSec)
override;
90 void sendExtendedChannelValueChanged(uint8_t channelNumber,
93 void getChannelConfig(uint8_t channelNumber, uint8_t configType)
override;
94 bool setChannelConfig(uint8_t channelNumber,
95 _supla_int_t channelFunction,
void *channelConfig,
int size,
96 uint8_t configType)
override;
99 bool setInitialCaption(uint8_t channelNumber,
const char *caption)
override;
100 void sendRemainingTimeValue(uint8_t channelNumber,
103 int32_t senderId)
override;
104 void sendRemainingTimeValue(uint8_t channelNumber,
105 uint32_t remainingTime,
106 unsigned char state[SUPLA_CHANNELVALUE_SIZE],
108 bool useSecondsInsteadOfMs)
override;
112 void onRegisterResultB(
115 void setActivityTimeout(uint32_t activityTimeoutSec);
116 uint32_t getActivityTimeout();
117 void updateLastResponseTime();
118 void updateLastSentTime();
120 void sendChannelStateResult(int32_t receiverId, uint8_t channelNo)
override;
122 void setServerPort(
int value);
123 void setVersion(
int value);
124 void setSuplaCACert(
const char *);
125 void setSupla3rdPartyCACert(
const char *);
126 const char* getSuplaCACert()
const;
127 const char* getSupla3rdPartyCACert()
const;
128 bool isUpdatePending()
override;
134 void sendPendingCalCfgResult(int16_t channelNo,
138 void *data =
nullptr);
140 void clearPendingCalCfgResult(int16_t channelNo, int32_t command = -1);
142 static const char *configResultToCStr(
int result);
144 void setChannelConflictResolver(
149 void initializeSrpc();
150 void deinitializeSrpc();
151 void addLastStateAdError(
char *buf);
154 uint8_t activityTimeoutS = 30;
155 uint8_t securityLevel = 0;
156 int8_t registered = 0;
157 bool requestNetworkRestart =
false;
159 bool setDeviceConfigReceivedAfterRegistration =
false;
160 bool firstConnectionAttempt =
true;
161 bool adErrorLogged =
false;
162 uint8_t autodiscoverRetryCounter = 0;
163 uint16_t connectionFailCounter = 0;
165 uint32_t lastPingTimeMs = 0;
166 uint32_t waitForIterate = 0;
167 uint32_t lastIterateTime = 0;
168 uint32_t lastResponseMs = 0;
169 uint32_t lastSentMs = 0;
173 const char *suplaCACert =
nullptr;
174 const char *supla3rdPartyCACert =
nullptr;
175 const char *selectedCertificate =
nullptr;
176 void *srpc =
nullptr;
180 void handlePendingCalCfgTimeouts(uint32_t _millis);