Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Схема плетения

Схема плетения

Схема описывает базовую модель данных, которая управляет представлением и интерпретацией данных, передаваемых логическими или физическими устройствами в системе Weave.

Схема такая:

  • Стандартизированный - он содержит официально утвержденные определения функциональности, которые обеспечивают согласованный интерфейс, независимо от реализации. Например, лампочка, представленная в схеме, всегда будет иметь основные функции, такие как состояния включения / выключения и действия или уровни затемнения.
  • Составные - пользователь может создавать сложные ресурсы, состоящие из более мелких частей четко определенной функциональности. Например, Nest Detect содержит два типа датчиков: движения и открытия / закрытия. Функциональные возможности для этих типов датчиков стандартизированы в схеме и могут повторно использоваться на разных устройствах.
  • Расширяемость - пользователь может создавать собственные расширения стандартной функциональности. Например, вы можете захотеть расширить стандартные функции датчика движения схемы дополнительными функциями для определенного приложения безопасности.
  • Управление версиями - все изменения в схеме версируются для прямой и обратной совместимости.

Схема определяет три элемента: характеристики, интерфейсы и ресурсы. Практически все функциональные возможности экосистемы Nest для повседневной работы определены в схеме. Давайте рассмотрим каждый элемент более подробно.

Черты

признака - это единица базовой функциональности. Это могут быть общие состояния или возможности устройства или описание конфигурации, определяющей его поведение. Одна особенность может быть общей для многих устройств или специфичной для одного типа устройств.

Например, в схеме вы можете определить следующие характеристики для использования в устройствах Nest:

Черта

Интерфейсы

Мы можем расширить возможности комбинирования признаков, сгруппировав их вместе, особенно если несколько признаков представляют новую конкретную функцию. Такая группа черт называется интерфейсом .

Например, интерфейс внутренней связи может включать в себя характеристики динамика и микрофона:

Черты и интерфейсы

Ресурсы

Ресурс представляет собой логический или физический объект в схеме. Например, Nest Protect - это ресурс. Как и Nest Guard. Или пользователь, или структура, такая как дом пользователя.

Ресурсы содержат набор характеристик, которые инкапсулируют их конфигурацию, состояние и возможности.

Отношения между ресурсами, интерфейсами и трейтами выглядят следующим образом:

Ресурсы, интерфейсы и особенности

Как видите, некоторые черты характера, например черта движения, являются общими для разных ресурсов. И некоторые интерфейсы, например интерфейс Intercom, также являются общими для разных ресурсов. Черты, интерфейсы и ресурсы определяются в схеме один раз и повторно используются на разных ресурсах и устройствах в системе Weave.

Элементы черт

Характеристики далее разбиваются на три основных элемента: свойства, команды и события. Давайте посмотрим на примеры каждого элемента признака.

Свойства

Свойства представляют состояние признака. Свойства доступны для чтения и записи или только для чтения.

Например:

  • Версия программного обеспечения - это свойство свойства Device Identity. Это общая черта, присущая большинству устройств. Nest Thermostats, Cameras и Protects - все они имеют свою собственную версию программного обеспечения.
  • Bolt State - это свойство трейта Bolt Lock, но оно характерно для таких устройств, как Yale x Nest Lock. Например, на термостате Nest вы не найдете защелкивающийся замок.

Команды

Команды - это индивидуальные запросы на действие с ожидаемым ответом. Их обычно называют настраиваемыми командами, и их можно расширить до определенных изменений состояния свойств. Например:

  • Bolt Lock Change - это настраиваемая команда, которая изменяет свойство Bolt State трейта Bolt Lock.
  • Set User Pincode - это настраиваемая команда, которая создает новое или обновляет существующее свойство User Pincode для свойства User Pincodes Settings.

События

События - это записи событий для черты характера. Они информируют подписчика об изменениях свойств признака или о каком-либо другом типе событий, например о перезагрузке системы.

Например, событие Bolt Actuator State Change для свойства Bolt Lock информирует подписчика о текущем состоянии нескольких свойств Bolt Lock, а также об актере, который последним вызвал изменение свойства Bolt Actuator State. Вся эта информация доставляется как единое событие.

Язык описания схемы плетения

Характеристики схемы, интерфейсы и ресурсы в Weave определяются и описываются с использованием предметно-ориентированного языка (DSL), который использует синтаксис Google Protocol Buffers v3. Этот язык называется языка описания схем Weave (WDL) .

WDL запускается через компилятор, который генерирует различные реализации и кодировки для конкретной платформы. Тип генерируемого кода зависит от ресурса:

  • Objective C, Swift, Java, Scala - мобильные приложения и облачные сервисы
  • C ++ с кодировками Weave TLV - встроенные устройства и мобильные приложения

Позже мы подробнее рассмотрим примеры WDL.

Резюме

Что вы узнали:

  • Схема описывает базовую модель данных для системы Weave.
  • Схема определяет три элемента:
    • черты Единица базовой функциональности
    • Интерфейс Группа признаков, которые представляют новую, специфическую функцию
    • Resource Логическая или физическая вещь
  • Черты включают свойства, команды и события:
    • свойства Состояние свойства ресурса
    • Команды Пользовательский запрос на действие признака
    • Event Запись событий для признака
  • Схема определяется с использованием Weave Schema Description Language (WDL), основанного на Google Protocol Buffers v3.

Для получения более подробной информации см .: