Prosba o dokumentacje + inne sprawy

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

Post

Utwórz jakieś repo abym mógł na bierząco weryfikować czy idziesz w dobrym kierunku.
User avatar
klew
Posts: 10691
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Czy jest gdzieś opis tego co jest czym i do czego na https://github.com/SUPLA ?
Implementuję sobie "licznik impulsów" na płytkę Ardunio Mega i pracowałem tam na bazie repo "arduino". Po różnych repo widzę podobne klasy i headery.
Na forum mam wrażenie, że niektórzy pisząc "arduino" mają na myśli "Arduino IDE" i implementują na ESP.
W supla-core jest folder "supla-dev", który zdaje się być dla RaspberryPI, ale jest też repozytorium "raspberry".

Może warto dodać opis do każdego repozytorium oraz odpowiednie tagi? Np. do każdego repo, które zawiera implementację dla urządzeń końcowych (ESP, Arduino, RPI, etc) dodać tag: "supla-dev", "arduino-mega" ?
User avatar
pzygmunt
Posts: 19471
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Jak tylko znajdę zasoby to dodam opisy.
Przy tworzeniu implementacji licznika dla Arduino sugeruj się implementacją dla ESP.

https://github.com/SUPLA/supla-espressi ... _counter.c
https://github.com/SUPLA/supla-espressi ... nter.c#L51
https://github.com/SUPLA/supla-espressi ... ter.c#L420
User avatar
klew
Posts: 10691
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

pzygmunt wrote: Mon Sep 16, 2019 1:22 pm Jak tylko znajdę zasoby to dodam opisy.
Chciałbym dopytać o to repozytorium SUPLA/arduino - rozumiem, że to jest soft dla "supla-dev" przygotowany pod Arduino IDE, który działa z kilkoma HW (Arduino Mega, ESP)?
Czy słowo "arduino" w nazwie oznacza tu przede wszystkim IDE? Czy też może docelową platformę HW?
User avatar
pzygmunt
Posts: 19471
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

SUPLA/arduino jest konkretnie pod arduino (arduino ide).
Zawiera w sobie srpc.c i proto.c, które są częścią wspólną dla większości podprojektów w . których zachodzi natywna komunikacja z serwerem.
magx2
Posts: 391
Joined: Wed May 17, 2017 1:27 pm

Post

Uzupełniam API o nowe typy i mam pytanie:

Jak parsujesz union? Skąd wiadomo która wartość została wysłana przy odczytywaniu wiadomości?

Code: Select all

typedef struct {
  // device -> server

  unsigned char Number;
  _supla_int_t Type;

  union {
    _supla_int_t FuncList;
    unsigned _supla_int_t ActionTriggerCaps;  // ver. >= 16
  };

  _supla_int_t Default;
  _supla_int_t Flags;

  union {
    char value[SUPLA_CHANNELVALUE_SIZE];
    TActionTriggerProperties actionTriggerProperties;  // ver. >= 16
    THVACValue hvacValue;
  };
} TDS_SuplaDeviceChannel_C;  // ver. >= 10
Drugi union może przyjąć 3 różne wartości (gdzie każda ma inną długość). Jak można to rozróżnić podczas parsowania?
Supla ❤️ Open HAB - https://github.com/magx2/openhab-supla
Beholder
Posts: 31
Joined: Wed Jul 19, 2023 2:47 pm

Post

W strukturze masz podany typ kanału i po tym wiadomo jakiego rodzaju danych trzeba oczekiwać w kolejnych elementach, union rezerwuje w pamięci długość najdłuższego elementu
magx2
Posts: 391
Joined: Wed May 17, 2017 1:27 pm

Post

Jak mapuje się typ kanału na wartości w union?
Supla ❤️ Open HAB - https://github.com/magx2/openhab-supla

Return to “Zagadnienia ogólne”