Tak wygląda zapis:
https://github.com/SUPLA/supla-espressi ... b20.c#L208
Tak odczytujesz
double temp;
memcpy(&temp, value, sizeof(double));
Prosba o dokumentacje + inne sprawy
-
- Posts: 708
- Joined: Mon Nov 27, 2017 7:36 am
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
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
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
-
- Posts: 19474
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Dla temperatury w value[8] siedzi typ double i takim typem musisz operować.
-
- Posts: 708
- Joined: Mon Nov 27, 2017 7:36 am
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).
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
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
-
- Posts: 19474
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Co rozumiesz przez int*1000 ? Po prostu chcesz to pomnożyć ?
-
- Posts: 708
- Joined: Mon Nov 27, 2017 7:36 am
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
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
-
- Posts: 19474
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
double temp;
memcpy(&temp, value, sizeof(double));
(int)temp * 1000
memcpy(&temp, value, sizeof(double));
(int)temp * 1000
-
- Posts: 708
- Joined: Mon Nov 27, 2017 7:36 am
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
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
-
- Posts: 391
- Joined: Wed May 17, 2017 1:27 pm
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:
Czemu tak się dzieje?
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]})
Supla
Open HAB - https://github.com/magx2/openhab-supla
-
- Posts: 391
- Joined: Wed May 17, 2017 1:27 pm
Miałeś może możliwość zapoznania się z powyższymi pytaniami?
Supla
Open HAB - https://github.com/magx2/openhab-supla