vajera wrote: Wed May 21, 2025 4:11 pm
Cały mechanizm jest dość złożony, bo poza samym parowaniem, dochodzi jeszcze obsługa usuwania kanałów/urządzeń z poziomu Clouda.
Najłatwiej by było, gdybym miał jakiś przykład użycia, ale go jeszcze nie mam

.
Sam SubdevicePairingHandler to klasa do obsługi poleceń parowania z Clouda. Także możesz dodać u siebie coś w stylu:
Code: Select all
class MyPairingHandler : public Supla::Device::SubdevicePairingHandler {
public:
bool startPairing(Supla::Protocol::SuplaSrpc *srpc, TCalCfg_SubdevicePairingResult *result) override;
};
Wskaźnik na srpc służy do tego, aby klasa mogła asynchronicznie odpowiedzieć na parowanie (np. po 50 s daje odpoweidź, że znalazło urzadzenie).
Robi to poleceniem:
Code: Select all
srpc->sendPendingCalCfgResult(-1, SUPLA_CALCFG_RESULT_TRUE, -1,
sizeof(result), &result);
Przy czym "result" to obiekt typu TCalCfg_SubdevicePairingResult (w proto zdefiniowane).
Sam "startParing" też ma wskaźnik an tą strukturę result, którą powinien wypełnić w odpowiedzi na polecenie rozpoczęcia parowania. Tam podaje maksymalny czas "parowania" oraz stan (np. udało się rozpocząć, nie mogę rozpocząć, inne parowanie jest w trakcie itp).