55class SuplaSrpc :
public ProtocolLayer {
57 static bool isSuplaSSLEnabled;
64 void onInit()
override;
65 bool onLoadConfig()
override;
66 bool verifyConfig()
override;
67 bool isEnabled()
override;
68 void disconnect()
override;
69 bool iterate(uint32_t _millis)
override;
70 bool isNetworkRestartRequested()
override;
71 uint32_t getConnectionFailTime()
override;
72 bool isRegisteredAndReady()
override;
75 void sendActionTrigger(uint8_t channelNumber, uint32_t actionId)
override;
76 void sendRegisterNotification(
78 bool sendNotification(
int context,
81 int soundId)
override;
83 void getUserLocaltime()
override;
84 void sendChannelValueChanged(uint8_t channelNumber, int8_t *value,
85 uint8_t offline, uint32_t validityTimeSec)
override;
86 void sendExtendedChannelValueChanged(uint8_t channelNumber,
89 void getChannelConfig(uint8_t channelNumber, uint8_t configType)
override;
90 bool setChannelConfig(uint8_t channelNumber,
91 _supla_int_t channelFunction,
void *channelConfig,
int size,
92 uint8_t configType)
override;
95 bool setInitialCaption(uint8_t channelNumber,
const char *caption)
override;
96 void sendRemainingTimeValue(uint8_t channelNumber,
99 int32_t senderId)
override;
100 void sendRemainingTimeValue(uint8_t channelNumber,
101 uint32_t remainingTime,
102 unsigned char state[SUPLA_CHANNELVALUE_SIZE],
104 bool useSecondsInsteadOfMs)
override;
108 void onRegisterResultB(
111 void setActivityTimeout(uint32_t activityTimeoutSec);
112 uint32_t getActivityTimeout();
113 void updateLastResponseTime();
114 void updateLastSentTime();
116 void sendChannelStateResult(int32_t receiverId, uint8_t channelNo)
override;
118 void setServerPort(
int value);
119 void setVersion(
int value);
120 void setSuplaCACert(
const char *);
121 void setSupla3rdPartyCACert(
const char *);
122 const char* getSuplaCACert();
123 const char* getSupla3rdPartyCACert();
124 bool isUpdatePending()
override;
130 void sendPendingCalCfgResult(int16_t channelNo,
134 void *data =
nullptr);
136 void clearPendingCalCfgResult(int16_t channelNo);
138 static const char *configResultToCStr(
int result);
140 void setChannelConflictResolver(
145 void initializeSrpc();
146 void deinitializeSrpc();
147 void addLastStateAdError(
char *buf);
150 uint8_t activityTimeoutS = 30;
151 uint8_t securityLevel = 0;
152 int8_t registered = 0;
153 bool requestNetworkRestart =
false;
155 bool setDeviceConfigReceivedAfterRegistration =
false;
156 bool firstConnectionAttempt =
true;
157 bool adErrorLogged =
false;
158 uint8_t autodiscoverRetryCounter = 0;
159 uint16_t connectionFailCounter = 0;
161 uint32_t lastPingTimeMs = 0;
162 uint32_t waitForIterate = 0;
163 uint32_t lastIterateTime = 0;
164 uint32_t lastResponseMs = 0;
165 uint32_t lastSentMs = 0;
169 const char *suplaCACert =
nullptr;
170 const char *supla3rdPartyCACert =
nullptr;
171 const char *selectedCertificate =
nullptr;
172 void *srpc =
nullptr;