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
5d790f2d
Commit
5d790f2d
authored
May 29, 2010
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into utf8
Conflicts: docs/DocPages/Concept.dox docs/DocPages/commitpage.dox docs/DocPages/todo.dox extensions/IOControl/IOControl.h
parents
38d8cc7b
8c76ec2e
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
43 additions
and
31 deletions
+43
-31
ctl-cpp-cc-alone-ask.xsl
Utilities/codegen/ctl-cpp-cc-alone-ask.xsl
+1
-1
libuniset.spec
conf/libuniset.spec
+7
-1
Concept.dox
docs/DocPages/Concept.dox
+15
-16
commitpage.dox
docs/DocPages/commitpage.dox
+2
-1
todo.dox
docs/DocPages/todo.dox
+1
-1
IOControl.h
extensions/IOControl/IOControl.h
+2
-2
MBTCPMaster.cc
extensions/MBTCPMaster/MBTCPMaster.cc
+11
-7
RTUExchange.cc
extensions/RTUExchange/RTUExchange.cc
+1
-1
start_fg.sh
extensions/SharedMemory/start_fg.sh
+1
-1
SMInterface.cc
extensions/lib/SMInterface.cc
+2
-0
No files found.
Utilities/codegen/ctl-cpp-cc-alone-ask.xsl
View file @
5d790f2d
...
...
@@ -354,7 +354,7 @@ void <xsl:value-of select="$CLASSNAME"/>_SK::setMsg( UniSetTypes::ObjectId code,
<xsl:template
name=
"gensetdata"
>
<xsl:choose>
<xsl:when
test=
"normalize-space(../../@iotype)='DO'"
>
ui.setState(
<xsl:value-of
select=
"../../@name"
/>
,
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
, node_
<xsl:value-of
select=
"../../@name"
/>
,
);
ui.setState(
<xsl:value-of
select=
"../../@name"
/>
,
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
, node_
<xsl:value-of
select=
"../../@name"
/>
);
</xsl:when>
<xsl:when
test=
"normalize-space(../../@iotype)='AO'"
>
ui.setValue(
<xsl:value-of
select=
"../../@name"
/>
,
<xsl:call-template
name=
"setprefix"
/><xsl:value-of
select=
"../../@name"
/>
, node_
<xsl:value-of
select=
"../../@name"
/>
);
...
...
conf/libuniset.spec
View file @
5d790f2d
...
...
@@ -3,7 +3,7 @@
Name: libuniset
Version: 0.97
Release: eter6
2
Release: eter6
4
Summary: UniSet - library for building distributed industrial control systems
License: GPL
Group: Development/C++
...
...
@@ -184,6 +184,12 @@ rm -f %buildroot%_libdir/*.la
%exclude %_pkgconfigdir/libUniSet.pc
%changelog
* Fri Apr 09 2010 Pavel Vainerman <pv@altlinux.ru> 0.97-eter64
- fixed bug in uniset-codegen
* Sun Mar 28 2010 Pavel Vainerman <pv@altlinux.ru> 0.97-eter63
- optimization
* Sat Mar 27 2010 Pavel Vainerman <pv@altlinux.ru> 0.97-eter62
- minor fixes in SM (add virtual function)
...
...
docs/DocPages/Concept.dox
View file @
5d790f2d
/*! \page page_Concept Основные понятия
В библиотеке \b uniset имеется ряд основопологающих кубиков (терминов)
из которых складывается библиотека
и которые используются во мног
огих
В библиотеке \b uniset имеется ряд основопологающих кубиков (терминов)
,
из которых складывается библиотека
, и которые используются во мн
огих
местах данной документации. Здесь приводятся определения этих терминов.
- \ref sec_Cnpt_Object
...
...
@@ -32,9 +32,9 @@
Вся система взаимодейтсвия между объектами в основном
построена на использовании сообщений (передаваемых
путём удаленного вызова специальных функций,
посредством CORBA). При этом
,
основные
посредством CORBA). При этом основные
типы сообщений объявлены в файле MessageType.h. Каждое
сообщение имеет свой уникальный идентификатор (enum).
сообщение имеет свой уникальный идентификатор (enum).
См. UniSetTypes::Message::TypeOfMessage.
Для разработчиков систем на основе libuniset, заложена
...
...
@@ -122,9 +122,9 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
для каждого объекта. На практике, это оказывается не сложно,
потому-что объекты вносятся в файл по мере необходимости небольшими
порциями или же эта часть файла может быть сгенерирована автоматически.
К плюсам данного способа можно отнести, то, что идентификаторы могут быть
"осмысленными" (например являт
ся кодами сигналов или
группироватся диапазонами по определённой логике).
К плюсам данного способа можно отнести, то, что идентификаторы могут быть
"осмысленными" (например являт
ься кодами сигналов или
группироват
ь
ся диапазонами по определённой логике).
Для ручного задания идентификаторов, необходимо в секциях
\b <nodes>,\b <sensors>,\b <objects>,\b <controllers>,\b <services>
задать поле \b id.
...
...
@@ -187,27 +187,27 @@ UniSetTypes::Message::TheLastFieldOfTypeOfMessage.
"Входы"(DI,AI) - это информация от объекта "в систему управления".
Помимо этого, датчики не обязательно должны быть "живыми" входами или выходами.
При помощи этих четырёх типов, можно кодировать любую информацию,
Например можно передавать сообщения оператору, заран
н
ее создавая для каждого
Например можно передавать сообщения оператору, заранее создавая для каждого
сообщения свой "датчик" и в случае необходимости послать сообщение
выставлять его в "1".
Удобство и универсальность датчиков (цифр) позволяет использовать для
передачи данных большое число различных протоколов, расчитанных
на передачу цифровой информации (не текстовой).
Например CAN,
ModbusRTU,
ModbusTCP и т.п.
на передачу цифровой информации (не текстовой).
Например CAN,
ModbusRTU,
ModbusTCP и т.п.
\section sec_Cnpt_Process Процесс
Под процессом в документации чаще всего подразумевается системный
процесс (запущенная программа) выполняющий те или иные функции управления
и обменивающийся для этого с другими процессами сообщениями или
и обменивающийся для этого с другими процессами сообщениями или
удалённо вызывающий функции других объектов.
Чаще всего понятия процесс и объект совпадают.
В некоторых случаях процесс может содержать несколько
взаимодействющих объектов. Все процессы в системе - многопоточные.
взаимодейств
у
ющих объектов. Все процессы в системе - многопоточные.
Так как для взаимодействия с другими объектами (процессами)
в обязательном порядке создаются потоки для CORBA, а также
в обязательном порядке создаются потоки для CORBA, а также
у каждого объекта создаётся свой поток обработки сообщений
(если его специально не отключить).
Если в документации речь идёт о "процессе"
как последовательности
Если в документации речь идёт о "процессе"
, как последовательности
действий во времени, это должно быть очевидно из контекста.
*/
\ No newline at end of file
*/
docs/DocPages/commitpage.dox
View file @
5d790f2d
/*!
<<<<<<< HEAD
/*! OBSOLETE DOC!!
\page CommitPage Общее описание библиотеки UniSet
- \ref secSection1
...
...
docs/DocPages/todo.dox
View file @
5d790f2d
...
...
@@ -13,7 +13,7 @@
-# сделать тип в UniSetObject::getType string-ом
(для универсальности и простоты будущих расширений)
-# переписать тестовые примеры, под текущую ситуацию.
-# в будущем попытатся отказатся от ObjectId и перейти на строки
-# в будущем попытатся отказатся от ObjectId и перейти на строки
(это надо ещё обдумать)
-# перенести настройки размера очереди сообщений для UniSetObject-ов в конф.файл
-# разработать API(на php), для web-интерфейса накопленной статистикики и журналов.
-# в InfoServer-е по routeList-у сообщения пересылаются, только если они локальные.
...
...
extensions/IOControl/IOControl.h
View file @
5d790f2d
...
...
@@ -35,7 +35,7 @@
--io-confnode name - Использовать для настройки указанный xml-узел
--io-name name - ID процесса. По умолчанию IOController1.
--io-numcards - Количество кар
д
в/в. По умолчанию 1.
--io-numcards - Количество кар
т
в/в. По умолчанию 1.
--iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
--iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
--iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
...
...
@@ -118,7 +118,7 @@
Т.е. на самом деле дискретный выход, который может иметь три состояния
UniSetTypes::lmpOFF - выключен
UniSetTypes::lmpON - включен
UniSetTypes::lmpBLINK
1
- мигание с частотой 1
UniSetTypes::lmpBLINK
- мигание с частотой 1
UniSetTypes::lmpBLINK2 - мигание с частотой 2
UniSetTypes::lmpBLINK3 - мигание с частотой 3
...
...
extensions/MBTCPMaster/MBTCPMaster.cc
View file @
5d790f2d
...
...
@@ -1470,14 +1470,18 @@ bool MBTCPMaster::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(initDeviceInfo): add addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
" force_disconnect="
<<
d
->
second
->
force_disconnect
<<
" ask_every_reg="
<<
d
->
second
->
ask_every_reg
<<
endl
;
d
->
second
->
resp_id
=
conf
->
getSensorID
(
it
.
getProp
(
"respondSensor"
));
if
(
d
->
second
->
resp_id
==
DefaultObjectId
)
{
dlog
[
Debug
::
CRIT
]
<<
myname
<<
"(initDeviceInfo): not found ID for noRespondSensor="
<<
it
.
getProp
(
"respondSensor"
)
<<
endl
;
return
true
;
}
string
s
(
it
.
getProp
(
"respondSensor"
));
if
(
!
s
.
empty
()
)
{
d
->
second
->
resp_id
=
conf
->
getSensorID
(
s
);
if
(
d
->
second
->
resp_id
==
DefaultObjectId
)
{
dlog
[
Debug
::
CRIT
]
<<
myname
<<
"(initDeviceInfo): not found ID for noRespondSensor="
<<
s
<<
endl
;
return
false
;
}
}
dlog
[
Debug
::
INFO
]
<<
myname
<<
"(initDeviceInfo): add addr="
<<
ModbusRTU
::
addr2str
(
a
)
<<
endl
;
int
tout
=
it
.
getPIntProp
(
"timeout"
,
UniSetTimer
::
WaitUpTime
);
d
->
second
->
resp_ptTimeout
.
setTiming
(
tout
);
...
...
extensions/RTUExchange/RTUExchange.cc
View file @
5d790f2d
...
...
@@ -1607,7 +1607,7 @@ bool RTUExchange::initDeviceInfo( RTUDeviceMap& m, ModbusRTU::ModbusAddr a, UniX
if
(
d
->
second
->
resp_id
==
DefaultObjectId
)
{
dlog
[
Debug
::
CRIT
]
<<
myname
<<
"(initDeviceInfo): not found ID for noRespondSensor="
<<
it
.
getProp
(
"respondSensor"
)
<<
endl
;
return
tru
e
;
return
fals
e
;
}
}
...
...
extensions/SharedMemory/start_fg.sh
View file @
5d790f2d
...
...
@@ -4,7 +4,7 @@ export LD_LIBRARY_PATH="../../lib/.libs;../lib/.libs"
ulimit
-Sc
10000000000
./uniset-start.sh
-f
./uniset-smemory
--smemory-id
SharedMemory
--pulsar-id
DO_C
\
./uniset-start.sh
-f
./uniset-smemory
--smemory-id
SharedMemory
--pulsar-id
DO_C
--pulsar-iotype
DO
\
--confile
test.xml
--datfile
test.xml
\
--unideb-add-levels
info,crit,warn,level9,system
\
--dlog-add-levels
info,crit,warn
...
...
extensions/lib/SMInterface.cc
View file @
5d790f2d
...
...
@@ -90,6 +90,8 @@ SMInterface::SMInterface( UniSetTypes::ObjectId _shmID, UniversalInterface* _ui,
shmID
(
_shmID
),
myid
(
_myid
)
{
if
(
shmID
==
DefaultObjectId
)
throw
UniSetTypes
::
SystemError
(
"(SMInterface): Unknown shmID!"
);
}
// --------------------------------------------------------------------------
SMInterface
::~
SMInterface
()
...
...
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