Что делает датчик АЕ или Контейнером?
Мы пытаемся реализовать спецификацию onem2m, но у нас есть некоторое недопонимание, что делает датчик AE или контейнером?
Например, у меня есть плата ardunio, и я подключил к ней 10 простых светодиодов. Тогда меня смущают два варианта. Во-первых, у меня есть один AE (Ardunio) и 10 контейнеров (светодиодов) для каждого светодиода. Другой - у меня есть AE (Ardunio), он является родителем еще 10 AE (светодиодов), у этих AE есть свой собственный контейнер.
Так что же делает ресурс AE или контейнером? Что я должен искать для принятия этого решения?
1 ответ
Возможно, структуру ресурсов oneM2M легче понять, если взглянуть на общую архитектуру устройства oneM2M. Скорее всего, ваш Arduino не содержит CSE, поэтому это может быть выделенный для приложений узел (ADN), который подключается к удаленной CSE.
Приложение - вот ключевое слово: на вашем Arduino размещено приложение, которое, например, считывает и обрабатывает некоторые данные датчика. Он реализует функциональную логику для этого устройства. Таким образом, это приложение в терминах oneM2M является объектом приложения (AE). В oneM2M AE имеет определенные свойства, такие как идентификатор приложения и т. Д. Он также содержит права доступа для подключения к удаленной CSE и доступа к ресурсам на этой удаленной CSE.
АЕ также является корнем для фактических данных и структур данных, которыми управляет эта АЕ. Эта структура может быть построена из контейнеров. Это обычный способ иметь один контейнер для каждого датчика и его данных, например, контейнер температуры, контейнер давления воздуха и т. Д. Также можно иметь контейнеры внутри контейнера, если вы хотите структурировать свои данные немного больше.
Фактические данные датчика управляются в этих контейнерах. Эти объекты данных называются ContentInstances. Обычно вы только добавляете ContentInstances в контейнер, но никогда не удаляете и не обновляете их по отдельности. Таким образом, вы получаете небольшую историю значений ваших данных. Такое поведение, например, как долго должна длиться эта история, является свойством контейнера и может быть установлено индивидуально. Контейнер предлагает две специальные точки данных, самую последнюю (la) и самую старую (ol), которая удобно позволяет вам получить доступ к новейшему или самому старому сохраненному значению в контейнере соответственно.
Обратите внимание, что также возможно, что устройство может содержать более одного AE. АЕ - это абстрактное понятие. Ваше приложение Arduino может фактически реализовать два AE: одно для хранения данных датчика, а другое для чтения данных из CSE, например, для установки параметров работы на Arduino.
Также обратите внимание, что существует ресурс Node, если вы хотите представить фактическое аппаратное устройство (узел - это термин для подключенного устройства в oneM2M, как "N" в "ADN", объясненном выше). Здесь вы можете создать подструктуру, которая представляет устройство, получить информацию о встроенном программном обеспечении, состоянии батареи, информации о сети и т. Д., А также информацию о AE, которые размещены на устройстве. Узлы, как AE, расположены в корне CSE.
Я надеюсь, что это поможет вам структурировать дерево ресурсов для вашего приложения.
Обновить
Следующий рисунок визуализирует это дерево ресурсов.
CSEBase ─┬─ AE ─┬─ Container ─┬─ ContentInstance ◀═══ oldest
│ │ │
│ │ ├─ ContentInstance
│ │ │
│ │ ├── ...
│ │ │
│ │ └─ ContentInstance ◀═══ latest
│ │
│ └─ Container ─┬─ Container ─┬─ ContentInstance
│ │ │
│ │ └─ ...
│ │
│ └─ Container ─┬─ ContentInstance
│ │
│ └─ ...
│
├─ AE ─── ...
│
└─ Node ─── ...