Commit ceef1366 authored by Pavel Vainerman's avatar Pavel Vainerman

Merge branch 'master' into devel/reserv-smemory

parents 1ff2eed2 5a71c135
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
Name: libuniset2 Name: libuniset2
Version: 2.0 Version: 2.0
Release: alt28.1 Release: alt28.2
Summary: UniSet - library for building distributed industrial control systems Summary: UniSet - library for building distributed industrial control systems
...@@ -409,6 +409,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname ...@@ -409,6 +409,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# .. # ..
%changelog %changelog
* Thu Apr 23 2015 Pavel Vainerman <pv@etersoft.ru> 2.0-alt28.2
- unet-udp: special build... change maximum for digital and analog data. Set A=1500, D=5000.
* Thu Apr 23 2015 Pavel Vainerman <pv@etersoft.ru> 2.0-alt28.1 * Thu Apr 23 2015 Pavel Vainerman <pv@etersoft.ru> 2.0-alt28.1
- unet-udp: special build... change maximum for digital and analog data. Set A=800, D=5000. - unet-udp: special build... change maximum for digital and analog data. Set A=800, D=5000.
......
...@@ -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,38 @@ ...@@ -188,6 +186,38 @@
\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 1/0
- \b --argprefix-heartbeat-id sensorID
- \b --argprefix-heartbeat-time msec
- \b --argprefix-heartbeat-max num
- \b --argprefix-sleep-msec msec
- \b --argprefix-resetMsgTime msec
- \b --argprefix-sm-test-id sensorID
- \b --argprefix-activate-timeout msec
- \b --argprefix-startup-timeout msec
- \b --argprefix-log-[add|del]-levels xxx,xxx,xxx
\section pg_Codegen_Configuration Конфигурирование \section pg_Codegen_Configuration Конфигурирование
Для режима генерирования на основе отдельного xml-файла (\ref pg_Codegen_XmlFile) необходимо дополнительно производить конфигурирование. Для режима генерирования на основе отдельного xml-файла (\ref pg_Codegen_XmlFile) необходимо дополнительно производить конфигурирование.
\a Конфигурирование - это привязка конкретных имён датчиков к указанным полям класса. Для этого в конфигурационном файле проекта \a Конфигурирование - это привязка конкретных имён датчиков к указанным полям класса. Для этого в конфигурационном файле проекта
......
...@@ -51,9 +51,9 @@ namespace UniSetUDP ...@@ -51,9 +51,9 @@ namespace UniSetUDP
// Хотелось бы не вылезать за общий размер посылаемых пакетов 8192. (550,900 --> 8133) // Хотелось бы не вылезать за общий размер посылаемых пакетов 8192. (550,900 --> 8133)
// ------ // ------
// временное резрешение на A=800,D=5000! DI/DO // временное резрешение на A=800,D=5000! DI/DO
// 800*8 + 5000*4 + 5000/8 = 27025 байт максимальный размер данных + служебные заголовки // 1500*8 + 5000*4 + 5000/8 = 32625 байт максимальный размер данных + служебные заголовки
static const size_t MaxACount = 800; static const size_t MaxACount = 1500;
static const size_t MaxDCount = 5000; static const size_t MaxDCount = 5000;
static const size_t MaxDDataCount = 1 + MaxDCount / 8*sizeof(unsigned char); static const size_t MaxDDataCount = 1 + MaxDCount / 8*sizeof(unsigned char);
......
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