Что делает датчик АЕ или Контейнером? - PullRequest
0 голосов
/ 17 января 2019

Мы пытаемся реализовать спецификацию onem2m, но у нас есть некоторое недопонимание , что делает датчик АЕ или контейнером?

Например, у меня есть плата ardunio, и я подключил к ней 10 простых светодиодов. Тогда меня смущают два варианта. Первый - У меня есть один AE (Ardunio) и 10 контейнеров (светодиодов) для каждого светодиода. Другой - У меня есть AE (Ardunio), он является родителем еще 10 AE (светодиодов), у этих AE есть свой собственный контейнер.

Так что же делает ресурс AE или контейнером? Что я должен искать для принятия этого решения?

1 Ответ

0 голосов
/ 18 января 2019

Возможно, структуру ресурсов oneM2M легче понять, если взглянуть на общую архитектуру устройства oneM2M. Ваш Arduino, скорее всего, не содержит CSE, поэтому это может быть Application Dedicated Node (ADN), который подключается к удаленной CSE.

Приложение - вот ключевое слово: на вашем Arduino находится приложение, которое, например, считывает и обрабатывает некоторые данные датчика. Он реализует функциональную логику для этого устройства. Таким образом, это приложение в терминах oneM2M является Application Entity (AE). В oneM2M AE имеет определенные свойства, такие как идентификатор приложения и т. Д. Он также содержит права доступа для подключения к удаленной CSE и доступа к ресурсам на этой удаленной CSE.

AE также является корнем для фактических данных и структур данных, которыми управляет этот AE. Эта структура может быть построена из Контейнеры . Это обычный способ иметь один Контейнер для каждого датчика и его данных, например, Контейнер температуры , Контейнер давления воздуха и т. Д. Также возможно иметь Контейнеры внутри Контейнера если вы хотите структурировать свои данные немного больше.

Фактические данные датчика обрабатываются в этих контейнерах. Эти объекты данных называются 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 ─── ...                                                               
...