Prosba o dokumentacje + inne sprawy
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Przyjrzę się dokładnie. Póki co opis deserializacji bym zmienił. Sugeruję przedstawić protokół w formie ramki danych.
[zmienna rozmiar w bajtach i typ na jaki jest rzutowana][zmienna][zmienna].....
tabelka pod
"Below I put some examples:" nie jest dla mnie jasna. Tzn jaki jest jej cel ?
"Data types that I use above:"
jeżeli już to można wypisać wszystkie typy używane przez protokół... z godnie ze standardem C.
Aaa i istotna sprawa. Przy obsłudze ramki rzutowanej na strukturę nie stosuje się wyrównywania pakownia danych
#pragma pack(push, 1)
[zmienna rozmiar w bajtach i typ na jaki jest rzutowana][zmienna][zmienna].....
tabelka pod
"Below I put some examples:" nie jest dla mnie jasna. Tzn jaki jest jej cel ?
"Data types that I use above:"
jeżeli już to można wypisać wszystkie typy używane przez protokół... z godnie ze standardem C.
Aaa i istotna sprawa. Przy obsłudze ramki rzutowanej na strukturę nie stosuje się wyrównywania pakownia danych
#pragma pack(push, 1)
SUPLA.... Nareszcie w domu.
Opis protokołu przygotowałem dla osób zainteresowanych implementacją go w językach innych niż C/C++. Z tego też powodu starałem się tutaj umieścić coś na wzór "how-to implement Supla protocol in your language".
.
.
W którym miejscu byś to zmienił? Nie do końca cię rozumiem.pzygmunt wrote: Sat Jul 29, 2017 11:22 am Przyjrzę się dokładnie. Póki co opis deserializacji bym zmienił. Sugeruję przedstawić protokół w formie ramki danych.
[zmienna rozmiar w bajtach i typ na jaki jest rzutowana][zmienna][zmienna].....
Zawsze lepiej się czyta taki opisy jeżeli później można odnieść się do przykładu. Dodatkowo z tej tabelki można zrobić sobie fajne unit testypzygmunt wrote: Sat Jul 29, 2017 11:22 am tabelka pod
"Below I put some examples:" nie jest dla mnie jasna. Tzn jaki jest jej cel ?
Których typów (z protokołu) brakuje? Co do typów z C - z tego co widzę (https://en.wikipedia.org/wiki/C_data_types) to ja dodałem tylko typ byte, odpowiednik signed chara.pzygmunt wrote: Sat Jul 29, 2017 11:22 am "Data types that I use above:"
jeżeli już to można wypisać wszystkie typy używane przez protokół... z godnie ze standardem C.
Nie jestem programistą C. Nie mam pojęcia co to znaczypzygmunt wrote: Sat Jul 29, 2017 11:22 am Aaa i istotna sprawa. Przy obsłudze ramki rzutowanej na strukturę nie stosuje się wyrównywania pakownia danych
#pragma pack(push, 1)
Supla
Open HAB - https://github.com/magx2/openhab-supla
Sprawdziłem o co chodzi z tą pragmą (https://stackoverflow.com/a/3318475/1819402). Z tego co widzę nie ma to znaczenia dla samego protokołu. Z pewnością jest to istotne z poziomu C/C++, natomiast dla osób programujących w innych językach nie ma to kompletnie znaczenia.pzygmunt wrote: Sat Jul 29, 2017 11:22 am Aaa i istotna sprawa. Przy obsłudze ramki rzutowanej na strukturę nie stosuje się wyrównywania pakownia danych
#pragma pack(push, 1)
Supla
Open HAB - https://github.com/magx2/openhab-supla
Mam problem z rejestracją urządzenia. Zamel ROW-01 cały czas wysyła mi pakiet o rejestrację pomimo tego, że ja mu odpowiadam że jest już zarejestrowany.
To jest wiadomość, którą dostaję:
To jest wiadomość, którą dostaję:
Patrząc po 65 należy to rozpakować do TDS_SuplaRegisterDevice_B:TSuplaDataPacket{
version=5,
rrId=1,
callType=65,
dataSize=297,
data=[123, 0, 0, 0, 113, 119, 101, 114, 116, 121, 117, 105, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 22, -81, 125, -64, 116, -19, 2, 101, 103, -127, 16, -6, -66, 96, 60, 90, 65, 77, 69, 76, 32, 82, 79, 87, 45, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 46, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 84, 11, 0, 0, 96, 0, 0, 0, -116, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]}
W odpowiedzi wysyłam:TDS_SuplaRegisterDevice_B{
locationId=123,
locationPwd=[113, 119, 101, 114, 116, 121, 117, 105, 111, 112, i same 0 do końca],
guid=[-33, 22, -81, 125, -64, 116, -19, 2, 101, 103, -127, 16, -6, -66, 96, 60],
name=[90, 65, 77, 69, 76, 32, 82, 79, 87, 45, 48, 49, i same 0 do końca],
softVer=[50, 46, 48, i same 0 do końca],
channelCount=1,
channels=[] // jak na razie nie parsuję kanałów
Który parsuję do TSuplaDataPacket:TSD_SuplaRegisterDeviceResult{
resultCode=3,
activityTimeout=100,
version=5,
versionMin=2
}
Powiedz mi proszę gdzie mam błąd?TSuplaDataPacket{
version=5,
rrId=7,
callType=70,
dataSize=7,
data=[3, 0, 0, 0, 100, 5, 2]
}
Supla
Open HAB - https://github.com/magx2/openhab-supla
