W supla-device pojawił się prosty przykład z użyciem KPOP w wariancie "writualny czujnik", czyli ustawiasz jakąkolwiek wartość liczbową i ona leci do serwera. Kod jest na githubie, ale jeszcze nie jest oficjalnie wydany, więc w managerze bibliotek w Arduino tego jeszcze nie ma.
Przykład dla Arduino IDE jest tutaj: https://github.com/SUPLA/supla-device/b ... rement.ino
Cały kod specyficzny dla KPOP sprowadza się do:
Code: Select all
// plik nagłówkowy:
#include <supla/sensor/general_purpose_measurement.h>
// dodajemy wskaźnik do kanału, jako zmienną globalną (aby mieć do niego dostęp w setup i w loop):
Supla::Sensor::GeneralPurposeMeasurement *gpm = nullptr;
// w setup tworzymy instancję kanału:
gpm = new Supla::Sensor::GeneralPurposeMeasurement();
// i przykładowy loop wygląda tak:
void loop() {
SuplaDevice.iterate();
static uint32_t lastTime = 0;
if (millis() - lastTime > 1000) {
lastTime = millis();
// set some new value on gpm:
gpm->setValue(millis() / 1000.0);
}
}
To co wstawiamy do setValue może być dowolną liczbą (typ double), pobieraną z dowolnego źródła.
Starałem się, aby przykład był minimalistyczny. Mamy tutaj aż 4 linijki kodu dotyczące KPOP

Kanał potrafi dużo więcej. Tutaj jest plik nagłówkowy klasy, z metodami, które wspiera KPOP:
https://github.com/SUPLA/supla-device/b ... nel_base.h
Przy setterach jest trochę opisu z tym co one robią. Odpowiednich getterów już nie opisywałem, bo by masło maślane wyszło.
Chętnie odpowiem na wszelkie pytania oraz dam bardziej rozbudowane przykłady, jeśli ktoś jest zainteresowany
