Commit 63f176d0 authored by Pavel Vainerman's avatar Pavel Vainerman

(docs): подправил документацию по uniset-codegen

parent 4850ae07
...@@ -121,15 +121,15 @@ ...@@ -121,15 +121,15 @@
(чтобы можно было опять послать тоже самое сообщение). Т.е. само событие "сообщение" это переход датчика "0" --> "1". (чтобы можно было опять послать тоже самое сообщение). Т.е. само событие "сообщение" это переход датчика "0" --> "1".
В сгенерированном коде реализован "автоматический" сброс сообщения через \b resetMsgTime миллисекунд. В сгенерированном коде реализован "автоматический" сброс сообщения через \b resetMsgTime миллисекунд.
\b resetMsgTime настраивается через конфигурационную секцию (см. \ref pg_Codegen_Configuration ). Следует иметь ввиду, \b resetMsgTime настраивается через конфигурационную секцию (см. \ref pg_Codegen_Configuration ). Следует иметь ввиду,
что это время должно быть достаточным чтобы датчик (изменение "0"-->"1") успело быть переданным по сети на другие узлы что это время должно быть достаточным чтобы датчик (изменение "0"-->"1") успел быть переданным по сети на другие узлы
(зависит от используемого протокола передачи). (зависит от используемого протокола передачи).
Для сообщений генерируется такой же набор "переменных" как и для полей указанных в \<smap> (см. \ref pg_Codegen_SMap). За исключением того, Для сообщений генерируется такой же набор "переменных" как и для полей указанных в \<smap> (см. \ref pg_Codegen_SMap). За исключением того,
что генерируется имя с префиксом \b mid_. И "привязка" идентификаторов не является обязательной. что генерируется имя с префиксом \b mid_. И "привязка" идентификаторов не является обязательной.
\warning Датчики-сообщений \b ОБЯЗАТЕЛЬНО должны иметь тип \b "DI" \warning Датчики-сообщений \b ОБЯЗАТЕЛЬНО должны иметь тип \b "DI"
Для работы с сообщениями существует ряд правил: Для работы с сообщениями существует ряд правил:
- сообщения должны посылаться при помощи специальной (сгенерированной) функций - сообщения должны посылаться при помощи специальной (сгенерированной) функции
\b setMsg( UniSetTypes::ObjectId code, bool state ) или alarm( UniSetTypes::ObjectId code, bool state ). \b setMsg( UniSetTypes::ObjectId code, bool state ) или \b alarm( UniSetTypes::ObjectId code, bool state ).
Для передачи сообщения необходим вызов c параметром \b state=true. Для передачи сообщения необходим вызов c параметром \b state=true.
- Сообщения "автоматически" сбрасываются в "0" через \b resetMsgTime (настраиваемое в конф. секции), поэтому - Сообщения "автоматически" сбрасываются в "0" через \b resetMsgTime (настраиваемое в конф. секции), поэтому
вызывать функции с \b state=false нет смысла. вызывать функции с \b state=false нет смысла.
...@@ -160,9 +160,9 @@ ...@@ -160,9 +160,9 @@
varname = 'default' varname = 'default'
\endcode \endcode
Где \a it.getProp() - получение значения из соответствующей настроечной секции в конфигурационном файле (см. \ref pg_Codegen_Configuration). Где \a it.getProp() - получение значения из соответствующей настроечной секции в конфигурационном файле (см. \ref pg_Codegen_Configuration).
Из кода вида, что приоритетным является аргумент командной строки, потом значение из конф. файла и только потом \a default. Из кода можно видеть, что приоритетным является аргумент командной строки, потом значение из конф. файла и только потом \a default.
Если указаны поля \b min или \b max происходит проверка значения (после инициализации) на соответсвие указанному диапазону. Если указаны поля \b min или \b max происходит проверка значения (после инициализации) на соответствие указанному диапазону.
По умолчанию, при выходе за диапазон, генериурется исключение. Но если указано \b no_range_exception="1", По умолчанию, при выходе за диапазон, генериурется исключение. Но если указано \b no_range_exception="1",
то просто выдаётся warning в unideb[Debug::WARN]. то просто выдаётся warning в unideb[Debug::WARN].
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
Переход в тестовый режим осуществляется, только если \b ОБА датчика станут равными \b "1". Переход в тестовый режим осуществляется, только если \b ОБА датчика станут равными \b "1".
\note Два датчика сделаны для защиты от "случайного" перехода. \note Два датчика сделаны для защиты от "случайного" перехода.
\section pg_Codegen_Templ_Ask Типа процессов (активный и пассивный) \section pg_Codegen_Templ_Ask Типы процессов (активный и пассивный)
uniset-codegen поддерживает генерирование двух видов процессов: uniset-codegen поддерживает генерирование двух видов процессов:
- \b пассивный \b процесс - (по умолчанию). Основан на "заказе датчиков". - \b пассивный \b процесс - (по умолчанию). Основан на "заказе датчиков".
- \b активный \b процесс - на каждом шаге опрашивает свои "входы". - \b активный \b процесс - на каждом шаге опрашивает свои "входы".
...@@ -226,13 +226,15 @@ ...@@ -226,13 +226,15 @@
независимо от того, менялись ли они. независимо от того, менялись ли они.
\warning Следует иметь ввиду, что при работе не на основе "заказа датчиков", существует вероятность пропустить(потерять) "изменение" \warning Следует иметь ввиду, что при работе не на основе "заказа датчиков", существует вероятность пропустить(потерять) "изменение"
состояния датчика, в случае если он поменяется и восстановится обратно в течение времени меньше чем \b sleep-time у данного процесса. состояния датчика, в случае если он поменяется и восстановится обратно в течение времени меньше чем \b sleep-time у данного процесса.
А также такой процесс потребляет больше процессорного времени, т.к. постоянно опрашивает "входы" независимо от того, меняли ли они
своё состояние.
\section pg_Codegen_Templ_Alone Шаблон 'Alone' \section pg_Codegen_Templ_Alone Шаблон 'Alone'
Шаблон \b "Alone" предназначен для генерирования \b без \b использования специального xml-файла с описанием переменных. Шаблон \b "Alone" предназначен для генерирования \b без \b использования специального xml-файла с описанием переменных.
Генерирование происходит непосредственно по конфигурационному файлу проекта. Для этого всё-равно необходимо создать Генерирование происходит непосредственно по конфигурационному файлу проекта. Для этого всё-равно необходимо создать
соответствующую настроечную секцию, в которой будут прописаны параметры необходимые для генерирования "SK"-класса. соответствующую настроечную секцию, в которой будут прописаны параметры необходимые для генерирования "SK"-класса.
При этом используемые "входы" и "выходы" записываются непосредственно у каждого используемого датчика в секции \b \<consumers>. При этом используемые "входы" и "выходы" записываются непосредственно у каждого используемого датчика в секции \b \<consumers>.
Ниже приведён пример конфигурирования процесса непосредственно в конфигурационном файле проекта: Ниже приведён пример конфигурирования процесса файле проекта:
\code \code
... ...
<settings> <settings>
......
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