Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
c6a97f32
Commit
c6a97f32
authored
Aug 27, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
доперенёс потерянные изменения из 1.x
parent
8f9b2053
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
181 additions
and
464 deletions
+181
-464
idl.mk
IDL/idl.mk
+36
-0
Makefile.am
Utilities/Makefile.am
+0
-2
skel.src.xml
Utilities/codegen/skel.src.xml
+6
-33
Concept.dox
docs/DocPages/Concept.dox
+27
-27
PassiveLProcessor.cc
extensions/LogicProcessor/PassiveLProcessor.cc
+4
-4
logicproc.cc
extensions/LogicProcessor/logicproc.cc
+39
-39
create_links.sh
extensions/MBTCPMaster/create_links.sh
+0
-6
Makefile.am
extensions/RTUExchange/Makefile.am
+0
-50
create_links.sh
extensions/RTUExchange/create_links.sh
+0
-6
UDPSender.cc
extensions/UDPExchange/UDPSender.cc
+0
-0
create_links.sh
extensions/UDPExchange/create_links.sh
+0
-6
udpexchange.cc
extensions/UDPExchange/udpexchange.cc
+0
-85
udpreceiver.cc
extensions/UDPExchange/udpreceiver.cc
+0
-91
udpsender.cc
extensions/UDPExchange/udpsender.cc
+0
-89
start_fg.sh
extensions/tests/SMemoryTest/start_fg.sh
+1
-1
testproc.src.xml
extensions/tests/SMemoryTest/testproc.src.xml
+52
-0
CallBackTimer.tcc
include/CallBackTimer.tcc
+14
-14
ProxyManager.h
include/ProxyManager.h
+2
-2
Makefile.am
src/Processes/Makefile.am
+0
-3
Makefile.am
src/Services/Makefile.am
+0
-3
Makefile.am
tests/Makefile.am
+0
-3
No files found.
IDL/idl.mk
0 → 100644
View file @
c6a97f32
# This file is a part of the NCS project. (c) 1999-2002 All rights reserved.
# $Id: idl.mk,v 1.2 2006/10/14 16:53:22 vpashka Exp $
# Общий файл для IDL
# Нужно иметь в виду, что когда порождаемые omniidl файлы
# будут кем-либо изменены, они перегенерируются только
# при изменении исходного IDL
IDLFLAGS = -I$(top_builddir)/IDL
# Получения списков генерируемых файлов
HHTARG=$(patsubst %.idl, ${HHDIR}/%.hh, ${IDLFILES})
CCTARG=$(patsubst %.idl, ${CCDIR}/%SK.cc, ${IDLFILES})
########################################################################
all: ${HHTARG} ${CCTARG}
dynamic: all
${HHTARG} ${CCTARG}: ${IDLFILES}
for i in $^; do ${IDL} -v -bcxx ${IDLFLAGS} $$i; done
mv --target-directory=${HHDIR} *.hh
mv --target-directory=${CCDIR} *.cc
.PHONY: clean depend
clean:
${RM} ${HHTARG} ${CCTARG}
depend:
install:
Utilities/Makefile.am
View file @
c6a97f32
...
...
@@ -5,7 +5,5 @@
SUBDIRS
=
scripts Admin NullController SViewer-text
\
SMonit MBTester codegen SImitator
include
$(top_builddir)/conf/common.mk
Utilities/codegen/skel.src.xml
View file @
c6a97f32
...
...
@@ -9,44 +9,17 @@
in - входные регистры (только для чтения)
out - выходные регистры (запись)
-->
<
TestProc
>
<
Skel
>
<settings>
<set
name=
"class-name"
val=
"TestProc
"
/>
<set
name=
"msg-count"
val=
"3
0"
/>
<set
name=
"class-name"
val=
"Skel
"
/>
<set
name=
"msg-count"
val=
"2
0"
/>
<set
name=
"sleep-msec"
val=
"150"
/>
</settings>
<variables>
<item
name=
"changeTime"
type=
"int"
default=
"2000"
min=
"0"
comment=
"change state time"
const=
"1"
public=
"1"
/>
<item
name=
"checkWorkingTime"
type=
"int"
default=
"3000"
min=
"0"
comment=
"check working time"
const=
"1"
public=
"1"
/>
<item
name=
"checkTime"
type=
"int"
default=
"3000"
min=
"0"
comment=
"check Working time"
const=
"1"
public=
"1"
/>
<item
name=
"checkLogTime"
type=
"int"
default=
"2500"
min=
"0"
comment=
"Проверка управления логами"
const=
"1"
public=
"1"
/>
</variables>
<smap>
<smap>
<!-- name - название переменной в конф. файле -->
<item
name=
"on_s"
vartype=
"in"
comment=
"Тестовый вход"
smTestID=
"1"
/>
<item
name=
"lamp_c"
vartype=
"out"
comment=
"Лампочка (тестовый выход)"
/>
<!-- проверка работы механизма зависимостей -->
<item
name=
"depend_c"
vartype=
"out"
comment=
"Датчик от которого зависит состояние другого"
/>
<item
name=
"d1_check_s"
vartype=
"in"
comment=
"состояние зависимого датчика"
/>
<item
name=
"d2_check_s"
vartype=
"in"
comment=
"состояние зависимого датчика"
/>
<item
name=
"set_d1_check_s"
vartype=
"out"
comment=
"для выставления датчика"
/>
<item
name=
"set_d2_check_s"
vartype=
"out"
comment=
"для выставления датчика"
/>
<!-- проверка работы undefined state -->
<item
name=
"undef_c"
vartype=
"out"
comment=
"аналоговый датчик (для проверки undef-состояния)"
/>
<item
name=
"check_undef_s"
vartype=
"in"
comment=
"датчик для выставления undef-состояния"
/>
<!-- проверка работы threshold-ов -->
<item
name=
"t_set_c"
vartype=
"out"
comment=
"аналоговый датчик (для выставления порога)"
/>
<item
name=
"t_check_s"
vartype=
"in"
comment=
"датчик для проверки срабатывания"
/>
<!-- Проверка управления логами -->
<item
name=
"log_c"
vartype=
"out"
comment=
"аналоговый датчик для выставления уровня логов"
/>
<item
name=
"log_s"
vartype=
"in"
comment=
"датчик для управления логами"
loglevel=
"1"
/>
</smap>
<msgmap>
<!-- name - название переменной в конф. файле -->
</msgmap>
</
TestProc
>
</
Skel
>
docs/DocPages/Concept.dox
View file @
c6a97f32
/*! \page page_Concept Основные понятия
В библиотеке \b uniset имеется ряд основопологающих кубиков (терминов),
из которых складывается библиотека, и которые используются во многих
местах данной документации. Здесь приводятся определения этих терминов.
- \ref sec_C
n
pt_Object
- \ref sec_C
n
pt_ObjectTypes
- \ref sec_C
n
pt_Message
- \ref sec_C
n
pt_ObjectId
- \ref sec_C
n
pt_Repository
- \ref sec_C
n
pt_Sensor
- \ref sec_C
n
pt_Process
- \ref sec_C
once
pt_Object
- \ref sec_C
once
pt_ObjectTypes
- \ref sec_C
once
pt_Message
- \ref sec_C
once
pt_ObjectId
- \ref sec_C
once
pt_Repository
- \ref sec_C
once
pt_Sensor
- \ref sec_C
once
pt_Process
\section sec_C
n
pt_Object Объект
\section sec_C
once
pt_Object Объект
В разных местах описаний, в зависимости от контекста,
под "объектом" подразумевается либо объект класса так или иначе наследующегося
от базового класса библиотеки UniSetObject, либо
некий концептуальный программный объект способный
некий концептуальный программный объект способный
получать и обрабатывать сообщения.
\section sec_C
n
pt_ObjectTypes Основные типы объектов
\section sec_C
once
pt_ObjectTypes Основные типы объектов
В библиотеке произведено условное деление на следующие типы объектов:
- (простые) объекты - наследуются от класса UniSetObject
- контроллеры - являются наследниками класса IOController
...
...
@@ -28,7 +28,7 @@
- узлы - в строгом смысле, не являются объектами,
но обладают уникальным идентификатором.
\section sec_C
n
pt_Message Сообщения
\section sec_C
once
pt_Message Сообщения
Вся система взаимодейтсвия между объектами в основном
построена на использовании сообщений (передаваемых
путём удаленного вызова специальных функций,
...
...
@@ -39,7 +39,7 @@
Для разработчиков систем на основе libuniset, заложена
возможность определять свои типы сообщений, при этом их
идентификаторы \b должны начинатся от значения
идентификаторы \b должны начинатся от значения
UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
\code
enum MyMessageTypes
...
...
@@ -53,15 +53,15 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
\endcode
\section sec_C
n
pt_ObjectId Идентификатор объекта
\section sec_C
once
pt_ObjectId Идентификатор объекта
Каждый объект, которому необходимо взаимодействовать с другими объектами
(в том числе датчиками см. \ref sec_C
n
pt_Sensor) должен обладать уникальным
(в том числе датчиками см. \ref sec_C
once
pt_Sensor) должен обладать уникальным
идентификатором. В качестве идентификатора выступает любое число типа \b UniSetTypes::ObjectId.
Зарезервированным числом является UniSetTypes::DefaultObjectId.
Минимальное требование - это уникальность в рамках одного узла.
Так как полный идентификатор объекта формируется парой \b <id,\b node>
Где \b node - такое же число, являющееся идентификатором узла.
При этом приветствуется использование идентификатора уникального
При этом приветствуется использование идентификатора уникального
в рамках всей создаваемой системы. Т.к. в последствии возможен
уход от использования параметра node.
...
...
@@ -99,7 +99,7 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
<objects name="UniObjects">
<item name="TestProc1"/>
<item name="TestProc2"/>
</objects>
</objects>
</ObjectsMap>
...
</Configurations>
...
...
@@ -155,7 +155,7 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
<objects name="UniObjects">
<item id="200" name="TestProc1"/>
<item id="201" name="TestProc2"/>
</objects>
</objects>
</ObjectsMap>
...
</Configurations>
...
...
@@ -165,13 +165,13 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
следить сам разработчик (хотя эта проверка может быть автоматизирована
не сложными скриптами).
\section sec_Concept_Repository Репозиторий объектов
\section sec_Cnpt_Repository Репозиторий объектов
\section sec_Cnpt_Sensor Датчик
\section sec_Concept_Sensor Датчик
Датчик - это одно из базовых понятий при построении систем на основе libuniset.
Датчик - это информационная единица. Практически любая информация
(о событиях, о состоянии того или иного процесса, объекта, сообщение оператору и т.п.)
(о событиях, о состоянии того или иного процесса, объекта, сообщение оператору и т.п.)
передаётся через состояние "датчика". В библиотеке предусмотрено четыре типа датчиков.
- DI - UniversalIO::DigitalInput - дискретный вход
- DO - UniversalIO::DigitalOutput - дискретный выход
...
...
@@ -183,15 +183,15 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
"Входы"(DI,AI) - это информация от объекта "в систему управления".
Помимо этого, датчики не обязательно должны быть "живыми" входами или выходами.
При помощи этих четырёх типов, можно кодировать любую информацию,
Например можно передавать сообщения оператору, заранее создавая для каждого
Например можно передавать сообщения оператору, заранее создавая для каждого
сообщения свой "датчик" и в случае необходимости послать сообщение
выставлять его в "1".
Удобство и универсальность датчиков (цифр) позволяет использовать для
выставлять его в "1".
Удобство и универсальность датчиков (цифр) позволяет использовать для
передачи данных большое число различных протоколов, расчитанных
на передачу цифровой информации (не текстовой).
Например CAN, ModbusRTU, ModbusTCP и т.п.
\section sec_C
n
pt_Process Процесс
\section sec_C
once
pt_Process Процесс
Под процессом в документации чаще всего подразумевается системный
процесс (запущенная программа) выполняющий те или иные функции управления
и обменивающийся для этого с другими процессами сообщениями или
...
...
extensions/LogicProcessor/PassiveLProcessor.cc
View file @
c6a97f32
...
...
@@ -108,7 +108,7 @@ void PassiveLProcessor::sysCommand( const UniSetTypes::SystemMessage *sm )
switch
(
sm
->
command
)
{
case
SystemMessage
:
:
StartUp
:
{
{
if
(
!
shm
->
waitSMready
(
smReadyTimeout
)
)
{
dcrit
<<
myname
<<
"(ERR): SM not ready. Terminated... "
<<
endl
;
...
...
@@ -126,11 +126,11 @@ void PassiveLProcessor::sysCommand( const UniSetTypes::SystemMessage *sm )
case
SystemMessage
:
:
Finish
:
askSensors
(
UniversalIO
::
UIODontNotify
);
break
;
case
SystemMessage
:
:
WatchDog
:
{
// ОПТИМИЗАЦИЯ (защита от двойного перезаказа при старте)
// Если идёт локальная работа
// Если идёт локальная работа
// (т.е. RTUExchange запущен в одном процессе с SharedMemory2)
// то обрабатывать WatchDog не надо, т.к. мы и так ждём готовности SM
// при заказе датчиков, а если SM вылетит, то вместе с этим процессом(RTUExchange)
...
...
@@ -169,7 +169,7 @@ void PassiveLProcessor::sysCommand( const UniSetTypes::SystemMessage *sm )
// -------------------------------------------------------------------------
bool
PassiveLProcessor
::
activateObject
()
{
// блокирование обработки Starsp
// блокирование обработки Starsp
// пока не пройдёт инициализация датчиков
// см. sysCommand()
{
...
...
extensions/LogicProcessor/logicproc.cc
View file @
c6a97f32
...
...
@@ -9,47 +9,47 @@ using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
int
main
(
int
argc
,
const
char
**
argv
)
{
try
{
string
confile
=
UniSetTypes
::
getArgParam
(
"--confile"
,
argc
,
argv
,
"configure.xml"
);
conf
=
new
Configuration
(
argc
,
argv
,
confile
);
try
{
string
confile
=
UniSetTypes
::
getArgParam
(
"--confile"
,
argc
,
argv
,
"configure.xml"
);
conf
=
new
Configuration
(
argc
,
argv
,
confile
);
string
logfilename
(
conf
->
getArgParam
(
"--logicproc-logfile"
));
if
(
logfilename
.
empty
()
)
logfilename
=
"logicproc.log"
;
string
logfilename
(
conf
->
getArgParam
(
"--logicproc-logfile"
));
if
(
logfilename
.
empty
()
)
logfilename
=
"logicproc.log"
;
conf
->
initDebug
(
dlog
,
"dlog"
);
std
::
ostringstream
logname
;
string
dir
(
conf
->
getLogDir
());
logname
<<
dir
<<
logfilename
;
ulog
.
logFile
(
logname
.
str
()
);
dlog
.
logFile
(
logname
.
str
()
);
conf
->
initDebug
(
dlog
,
"dlog"
);
string
schema
=
conf
->
getArgParam
(
"--schema"
);
if
(
schema
.
empty
()
)
{
dcrit
<<
"schema-file not defined. Use --schema"
<<
endl
;
return
1
;
}
std
::
ostringstream
logname
;
string
dir
(
conf
->
getLogDir
());
logname
<<
dir
<<
logfilename
;
unideb
.
logFile
(
logname
.
str
()
);
dlog
.
logFile
(
logname
.
str
()
);
string
schema
=
conf
->
getArgParam
(
"--schema"
);
if
(
schema
.
empty
()
)
{
dlog
[
Debug
::
CRIT
]
<<
"schema-file not defined. Use --schema"
<<
endl
;
return
1
;
}
LProcessor
plc
;
plc
.
execute
(
schema
);
return
0
;
}
catch
(
LogicException
&
ex
)
{
cerr
<<
ex
<<
endl
;
}
catch
(
Exception
&
ex
)
{
cerr
<<
ex
<<
endl
;
}
catch
(
...
)
{
cerr
<<
" catch ... "
<<
endl
;
}
return
1
;
LProcessor
plc
;
plc
.
execute
(
schema
);
return
0
;
}
catch
(
LogicException
&
ex
)
{
cerr
<<
ex
<<
endl
;
}
catch
(
Exception
&
ex
)
{
cerr
<<
ex
<<
endl
;
}
catch
(
...
)
{
cerr
<<
" catch ... "
<<
endl
;
}
return
1
;
}
// -----------------------------------------------------------------------------
extensions/MBTCPMaster/create_links.sh
deleted
100755 → 0
View file @
8f9b2053
#!/bin/sh
ln
-s
-f
../../Utilities/scripts/uniset-start.sh
ln
-s
-f
../../Utilities/scripts/uniset-stop.sh stop.sh
ln
-s
-f
../../Utilities/scripts/uniset-functions.sh
ln
-s
-f
../../conf/test.xml test.xml
extensions/RTUExchange/Makefile.am
deleted
100644 → 0
View file @
8f9b2053
bin_PROGRAMS
=
@PACKAGE@-rtuexchange @PACKAGE@-mtr-conv @PACKAGE@-rtu188-state @PACKAGE@-vtconv @PACKAGE@-mtr-setup
# не забывайте править версию в pc-файле
URTU_VER
=
2:0:0
lib_LTLIBRARIES
=
libUniSetRTU.la
libUniSetRTU_la_LDFLAGS
=
-version-info
$(URTU_VER)
libUniSetRTU_la_LIBADD
=
$(top_builddir)
/lib/libUniSet.la
\
$(top_builddir)
/extensions/SharedMemory/libUniSetSharedMemory.la
\
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
\
$(top_builddir)
/extensions/ModbusMaster/libMBMaster.la
\
$(SIGC_LIBS)
libUniSetRTU_la_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
-I
$(top_builddir)
/extensions/SharedMemory
-I
$(top_builddir)
/extensions/ModbusMaster
$(SIGC_CFLAGS)
libUniSetRTU_la_SOURCES
=
RTUExchange.cc
@PACKAGE@
_rtuexchange_SOURCES
=
rtuexchange.cc
@PACKAGE@
_rtuexchange_LDADD
=
libUniSetRTU.la
$(top_builddir)
/lib/libUniSet.la
\
$(top_builddir)
/extensions/SharedMemory/libUniSetSharedMemory.la
\
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
\
$(top_builddir)
/extensions/ModbusMaster/libMBMaster.la
\
$(SIGC_LIBS)
@PACKAGE@
_rtuexchange_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
-I
$(top_builddir)
/extensions/SharedMemory
-I
$(top_builddir)
/extensions/ModbusMaster
$(SIGC_CFLAGS)
@PACKAGE@
_mtr_conv_SOURCES
=
mtrconv.cc
@PACKAGE@
_mtr_conv_LDADD
=
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
$(top_builddir)
/lib/libUniSet.la
@PACKAGE@
_mtr_conv_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
@PACKAGE@
_mtr_setup_SOURCES
=
mtr-setup.cc
@PACKAGE@
_mtr_setup_LDADD
=
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
$(top_builddir)
/lib/libUniSet.la
@PACKAGE@
_mtr_setup_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
@PACKAGE@
_vtconv_SOURCES
=
vtconv.cc
@PACKAGE@
_vtconv_LDADD
=
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
$(top_builddir)
/lib/libUniSet.la
@PACKAGE@
_vtconv_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
@PACKAGE@
_rtu188_state_LDADD
=
libUniSetRTU.la
\
$(top_builddir)
/extensions/lib/libUniSetExtensions.la
$(top_builddir)
/lib/libUniSet.la
\
$(top_builddir)
/extensions/ModbusMaster/libMBMaster.la
@PACKAGE@
_rtu188_state_CXXFLAGS
=
-I
$(top_builddir)
/extensions/include
-I
$(top_builddir)
/extensions/ModbusMaster
@PACKAGE@
_rtu188_state_SOURCES
=
rtustate.cc
# install
devel_include_HEADERS
=
*
.h
devel_includedir
=
$(pkgincludedir)
/extensions
pkgconfigdir
=
$(libdir)
/pkgconfig
pkgconfig_DATA
=
libUniSetRTU.pc
all-local
:
ln
-sf
../RTUExchange/
$(devel_include_HEADERS)
../include
extensions/RTUExchange/create_links.sh
deleted
100755 → 0
View file @
8f9b2053
#!/bin/sh
ln
-s
-f
../../Utilities/scripts/uniset-start.sh
ln
-s
-f
../../Utilities/scripts/uniset-stop.sh stop.sh
ln
-s
-f
../../Utilities/scripts/uniset-functions.sh
ln
-s
-f
../../conf/test.xml test.xml
extensions/UDPExchange/UDPSender.cc
deleted
100644 → 0
View file @
8f9b2053
This diff is collapsed.
Click to expand it.
extensions/UDPExchange/create_links.sh
deleted
100755 → 0
View file @
8f9b2053
#!/bin/sh
ln
-s
-f
../../Utilities/scripts/uniset-start.sh
ln
-s
-f
../../Utilities/scripts/uniset-stop.sh stop.sh
ln
-s
-f
../../Utilities/scripts/uniset-functions.sh
ln
-s
-f
../../conf/test.xml test.xml
extensions/UDPExchange/udpexchange.cc
deleted
100644 → 0
View file @
8f9b2053
#include <sstream>
#include "ObjectsActivator.h"
#include "Extensions.h"
#include "UDPExchange.h"
// -----------------------------------------------------------------------------
using
namespace
std
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
int
main
(
int
argc
,
char
**
argv
)
{
try
{
if
(
argc
>
1
&&
(
!
strcmp
(
argv
[
1
],
"--help"
)
||
!
strcmp
(
argv
[
1
],
"-h"
))
)
{
cout
<<
"--smemory-id objectName - SharedMemory objectID. Default: read from <SharedMemory>"
<<
endl
;
cout
<<
"--confile filename - configuration file. Default: configure.xml"
<<
endl
;
cout
<<
"--udp-logfile filename - logfilename. Default: udpexchange.log"
<<
endl
;
cout
<<
endl
;
UDPExchange
::
help_print
(
argc
,
argv
);
return
0
;
}
string
confile
=
UniSetTypes
::
getArgParam
(
"--confile"
,
argc
,
argv
,
"configure.xml"
);
conf
=
new
Configuration
(
argc
,
argv
,
confile
);
string
logfilename
(
conf
->
getArgParam
(
"--udp-logfile"
));
if
(
logfilename
.
empty
()
)
logfilename
=
"udpexchange.log"
;
conf
->
initDebug
(
dlog
,
"dlog"
);
std
::
ostringstream
logname
;
string
dir
(
conf
->
getLogDir
());
logname
<<
dir
<<
logfilename
;
unideb
.
logFile
(
logname
.
str
()
);
dlog
.
logFile
(
logname
.
str
()
);
ObjectId
shmID
=
DefaultObjectId
;
string
sID
=
conf
->
getArgParam
(
"--smemory-id"
);
if
(
!
sID
.
empty
()
)
shmID
=
conf
->
getControllerID
(
sID
);
else
shmID
=
getSharedMemoryID
();
if
(
shmID
==
DefaultObjectId
)
{
cerr
<<
sID
<<
"? SharedMemoryID not found in "
<<
conf
->
getControllersSection
()
<<
" section"
<<
endl
;
return
1
;
}
UDPExchange
*
rs
=
UDPExchange
::
init_udpexchange
(
argc
,
argv
,
shmID
);
if
(
!
rs
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpexchange): init не прошёл..."
<<
endl
;
return
1
;
}
ObjectsActivator
act
;
act
.
addObject
(
static_cast
<
class
UniSetObject
*>
(
rs
));
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
.
broadcast
(
sm
.
transport_msg
()
);
unideb
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
unideb
[
Debug
::
ANY
]
<<
"(main): -------------- UDP Exchange START -------------------------
\n\n
"
;
dlog
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
dlog
[
Debug
::
ANY
]
<<
"(main): -------------- UDP Exchange START -------------------------
\n\n
"
;
act
.
run
(
false
);
// msleep(500);
// rs->execute();
return
0
;
}
catch
(
Exception
&
ex
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpexchange): "
<<
ex
<<
std
::
endl
;
}
catch
(...)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpexchange): catch ..."
<<
std
::
endl
;
}
return
1
;
}
extensions/UDPExchange/udpreceiver.cc
deleted
100644 → 0
View file @
8f9b2053
#include <sstream>
#include "ObjectsActivator.h"
#include "Extensions.h"
#include "UDPReceiver.h"
// -----------------------------------------------------------------------------
using
namespace
std
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
int
main
(
int
argc
,
char
**
argv
)
{
try
{
if
(
argc
>
1
&&
(
!
strcmp
(
argv
[
1
],
"--help"
)
||
!
strcmp
(
argv
[
1
],
"-h"
))
)
{
cout
<<
"--smemory-id objectName - SharedMemory objectID. Default: read from <SharedMemory>"
<<
endl
;
cout
<<
"--confile filename - configuration file. Default: configure.xml"
<<
endl
;
cout
<<
"--udp-logfile filename - logfilename. Default: udpexchange.log"
<<
endl
;
cout
<<
endl
;
UDPReceiver
::
help_print
(
argc
,
argv
);
return
0
;
}
string
confile
=
UniSetTypes
::
getArgParam
(
"--confile"
,
argc
,
argv
,
"configure.xml"
);
conf
=
new
Configuration
(
argc
,
argv
,
confile
);
string
logfilename
(
conf
->
getArgParam
(
"--udp-logfile"
));
if
(
logfilename
.
empty
()
)
logfilename
=
"udpexchange.log"
;
conf
->
initDebug
(
dlog
,
"dlog"
);
std
::
ostringstream
logname
;
string
dir
(
conf
->
getLogDir
());
logname
<<
dir
<<
logfilename
;
unideb
.
logFile
(
logname
.
str
()
);
dlog
.
logFile
(
logname
.
str
()
);
ObjectId
shmID
=
DefaultObjectId
;
string
sID
=
conf
->
getArgParam
(
"--smemory-id"
);
if
(
!
sID
.
empty
()
)
shmID
=
conf
->
getControllerID
(
sID
);
else
shmID
=
getSharedMemoryID
();
if
(
shmID
==
DefaultObjectId
)
{
cerr
<<
sID
<<
"? SharedMemoryID not found in "
<<
conf
->
getControllersSection
()
<<
" section"
<<
endl
;
return
1
;
}
UDPReceiver
*
udp
=
UDPReceiver
::
init_udpreceiver
(
argc
,
argv
,
shmID
);
if
(
!
udp
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpreceiver): init не прошёл..."
<<
endl
;
return
1
;
}
ObjectsActivator
act
;
act
.
addObject
(
static_cast
<
class
UniSetObject
*>
(
udp
));
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
.
broadcast
(
sm
.
transport_msg
()
);
unideb
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
unideb
[
Debug
::
ANY
]
<<
"(main): -------------- UDPRecevier START -------------------------
\n\n
"
;
dlog
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
dlog
[
Debug
::
ANY
]
<<
"(main): -------------- UDPReceiver START -------------------------
\n\n
"
;
act
.
run
(
false
);
// msleep(500);
// rs->execute();
return
0
;
}
catch
(
Exception
&
ex
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpexchange): "
<<
ex
<<
std
::
endl
;
}
catch
(
ost
::
SockException
&
e
)
{
ostringstream
s
;
s
<<
e
.
getString
()
<<
": "
<<
e
.
getSystemErrorString
();
dlog
[
Debug
::
CRIT
]
<<
s
.
str
()
<<
endl
;
}
catch
(...)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpexchange): catch ..."
<<
std
::
endl
;
}
return
1
;
}
extensions/UDPExchange/udpsender.cc
deleted
100644 → 0
View file @
8f9b2053
#include <sstream>
#include "ObjectsActivator.h"
#include "Extensions.h"
#include "UDPSender.h"
// -----------------------------------------------------------------------------
using
namespace
std
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
int
main
(
int
argc
,
char
**
argv
)
{
try
{
if
(
argc
>
1
&&
(
!
strcmp
(
argv
[
1
],
"--help"
)
||
!
strcmp
(
argv
[
1
],
"-h"
))
)
{
cout
<<
"--smemory-id objectName - SharedMemory objectID. Default: read from <SharedMemory>"
<<
endl
;
cout
<<
"--confile filename - configuration file. Default: configure.xml"
<<
endl
;
cout
<<
"--udp-logfile filename - logfilename. Default: udpexchange.log"
<<
endl
;
cout
<<
endl
;
UDPSender
::
help_print
(
argc
,
argv
);
return
0
;
}
string
confile
=
UniSetTypes
::
getArgParam
(
"--confile"
,
argc
,
argv
,
"configure.xml"
);
conf
=
new
Configuration
(
argc
,
argv
,
confile
);
string
logfilename
(
conf
->
getArgParam
(
"--udp-logfile"
));
if
(
logfilename
.
empty
()
)
logfilename
=
"udpexchange.log"
;
conf
->
initDebug
(
dlog
,
"dlog"
);
std
::
ostringstream
logname
;
string
dir
(
conf
->
getLogDir
());
logname
<<
dir
<<
logfilename
;
unideb
.
logFile
(
logname
.
str
()
);
dlog
.
logFile
(
logname
.
str
()
);
ObjectId
shmID
=
DefaultObjectId
;
string
sID
=
conf
->
getArgParam
(
"--smemory-id"
);
if
(
!
sID
.
empty
()
)
shmID
=
conf
->
getControllerID
(
sID
);
else
shmID
=
getSharedMemoryID
();
if
(
shmID
==
DefaultObjectId
)
{
cerr
<<
sID
<<
"? SharedMemoryID not found in "
<<
conf
->
getControllersSection
()
<<
" section"
<<
endl
;
return
1
;
}
UDPSender
*
udp
=
UDPSender
::
init_udpsender
(
argc
,
argv
,
shmID
);
if
(
!
udp
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpsender): init не прошёл..."
<<
endl
;
return
1
;
}
ObjectsActivator
act
;
act
.
addObject
(
static_cast
<
class
UniSetObject
*>
(
udp
));
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
.
broadcast
(
sm
.
transport_msg
()
);
unideb
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
unideb
[
Debug
::
ANY
]
<<
"(main): -------------- UDPSender START -------------------------
\n\n
"
;
dlog
(
Debug
::
ANY
)
<<
"
\n\n\n
"
;
dlog
[
Debug
::
ANY
]
<<
"(main): -------------- UDPSender START -------------------------
\n\n
"
;
act
.
run
(
false
);
// msleep(500);
// rs->execute();
return
0
;
}
catch
(
Exception
&
ex
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpsender): "
<<
ex
<<
std
::
endl
;
}
catch
(
ost
::
SockException
&
e
)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpsender): "
<<
e
.
getSystemErrorString
()
<<
endl
;
}
catch
(...)
{
dlog
[
Debug
::
CRIT
]
<<
"(udpsender): catch ..."
<<
std
::
endl
;
}
return
1
;
}
extensions/tests/SMemoryTest/start_fg.sh
View file @
c6a97f32
...
...
@@ -2,7 +2,7 @@
START
=
uniset2-start.sh
${
START
}
-f
./smemory-test
--confile
test.xml
--dlog-add-levels
level1
--localNode
LocalhostNode
$*
${
START
}
-f
./smemory-test
--confile
./
test.xml
--dlog-add-levels
level1
--localNode
LocalhostNode
$*
#--ulog-add-levels crit,warn,info
...
...
extensions/tests/SMemoryTest/testproc.src.xml
0 → 100644
View file @
c6a97f32
<?xml version="1.0" encoding="utf-8"?>
<!--
name - название класса
msgcount - сколько сообщений обрабатывается за один раз
sleep_msec - пауза между итерациями в работе процесса
type
====
in - входные регистры (только для чтения)
out - выходные регистры (запись)
-->
<TestProc>
<settings>
<set
name=
"class-name"
val=
"TestProc"
/>
<set
name=
"msg-count"
val=
"30"
/>
<set
name=
"sleep-msec"
val=
"150"
/>
</settings>
<variables>
<item
name=
"changeTime"
type=
"int"
default=
"2000"
min=
"0"
comment=
"change state time"
const=
"1"
public=
"1"
/>
<item
name=
"checkWorkingTime"
type=
"int"
default=
"3000"
min=
"0"
comment=
"check working time"
const=
"1"
public=
"1"
/>
<item
name=
"checkTime"
type=
"int"
default=
"3000"
min=
"0"
comment=
"check Working time"
const=
"1"
public=
"1"
/>
<item
name=
"checkLogTime"
type=
"int"
default=
"2500"
min=
"0"
comment=
"Проверка управления логами"
const=
"1"
public=
"1"
/>
</variables>
<smap>
<!-- name - название переменной в конф. файле -->
<item
name=
"on_s"
vartype=
"in"
comment=
"Тестовый вход"
smTestID=
"1"
/>
<item
name=
"lamp_c"
vartype=
"out"
comment=
"Лампочка (тестовый выход)"
/>
<!-- проверка работы механизма зависимостей -->
<item
name=
"depend_c"
vartype=
"out"
comment=
"Датчик от которого зависит состояние другого"
/>
<item
name=
"d1_check_s"
vartype=
"in"
comment=
"состояние зависимого датчика"
/>
<item
name=
"d2_check_s"
vartype=
"in"
comment=
"состояние зависимого датчика"
/>
<item
name=
"set_d1_check_s"
vartype=
"out"
comment=
"для выставления датчика"
/>
<item
name=
"set_d2_check_s"
vartype=
"out"
comment=
"для выставления датчика"
/>
<!-- проверка работы undefined state -->
<item
name=
"undef_c"
vartype=
"out"
comment=
"аналоговый датчик (для проверки undef-состояния)"
/>
<item
name=
"check_undef_s"
vartype=
"in"
comment=
"датчик для выставления undef-состояния"
/>
<!-- проверка работы threshold-ов -->
<item
name=
"t_set_c"
vartype=
"out"
comment=
"аналоговый датчик (для выставления порога)"
/>
<item
name=
"t_check_s"
vartype=
"in"
comment=
"датчик для проверки срабатывания"
/>
<!-- Проверка управления логами -->
<item
name=
"log_c"
vartype=
"out"
comment=
"аналоговый датчик для выставления уровня логов"
/>
<item
name=
"log_s"
vartype=
"in"
comment=
"датчик для управления логами"
loglevel=
"1"
/>
</smap>
<msgmap>
</msgmap>
</TestProc>
include/CallBackTimer.tcc
View file @
c6a97f32
...
...
@@ -20,10 +20,10 @@
/*! \file
* \author Pavel Vainerman
*/
// --------------------------------------------------------------------------
# ifndef CallBackTimer_T
EMPLATE
_H_
# define CallBackTimer_T
EMPLATE
_H_
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
# ifndef CallBackTimer_T
CC
_H_
# define CallBackTimer_T
CC
_H_
// --------------------------------------------------------------------------
#include <unistd.h>
#include <sstream>
#include "CallBackTimer.h"
...
...
@@ -69,7 +69,7 @@ void CallBackTimer<Caller>::work()
terminated = false;
while( !terminated )
{
usleep(UniSetTimer::MIN_QUANTITY_TIME_MKS);
usleep(UniSetTimer::MIN_QUANTITY_TIME_MKS);
for( typename TimersList::iterator li=lst.begin(); li!=lst.end(); ++li )
{
...
...
@@ -110,9 +110,9 @@ void CallBackTimer<Caller>::add( int id, int timeMS )throw(UniSetTypes::LimitTim
{
ostringstream err;
err << "CallBackTimers: превышено максимальное количество таймеров" << MAXCallBackTimer;
throw UniSetTypes::LimitTimers(err.str());
throw UniSetTypes::LimitTimers(err.str());
}
PassiveTimer pt(timeMS);
TimerInfo ti(id, pt);
lst.push_back(ti);
...
...
@@ -124,7 +124,7 @@ template <class Caller>
void CallBackTimer<Caller>::remove( int id )
{
// STL - способ поиска
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
if( li!=lst.end() )
lst.erase(li);
}
...
...
@@ -147,7 +147,7 @@ void CallBackTimer<Caller>::clearTimers()
template <class Caller>
void CallBackTimer<Caller>::reset( int id )
{
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
if( li!=lst.end() )
li->pt.reset();
}
...
...
@@ -155,7 +155,7 @@ void CallBackTimer<Caller>::reset( int id )
template <class Caller>
void CallBackTimer<Caller>::setTiming( int id, int timeMS )
{
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
if( li!=lst.end() )
li->pt.setTimer(timeMS);
}
...
...
@@ -163,7 +163,7 @@ void CallBackTimer<Caller>::setTiming( int id, int timeMS )
template <class Caller>
int CallBackTimer<Caller>::getInterval( int id )
{
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
if( li!=lst.end() )
return li->pt.getInterval();
return -1;
...
...
@@ -172,12 +172,12 @@ int CallBackTimer<Caller>::getInterval( int id )
template <class Caller>
int CallBackTimer<Caller>::getCurrent( int id )
{
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
typename TimersList::iterator li= find_if(lst.begin(),lst.end(),FindId_eq(id));
if( li!=lst.end() )
return li->pt.getCurrent();
return -1;
}
// ------------------------------------------------------------------------------------------
# endif //CallBackTimer_H_
# endif //CallBackTimer_
TCC_
H_
include/
RepositoryAgent
.h
→
include/
ProxyManager
.h
View file @
c6a97f32
...
...
@@ -44,11 +44,11 @@ class ProxyManager:
void
attachObject
(
PassiveObject
*
po
,
UniSetTypes
::
ObjectId
id
);
void
detachObject
(
UniSetTypes
::
ObjectId
id
);
UInterface
*
uin
;
protected
:
ProxyManager
();
ProxyManager
();
virtual
void
processingMessage
(
UniSetTypes
::
VoidMessage
*
msg
);
virtual
void
allMessage
(
UniSetTypes
::
VoidMessage
*
msg
);
...
...
src/Processes/Makefile.am
View file @
c6a97f32
...
...
@@ -8,7 +8,5 @@ libProcesses_la_LIBADD = $(SIGC_LIBS)
libProcesses_la_SOURCES
=
IOController_iSK.cc IOController.cc IONotifyController.cc IONotifyController_LT.cc
\
NCRestorer.cc NCRestorer_XML.cc
include
$(top_builddir)/conf/setting.mk
local-clean
:
rm
-rf
*
iSK.cc
\ No newline at end of file
src/Services/Makefile.am
View file @
c6a97f32
...
...
@@ -6,7 +6,5 @@ libServices_la_CPPFLAGS = $(SIGC_CFLAGS)
libServices_la_LIBADD
=
$(SIGC_LIBS)
libServices_la_SOURCES
=
DBServer.cc
include
$(top_builddir)/conf/setting.mk
local-clean
:
rm
-rf
*
iSK.cc
\ No newline at end of file
tests/Makefile.am
View file @
c6a97f32
...
...
@@ -50,6 +50,3 @@ dlog_SOURCES = dlog.cc
dlog_LDADD
=
$(top_builddir)
/lib/libUniSet2.la
${
SIGC_LIBS
}
$(COMCPP_LIBS)
dlog_CPPFLAGS
=
-I
$(top_builddir)
/include
${
SIGC_CFLAGS
}
$(COMCPP_CFLAGS)
include
$(top_builddir)/conf/setting.mk
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment