FlexContainer, Контейнер и SDT в одном М2М - PullRequest
2 голосов
/ 11 апреля 2019

Когда мы должны использовать вместо ? Я видел несколько примеров использования , они использовали для устройства SDT. Используется ли только для устройств SDT?

Представьте, мы создаем <контейнер> , и он предназначен для хранения значений датчика температуры. Фактические значения устройства хранятся в * , а тип температуры (Цельсия или Фаренгейт) определяется полем семантического дескриптора ресурса . Однако мы также можем определить значение и его тип в поле [customAttribute] . Итак, в этой ситуации, почему я должен определять тип данных в поле семантического дескриптора <контейнер> , или почему я должен использовать <контейнер> вместо

SDT определены для некоторых устройств в документе TS-0023. Если производитель устройства не определил SDT и если мы хотим использовать это устройство, как мы можем создать для него файл SDT / XML?

1 Ответ

3 голосов
/ 11 апреля 2019

отличается от обычного ресурса во многих отношениях:

  • Ресурс не хранит фактические значения в самом ресурсе. Дочерние ресурсы , т.е. или еще ресурсов, делайте. Напротив, специализация содержит сами фактические значения.
  • A сам по себе не может быть непосредственно создан, он является только логической основой для дальнейших специализаций (очень похоже на базовый класс в ООП). Он определяет ряд атрибутов, которые поддерживают эти специализации, например, атрибут containerDefinition содержит идентификатор, который определяет фактический тип конкретного ресурса . Специализация затем определяет четко определенную структуру, которая может содержать довольно сложную структуру точек данных. Упомянутые устройства и классы модулей из TS-0023 являются такими специализациями, например, температура . Эти специализации имеют четко определенную структуру с семантикой, ограничениями и т. Д.
  • Большим преимуществом является то, что его можно обновлять, тогда как в можно только добавлять или удалять. Это также означает, что если приложению требуется только текущий статус устройства и его не интересуют более старые значения данных, одна специализация - это (более или менее) все, что нужно приложению.
  • Все точки данных, содержащиеся в специализации , считываются и записываются одновременно. В некоторых случаях это снижает нагрузку на связь и снижает вероятность возникновения гонки при чтении или записи большого количества точек данных.

К SDT: Шаблон смарт-устройства - это метод спецификации для определения функциональных блоков «Lego», так называемых «ModuleClasses». Эти ModuleClasses могут тогда быть взяты, чтобы построить прототип "Устройства". Упомянутая спецификация oneM2M «TS-0023: информационная модель и отображение бытовой техники» определяет ряд этих классов и устройств ModuleClass и устройств, а также соответствие специализациям . Это означает, что для определения функциональности «температура» / ModuleClass существует ресурс oneM2M .

Когда вы хотите создать новое определение устройства с использованием SDT, я бы посоветовал вам сначала взглянуть на список уже определенных ModuleClasses и Devices в TS-0023. Если нужная вам функциональность недоступна, вы можете определить свой собственный ModuleClass и Device, написав свой собственный файл SDT.

Определение SDT доступно в https://git.onem2m.org/MAS/SDT.

Последняя версия SDT для ModuleClasses и устройств, определенных в TS-0023, доступна по адресу https://git.onem2m.org/MAS/Home-Appliances.

Инструмент для генерации необходимого XSD из вашего определения SDT можно найти по адресу https://github.com/Homegateway/SDTTool.

Еще две ноты :

  • Допускает ли CSE самостоятельную специализацию , зависит от реализации и политик CSE.
  • На момент написания статьи (апрель 2019 г.) oneM2M работает над новой версией SDT, которая поддерживает, например, определения продуктов, лучшее наследование и дальнейшую семантическую поддержку. oneM2M также работает над новой версией спецификации TS-0023 для поддержки междоменных сценариев и устройств IoT, а не только домашнего домена.
...