ZCL Advanced Platform (ZAP)

النظام الأساسي ZCL Advanced (ZAP) هو محرّك نموذج عقدة.js يعتمد على Matter المجموعات العنقودية:

يوفّر ZAP الميزات التالية لتطبيقات "Matter" حِزم تطوير البرامج (SDK):

  • يمكنك ضبط نقاط نهاية Matter والمجموعات والسمات وغيرها من ميزات الجهاز من واجهة مستخدم رسومية.
  • إنشاء نماذج تنشئ تلقائيًا تعريفات نماذج البيانات وعمليات معاودة الاتصال ورمز مصدر Matter آخر.
  • يمكنك إنشاء ملفات ZAP المُعدّة مسبقًا واستخدامها لتضمينها مع حِزم تطوير البرامج (SDK) الخاصة بك.
أداة ZAP

تثبيت

  1. انتقِل إلى إصدارات ZAP. .

  2. ابحث عن الإصدار الذي يحمل العلامة "الأحدث". (سيتم وضع علامة "إصدار تجريبي") على معظم النتائج.

  3. ضمن هذا الإصدار، اختَر الحزمة ضمن العنوان مواد العرض. المصمم لنظام التشغيل الخاص بك وتنزيله.

  4. على جهاز يعمل بنظام التشغيل 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 الثانوية جارٍ تفعيل نوع الجهاز. وهذا مثال جيد لاستكشاف مجموعات متنوعة الإعدادات.

تشغيل

  1. اختَر ملف ZAP من أحد الأمثلة على Matter.
  2. من الدليل الجذري لمستودع Matter (connectedhomeip)، شغِّل البرنامج النصي لبرنامج تضمين run_zaptool.sh، ويمرره إلى الملف .zap.

على سبيل المثال:

./scripts/tools/zap/run_zaptool.sh ./examples/lighting-app/lighting-common/lighting-app.zap

إعداد

يمكنك ضبط إعدادات واجهة مستخدم ZAP، بما في ذلك المظهر الفاتح أو الداكن الذي تختاره تمكين أو تعطيل أدوات المطوّرين.

يتيح لك النقر على الخيارات اختيار مصنّع المنتج وسياسة الردّ التلقائية وتفعيل ميزة "التحقّق من الأوامر" أو إيقافها.

الخيارات العالمية في ZAP

انقر على الإضافات لإضافة حزمة مخصَّصة. مجموعات ZCL أو الأوامر إلى أداة ضبط مجموعات Zigbee.

استخدام

نقاط النهاية

تم إعداد ملف lighting-app.zap مسبقًا باستخدام Matter. عقدة جذر (نقطة النهاية - 0) ومصباح Matter قابل للتعتيم (نقطة النهاية - 1).

يتضمّن Endpoint - 0 مجموعات عامة مرتبطة بالعقدة بأكملها، مثل الشبكات وعمليات الإعداد والوصف والمعلومات الأساسية للتشغيل ومجموعات OTA.

نقطة النهاية ZAP 0

في الخطوات التالية، عليك مراجعة وضبط نقطة النهاية - 1. Matter إضاءة قابلة للتعتيم من المثال lighting-app.

  1. من مستودع Matterconnectedhomeip، يمكنك تشغيل ZAP.

    scripts/tools/zap/run_zaptool.sh \
    examples/lighting-app/lighting-common/lighting-app.zap
  2. انقر على نقطة النهاية - 1، ثم تعديل:

  3. اختياري: يتوافق تطبيق "Matter" مع أنواع مختلفة من الأجهزة. ضِمن القائمة المنسدلة الجهاز، وابدأ كتابة matter لتغيير جهازك، ثم انقر على حفظ.

    اختيار جهاز ZAP

لمزيد من المعلومات، راجع الأجهزة نقاط النهاية في Matter Primer.

المجموعات العنقودية

تكون خيارات التقارير والسمات والمجموعات المحدّدة مسبقًا مفعّلة في نقطة النهاية 1 تلقائيًا.

لعرض المجموعات المفعَّلة فقط، انقر على نقطة النهاية - 1 واختَر المجموعات المفعَّلة من قسم العرض القائمة. يمكنك أيضًا البحث في مجموعات . حسب الاسم، على سبيل المثال on.

المجموعات المفعَّلة في ZAP

لتفعيل أي مجموعة كـ عميل أو خادم أو Client & الخادم، استخدِم القائمة المنسدلة تفعيل. يمكنك أيضًا تحديد غير مُفعَّلة لإيقاف مجموعة مُعدّة مسبقًا ولا تنطبق على نوع جهازك.

إيقاف المجموعة في ZAP

لمزيد من المعلومات، راجع المجموعات في Matter Primer

السمات والأوامر

لتهيئة السمات والأوامر، أكمل الخطوات التالية:

  1. حدِّد موقع المجموعة On/Off.
  2. في الصف نفسه، انقر على رمز "إعداد".

    إعداد ZAP

يمكنك هنا تفعيل السمات أو إيقافها، وضبط خيارات السمات المختلفة، والبحث عن السمات حسب الاسم.

سمات ZAP

انقر على الطلبات لضبط الإجراءات لهذه المجموعة. بالنسبة على سبيل المثال، ستتضمّن مجموعة التفعيل/الإيقاف للمصباح ما يلي: تشغيل وإيقاف وToggle. قد تتضمن بعض المجموعات، مثل في مجموعة Temperature Measurement، قد لا يكون لها أي أوامر مرتبطة.

أوامر ZAP

لمزيد من المعلومات، يُرجى الرجوع إلى السمات والأوامر في دليل 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>

بعد ضبط نقاط النهاية، يمكنك إنشاء ملفات مصدر لدمجها في مشروعك.

  1. انقر على إنشاء .
  2. اختَر مجلدًا لحفظ ناتج ZAP. على سبيل المثال، انتقل إلى connectedhomeip/zzz_generated/lighting-app/zap-generated lighting-app
  3. Optional. افتح الملفات في بيئة التطوير المتكاملة (IDE) التي تفضّلها.

تعمل ZAP على إنشاء التحديدات والدوال ورموز مصدر أخرى تكون مخصصة لموقعك نوع الجهاز وإعداد 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.