Prosba o dokumentacje + inne sprawy

User avatar
pzygmunt
Posts: 19474
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Tak wygląda zapis:

https://github.com/SUPLA/supla-espressi ... b20.c#L208

Tak odczytujesz
double temp;
memcpy(&temp, value, sizeof(double));
djack2017
Posts: 708
Joined: Mon Nov 27, 2017 7:36 am

Post

Wiem, to wszystko już przerabiałem. Chcę zmodyfikować nieco procedurę
w samym module supla_esp_devconn.c W poszczególnych komórkach value[8] są niejasne dla mnie wpisy
Chcę to na coś przekodować np na int (value*1000)
Jacek
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
pzygmunt
Posts: 19474
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Dla temperatury w value[8] siedzi typ double i takim typem musisz operować.
djack2017
Posts: 708
Joined: Mon Nov 27, 2017 7:36 am

Post

To wiem, ale właśnie nie wiem jak to zrobić w C?
Po prostu nie wiem jak przekonwertować double na np int*1000 (najbardziej mi pasuje).
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
pzygmunt
Posts: 19474
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Co rozumiesz przez int*1000 ? Po prostu chcesz to pomnożyć ?
djack2017
Posts: 708
Joined: Mon Nov 27, 2017 7:36 am

Post

Tak - w wyniku zmienna typu int z wartością przemonożoną przez 1000
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
pzygmunt
Posts: 19474
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

double temp;
memcpy(&temp, value, sizeof(double));

(int)temp * 1000
djack2017
Posts: 708
Joined: Mon Nov 27, 2017 7:36 am

Post

Dzięki, człowiek szuka skomplikowanych funkcji, a tymczasem rozwiązanie jest tak proste.
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
magx2
Posts: 391
Joined: Wed May 17, 2017 1:27 pm

Post

Trochę odświeżę temat.

Mam pytanie odnośnie pingów. Po zarejestrowaniu się urządzenie wysyła do serwera TDCS_SuplaSetActivityTimeout, w którym jest pole activity_timeout określające timeout po jakim serwer ma uznać urządzenie za martwe (sec czy ms?). W odpowiedzi serwer wysyła TSDC_SuplaSetActivityTimeoutResult. W tym proto też jest pole activity_timeout. Mam rozumieć że ono nadpisuje to co wysłało urządzenie? Druga sprawa min i max to są delty od wartości activity_timeout czy osobne wartości, tj. jeżeli mamy activity_timeout = 10 to min=2 i max=3 czy min=12 i max=13?

Druga sprawa to pingi. Co ustalony czas urządzenie wysyła TDCS_SuplaPingServer. O co chodzi w polu timeval? To jest jakiś czas od początku włączenia urządzenia? Po otrzymaniu tego proto serwer powinien odpowiedzieć TSDC_SuplaPingServerResult. I tu pojawia się pytanie czym jest timeval? Czy to jest to samo co serwer dostał w TDCS_SuplaPingServer, czy może jego wewnętrzny czas (czas od startu serwera czy otwarcia socketa do tego urządznia).

Ostatnia sprawa. Swój serwer testuję z ROW-01 od Zamela i w TDCS_SuplaPingServer dostaje same zera:

Code: Select all

SuplaDataPacket{version=5, rrId=3, callType=40, dataSize=8, data=[0, 0, 0, 0, 0, 0, 0, 0]})
Czemu tak się dzieje?
Supla ❤️ Open HAB - https://github.com/magx2/openhab-supla
magx2
Posts: 391
Joined: Wed May 17, 2017 1:27 pm

Post

Miałeś może możliwość zapoznania się z powyższymi pytaniami?
Supla ❤️ Open HAB - https://github.com/magx2/openhab-supla

Return to “Zagadnienia ogólne”