Commit 178b230a authored by Pavel Vainerman's avatar Pavel Vainerman

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

используется не жёстко заданное свойство (tcp_), а название указанное в качестве "filter-field". НЕСОВМЕСТИМОСТЬ с предыдущими версиями!
parent ce1a189a
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Name: libuniset Name: libuniset
Version: 1.0 Version: 1.0
Release: alt51 Release: alt52
Summary: UniSet - library for building distributed industrial control systems Summary: UniSet - library for building distributed industrial control systems
License: GPL License: GPL
Group: Development/C++ Group: Development/C++
...@@ -212,6 +212,9 @@ rm -f %buildroot%_libdir/*.la ...@@ -212,6 +212,9 @@ rm -f %buildroot%_libdir/*.la
%changelog %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 * Wed Nov 02 2011 Pavel Vainerman <pv@altlinux.ru> 1.0-alt51
- (unet2): added reserv channel exchange - (unet2): added reserv channel exchange
......
...@@ -150,6 +150,7 @@ void MBExchange::help_print( int argc, const char* const* argv ) ...@@ -150,6 +150,7 @@ void MBExchange::help_print( int argc, const char* const* argv )
cout << "--prefix-statistic-sec sec - Выводить статистику опроса каждые sec секунд" << endl; cout << "--prefix-statistic-sec sec - Выводить статистику опроса каждые sec секунд" << endl;
cout << "--prefix-sm-ready-timeout - время на ожидание старта SM" << endl; cout << "--prefix-sm-ready-timeout - время на ожидание старта SM" << endl;
cout << "--prefix-exchange-mode-id - Идентификатор (AI) датчика, позволяющего управлять работой процесса" << endl; cout << "--prefix-exchange-mode-id - Идентификатор (AI) датчика, позволяющего управлять работой процесса" << endl;
cout << "--prefix-set-prop-prefix val - Использовать для свойств указанный или пустой префикс." << endl;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
MBExchange::~MBExchange() MBExchange::~MBExchange()
......
...@@ -17,12 +17,30 @@ force_disconnect(true), ...@@ -17,12 +17,30 @@ force_disconnect(true),
mbtcp(0), mbtcp(0),
pollThread(0) pollThread(0)
{ {
// cout << "$ $" << endl;
prop_prefix = "tcp_";
if( objId == DefaultObjectId ) if( objId == DefaultObjectId )
throw UniSetTypes::SystemError("(MBTCPMaster): objId=-1?!! Use --" + prefix + "-name" ); 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); UniXML_iterator it(cnode);
// ---------- init MBTCP ---------- // ---------- init MBTCP ----------
......
...@@ -106,6 +106,9 @@ ...@@ -106,6 +106,9 @@
\b --xxx-statistic-sec sec - при наличии выведет кол-во посланных запросов за этот промежуток времени. \b --xxx-statistic-sec sec - при наличии выведет кол-во посланных запросов за этот промежуток времени.
\b --xxx-set-prop-prefix [str] - Использовать 'str' в качестве префикса для свойств.
Если не указать 'str' будет использован пустой префикс.
Если параметры не заданы, будет произведена попытка загрузить все датчики, у которых Если параметры не заданы, будет произведена попытка загрузить все датчики, у которых
присутствуют необходимые настроечные параметры. присутствуют необходимые настроечные параметры.
...@@ -122,7 +125,12 @@ ...@@ -122,7 +125,12 @@
</sensors> </sensors>
\endcode \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_mbtype - [rtu] - пока едиственный разрешённый тип.
- \b tcp_mbaddr - адрес RTU-устройства. - \b tcp_mbaddr - адрес RTU-устройства.
- \b tcp_mbreg - запрашиваемый/записываемый регистр. - \b tcp_mbreg - запрашиваемый/записываемый регистр.
......
...@@ -11,7 +11,7 @@ lib_LTLIBRARIES = libUniSetMBTCPMaster.la libUniSetRTU.la ...@@ -11,7 +11,7 @@ lib_LTLIBRARIES = libUniSetMBTCPMaster.la libUniSetRTU.la
# -------------------- Mobus TCP ------------------- # -------------------- Mobus TCP -------------------
# не забывайте править версию в pc-файле # не забывайте править версию в pc-файле
UMBTCP_VER=1:2:1 UMBTCP_VER=1:3:1
libUniSetMBTCPMaster_la_LDFLAGS = -version-info $(UMBTCP_VER) libUniSetMBTCPMaster_la_LDFLAGS = -version-info $(UMBTCP_VER)
...@@ -31,7 +31,7 @@ libUniSetMBTCPMaster_la_SOURCES = MBTCPMaster.cc ...@@ -31,7 +31,7 @@ libUniSetMBTCPMaster_la_SOURCES = MBTCPMaster.cc
# -------------------- Mobus RTU ------------------- # -------------------- Mobus RTU -------------------
# не забывайте править версию в pc-файле # не забывайте править версию в pc-файле
URTU_VER=2:0:0 URTU_VER=2:1:0
libUniSetRTU_la_LDFLAGS = -version-info $(URTU_VER) libUniSetRTU_la_LDFLAGS = -version-info $(URTU_VER)
libUniSetRTU_la_LIBADD = libMBMaster.la $(top_builddir)/lib/libUniSet.la \ libUniSetRTU_la_LIBADD = libMBMaster.la $(top_builddir)/lib/libUniSet.la \
......
...@@ -17,11 +17,29 @@ use485F(false), ...@@ -17,11 +17,29 @@ use485F(false),
transmitCtl(false), transmitCtl(false),
rs_pre_clean(false) rs_pre_clean(false)
{ {
prop_prefix = "";
if( objId == DefaultObjectId ) if( objId == DefaultObjectId )
throw UniSetTypes::SystemError("(RTUExchange): objId=-1?!! Use --" + prefix + "-name" ); throw UniSetTypes::SystemError("(RTUExchange): objId=-1?!! Use --" + prefix + "-name" );
// префикс для "свойств" - по умолчанию
prop_prefix = "";
// если задано поле для "фильтрации"
// то в качестве префикса используем его
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); UniXML_iterator it(cnode);
// ---------- init RS ---------- // ---------- init RS ----------
......
...@@ -6,6 +6,6 @@ includedir=@includedir@ ...@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libUniSetMBTCPMaster Name: libUniSetMBTCPMaster
Description: Support library for UniSetModbusTCPMaster Description: Support library for UniSetModbusTCPMaster
Requires: libUniSetExtensions libUniSetSharedMemory Requires: libUniSetExtensions libUniSetSharedMemory
Version: 1.2.1 Version: 1.3.1
Libs: -L${libdir} -lUniSetMBTCPMaster Libs: -L${libdir} -lUniSetMBTCPMaster
Cflags: -I${includedir}/uniset Cflags: -I${includedir}/uniset
...@@ -6,6 +6,6 @@ includedir=@includedir@ ...@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libUniSetRTU Name: libUniSetRTU
Description: Support library for UniSetRTUExchange Description: Support library for UniSetRTUExchange
Requires: libUniSetExtensions Requires: libUniSetExtensions
Version: 2.0.0 Version: 2.1.0
Libs: -L${libdir} -lUniSetRTU Libs: -L${libdir} -lUniSetRTU
Cflags: -I${includedir}/uniset Cflags: -I${includedir}/uniset
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
--mbtcp-recv-timeout 5000 \ --mbtcp-recv-timeout 5000 \
--mbtcp-force-disconnect 1 \ --mbtcp-force-disconnect 1 \
--mbtcp-polltime 5000 \ --mbtcp-polltime 5000 \
--mbtcp-exchange-mode-id MB1_Mode_AS --mbtcp-exchange-mode-id MB1_Mode_AS \
--mbtcp-set-prop-prefix tcp_
#--mbtcp-filter-field mbtcp --mbtcp-filter-value 1 #--mbtcp-filter-field mbtcp --mbtcp-filter-value 1
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