النظام الأساسي ZCL Advanced (ZAP) هو محرّك نموذج عقدة.js يعتمد على Matter المجموعات العنقودية:
يوفّر ZAP الميزات التالية لتطبيقات "Matter" حِزم تطوير البرامج (SDK):
- يمكنك ضبط نقاط نهاية Matter والمجموعات والسمات وغيرها من ميزات الجهاز من واجهة مستخدم رسومية.
- إنشاء نماذج تنشئ تلقائيًا تعريفات نماذج البيانات وعمليات معاودة الاتصال ورمز مصدر Matter آخر.
- يمكنك إنشاء ملفات ZAP المُعدّة مسبقًا واستخدامها لتضمينها مع حِزم تطوير البرامج (SDK) الخاصة بك.
تثبيت
انتقِل إلى إصدارات ZAP. .
ابحث عن الإصدار الذي يحمل العلامة "الأحدث". (سيتم وضع علامة "إصدار تجريبي") على معظم النتائج.
ضمن هذا الإصدار، اختَر الحزمة ضمن العنوان مواد العرض. المصمم لنظام التشغيل الخاص بك وتنزيله.
على جهاز يعمل بنظام التشغيل Debian أو Ubuntu، ثبِّت ZAP عن طريق تشغيل:
sudo dpkg -i path/to/zap_installation_package
على نظام التشغيل Debian أو Ubuntu Linux، يتم تثبيت البرنامج الثنائي zap
في /usr/bin/
. مشغَّلة
أنظمة التشغيل الأخرى، يمكن تثبيت البرنامج الثنائي في مكان آخر. على أي حال،
تأكَّد من أنّ موقع الملف التنفيذي في بيئة PATH
المتغير.
ملفات ZAP
يستخدم ZAP ملفات نماذج تُسمى ملفات ZAP. ملف ZAP هو ملف جسون
التي تحدّد نقاط النهاية والأوامر والسمات والأجهزة الأخرى
الجديدة. تتضمّن ملفات ZAP أسماء تنتهي بالأرقام .zap
. على سبيل المثال:
lighting-app.zap
في connectedhomeip/examples/lighting-app/lighting-common
.
يمكنك العثور على الملف all-clusters-app.zap
في
connectedhomeip/examples/all-clusters-app/all-clusters-common
، هو
مكوّنة مسبقًا من المجموعات العنقودية Matter المشتركة وثلاثة
نقاط النهاية، بما في ذلك شبكة Matter الثانوية
جارٍ تفعيل نوع الجهاز. وهذا مثال جيد لاستكشاف مجموعات متنوعة
الإعدادات.
تشغيل
- اختَر ملف ZAP من أحد الأمثلة على Matter.
- من الدليل الجذري لمستودع Matter (
connectedhomeip
)، شغِّل البرنامج النصي لبرنامج تضمينrun_zaptool.sh
، ويمرره إلى الملف.zap
.
على سبيل المثال:
./scripts/tools/zap/run_zaptool.sh ./examples/lighting-app/lighting-common/lighting-app.zap
إعداد
يمكنك ضبط إعدادات
واجهة مستخدم ZAP، بما في ذلك المظهر الفاتح أو الداكن الذي تختاره تمكين أو تعطيل أدوات المطوّرين.يتيح لك النقر على
الخيارات اختيار مصنّع المنتج وسياسة الردّ التلقائية وتفعيل ميزة "التحقّق من الأوامر" أو إيقافها.انقر على
الإضافات لإضافة حزمة مخصَّصة. مجموعات ZCL أو الأوامر إلى أداة ضبط مجموعات Zigbee.استخدام
نقاط النهاية
تم إعداد ملف lighting-app.zap
مسبقًا باستخدام Matter.
عقدة جذر (نقطة النهاية - 0) ومصباح Matter قابل للتعتيم
(نقطة النهاية - 1).
يتضمّن Endpoint - 0 مجموعات عامة مرتبطة بالعقدة بأكملها، مثل الشبكات وعمليات الإعداد والوصف والمعلومات الأساسية للتشغيل ومجموعات OTA.
في الخطوات التالية، عليك مراجعة وضبط نقطة النهاية - 1.
Matter إضاءة قابلة للتعتيم من المثال lighting-app
.
من مستودع Matter
connectedhomeip
، يمكنك تشغيل ZAP.scripts/tools/zap/run_zaptool.sh \ examples/lighting-app/lighting-common/lighting-app.zap
انقر على نقطة النهاية - 1، ثم
تعديل:اختياري: يتوافق تطبيق "Matter" مع أنواع مختلفة من الأجهزة. ضِمن القائمة المنسدلة الجهاز، وابدأ كتابة
matter
لتغيير جهازك، ثم انقر على حفظ.
لمزيد من المعلومات، راجع الأجهزة نقاط النهاية في Matter Primer.
المجموعات العنقودية
تكون خيارات التقارير والسمات والمجموعات المحدّدة مسبقًا مفعّلة في نقطة النهاية 1 تلقائيًا.
لعرض المجموعات المفعَّلة فقط، انقر على نقطة النهاية - 1 واختَر
المجموعات المفعَّلة من قسم العرض
القائمة. يمكنك أيضًا البحث في مجموعات on
.
لتفعيل أي مجموعة كـ عميل أو خادم أو Client & الخادم، استخدِم القائمة المنسدلة تفعيل. يمكنك أيضًا تحديد غير مُفعَّلة لإيقاف مجموعة مُعدّة مسبقًا ولا تنطبق على نوع جهازك.
لمزيد من المعلومات، راجع المجموعات في Matter Primer
السمات والأوامر
لتهيئة السمات والأوامر، أكمل الخطوات التالية:
- حدِّد موقع المجموعة
On/Off
. في الصف نفسه، انقر على رمز "إعداد".
يمكنك هنا تفعيل السمات أو إيقافها، وضبط خيارات السمات المختلفة، والبحث عن السمات
حسب الاسم.انقر على الطلبات لضبط الإجراءات لهذه المجموعة. بالنسبة
على سبيل المثال، ستتضمّن مجموعة التفعيل/الإيقاف للمصباح ما يلي: تشغيل وإيقاف
وToggle. قد تتضمن بعض المجموعات، مثل
في مجموعة Temperature Measurement
، قد لا يكون لها أي أوامر مرتبطة.
لمزيد من المعلومات، يُرجى الرجوع إلى السمات والأوامر في دليل Matter الأساسي.
إنشاء ملفات مصدر ZAP
Matter أمثلة تستخدم رمز المصدر الذي أنشأه ZAP، وهو متاح
في الدليل connectedhomeip/zzz_generated
. تكون بعض الملفات خاصة بالتطبيق،
بينما يتم تجميع ملفات ZAP العامة الأخرى في app-common
.
#include <app-common/zap-generated/ids/Attributes.h>
#include <app-common/zap-generated/ids/Clusters.h>
بعد ضبط نقاط النهاية، يمكنك إنشاء ملفات مصدر لدمجها في مشروعك.
- انقر على إنشاء .
- اختَر مجلدًا لحفظ ناتج ZAP. على سبيل المثال، انتقل إلى
connectedhomeip/zzz_generated/lighting-app/zap-generated
lighting-app
- Optional. افتح الملفات في بيئة التطوير المتكاملة (IDE) التي تفضّلها.
تعمل ZAP على إنشاء التحديدات والدوال ورموز مصدر أخرى تكون مخصصة لموقعك نوع الجهاز وإعداد ZAP.
على سبيل المثال، تتضمن callback-stub.cpp
طريقة استدعاء المجموعة التي
ولا يتضمن سوى المجموعة التي مكنتها:
void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
...
case ZCL_ON_OFF_CLUSTER_ID :
emberAfOnOffClusterInitCallback(endpoint);
break;
...
}
}
استخدام ملفات المصدر ZAP
ملفات مصدر ZAP الشائعة، على سبيل المثال Attributes.h
في
zzz_generated/app-common/app-common/zap-generated/ids/
، يمكن استخدامها
الحصول على سمات نوع الجهاز وضبطها:
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 في Matter رمز المصدر، تتوفّر عدة طرق يمكنك من خلالها دمج ZAP:
- استخدِم ملفات
zzz_generated
الحالية لإنشاء أمثلة جديدة فريدة لأنواع أجهزتك. - يمكنك إنشاء ملفات
.zap
مخصّصة لمشاريعك.
تخصيص
يتم إنشاء ملفات ZAP من خلال ZAP.
النماذج.
عند استخدام run_zaptool.sh
لتشغيل ZAP، يجتاز هذا النص البرمجي ما يلي:
القوالب:
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
ملف الإخراج المقابل المستخدم في Matter مثال.
{
"path": "templates/app/callback-stub-src.zapt",
"name": "ZCL callback-stub source",
"output": "callback-stub.cpp"
}
لتخصيص حلول Matter، هناك العديد من الحلول التالية. الخطوات التي يمكنك اتخاذها عند التعامل مع ZAP:
الموارد
للحصول على مراجع ZAP إضافية، يُرجى الرجوع إلى
مستودع ZAP
(zap
)
على GitHub.