ZCL Advanced Platform (ZAP) to mechanizm szablonów node.js oparty na Matter Klastrów.
ZAP udostępnia poniższe funkcje w przypadku aplikacji Matter oraz Pakiety SDK:
- Skonfiguruj punkty końcowe, klastry, atrybuty i obiekty Matter z innych funkcji urządzenia za pomocą interfejsu GUI.
- tworzyć szablony, które automatycznie generują definicje modeli danych; wywołania zwrotne oraz inny kod źródłowy Matter.
- Tworzenie i używanie wstępnie skonfigurowanych plików ZAP do umieszczenia w pakietach SDK.
Zainstaluj
Zapoznaj się z wersjami ZAP. stronę.
Poszukaj wersji oznaczonej jako „Najnowsze”. (większość z nich zostanie oznaczona tagiem „Przedpremierowa”).
W tej wersji pod nagłówkiem Zasoby wybierz pakiet. dla Twojego systemu operacyjnego i pobierz go.
Zainstaluj ZAP na komputerze z systemem Debian lub Ubuntu, wykonując te polecenia:
sudo dpkg -i path/to/zap_installation_package
W systemie Debian lub Ubuntu Linux plik binarny zap
jest instalowany w katalogu /usr/bin/
. Wł.
w innych systemach operacyjnych, plik binarny może być zainstalowany w innym miejscu. W każdym razie
Sprawdź, czy plik wykonywalny znajduje się w środowisku PATH
.
Pliki ZAP
ZAP używa plików szablonów, zwanych plikami ZAP. Plik ZAP to plik JSON
które definiują punkty końcowe, polecenia, atrybuty oraz inne urządzenia
funkcje zabezpieczeń. Pliki ZAP mają nazwy zakończone na .zap
. Na przykład:
lighting-app.zap
w connectedhomeip/examples/lighting-app/lighting-common
.
Plik all-clusters-app.zap
znaleziony w
connectedhomeip/examples/all-clusters-app/all-clusters-common
, to
wstępnie skonfigurowana z typowymi klastrami Matter i 3 klastrami
Punkty końcowe, w tym sieć dodatkowa Matter
Typ urządzenia realizującego zlecenie. To dobry przykład do badania różnych klastrów
konfiguracji.
Uruchom
- Wybierz plik ZAP z jednego z przykładów Matter.
- Uruchom w katalogu głównym repozytorium Matter (
connectedhomeip
) skrypt opakowującyrun_zaptool.sh
, przekazując mu ścieżkę do pliku.zap
.
Na przykład:
./scripts/tools/zap/run_zaptool.sh ./examples/lighting-app/lighting-common/lighting-app.zap
Skonfiguruj
W Ustawieniach usługi
możesz skonfigurować interfejs użytkownika ZAP, w tym jasny lub ciemny motyw; włączenie lub wyłączenie narzędzi dla programistów.Kliknij
Opcje, aby wybrać produkt Producent, Domyślna zasada odpowiedzi oraz włączyć lub wyłączyć polecenie Odkrywanie treści.Kliknij
Rozszerzenia, aby dodać niestandardowe klastry ZCL lub polecenia do konfiguratora klastrów Zigbee.Użyj
Punkty końcowe
Plik lighting-app.zap
jest wstępnie skonfigurowany za pomocą roli Matter
Węzeł główny (punkt końcowy – 0) i jasność: Matter
(Punkt końcowy – 1).
Punkt końcowy – 0 obejmuje ogólne klastry, które są istotne dla całego węzła, na przykład Sieć, Prowizje, Deskryptor, Dane logowania operacyjne i klastry OTA.
W kolejnych krokach sprawdzisz i skonfigurujesz punkt końcowy – 1 Matter Światło z możliwością przyciemniania z przykładu lighting-app
.
Z repozytorium Matter
connectedhomeip
uruchom ZAP.scripts/tools/zap/run_zaptool.sh \ examples/lighting-app/lighting-common/lighting-app.zap
Kliknij Punkt końcowy – 1, a następnie
EDYTUJ.Opcjonalnie: Matter obsługuje różne typy urządzeń. W z menu Urządzenie, zacznij pisać
matter
, aby zmienić urządzenie, a następnie kliknij ZAPISZ.
Więcej informacji znajdziesz w artykule Matter na temat urządzeń i urządzeń końcowych.
Klastry
Wstępnie zdefiniowane klastry, atrybuty i opcje raportowania są domyślnie włączone w Endpoint - 1.
Aby wyświetlić tylko włączone klastry, kliknij Punkt końcowy – 1 i wybierz
Włączone klastry z programu
. Możesz też przeszukiwać on
.
Aby włączyć dowolny klaster jako Klient, Serwer lub Klient i Server, użyj menu Włącz. Możesz też wybrać Nie włączono, aby wyłączyć wstępnie skonfigurowany klaster, który nie ma zastosowania do Twojego typu urządzenia.
Więcej informacji: Klastry w grze Matter Primer.
Atrybuty i polecenia
Aby skonfigurować atrybuty i polecenia, wykonaj następujące czynności:
- Zlokalizuj klaster
On/Off
. W tym samym wierszu kliknij ikonę Skonfiguruj.
Tutaj możesz włączać i wyłączać atrybuty, ustawiać różne opcje atrybutów oraz Wyszukaj atrybuty
według nazwy.Kliknij Polecenia, aby skonfigurować działania dla tego klastra. Dla:
np. klaster Wł./Wył. dla lampy będzie zawierać Wł., Wył.
i Toggle. Niektóre klastry, takie jak
klaster Temperature Measurement
może nie mieć żadnych powiązanych poleceń.
Więcej informacji: Atrybuty i polecenia w grze Matter Primer.
Generuj pliki źródłowe ZAP
Matter przykładów korzysta z kodu źródłowego wygenerowanego przez ZAP (dostępny)
w katalogu connectedhomeip/zzz_generated
. Niektóre pliki są powiązane z konkretną aplikacją,
a inne ogólne pliki ZAP są zgrupowane w app-common
.
#include <app-common/zap-generated/ids/Attributes.h>
#include <app-common/zap-generated/ids/Clusters.h>
Po skonfigurowaniu punktów końcowych możesz wygenerować pliki źródłowe na potrzeby integracji do swojego projektu.
- Kliknij Wygeneruj.
- Wybierz folder, w którym mają zostać zapisane dane wyjściowe ZAP. Na przykład przejdź do adresu
connectedhomeip/zzz_generated/lighting-app/zap-generated
dlalighting-app
- Opcjonalnie. Otwórz pliki w preferowanym IDE.
ZAP generuje definicje, funkcje i inny kod źródłowy typu urządzenia i konfiguracji ZAP.
Na przykład callback-stub.cpp
zawiera metodę wywołania zwrotnego klastra, która
uwzględnia tylko te klastry, które zostały włączone:
void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
...
case ZCL_ON_OFF_CLUSTER_ID :
emberAfOnOffClusterInitCallback(endpoint);
break;
...
}
}
Użyj plików źródłowych ZAP
Typowe pliki źródłowe ZAP, na przykład Attributes.h
w
zzz_generated/app-common/app-common/zap-generated/ids/
, można wykorzystać do:
pobierz i ustaw atrybuty typu urządzenia:
Attributes.h
namespace DeviceTemperatureConfiguration {
namespace Attributes {
namespace CurrentTemperature {
static constexpr AttributeId Id = 0x00000000;
} // namespace CurrentTemperature
...
} // namespace Attributes
} // namespace DeviceTemperatureConfiguration
main.cpp
#include <app-common/zap-generated/att-storage.h>
#include <app-common/zap-generated/attribute-id.h>
#include <app-common/zap-generated/attribute-type.h>
#include <app-common/zap-generated/attributes/Accessors.h>
#include <app-common/zap-generated/callback.h>
#include <app-common/zap-generated/cluster-id.h>
#include <app-common/zap-generated/cluster-objects.h>
#include <app-common/zap-generated/command-id.h>
using namespace ::chip;
using namespace ::chip::app::Clusters;
static void InitServer(intptr_t context)
{
...
// Sets temperature to 20C
int16_t temperature = 2000;
auto status = DeviceTemperatureConfiguration::Attributes::CurrentTemperature::Set(1, temperature);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
ChipLogError(Shell, "Temp measurement set failed");
}
}
Wiesz już, jak używać plików ZAP w aplikacji Matter. kodu źródłowego, istnieje kilka sposobów integracji ZAP:
- Wykorzystaj istniejące pliki
zzz_generated
, aby utworzyć nowe przykłady, unikalne dla typów urządzeń. - Twórz niestandardowe pliki
.zap
dla swoich projektów.
Dostosuj
Pliki ZAP są generowane z ZAP
.
Gdy używasz run_zaptool.sh
do uruchamiania ZAP, ten skrypt przechodzi w
szablony:
node src-script/zap-start.js --logToStdout \
--gen "$CHIP_ROOT/src/app/zap-templates/app-templates.json" \
--zcl "$CHIP_ROOT/src/app/zap-templates/zcl/zcl.json" \
"${ZAP_ARGS[@]}"
templates.json
definiuje nazwę szablonu Matter i odpowiadający mu plik wyjściowy używany w przykładach Matter.
{
"path": "templates/app/callback-stub-src.zapt",
"name": "ZCL callback-stub source",
"output": "callback-stub.cpp"
}
Aby dostosować rozwiązania Matter, musisz wykonać kilka czynności czynności, które możesz wykonać podczas pracy z ZAP:
Zasoby
Więcej informacji o ZAP znajdziesz tutaj:
Repozytorium ZAP
(zap
)
w GitHubie.