Commit ceef1366 authored by Pavel Vainerman's avatar Pavel Vainerman

Merge branch 'master' into devel/reserv-smemory

parents 1ff2eed2 5a71c135
......@@ -12,7 +12,7 @@
Name: libuniset2
Version: 2.0
Release: alt28.1
Release: alt28.2
Summary: UniSet - library for building distributed industrial control systems
......@@ -409,6 +409,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# ..
%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
- unet-udp: special build... change maximum for digital and analog data. Set A=800, D=5000.
......
......@@ -6,6 +6,7 @@
- \ref pg_Codegen_SMap
- \ref pg_Codegen_MsgMap
- \ref pg_Codegen_Variables
- \ref pg_Codegen_argprefix
- \ref pg_Codegen_Configuration
- \ref pg_Codegen_TestMode
- \ref pg_Codegen_Make
......@@ -75,7 +76,7 @@
<set name="msg-count" val="20"/>
<set name="sleep-msec" val="150"/>
</settings>
<variables arg_prefix="test-">
<variables>
<!-- type = [int,str,bool,float]
int: max,min,no_range_exception=[0,1]
str:
......@@ -168,9 +169,6 @@
- \b const - const="1" - сгенерировать как константу.
- \b private | \b public | \b protected - Область видимости. По умолчанию: \b protected.
Помимо этого в самой секции \<variables> можно указать свойство \b arg_prefix="...", которое используется при инициализации
при помощи аргументов командной строки.
В генерируемом коде для каждой переменной происходит её инициализация по следующему шаблону (псевдокод):
\code
varname = conf->getArgParam("--'arg_prefix'varname'",it.getProp("'varname'"));
......@@ -188,6 +186,38 @@
\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 Конфигурирование
Для режима генерирования на основе отдельного xml-файла (\ref pg_Codegen_XmlFile) необходимо дополнительно производить конфигурирование.
\a Конфигурирование - это привязка конкретных имён датчиков к указанным полям класса. Для этого в конфигурационном файле проекта
......
......@@ -51,9 +51,9 @@ namespace UniSetUDP
// Хотелось бы не вылезать за общий размер посылаемых пакетов 8192. (550,900 --> 8133)
// ------
// временное резрешение на 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 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