طرحواره بافت

طرحواره بافت

این طرح ، مدل داده زیربنایی را توصیف می کند که نمایش و تفسیر داده های ساطع شده توسط دستگاه های منطقی یا فیزیکی در یک سیستم Weave را هدایت می کند.

طرحواره این است:

  • استاندارد شده - شامل تعاریف رسمی تایید شده از عملکرد است که بدون توجه به پیاده سازی، یک رابط سازگار را ارائه می دهد. به عنوان مثال، یک لامپ نمایش داده شده در طرحواره همیشه دارای عملکرد اصلی مانند حالت های روشن/خاموش و اقدامات یا سطوح کم نور است.
  • Composable - کاربر می تواند منابع پیچیده ای را ایجاد کند که از بیت های کوچکتری از عملکردهای کاملاً تعریف شده تشکیل شده است. به عنوان مثال، Nest Detect شامل دو نوع حسگر است: حرکت و باز/بستن. عملکرد این نوع حسگرها در طرح استاندارد شده و قابل استفاده مجدد در همه دستگاه ها هستند.
  • توسعه پذیر - کاربر می تواند پسوندهای سفارشی عملکرد استاندارد را ایجاد کند. برای مثال، ممکن است بخواهید عملکرد استاندارد سنسور حرکتی طرحواره را با عملکردهای اضافی برای یک برنامه امنیتی خاص گسترش دهید.
  • نسخه شده - همه تغییرات در طرحواره برای سازگاری رو به جلو و عقب نسخه شده است.

طرحواره سه عنصر را تعریف می کند: صفات، رابط ها و منابع. تقریباً تمام عملکردهای موجود در اکوسیستم Nest برای عملیات روزمره در این طرح تعریف شده است. بیایید هر عنصر را با عمق بیشتری بررسی کنیم.

صفات

صفت واحدی از عملکرد اساسی است. آنها ممکن است حالت ها یا قابلیت های کلی دستگاه باشند یا پیکربندی را توصیف کنند که رفتار آن را نشان می دهد. یک صفت واحد ممکن است در بسیاری از دستگاه ها مشترک باشد یا برای یک نوع دستگاه خاص باشد.

به عنوان مثال، در این طرح می‌توانید ویژگی‌های زیر را برای استفاده در دستگاه‌های Nest تعریف کنید:

صفت

رابط ها

ما می توانیم ترکیب پذیری صفات را با گروه بندی آنها با هم گسترش دهیم، به خصوص اگر چندین صفت یک تابع جدید و خاص را نشان دهند. به چنین گروهی از صفات، Interface می شود.

به عنوان مثال، یک رابط Intercom ممکن است شامل ویژگی های بلندگو و میکروفون باشد:

صفات و رابط ها

منابع

یک منبع یک چیز منطقی یا فیزیکی در طرحواره را نشان می دهد. به عنوان مثال، Nest Protect یک منبع است. نگهبان لانه هم همینطور. یا یک کاربر یا ساختاری مانند خانه کاربر.

منابع مجموعه‌ای از ویژگی‌ها را تشکیل می‌دهند که پیکربندی، حالت و قابلیت آن‌ها را در بر می‌گیرد.

رابطه بین منابع، رابط ها و صفات به صورت زیر است:

منابع، رابط ها و ویژگی ها

همانطور که می بینید، برخی از ویژگی ها، مانند ویژگی حرکت، در منابع مختلف مشترک هستند. و برخی از اینترفیس ها مانند رابط Intercom نیز برای منابع مختلف مشترک هستند. صفات، رابط‌ها و منابع یکبار در طرحواره تعریف می‌شوند و مجدداً در منابع و دستگاه‌های مختلف در سیستم Weave استفاده می‌شوند.

عناصر صفت

صفات بیشتر به سه عنصر اصلی تقسیم می شوند: ویژگی ها، دستورات و رویدادها. بیایید نگاهی به نمونه هایی از هر عنصر صفت بیندازیم.

خواص

ویژگی های نشان دهنده وضعیت یک صفت است. ویژگی ها یا خواندنی-نوشتنی هستند یا فقط خواندنی.

مثلا:

  • نسخه نرم افزار یک ویژگی از ویژگی Device Identity است. این یک ویژگی کلی است که اکثر دستگاه ها دارند. Nest Thermostats، Cameras و Protects—همه اینها نسخه نرم افزاری خاص خود را دارند.
  • وضعیت پیچ یک ویژگی از ویژگی Bolt Lock است، اما مخصوص دستگاهی مانند Yale x Nest Lock است. مثلاً روی ترموستات Nest قفل پیچ و مهره ای پیدا نمی کنید.

دستورات

دستورات درخواست‌های سفارشی مختص یک صفت برای عملکرد یک صفت با پاسخ مورد انتظار هستند. آنها معمولاً دستورات سفارشی نامیده می شوند و می توان آنها را به تغییرات حالت خاص برای ویژگی ها گسترش داد. مثلا:

  • Bolt Lock Change یک دستور سفارشی است که ویژگی Bolt State ویژگی Bolt Lock را تغییر می دهد.
  • Set User Pincode یک فرمان سفارشی است که ویژگی User Pincode Settings را ایجاد می کند یا یک ویژگی User Pincode موجود را به روز می کند.

مناسبت ها

رویدادها سوابقی از اتفاقات یک ویژگی هستند. آنها مشترک را از تغییرات در ویژگی های صفت یا نوع دیگری از اتفاقات، مانند بازنشانی سیستم مطلع می کنند.

به عنوان مثال، رویداد تغییر وضعیت محرک پیچ از ویژگی Bolt Lock، مشترک را از وضعیت فعلی چندین ویژگی Bolt Lock و همچنین بازیگری که آخرین بار باعث تغییر ویژگی وضعیت محرک پیچ شده است، مطلع می‌کند. همه این اطلاعات به صورت یک رویداد ارائه می شود.

زبان توصیف طرحواره بافت

ویژگی‌های طرحواره، رابط‌ها و منابع در Weave با استفاده از یک زبان دامنه خاص (DSL) که از نحو Google Protocol Buffers v3 استفاده می‌کند، تعریف و توصیف می‌شوند. این زبان Weave Schema Description Language (WDL) نامیده می شود.

WDL از طریق یک کامپایلر اجرا می شود که درک و کدگذاری های مختلف پلتفرم خاص را تولید می کند. نوع کد تولید شده به منبع بستگی دارد:

  • Objective C، Swift، Java، Scala - برنامه های موبایل و خدمات ابری
  • C++ با رمزگذاری‌های Weave TLV - دستگاه‌های تعبیه‌شده و برنامه‌های تلفن همراه

ما بعداً به نمونه های WDL عمیق تر خواهیم پرداخت.

خلاصه

آنچه یاد گرفتید:

  • schema مدل داده های اساسی را برای یک سیستم Weave توصیف می کند.
  • طرحواره سه عنصر را تعریف می کند:
    • صفت واحدی از عملکرد اساسی
    • Interface گروهی از صفات که نشان دهنده یک عملکرد جدید و خاص است
    • Resource یک چیز منطقی یا فیزیکی
  • صفات شامل ویژگی ها، دستورات و رویدادها می شود:
    • ویژگی وضعیت یک ویژگی منبع
    • دستورات درخواست سفارشی برای عمل یک صفت
    • رویداد ثبت اتفاقات برای یک صفت
  • این طرح با استفاده از Weave Schema Description Language (WDL) که بر اساس Google Protocol Buffers نسخه 3 است، تعریف شده است.

برای اطلاعات عمیق تر، نگاه کنید به: