mp-co-ru / mpc-peresvet

Data acqusition, GUI, decision making. IoT, SCADA, dispatching and monitoring.
https://mp-co-ru.github.io/mpc-peresvet/
Apache License 2.0
0 stars 0 forks source link

Сервис ``connectors_model_crud``, работа с узлами #60

Closed Vovaman closed 1 year ago

Vovaman commented 1 year ago

При создании нового коннектора в узле cn=connectors,cn=prs создаётся новый узел класса prsConnector, внутри этого нового узла - узел system (класс prsModelNode).

Узел system будет содержать список тегов, привязанных к коннектору.

Когда сервис получает сообщение от connectors_api_crud вида

{
   "action": "update",
   "id": "...",
   "linkTags": [
       {
           "id": "...",
           "attributes": {
               "prsSource": "...",
               "prsValueScale": 1,
               "prsMaxDev": 0
           }
      }
   ]
}

то он создаёт в узле cn=system,cn=<connector_id>,cn=connectors,cn=prs новые узлы для привязываемых тегов. Если узлы с указанными в массиве linkTags id уже существуют, то данные по ним обновляются.

Для каждого вновь привязываемого тега создаётся узел класса prsConnectorTagData с атрибутом cn, равным id тега. Внутри этого узла создаётся ссылка на привязываемый тег. Её имя - тоже id тега.

Таким образом, получается такая иерархия узлов:

prs (prsModelNode)
     connectors (prsModelNode)
           xxxx-xxxx-xxx-xxxxxxxx (prsConnector)
                system (prsModelNode)
                      yyyy-yyyy-yyy-yyyyyyyy (prsConnectorTagData)
                             yyyy-yyyy-yyy-yyyyyyyy (alias, extensibleObject)
zippy-junior commented 1 year ago

Появилась проблема с методом modify в модуле hierarchy.py. Остановились на строчке 372