Clarify licensing, and packaging of runtime only files :
authorEdouard Tisserant
Mon, 15 Jan 2018 14:43:53 +0100
changeset 1902 2b7e2db31d81
parent 1901 e8cf68d69447
child 1903 084256be3658
Clarify licensing, and packaging of runtime only files :
- moved and split targets/typemapping.py into runtime/typemapping.py and runtime/loglevels.py
- added runtime_files.list pointing to files necessary for runtime, and referring to runtime license
ProjectController.py
controls/LogViewer.py
py_ext/PythonFileCTNMixin.py
runtime/PLCObject.py
runtime/loglevels.py
runtime/typemapping.py
runtime_files.list
targets/typemapping.py
--- a/ProjectController.py	Thu Jan 11 15:41:20 2018 +0100
+++ b/ProjectController.py	Mon Jan 15 14:43:53 2018 +0100
@@ -59,7 +59,7 @@
 from PLCControler import PLCControler
 from plcopen.structures import IEC_KEYWORDS
 import targets
-from targets.typemapping import DebugTypesSize, UnpackDebugBuffer
+from runtime.typemapping import DebugTypesSize, UnpackDebugBuffer
 from ConfigTreeNode import ConfigTreeNode, XSDSchemaErrorMessage
 
 base_folder = paths.AbsParentDir(__file__)
--- a/controls/LogViewer.py	Thu Jan 11 15:41:20 2018 +0100
+++ b/controls/LogViewer.py	Mon Jan 15 14:43:53 2018 +0100
@@ -33,7 +33,7 @@
 
 from controls.CustomToolTip import CustomToolTip, TOOLTIP_WAIT_PERIOD
 from editors.DebugViewer import DebugViewer, REFRESH_PERIOD
-from targets.typemapping import LogLevelsCount, LogLevels
+from runtime.loglevels import LogLevelsCount, LogLevels
 from util.BitmapLibrary import GetBitmap
 
 
--- a/py_ext/PythonFileCTNMixin.py	Thu Jan 11 15:41:20 2018 +0100
+++ b/py_ext/PythonFileCTNMixin.py	Mon Jan 15 14:43:53 2018 +0100
@@ -171,7 +171,7 @@
 ##
 
 ## Code for PLC global variable access
-from targets.typemapping import TypeTranslator
+from runtime.typemapping import TypeTranslator
 import ctypes
 _%(pyextname)sGlobalsDesc = []
 __ext_name__ = "%(pyextname)s"
--- a/runtime/PLCObject.py	Thu Jan 11 15:41:20 2018 +0100
+++ b/runtime/PLCObject.py	Mon Jan 15 14:43:53 2018 +0100
@@ -32,7 +32,8 @@
 
 import Pyro.core as pyro
 
