49 static bool isSuplaSSLEnabled;
56 void onInit()
override;
57 bool onLoadConfig()
override;
58 bool verifyConfig()
override;
59 bool isEnabled()
override;
60 void disconnect()
override;
61 bool iterate(uint32_t _millis)
override;
62 bool isNetworkRestartRequested()
override;
63 uint32_t getConnectionFailTime()
override;
64 ConnectionError getConnectionError()
const override;
65 bool isRegisteredAndReady()
override;
68 void sendActionTrigger(uint8_t channelNumber, uint32_t actionId)
override;
69 void sendRegisterNotification(
71 bool sendNotification(
int context,
74 int soundId)
override;
76 void getUserLocaltime()
override;
77 void sendChannelValueChanged(uint8_t channelNumber,
80 uint32_t validityTimeSec)
override;
81 void sendExtendedChannelValueChanged(
84 void getChannelConfig(uint8_t channelNumber, uint8_t configType)
override;
85 bool setChannelConfig(uint8_t channelNumber,
86 _supla_int_t channelFunction,
89 uint8_t configType)
override;
92 bool setInitialCaption(uint8_t channelNumber,
const char *caption)
override;
93 void sendRemainingTimeValue(uint8_t channelNumber,
96 int32_t senderId)
override;
97 void sendRemainingTimeValue(uint8_t channelNumber,
98 uint32_t remainingTime,
99 unsigned char state[SUPLA_CHANNELVALUE_SIZE],
101 bool useSecondsInsteadOfMs)
override;
105 void onRegisterResultB(
107 void onDeviceSyncDone();
109 void setActivityTimeout(uint32_t activityTimeoutSec);
110 uint32_t getActivityTimeout();
111 void updateLastResponseTime();
112 void updateLastSentTime();
114 void sendChannelStateResult(int32_t receiverId, uint8_t channelNo)
override;
116 void setServerPort(
int value);
117 void setVersion(
int value);
118 bool hasWriteFailure()
const;
119 void markWriteFailure();
120 void setSuplaCACert(
const char *);
121 void setSupla3rdPartyCACert(
const char *);
122 const char *getSuplaCACert()
const;
123 const char *getSupla3rdPartyCACert()
const;
124 void setLowLevelDebugLogs(
bool value);
125 bool isUpdatePending()
override;
131 void sendPendingCalCfgResult(int16_t channelNo,
135 void *data =
nullptr);
136 void sendPendingCalCfgResultForCommand(int16_t channelNo,
138 int32_t pendingCommand,
139 int32_t responseCommand,
141 void *data =
nullptr);
142 void sendCalCfgResult(int32_t receiverId,
147 void *data =
nullptr);
149 void clearPendingCalCfgResult(int16_t channelNo, int32_t command = -1);
150 void clearPendingCalCfgTimeout(int16_t channelNo, int32_t command = -1);
152 static const char *configResultToCStr(
int result);
154 void setChannelConflictResolver(
157#if SUPLA_SRPC_PACKET_LOG_ENABLED && !defined(SUPLA_DISABLE_LOGS)
158 static void onPacketSent(
void *srpcHandle,
159 unsigned _supla_int_t callId,
161 unsigned _supla_int_t dataSize,
163 static void onPacketReceived(
void *srpcHandle,
164 unsigned _supla_int_t callId,
166 unsigned _supla_int_t dataSize,
168 void logSrpcPacket(
bool send,
int callId,
const uint8_t *buf,
size_t size);
169 static const char *callIdToName(
int callId);
170 static bool isSensitiveCallId(
int callId);
175 void scheduleReconnect(uint32_t now);
176 void initializeSrpc();
177 void deinitializeSrpc();
178 void addLastStateAdError(
char *buf);
181 uint8_t activityTimeoutS = 30;
182 uint8_t securityLevel = 0;
183 int8_t registered = 0;
184 bool requestNetworkRestart =
false;
186 bool setDeviceConfigReceivedAfterRegistration =
false;
187 bool deviceSyncDoneReceived =
false;
188 bool firstConnectionAttempt =
true;
189 bool adErrorLogged =
false;
190 bool writeFailure =
false;
191 uint8_t autodiscoverRetryCounter = 0;
192 uint16_t connectionFailCounter = 0;
193 uint8_t reconnectAttemptCounter = 0;
195 uint32_t lastPingTimeMs = 0;
196 uint32_t waitForIterate = 0;
197 uint32_t lastIterateTime = 0;
198 uint32_t lastResponseMs = 0;
199 uint32_t lastSentMs = 0;
203 const char *suplaCACert =
nullptr;
204 const char *supla3rdPartyCACert =
nullptr;
205 const char *selectedCertificate =
nullptr;
206 void *srpc =
nullptr;
210 void handlePendingCalCfgTimeouts(uint32_t _millis);
212 bool versionErrorDisconnectPending =
false;