Commit 94b4b67f authored by Pavel Vainerman's avatar Pavel Vainerman

(docs): Потихоньку переписываю и расширяю документацию

parent 4a6fc9b2
......@@ -110,9 +110,9 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
будет присвоен идентификатор (просто по порядку). См. \ref UniSetTypes::ObjectIndex_XML
\note Следует иметь ввиду, что автоматическое присвоение идентификаторов,
\b зависит \b от \b положения описания объекта в конфигурацинном фале.
\b зависит \b от \b положения описания объекта в конфигурацинном файле.
Поэтому если вставить новый объект в любой секции, то все идентификаторы после него,
станут недействительными (сместяться на единицу). Т.е. необходимо отслеживать,
станут недействительными (сместятся на единицу). Т.е. необходимо отслеживать,
что конфигурационные файлы на всех узлах собвпадают между собой.
\note Из-за не надёжности это способ не рекомендуется к использованию.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! \page page_Uniset Краткое описание библиотеки libuniset
Основной целью библиотека libuniset является предоставление готовых "кубиков",
для построения АСУ.
Графически libuniset можно представить так:
\image html libuniset.png
\section pg_Uniset_Processes Взаимодействие процессов на узле
На рисунке представлено типичное взаимодействие процессов на узле.
\image html uniset-node.png
Центральным элементом системы является \b SharedMemory - это процесс,
осуществляющий хранение состояния всех датчиков. Всё взаимодействие между
процессами осуществляется через него. Помимо этого \b SharedMemory осуществляет
рассылку уведомлений процессам об изменении состояния того или иного датчика.
Все процессы условно можно разделить на два типа \b "активные" и \b "пассивные".
\b Пассивные процессы - это процессы которые большую часть времени "спят" ожидая,
событий изменения датчиков. В основном к таким процессам относяться процессы управления.
\b Активные процессы - это процессы которые постоянно выполняют какую-то работу.
К тами процессам относяться:
- процессы обмена по сети (в данном случае CAN)
- процессы работы с картами ввода/вывода (IOControl)
- процессы обмена с какими-то внешними устройствами (RS485 или ModbusTCP)
Т.к. \a активные процессы тесно взаимодействуют с \b SharedMemory, то для
оптимизации работы (исключения удалённых вызовов процедур через CORBA),
все \a активные процессы запускаются в одном адресном пространстве с SharedMemory
(каждый процесс в отдельном потоке), и работают с \b SM напрямую,
через указатель. Это \b "объединённый" обычно процесс называется \b SharedMemory2.
Отдельно можно выделить группу "вспомогательных" процессов. На данном рисунке,
к таким относится \b DBServer, обычно запускаемый на графических станция,
где ведётся БД. Его задача, получать уведомления от \b SM по изменении любого
датчика и сохранять эти события в БД. По умолчанию в libuniset реализована
работа с MySQL, но при необходимости можно реализовать взаимодействие с любой СУБД.
\sa \ref page_SharedMemory
\sa \ref page_IOControl
\section pg_UniSet_Network Распределённое взаимодействие (сетевое)
\image html uniset-typical.png
*/
......@@ -6,5 +6,6 @@
\section MainSection Оглавление
- \ref page_Concept
- \ref page_Uniset
- \ref UniSetLibStylePage
*/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment