Commit e4dba6c9 authored by Pavel Vainerman's avatar Pavel Vainerman

(codegen): Переписал документацию в части описания использвания

аргументов командной строки (argprefix).
parent 0ea9f7dd
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
- \ref pg_Codegen_SMap - \ref pg_Codegen_SMap
- \ref pg_Codegen_MsgMap - \ref pg_Codegen_MsgMap
- \ref pg_Codegen_Variables - \ref pg_Codegen_Variables
- \ref pg_Codegen_argprefix
- \ref pg_Codegen_Configuration - \ref pg_Codegen_Configuration
- \ref pg_Codegen_TestMode - \ref pg_Codegen_TestMode
- \ref pg_Codegen_Make - \ref pg_Codegen_Make
...@@ -75,7 +76,7 @@ ...@@ -75,7 +76,7 @@
<set name="msg-count" val="20"/> <set name="msg-count" val="20"/>
<set name="sleep-msec" val="150"/> <set name="sleep-msec" val="150"/>
</settings> </settings>
<variables arg_prefix="test-"> <variables>
<!-- type = [int,str,bool,float] <!-- type = [int,str,bool,float]
int: max,min,no_range_exception=[0,1] int: max,min,no_range_exception=[0,1]
str: str:
...@@ -168,9 +169,6 @@ ...@@ -168,9 +169,6 @@
- \b const - const="1" - сгенерировать как константу. - \b const - const="1" - сгенерировать как константу.
- \b private | \b public | \b protected - Область видимости. По умолчанию: \b protected. - \b private | \b public | \b protected - Область видимости. По умолчанию: \b protected.
Помимо этого в самой секции \<variables> можно указать свойство \b arg_prefix="...", которое используется при инициализации
при помощи аргументов командной строки.
В генерируемом коде для каждой переменной происходит её инициализация по следующему шаблону (псевдокод): В генерируемом коде для каждой переменной происходит её инициализация по следующему шаблону (псевдокод):
\code \code
varname = conf->getArgParam("--'arg_prefix'varname'",it.getProp("'varname'")); varname = conf->getArgParam("--'arg_prefix'varname'",it.getProp("'varname'"));
...@@ -188,6 +186,39 @@ ...@@ -188,6 +186,39 @@
\b private="1" и тогда они будут иметь соответствующую область видимости. \b private="1" и тогда они будут иметь соответствующую область видимости.
\section pg_Codegen_argprefix Аргументы командной строки
Для возможности переопределять различные парамеры при помощи аргументов командной строки, сделан следующий механизм.
В сгенерированном конструкторе (файл xx_SK.h) можно задать последний аргумент \b argprefix. Если он равен "", то в качестве
префикса используется ObjectName. Все переменные из секции \a <variables> можно переопределять аргументом
\b --prefix-varname \b val. В общем случае это будет: \b --ObjectName-varname \b val.
Помимо этого \b argprefix можно задать в секции <settings>
\code
<settings>
...
<set name="arg-prefix" val="test-"/>
...
</settings>
\endcode
Тогда вместо \a ObjectName будет использоваться указанный префикс \a --test- (обратите внимание на то, что префикс задаётся с \b - в конце).
Значения по умолчанию для \b входов (in_xxx) и \b выходов (out_xx) можно также опередять через аргументы командной строки:
- \b --argprefix-xxxname-default val
Дополнительно при помощи командной строки можно переопределять следующие свойства:
- \b --argprefix-force-out
- \b --argprefix-heartbeat-id
- \b --argprefix-heartbeat-time
- \b --argprefix-heartbeat-max
- \b --argprefix-sleep-msec
- \b --argprefix-resetMsgTime
- \b --argprefix-sm-test-id
- \b --argprefix-activate-timeout
- \b --argprefix-startup-timeout
- \b --argprefix-log
\section pg_Codegen_Configuration Конфигурирование \section pg_Codegen_Configuration Конфигурирование
Для режима генерирования на основе отдельного xml-файла (\ref pg_Codegen_XmlFile) необходимо дополнительно производить конфигурирование. Для режима генерирования на основе отдельного xml-файла (\ref pg_Codegen_XmlFile) необходимо дополнительно производить конфигурирование.
\a Конфигурирование - это привязка конкретных имён датчиков к указанным полям класса. Для этого в конфигурационном файле проекта \a Конфигурирование - это привязка конкретных имён датчиков к указанным полям класса. Для этого в конфигурационном файле проекта
......
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