Page 10 of 14
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 12:25 pm
by magx2
Te typy masz gdzieś przypisane do stałych? Coś w stylu type == 1 == TYPE_SWITCH?
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 12:33 pm
by pzygmunt
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 8:34 pm
by magx2
A inne typy poza REALAY jak mapujesz z tablicy bajtów na struktury?
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 8:36 pm
by pzygmunt
Doprecyzuj pytanie
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 8:42 pm
by magx2
Jest np channel type DHT 11. W jakim formacie jest on przesyłany w polu value?
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 8:48 pm
by pzygmunt
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 8:52 pm
by magx2
Ok tylko pytanie dotyczy ogólnego schematu odczytywania każdego typu kanału. Czy masz coś takiego? Czy trzeba za każdym razem "zgadywć"?
Re: Prosba o dokumentacje + inne sprawy
Posted: Sat Aug 12, 2017 9:13 pm
by pzygmunt
Nie mam specyfikacji. Muszę przeglądnąć kod i to spisać. Nie ma wielu kombinacji.
Re: Prosba o dokumentacje + inne sprawy
Posted: Sun Aug 13, 2017 7:29 am
by magx2
Byłoby super!
Re: Prosba o dokumentacje + inne sprawy
Posted: Sun Aug 13, 2017 12:50 pm
by pzygmunt
Urządzenie -> serwer
Dla:
SUPLA_CHANNELTYPE_SENSORNO
SUPLA_CHANNELTYPE_SENSORNC
SUPLA_CHANNELTYPE_RELAYHFD4
SUPLA_CHANNELTYPE_RELAYG5LA1A
SUPLA_CHANNELTYPE_2XRELAYG5LA1A
SUPLA_CHANNELTYPE_RELAY
value[0] = is_hi ? 1 : 0;
W przypadku rolet w value[0] przesyłana jest pozycja w zakresie 0 - 100 (%). -1 to pozycja nieokreślona
Dla:
SUPLA_CHANNELTYPE_THERMOMETERDS18B20
double temp = 22.11;
memcpy(value, &temp, sizeof(double));
wartość -275 uznawana jest za błąd odczytu czujnika lub jego brak lub po prostu jest offline.
Dla:
SUPLA_CHANNELTYPE_DHT11
SUPLA_CHANNELTYPE_DHT22
SUPLA_CHANNELTYPE_DHT21
SUPLA_CHANNELTYPE_AM2302
SUPLA_CHANNELTYPE_AM2301
double temp = 22.112;
double humidity = 30.053;
int t = temp*1000.00;
int h = humidity*1000.00;
memcpy(value, &t, 4);
memcpy(&value[4], &h, 4);
wilgotność o wartości -1 to brak czujnika, błąd lub offline
Dla:
SUPLA_CHANNELTYPE_DIMMER
SUPLA_CHANNELTYPE_RGBLEDCONTROLLER
SUPLA_CHANNELTYPE_DIMMERANDRGBLED
SUPLA_CHANNELTYPE_DISTANCESENSOR
memset(value, 0, SUPLA_CHANNELVALUE_SIZE);
value[0] = brightness;
value[1] = color_brightness;
value[2] = (char)((color & 0x000000FF)); // BLUE
value[3] = (char)((color & 0x0000FF00) >> 8); // GREEN
value[4] = (char)((color & 0x00FF0000) >> 16); // RED
Smartfon -> Serwer -> Urządzenie
Dla:
SUPLA_CHANNELFNC_CONTROLLINGTHEGATEWAYLOCK
SUPLA_CHANNELFNC_CONTROLLINGTHEGATE
SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR
SUPLA_CHANNELFNC_CONTROLLINGTHEDOORLOCK
value[0] = 1; Otwórz/Zamknij
Dla:
SUPLA_CHANNELFNC_CONTROLLINGTHEROLLERSHUTTER
value[0] = 0; Zatrzymaj
value[0] = 1; Zasłoń
value[0] = 2; Odsłoń
Wartość powyżej 10 oznacza procentowe otwarcie czyly 10 == 0%, 110 == 100%
Dla:
SUPLA_CHANNELFNC_POWERSWITCH
SUPLA_CHANNELFNC_LIGHTSWITCH
value[0] = 0; Wyłącz
value[0] = 1; Włącz
Dla:
SUPLA_CHANNELFNC_DIMMER
SUPLA_CHANNELFNC_RGBLIGHTING
SUPLA_CHANNELFNC_DIMMERANDRGBLIGHTING
value.value[0] = brightness;
value.value[1] = color_brightness;
value.value[2] = (char)((color & 0x000000FF)); // BLUE
value.value[3] = (char)((color & 0x0000FF00) >> 8); // GREEN
value.value[4] = (char)((color & 0x00FF0000) >> 16); // RED