Commit da9832e1 authored by Pavel Vainerman's avatar Pavel Vainerman

(Modbus): Теперь в качестве префикса для modbus-свойств (у датчиков)…

(Modbus): Теперь в качестве префикса для modbus-свойств (у датчиков) используется не жёстко заданное свойство (tcp_), а название указанное в качестве "filter-field". НЕСОВМЕСТИМОСТЬ с предыдущими версиями!
parent 6d584a37
......@@ -3,7 +3,7 @@
Name: libuniset
Version: 1.0
Release: alt51
Release: alt52
Summary: UniSet - library for building distributed industrial control systems
License: GPL
Group: Development/C++
......@@ -212,6 +212,9 @@ rm -f %buildroot%_libdir/*.la
%changelog
* Wed Nov 16 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt52
- (modbus): An opportunity to change the prefix is added to the properties
* Wed Nov 02 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt51
- (unet2): added reserv channel exchange
......
......@@ -150,6 +150,7 @@ void MBExchange::help_print( int argc, const char* const* argv )
cout << "--prefix-statistic-sec sec - Выводить статистику опроса каждые sec секунд" << endl;
cout << "--prefix-sm-ready-timeout - время на ожидание старта SM" << endl;
cout << "--prefix-exchange-mode-id - Идентификатор (AI) датчика, позволяющего управлять работой процесса" << endl;
cout << "--prefix-set-prop-prefix val - Использовать для свойств указанный или пустой префикс." << endl;
}
// -----------------------------------------------------------------------------
MBExchange::~MBExchange()
......
......@@ -17,12 +17,30 @@ force_disconnect(true),
mbtcp(0),
pollThread(0)
{
// cout << "$ $" << endl;
prop_prefix = "tcp_";
if( objId == DefaultObjectId )
throw UniSetTypes::SystemError("(MBTCPMaster): objId=-1?!! Use --" + prefix + "-name" );
// префикс для "свойств" - по умолчанию
prop_prefix = "tcp_";
// если задано поле для "фильтрации"
// то в качестве префикса используем его
if( !s_field.empty() )
prop_prefix = s_field + "_";
// если "принудительно" задан префикс
// используем его.
{
string p("--" + prefix + "-set-prop-prefix");
string v = conf->getArgParam(p,"");
if( !v.empty() )
prop_prefix = v;
// если параметр всё-таки указан, считаем, что это попытка задать "пустой" префикс
else if( findArgParam(p,conf->getArgc(),conf->getArgv()) !=-1 );
prop_prefix = "";
}
dlog[Debug::INFO] << myname << "(init): prop_prefix=" << prop_prefix << endl;
UniXML_iterator it(cnode);
// ---------- init MBTCP ----------
......
......@@ -114,6 +114,9 @@
\b --xxx-statistic-sec sec - при наличии выведет кол-во посланных запросов за этот промежуток времени.
\b --xxx-set-prop-prefix [str] - Использовать 'str' в качестве префикса для свойств.
Если не указать 'str' будет использован пустой префикс.
Если параметры не заданы, будет произведена попытка загрузить все датчики, у которых
присутствуют необходимые настроечные параметры.
......@@ -130,7 +133,12 @@
</sensors>
\endcode
К основным параметрам относятся следующие:
\warning По умолчанию для свойств используется префикс "tcp_". Но если задано поле \b filter-field,
то для свойств будет использован префикс <b>"filter-fileld"_</b>.
При этом при помощи --xxx-set-prop-prefix val можно принудительно задать префикс.
Если просто указать ключ --xxx-set-prop-prefix - будет использован "пустой" префикс (свойства без префикса).
К основным параметрам относятся следующие (префикс \b tcp_ - для примера):
- \b tcp_mbtype - [rtu] - пока едиственный разрешённый тип.
- \b tcp_mbaddr - адрес RTU-устройства.
- \b tcp_mbreg - запрашиваемый/записываемый регистр.
......
......@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libUniSetMBTCPMaster
Description: Support library for UniSetModbusTCPMaster
Requires: libUniSetExtensions libUniSetSharedMemory
Version: 1.2.1
Version: 1.3.1
Libs: -L${libdir} -lUniSetMBTCPMaster
Cflags: -I${includedir}/uniset
......@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libUniSetRTU
Description: Support library for UniSetRTUExchange
Requires: libUniSetExtensions
Version: 2.0.0
Version: 2.1.0
Libs: -L${libdir} -lUniSetRTU
Cflags: -I${includedir}/uniset
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