-from targets.typemapping import LogLevelsDefault, LogLevelsCount, TypeTranslator
+from runtime.typemapping import TypeTranslator
+from runtime.loglevels import LogLevelsDefault, LogLevelsCount
 
 
 if os.name in ("nt", "ce"):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/loglevels.py	Mon Jan 15 14:43:53 2018 +0100
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# See COPYING.Runtime file for copyrights details.
+
+LogLevels = ["CRITICAL", "WARNING", "INFO", "DEBUG"]
+LogLevelsCount = len(LogLevels)
+LogLevelsDict = dict(zip(LogLevels, range(LogLevelsCount)))
+LogLevelsDefault = LogLevelsDict["DEBUG"]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/typemapping.py	Mon Jan 15 14:43:53 2018 +0100
@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# See COPYING.Runtime file for copyrights details.
+#
+
+from __future__ import absolute_import
+import ctypes
+from ctypes import *
+from datetime import timedelta as td
+
+ctypes.pythonapi.PyString_AsString.argtypes = (ctypes.c_void_p,)
+ctypes.pythonapi.PyString_AsString.restype = ctypes.POINTER(ctypes.c_char)
+
+
+class IEC_STRING(Structure):
+    """
+    Must be changed according to changes in iec_types.h
+    """
+    _fields_ = [("len", c_uint8),
+                ("body", c_char * 126)]
+
+
+class IEC_TIME(Structure):
+    """
+    Must be changed according to changes in iec_types.h
+    """
+    _fields_ = [("s", c_long),   # tv_sec
+                ("ns", c_long)]  # tv_nsec
+
+
+def _t(t, u=lambda x: x.value, p=lambda t, x: t(x)):
+    return (t, u, p)
+
+
+def _ttime():
+    return (IEC_TIME,
+            lambda x: td(0, x.s, x.ns/1000),
+            lambda t, x: t(x.days * 24 * 3600 + x.seconds, x.microseconds*1000))
+
+
+SameEndianessTypeTranslator = {
+    "BOOL":       _t(c_uint8, lambda x: x.value != 0),
+    "STEP":       _t(c_uint8),
+    "TRANSITION": _t(c_uint8),
+    "ACTION":     _t(c_uint8),
+    "SINT":       _t(c_int8),
+    "USINT":      _t(c_uint8),
+    "BYTE":       _t(c_uint8),
+    "STRING":     (IEC_STRING,
+                   lambda x: x.body[:x.len],
+                   lambda t, x: t(len(x), x)),
+    "INT":        _t(c_int16),
+    "UINT":       _t(c_uint16),
+    "WORD":       _t(c_uint16),
+    "DINT":       _t(c_int32),
+    "UDINT":      _t(c_uint32),
+    "DWORD":      _t(c_uint32),
+    "LINT":       _t(c_int64),
+    "ULINT":      _t(c_uint64),
+    "LWORD":      _t(c_uint64),
+    "REAL":       _t(c_float),
+    "LREAL":      _t(c_double),
+    "TIME":       _ttime(),
+    "TOD":        _ttime(),
+    "DATE":       _ttime(),
+    "DT":         _ttime(),
+    }
+
+SwapedEndianessTypeTranslator = {
+    # TODO
+    }
+
+TypeTranslator = SameEndianessTypeTranslator
+
+# Construct debugger natively supported types
+DebugTypesSize = dict([(key, sizeof(t)) for key, (t, p, u) in SameEndianessTypeTranslator.iteritems() if t is not None])
+
+
+def UnpackDebugBuffer(buff, indexes):
+    res = []
+    buffoffset = 0
+    buffsize = len(buff)
+    buffptr = cast(ctypes.pythonapi.PyString_AsString(id(buff)), c_void_p).value
+    for iectype in indexes:
+        c_type, unpack_func, _pack_func = \
+            TypeTranslator.get(iectype, (None, None, None))
+        if c_type is not None and buffoffset < buffsize:
+            cursor = c_void_p(buffptr + buffoffset)
+            value = unpack_func(cast(cursor,
+                                     POINTER(c_type)).contents)
+            buffoffset += sizeof(c_type) if iectype != "STRING" else len(value)+1
+            res.append(value)
+        else:
+            break
+    if buffoffset and buffoffset == buffsize:
+        return res
+    return None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime_files.list	Mon Jan 15 14:43:53 2018 +0100
@@ -0,0 +1,17 @@
+# those files are used in runtime
+# licensed according to LGPL, see COPYING.runtime 
+
+images/icostop24.png
+images/icoplay24.png
+images/brz.png
+util/__init__.py
+util/paths.py
+runtime/WampClient.py
+runtime/PLCObject.py
+runtime/NevowServer.py
+runtime/webinterface.js
+runtime/__init__.py
+runtime/ServicePublisher.py
+runtime/typemapping.py 
+runtime/loglevels.py 
+Beremiz_service.py
--- a/targets/typemapping.py	Thu Jan 11 15:41:20 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# This file is part of Beremiz, runtime and an Integrated Development Environment for
-# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
-#
-# Copyright (C) 2011: Edouard TISSERANT and Laurent BESSARD
-#
-# See COPYING.Runtime file for copyrights details.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-from __future__ import absolute_import
-import ctypes
-from ctypes import *
-from datetime import timedelta as td
-
-ctypes.pythonapi.PyString_AsString.argtypes = (ctypes.c_void_p,)
-ctypes.pythonapi.PyString_AsString.restype = ctypes.POINTER(ctypes.c_char)
-
-
-class IEC_STRING(Structure):
-    """
-    Must be changed according to changes in iec_types.h
-    """
-    _fields_ = [("len", c_uint8),
-                ("body", c_char * 126)]
-
-
-class IEC_TIME(Structure):
-    """
-    Must be changed according to changes in iec_types.h
-    """
-    _fields_ = [("s", c_long),   # tv_sec
-                ("ns", c_long)]  # tv_nsec
-
-
-def _t(t, u=lambda x: x.value, p=lambda t, x: t(x)):
-    return (t, u, p)
-
-
-def _ttime():
-    return (IEC_TIME,
-            lambda x: td(0, x.s, x.ns/1000),
-            lambda t, x: t(x.days * 24 * 3600 + x.seconds, x.microseconds*1000))
-
-
-SameEndianessTypeTranslator = {
-    "BOOL":       _t(c_uint8, lambda x: x.value != 0),
-    "STEP":       _t(c_uint8),
-    "TRANSITION": _t(c_uint8),
-    "ACTION":     _t(c_uint8),
-    "SINT":       _t(c_int8),
-    "USINT":      _t(c_uint8),
-    "BYTE":       _t(c_uint8),
-    "STRING":     (IEC_STRING,
-                   lambda x: x.body[:x.len],
-                   lambda t, x: t(len(x), x)),
-    "INT":        _t(c_int16),
-    "UINT":       _t(c_uint16),
-    "WORD":       _t(c_uint16),
-    "DINT":       _t(c_int32),
-    "UDINT":      _t(c_uint32),
-    "DWORD":      _t(c_uint32),
-    "LINT":       _t(c_int64),
-    "ULINT":      _t(c_uint64),
-    "LWORD":      _t(c_uint64),
-    "REAL":       _t(c_float),
-    "LREAL":      _t(c_double),
-    "TIME":       _ttime(),
-    "TOD":        _ttime(),
-    "DATE":       _ttime(),
-    "DT":         _ttime(),
-    }
-
-SwapedEndianessTypeTranslator = {
-    # TODO
-    }
-
-TypeTranslator = SameEndianessTypeTranslator
-
-# Construct debugger natively supported types
-DebugTypesSize = dict([(key, sizeof(t)) for key, (t, p, u) in SameEndianessTypeTranslator.iteritems() if t is not None])
-
-
-def UnpackDebugBuffer(buff, indexes):
-    res = []
-    buffoffset = 0
-    buffsize = len(buff)
-    buffptr = cast(ctypes.pythonapi.PyString_AsString(id(buff)), c_void_p).value
-    for iectype in indexes:
-        c_type, unpack_func, _pack_func = \
-            TypeTranslator.get(iectype, (None, None, None))
-        if c_type is not None and buffoffset < buffsize:
-            cursor = c_void_p(buffptr + buffoffset)
-            value = unpack_func(cast(cursor,
-                                     POINTER(c_type)).contents)
-            buffoffset += sizeof(c_type) if iectype != "STRING" else len(value)+1
-            res.append(value)
-        else:
-            break
-    if buffoffset and buffoffset == buffsize:
-        return res
-    return None
-
-
-LogLevels = ["CRITICAL", "WARNING", "INFO", "DEBUG"]
-LogLevelsCount = len(LogLevels)
-LogLevelsDict = dict(zip(LogLevels, range(LogLevelsCount)))
-LogLevelsDefault = LogLevelsDict["DEBUG"]