Commit 97c81e52 authored by Pavel Vainerman's avatar Pavel Vainerman

Рефакторинг структуры каталогов: выделил Core-компоненты,

в отдельный подкаталог "Core". Перенёс python --> wrappers/python
parent edfd4a80
......@@ -3,7 +3,7 @@
############################################################################
# Каталоги для размещения генерируемых CC- и HH-файлов соответственно
CCDIR=$(top_builddir)/src/ObjectRepository
CCDIR=$(top_builddir)/src/Core
HHDIR=$(top_builddir)/include
# Исходные файлы IDL
......
......@@ -3,7 +3,7 @@
############################################################################
FIRSTSUBDIRS=IDL
SUBDIRS=. src lib include Utilities tests extensions python docs
SUBDIRS=. src lib include Utilities tests extensions wrappers docs
# testsuite
pkgconfigdir = $(libdir)/pkgconfig
......
......@@ -423,11 +423,11 @@ AC_CONFIG_FILES([Makefile
IDL/UniSetTypes/Makefile
IDL/UniSetTypes/UniSetBaseConstants.idl
IDL/Processes/Makefile
src/Core/Makefile
src/Communications/Makefile
src/Communications/Modbus/Makefile
src/Communications/TCP/Makefile
src/Communications/Http/Makefile
src/Interfaces/Makefile
src/ObjectRepository/Makefile
src/Processes/Makefile
src/Services/Makefile
......@@ -500,10 +500,11 @@ AC_CONFIG_FILES([Makefile
extensions/tests/MBSlaveTest/Makefile
extensions/tests/MQPerfTest/Makefile
testsuite/Makefile
python/lib/Makefile
python/lib/pyUniSet/Makefile
python/netdata-plugin/Makefile
python/Makefile])
wrappers/Makefile
wrappers/python/lib/Makefile
wrappers/python/lib/pyUniSet/Makefile
wrappers/python/netdata-plugin/Makefile
wrappers/python/Makefile])
AC_OUTPUT
......
......@@ -34,8 +34,11 @@ namespace uniset
/*! \class ProxyManager
* Менеджер пассивных объектов, который выступает вместо них во всех внешних связях...
* В целом связка ProxyManager-PassiveObject является DEPRECATED и лучше строить
*
* \todo Перейти на shared_ptr, weak_ptr для взаимодействия с PassiveObject
* своё взаимодействие "менеджер-объекты" исходя из условий "бизнес"-задачи
*
*/
class ProxyManager:
public UniSetObject
......
......@@ -13,11 +13,11 @@ lib_LTLIBRARIES = libUniSet2.la
libUniSet2_la_SOURCES =
libUniSet2_la_LDFLAGS = -version-info @LIBVER@
libUniSet2_la_LIBADD = -lm \
$(top_builddir)/src/Core/libUCore.la \
$(top_builddir)/src/Communications/libCommunications.la \
$(top_builddir)/src/Communications/Modbus/libModbus.la \
$(top_builddir)/src/Communications/TCP/libTCP.la \
$(top_builddir)/src/Communications/Http/libHttp.la \
$(top_builddir)/src/Interfaces/libInterfaces.la \
$(top_builddir)/src/ObjectRepository/libObjectsRepository.la \
$(top_builddir)/src/Processes/libProcesses.la \
$(top_builddir)/src/Services/libServices.la \
......
../../conf/test.xml
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from uniset2 import *
if __name__ == "__main__":
prop = "test"
lst = Params_inst()
for i in range(0, len(sys.argv)):
if i >= Params.max:
break;
lst.add( sys.argv[i] )
lst.add_str(prop)
p = []
print "lst: class: " + str(p.__class__.__name__)
try:
uc1 = UConnector( lst, "test.xml" )
# print "(0)UIType: %s" % uc1.getUIType()
print "(1)getShortName: id=%d name=%s" % (1, uc1.getShortName(1))
# print " getName: id=%d name=%s" % (1, uc1.getName(101))
# print " getTextName: id=%d name=%s" % (1, uc1.getTextName(101))
# print "\n"
# print "getShortName: id=%d name=%s" % (2, uc1.getShortName(109))
# print " getName: id=%d name=%s" % (2, uc1.getName(109))
# print " getTextName: id=%d name=%s" % (2, uc1.getTextName(109))
try:
print "(1)setValue: %d=%d" % (3,22)
uc1.setValue(3,22,DefaultID)
except UException, e:
print "(1)setValue exception: " + str(e.getError())
try:
print "(1)getValue: %d=%d" % ( 3, uc1.getValue(3,DefaultID) )
except UException, e:
print "(1)getValue exception: " + str(e.getError())
except UException, e:
print "(testUI): catch exception: " + str(e.getError())
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from uniset import *
if __name__ == "__main__":
try:
mb = UModbus()
print "UIType: %s" % mb.getUIType()
mb.connect("localhost",2048)
try:
print "Test READ functions..."
for f in range(1,5):
print "func=%d reg=%d" % (f,22)
val = mb.mbread(0x01,22,f,"unsigned",-1)
# val = mb.mbread(0x01,22)
print "val=%d"%val
print "getWord: %d" % mb.getWord(0x01,22)
print "getByte: %d" % mb.getByte(0x01,22)
print "getBit: %d" % mb.getBit(0x01,22,3)
# print ""
# print "Test WRITE functions..."
# for f in range(1,6):
# print "func=%d reg=%d" % (f,22)
# val = mb.getValue(f,0x01,22,"unsigned",-1)
except UException, e:
print "exception: " + str(e.getError())
except UException, e:
print "(testUModbus): catch exception: " + str(e.getError())
/usr/lib/netdata/python.d/python_modules
\ No newline at end of file
/home/pv/Projects/uniset-2.0/conf/test.xml
\ No newline at end of file
../../../conf/test.xml
\ No newline at end of file
../../../Utilities/scripts/uniset2-functions.sh
\ No newline at end of file
../../../Utilities/scripts/uniset2-start.sh
\ No newline at end of file
../../../conf/test.xml
\ No newline at end of file
../../../Utilities/scripts/uniset2-functions.sh
\ No newline at end of file
../../../Utilities/scripts/uniset2-start.sh
\ No newline at end of file
noinst_LTLIBRARIES = libUCore.la
libUCore_la_SOURCES = UniSetTypes_iSK.cc UniSetObject_iSK.cc UniSetTypes.cc \
UniSetManager_iSK.cc UniSetObject.cc UniSetManager.cc UniSetActivator.cc \
Configuration.cc MessageType.cc UInterface.cc
include $(top_builddir)/include.mk
......@@ -226,4 +226,3 @@ namespace uniset
//--------------------------------------------------------------------------------------------
} // end of namespace uniset
//--------------------------------------------------------------------------------------------
############################################################################
# This file is part of the UniSet library #
############################################################################
noinst_LTLIBRARIES = libInterfaces.la
libInterfaces_la_SOURCES = UInterface.cc
include $(top_builddir)/include.mk
......@@ -2,6 +2,6 @@
# This file is part of the UniSet library #
############################################################################
SUBDIRS=ObjectRepository Processes Interfaces Timers Services Various Communications Log
SUBDIRS=Core ObjectRepository Processes Timers Services Various Communications Log
include $(top_builddir)/include.mk
noinst_LTLIBRARIES = libObjectsRepository.la
libObjectsRepository_la_SOURCES = UniSetTypes_iSK.cc UniSetObject_iSK.cc UniSetTypes.cc \
UniSetManager_iSK.cc ObjectIndex.cc ObjectIndex_Array.cc ObjectIndex_XML.cc ObjectIndex_idXML.cc \
ORepHelpers.cc UniSetObject.cc UniSetManager.cc \
UniSetActivator.cc ObjectRepository.cc \
ProxyManager.cc PassiveObject.cc IORFile.cc
libObjectsRepository_la_SOURCES = ObjectIndex.cc ObjectIndex_Array.cc ObjectIndex_XML.cc ObjectIndex_idXML.cc \
ORepHelpers.cc ObjectRepository.cc IORFile.cc
# ServiceActivator.cc
include $(top_builddir)/include.mk
......@@ -6,7 +6,7 @@ noinst_LTLIBRARIES = libProcesses.la
libProcesses_la_CXXFLAGS = -I$(top_builddir)/include $(SIGC_CFLAGS) $(EV_CFLAGS)
libProcesses_la_LIBADD = $(SIGC_LIBS) $(EV_LIBS)
libProcesses_la_SOURCES = IOController_iSK.cc IOController.cc IONotifyController.cc \
NCRestorer.cc NCRestorer_XML.cc EventLoopServer.cc CommonEventLoop.cc
NCRestorer.cc NCRestorer_XML.cc EventLoopServer.cc CommonEventLoop.cc ProxyManager.cc PassiveObject.cc
local-clean:
rm -rf *iSK.cc
......
......@@ -2,7 +2,7 @@
# This file is part of the UniSet library #
############################################################################
noinst_LTLIBRARIES = libTimers.la
libTimers_la_SOURCES=PassiveTimer.cc PassiveCondTimer.cc
libTimers_la_SOURCES=PassiveTimer.cc PassiveCondTimer.cc LT_Object.cc
#PassiveSigTimer.cc
......
......@@ -5,8 +5,8 @@
noinst_LTLIBRARIES = libVarious.la
libVarious_la_CPPFLAGS = $(SIGC_CFLAGS) $(POCO_CFLAGS)
libVarious_la_LIBADD = $(SIGC_LIBS) $(POCO_LIBS)
libVarious_la_SOURCES = UniXML.cc MessageType.cc Configuration.cc MQMutex.cc MQAtomic.cc \
Restorer_XML.cc RunLock.cc Mutex.cc SViewer.cc SMonitor.cc LT_Object.cc WDTInterface.cc VMonitor.cc \
libVarious_la_SOURCES = UniXML.cc MQMutex.cc MQAtomic.cc \
Restorer_XML.cc RunLock.cc Mutex.cc SViewer.cc SMonitor.cc WDTInterface.cc VMonitor.cc \
ujson.cc
local-clean:
......
......@@ -348,6 +348,7 @@ include/UHttpRequestHandler.h
include/UHttpServer.h
include/ujson.h
lib/Makefile.am
python/examples/test.xml
python/lib/pyUniSet/Makefile.am
python/lib/pyUniSet/PyUInterface.cc
......@@ -368,6 +369,7 @@ python/lib/Makefile.am
python/tests/UConnector/test.xml
python/tests/UInterface/test.xml
python/Makefile.am
src/Communications/Modbus/Makefile.am
src/Communications/Modbus/ModbusClient.cc
src/Communications/Modbus/ModbusHelpers.cc
......@@ -394,8 +396,15 @@ src/Communications/Http/UHttpServer.cc
src/Communications/ComPort.cc
src/Communications/ComPort485F.cc
src/Communications/Makefile.am
src/Interfaces/Makefile.am
src/Interfaces/UInterface.cc
src/Core/UInterface.cc
src/Core/UniSetActivator.cc
src/Core/UniSetManager.cc
src/Core/UniSetObject.cc
src/Core/UniSetTypes.cc
src/Core/Configuration.cc
src/Core/MessageType.cc
src/Log/Debug.cc
src/Log/DebugExtBuf.h
src/Log/DebugStream.cc
......@@ -405,6 +414,7 @@ src/Log/LogServer.cc
src/Log/LogServerTypes.cc
src/Log/LogSession.cc
src/Log/Makefile.am
src/ObjectRepository/IORFile.cc
src/ObjectRepository/Makefile.am
src/ObjectRepository/ObjectIndex.cc
......@@ -413,12 +423,7 @@ src/ObjectRepository/ObjectIndex_idXML.cc
src/ObjectRepository/ObjectIndex_XML.cc
src/ObjectRepository/ObjectRepository.cc
src/ObjectRepository/ORepHelpers.cc
src/ObjectRepository/PassiveObject.cc
src/ObjectRepository/ProxyManager.cc
src/ObjectRepository/UniSetActivator.cc
src/ObjectRepository/UniSetManager.cc
src/ObjectRepository/UniSetObject.cc
src/ObjectRepository/UniSetTypes.cc
src/Processes/IOController.cc
src/Processes/IONotifyController.cc
src/Processes/Makefile.am
......@@ -426,19 +431,21 @@ src/Processes/NCRestorer.cc
src/Processes/NCRestorer_XML.cc
src/Processes/CommonEventLoop.cc
src/Processes/EventLoopServer.cc
src/Processes/PassiveObject.cc
src/Processes/ProxyManager.cc
src/Services/DBServer.cc
src/Services/DBInterface.cc
src/Services/Makefile.am
src/Timers/Makefile.am
src/Timers/PassiveCondTimer.cc
src/Timers/PassiveSigTimer.cc
src/Timers/PassiveTimer.cc
src/Timers/WaitingPassiveTimer.cc
src/Various/Configuration.1.cc
src/Various/Configuration.cc
src/Various/LT_Object.cc
src/Timers/LT_Object.cc
src/Various/Makefile.am
src/Various/MessageType.cc
src/Various/Mutex.cc
src/Various/Restorer_XML.cc
src/Various/RunLock.cc
......
......@@ -5,4 +5,3 @@ SUBDIRS=lib netdata-plugin
include $(top_builddir)/include.mk
endif
......@@ -6,7 +6,7 @@ import libxml2
from lxml import etree
import re
import os
# -----------------------------
# -----------------------------
class EmptyNode():
def __init__(self):
self.proplist = dict()
......@@ -25,15 +25,15 @@ class EmptyNode():
# -----------------------------
class UniXMLException(Exception):
def __init__(self,e=""):
self.err = e
def getError(self):
return self.err
# -----------------------------
class UniXML():
def __init__(self, xfile, isDoc=False):
try:
self.doc = None
......@@ -45,14 +45,14 @@ class UniXML():
self.doc = libxml2.parseFile(xfile)
except libxml2.parserError:
raise UniXMLException("(UniXML): Can`t open file " + xfile)
libxml2.registerErrorHandler(self.callback, "-->")
def __del__(self):
if self.doc != None:
self.doc.freeDoc()
libxml2.cleanupParser()
def callback(ctx, str):
print "%s %s" % (ctx, str)
......@@ -78,7 +78,7 @@ class UniXML():
return [node, node.name, node.prop(propstr)]
node = node.next
return [None, None, None]
def findNode_byProp(self, node, propstr, valuestr):
while node != None:
if node.prop(propstr) == valuestr:
......
......@@ -4,61 +4,69 @@ else
pydir=$(pkgpythondir)
py_DATA = pyUniSet.py pyUConnector.py pyUModbus.py pyUExceptions.py
pyUniSet.py: UInterface_wrap.cxx _pyUniSet.la
BUILD_SRCDIR=$(srcdir)/../../../core
BUILD_SRC=UModbus.cc UConnector.cc UProxyObject.cc
pyUniSet.py: UInterface_wrap.cxx _pyUniSet.la
pyUConnector.py: UConnector_wrap.cxx _pyUConnector.la
pyUConnector.py: UConnector_wrap.cxx _pyUConnector.la
pyUModbus.py: _pyUModbus.la UModbus_wrap.cxx
pyUExceptions.py: _pyUExceptions.la
pyexec_LTLIBRARIES = _pyUConnector.la _pyUModbus.la _pyUExceptions.la _pyUniSet.la
_pyUniSet_la_SOURCES = PyUInterface.cc UInterface_wrap.cxx UProxyObject.cc
_pyUniSet_la_CXXFLAGS = $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(PYTHON_CFLAGS)
_pyUniSet_la_CXXFLAGS = -I$(BUILD_SRCDIR) $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(PYTHON_CFLAGS)
_pyUniSet_la_LDFLAGS = -module -avoid-version
_pyUniSet_la_LIBADD = $(UNISET_LIBS) $(UNISET_EXT_LIBS) $(PYTHON_LIBS)
UInterface_wrap.cxx: UInterface.i UProxyObject.i PyUInterface.h UProxyObject.h
swig -python -c++ -classic UInterface.i
UInterface_wrap.cxx: UInterface.i UProxyObject.i PyUInterface.h $(BUILD_SRCDIR)/UProxyObject.h
$(SWIG) -python -c++ -classic -outcurrentdir -I$(BUILD_SRCDIR) UInterface.i
#PyUObject_wrap.cxx: UObject.i PyUObject.h
# swig -python -c++ -classic UObject.i
_pyUConnector_la_SOURCES = UConnector.cc UConnector_wrap.cxx
_pyUConnector_la_CXXFLAGS = $(UNISET_CFLAGS) $(PYTHON_CFLAGS)
_pyUConnector_la_CXXFLAGS = -I$(BUILD_SRCDIR) $(UNISET_CFLAGS) $(PYTHON_CFLAGS)
_pyUConnector_la_LDFLAGS = -module -avoid-version
_pyUConnector_la_LIBADD = $(UNISET_LIBS) $(PYTHON_LIBS)
UConnector_wrap.cxx: UConnector.i UConnector.h
swig -python -c++ -classic UConnector.i
UConnector_wrap.cxx: UConnector.i $(BUILD_SRCDIR)/UConnector.h
$(SWIG) -python -c++ -classic -outcurrentdir -I$(BUILD_SRCDIR) UConnector.i
_pyUModbus_la_SOURCES = UModbus.cc UModbus_wrap.cxx
_pyUModbus_la_CXXFLAGS = $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(POCO_CFLAGS) $(PYTHON_CFLAGS)
_pyUModbus_la_CXXFLAGS = -I$(BUILD_SRCDIR) $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(POCO_CFLAGS) $(PYTHON_CFLAGS)
_pyUModbus_la_LDFLAGS = -module -avoid-version
_pyUModbus_la_LIBADD = $(UNISET_LIBS) $(UNISET_EXT_LIBS) $(POCO_LIBS) $(PYTHON_LIBS)
UModbus_wrap.cxx: UInterface.i UModbus.h
swig -python -c++ -classic UModbus.i
UModbus_wrap.cxx: UInterface.i $(BUILD_SRCDIR)/UModbus.h
$(SWIG) -python -c++ -classic -outcurrentdir -I$(BUILD_SRCDIR) UModbus.i
_pyUExceptions_la_SOURCES = UExceptions_wrap.cxx
_pyUExceptions_la_CXXFLAGS = $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(PYTHON_CFLAGS)
_pyUExceptions_la_CXXFLAGS = -I$(BUILD_SRCDIR) $(UNISET_CFLAGS) $(UNISET_EXT_CFLAGS) $(PYTHON_CFLAGS)
_pyUExceptions_la_LDFLAGS = -module -avoid-version
_pyUExceptions_la_LIBADD = $(UNISET_LIBS) $(UNISET_EXT_LIBS) $(PYTHON_LIBS)
UExceptions_wrap.cxx: UExceptions.i UExceptions.h
swig -python -c++ -classic UExceptions.i
UExceptions_wrap.cxx: UExceptions.i $(BUILD_SRCDIR)/UExceptions.h
$(SWIG) -python -c++ -classic -outcurrentdir -I$(BUILD_SRCDIR) UExceptions.i
# Специальное правило для удаления сгенерированного кода
# для дальнейшей перегенерации
clean-gen:
rm -rf *.py* *_wrap.cxx
$(BUILD_SRC):
ln -sf $(BUILD_SRCDIR)/$@
all-local: $(BUILD_SRC)
include $(top_builddir)/include.mk
endif
......@@ -200,4 +200,3 @@ void pyUInterface::uniset_activate_objects()throw(UException)
}
}
//---------------------------------------------------------------------------
......@@ -197,5 +197,3 @@ UConnector_swigregister = _pyUConnector.UConnector_swigregister
UConnector_swigregister(UConnector)
# This file is compatible with both classic and new-style classes.
......@@ -163,5 +163,3 @@ UValidateError_swigregister = _pyUExceptions.UValidateError_swigregister
UValidateError_swigregister(UValidateError)
# This file is compatible with both classic and new-style classes.
......@@ -131,5 +131,3 @@ UModbus_swigregister = _pyUModbus.UModbus_swigregister
UModbus_swigregister(UModbus)
# This file is compatible with both classic and new-style classes.
......@@ -314,5 +314,3 @@ UProxyObject_swigregister = _pyUniSet.UProxyObject_swigregister
UProxyObject_swigregister(UProxyObject)
# This file is compatible with both classic and new-style classes.
/usr/lib/netdata/python.d/python_modules
\ No newline at end of file
/home/pv/Projects/uniset-2.0/conf/test.xml
\ No newline at end of file
......@@ -71,7 +71,7 @@
# confile: /path/to/project1/conf/configure.xml
# name: utest
# port: 53817
#project2:
# confile: /path/to/project2/conf/configure.xml
# port: 53817
......
../../../../conf/test.xml
\ No newline at end of file
......@@ -16,14 +16,14 @@ def myfunc( act ):
if __name__ == "__main__":
lst = Params_inst()
lst2 = Params_inst()
for i in range(0, len(sys.argv)):
if i >= Params.max:
break;
lst.add( sys.argv[i] )
lst2.add( sys.argv[i] )
......@@ -40,13 +40,13 @@ if __name__ == "__main__":
try:
try:
uc1 = UConnector( lst, "test.xml" )
uc2 = UConnector( lst2, "test.xml" )
#obj1 = UProxyObject("TestProc")
#obj2 = UProxyObject("TestProc1")
# print "Info: %s"%uc1.getObjectInfo("TestProc1","")
print "apiRequest: %s"%uc1.apiRequest(uc1.getObjectID("SharedMemory"),"get?10")
......
../../../../Utilities/scripts/uniset2-functions.sh
\ No newline at end of file
../../../../Utilities/scripts/uniset2-start.sh
\ No newline at end of file
../../../../conf/test.xml
\ No newline at end of file
......@@ -10,28 +10,28 @@ sys.path.append('../../lib/pyUniSet/.libs')
from lib import *
if __name__ == "__main__":
lst = Params_inst()
for i in range(0, len(sys.argv)):
if i >= Params.max:
break;
lst.add( sys.argv[i] )
prop = 'Test'
lst.add_str(prop)
try:
try:
uniset_init_params( lst, "test.xml");
obj1 = UProxyObject("TestProc")
obj2 = UProxyObject("TestProc1")
uniset_activate_objects()
while True:
print "sleep..."
print "getValue: %d=%d" % ( 1, getValue(1) )
......@@ -59,4 +59,3 @@ if __name__ == "__main__":
except UException, e:
print "(testUI): catch exception: " + str(e.getError())
\ No newline at end of file
../../../../Utilities/scripts/uniset2-functions.sh
\ No newline at end of file
../../../../Utilities/scripts/uniset2-start.sh
\ No newline at end of file
......@@ -13,9 +13,9 @@ if __name__ == "__main__":
try:
mb = UModbus()
print "UIType: %s" % mb.getUIType()
mb.connect("localhost",2048)
try:
print "Test READ functions..."
......@@ -24,7 +24,7 @@ if __name__ == "__main__":
val = mb.mbread(0x01,22,f,"unsigned",-1)
# val = mb.mbread(0x01,22)
print "val=%d"%val
print "getWord: %d" % mb.getWord(0x01,22)
print "getByte: %d" % mb.getByte(0x01,22)
print "getBit: %d" % mb.getBit(0x01,22,3)
......
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