ZCL Advanced Platform (ZAP), şunu temel alan bir node.js şablon motorudur: Matter küme.
ZAP, Matter uygulamaları ve SDK'lar:
- Matter Uç Noktalarını, Kümelerini, Özelliklerini ve GUI arayüzünden diğer cihaz özelliklerini kullanır.
- Otomatik olarak Veri Modeli tanımlarını oluşturan şablonlar, geri çağırmalar ve diğer Matter kaynak kodları.
- SDK'larınıza dahil edilecek önceden yapılandırılmış ZAP dosyaları oluşturup kullanın.
Yükle
ZAP sürümleri'ne gidin sayfasını ziyaret edin.
"En son" olarak etiketlenmiş yayını bulun (çoğu "Yayın öncesi" olarak etiketlenir).
Bu sürümün altında, Öğeler başlığı altında paketi seçin. işletim sisteminize uygun bir sürüm seçin ve indirin.
Debian veya Ubuntu çalıştıran bir makinede aşağıdaki komutu çalıştırarak ZAP'yi yükleyin:
sudo dpkg -i path/to/zap_installation_package
Debian veya Ubuntu Linux'ta, zap
ikili programı /usr/bin/
ürününe yüklenir. Şu tarihte:
kullanıyorsanız ikili program başka bir yere yüklenebilir. Her koşulda,
yürütülebilir dosyanın konumunun PATH
ortamınızda olduğundan emin olun
değişkenine eklenmelidir.
ZAP dosyaları
ZAP, ZAP dosyaları adı verilen şablon dosyalarını kullanır. ZAP dosyası,
Uç Noktalar, Komutlar, Özellikler ve diğer cihazları tanımlayan
özellikleri. ZAP dosyalarının adları .zap
ile biter. Örneğin,
connectedhomeip/examples/lighting-app/lighting-common
içinde lighting-app.zap
.
all-clusters-app.zap
dosyası,
connectedhomeip/examples/all-clusters-app/all-clusters-common
,
ortak Matter Küme ve üç küme ile önceden yapılandırılmıştır
Matter İkincil Ağ dahil olmak üzere uç noktalar
Cihaz Türünü Devreye Getirme. Bu, çeşitli kümeleri keşfetmek için iyi bir örnek.
yapılandırmanın üç yolu vardır.
Çalıştır
- Matter örnekten birinden bir ZAP dosyası seçin.
- Matter deposunun kök dizininden (
connectedhomeip
) şu komutu çalıştırın:run_zaptool.sh
sarmalayıcı komut dosyasını.zap
dosyasına iletir.
Örneğin:
./scripts/tools/zap/run_zaptool.sh ./examples/lighting-app/lighting-common/lighting-app.zap
Kur
Ayarlar bölümünde yapılandırabilirsiniz. Açık veya koyu tema seçiminiz de dahil olmak üzere ZAP kullanıcı arayüzü ve geliştirici araçlarını etkinleştirme veya devre dışı bırakma.
Seçenekler'ı tıkladığınızda Ürününüzü Üretici, Varsayılan Yanıt Politikası ve komut etkinleştirme veya devre dışı bırakma Keşif:
Özel eklemek için
Uzantılar'ı tıklayın ZCL kümelerini veya komutlarını Zigbee Küme Yapılandırıcısı'na gönderebilirsiniz.Kullan
Uç noktalar
lighting-app.zap
dosyası, Matter ile önceden yapılandırılmıştır
Kök Düğüm (Uç Nokta - 0) ve Matter Kısılabilir Işık
(Uç nokta - 1).
Uç Nokta - 0 ağ iletişimi, devreye alma, tanımlayıcı, işe alım ve sorumluluk gibi Operasyonel Kimlik Bilgileri ve OTA Kümeleri.
Sonraki adımlarda Uç Nokta - 1'i inceleyip yapılandıracaksınız.
Matter lighting-app
örneğindeki Kısılabilir Işık.
connectedhomeip
adlı Matter deposundan ZAP'yi çalıştırın.scripts/tools/zap/run_zaptool.sh \ examples/lighting-app/lighting-common/lighting-app.zap
Uç nokta - 1'i tıklayın, ardından
DÜZENLE.İsteğe bağlı: Matter çeşitli cihaz türlerini destekler. İçinde Cihaz açılır listesinde, cihazınızı değiştirmek için
matter
yazmaya başlayın, ardından KAYDET'i tıklayın.
Daha fazla bilgi edinmek için: Cihazlar ve Uç noktalar Matter Primer.
Kümeler
Önceden Tanımlanmış Kümeler, Özellikler ve Raporlama seçenekleri Varsayılan olarak Uç nokta - 1.
Yalnızca etkin Kümeleri görüntülemek için Uç Nokta - 1 seçeneğini tıklayıp seçim yapın
Show (Göster) bölümünden Etkin Kümeler.
tıklayın. on
) girin.
Herhangi bir Kümeyi İstemci, Sunucu veya İstemci ve Server, use Etkinleştir açılır menüsünü tıklayın. Ayrıca bir ayarı devre dışı bırakmak için Etkin Değil'i sizin için geçerli olmayan önceden yapılandırılmış bir kümeden oluşur.
Daha fazla bilgi edinmek için: Kümeler Matter Primer'da.
Özellikler ve Komutlar
Özellikleri ve Komutları yapılandırmak için aşağıdaki adımları tamamlayın:
On/Off
kümesini bulun.Aynı satırda Yapılandır simgesini tıklayın
Burada Özellikleri etkinleştirebilir veya devre dışı bırakabilir, çeşitli Özellik seçeneklerini ayarlayabilir ve
özelliklerini adına göre arayın.Bu Kümeye yönelik işlemleri yapılandırmak için Komutlar'ı tıklayın. Örneğin,
Örneğin, bir ışığın Açık/Kapalı kümesinde Açık, Kapalı ve
ve Toggle komutlarını kullanabilirsiniz. Örneğin,
Temperature Measurement
kümesiyle ilişkilendirilmiş komut bulunmayabilir.
Daha fazla bilgi edinmek için: Özellikler ve Komutlar Matter Primer'da.
ZAP kaynak dosyaları oluşturma
Matter örnek, ZAP tarafından oluşturulan kaynak kodunu kullanır (mevcut)
connectedhomeip/zzz_generated
dizininde bulabilirsiniz. Bazı dosyalar uygulamaya özeldir,
diğer genel ZAP dosyaları ise app-common
altında gruplandırılır.
#include <app-common/zap-generated/ids/Attributes.h>
#include <app-common/zap-generated/ids/Clusters.h>
Uç noktalarınız yapılandırıldıktan sonra, entegrasyon için kaynak dosyaları projenize ekleyin.
- Oluştur'u tıklayın.
- ZAP çıkışını kaydetmek için bir klasör seçin. Örneğin,
Şu tarih için
connectedhomeip/zzz_generated/lighting-app/zap-generated
:lighting-app
. - İsteğe bağlı. Dosyaları tercih ettiğiniz IDE'de açın.
ZAP, kendi uygulamanıza özel tanımlar, işlevler ve diğer kaynak kodlarını cihaz türü ve ZAP yapılandırmasına göre değişiyor.
Örneğin callback-stub.cpp
, bir küme geri çağırma yöntemi içerir.
yalnızca etkinleştirdiğiniz Kümeleri içerir:
void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
...
case ZCL_ON_OFF_CLUSTER_ID :
emberAfOnOffClusterInitCallback(endpoint);
break;
...
}
}
ZAP kaynak dosyalarını kullanma
Yaygın ZAP kaynak dosyaları, örneğin Attributes.h
zzz_generated/app-common/app-common/zap-generated/ids/
, şunlar için kullanılabilir:
cihaz türü Özellikleri alma ve ayarlama:
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");
}
}
ZAP dosyalarının Matter ürününde nasıl kullanılabileceğini anladıktan sonra başka kaynak kodu varsa ZAP'yi entegre etmenin birkaç yolu vardır:
- Şuna özel yeni örnekler oluşturmak için mevcut
zzz_generated
dosyalarını kullanın: kullanmanızı öneririz. - Projeleriniz için özel
.zap
dosyaları oluşturun.
Özelleştir
ZAP dosyaları ZAP'den oluşturulur
şablonları ekleyin.
ZAP'yi başlatmak için run_zaptool.sh
kullandığınızda bu komut dosyası aşağıdaki
şablonlar:
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
, Matter şablon adını tanımlar ve
karşılık gelen çıkış dosyası olarak Matter örnekte kullanılmıştır.
{
"path": "templates/app/callback-stub-src.zapt",
"name": "ZCL callback-stub source",
"output": "callback-stub.cpp"
}
Matter çözümlerinizi özelleştirmek için uygulayabileceğiniz birkaç yöntem vardır ZAP ile çalışırken atabileceğiniz adımlar şunlardır:
- ZAP şablonları oluşturun.
- ZAP'yi SDK'nıza entegre edin.
Kaynaklar
Ek ZAP kaynakları için
ZAP deposu
(zap
)
bulabilirsiniz.