File: 27.patch

package info (click to toggle)
python-dlt 2.0-3
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 516 kB
  • sloc: python: 2,244; makefile: 45
file content (142 lines) | stat: -rw-r--r-- 6,228 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
From cd2c1d388aea33fa3513e93b2d2835f68793d593 Mon Sep 17 00:00:00 2001
From: blublup <blublup>
Date: Wed, 10 Feb 2021 23:18:00 +0100
Subject: [PATCH 1/2] Update dlt core for changes in new dlt 2.18.6

---
 dlt/core/core_2186.py | 83 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 dlt/core/core_2186.py

diff --git a/dlt/core/core_2186.py b/dlt/core/core_2186.py
new file mode 100644
index 0000000..51fc3ff
--- /dev/null
+++ b/dlt/core/core_2186.py
@@ -0,0 +1,83 @@
+# Copyright (C) 2019. BMW Car IT GmbH. All rights reserved.
+"""v2.18.6 specific class definitions"""
+import ctypes
+
+# DltClientMode from dlt_client.h
+DLT_CLIENT_MODE_UNDEFINED = -1
+DLT_CLIENT_MODE_TCP = 0
+DLT_CLIENT_MODE_SERIAL = 1
+DLT_CLIENT_MODE_UNIX = 2
+DLT_CLIENT_MODE_UDP_MULTICAST = 3
+
+# DltReceiverType from dlt_common.h
+# DltReceiverType is an enum type. These definitions could not be found in shared library (libdlt.so) so
+# the enum values are defined here.
+DLT_RECEIVE_SOCKET = 0
+DLT_RECEIVE_UDP_SOCKET = 1
+DLT_RECEIVE_FD = 2
+
+
+class sockaddr_in(ctypes.Structure):  # pylint: disable=invalid-name
+    """Auxiliary definition for cDltReceiver. Defined in netinet/in.h header"""
+    _fields_ = [("sa_family", ctypes.c_ushort),  # sin_family
+                ("sin_port", ctypes.c_ushort),
+                ("sin_addr", ctypes.c_byte * 4),
+                ("__pad", ctypes.c_byte * 8)]    # struct sockaddr_in is 16
+
+
+class cDltReceiver(ctypes.Structure):  # pylint: disable=invalid-name
+    """The structure is used to organise the receiving of data including buffer handling.
+    This structure is used by the corresponding functions.
+
+    typedef struct
+    {
+        int32_t lastBytesRcvd;    /**< bytes received in last receive call */
+        int32_t bytesRcvd;        /**< received bytes */
+        int32_t totalBytesRcvd;   /**< total number of received bytes */
+        char *buffer;             /**< pointer to receiver buffer */
+        char *buf;                /**< pointer to position within receiver buffer */
+        char *backup_buf;         /** pointer to the buffer with partial messages if any **/
+        int fd;                   /**< connection handle */
+        DltReceiverType  type;    /**< type of connection handle */
+        uint32_t buffersize;      /**< size of receiver buffer */
+        struct sockaddr_in addr;  /**< socket address information */
+    } DltReceiver;
+    """
+    _fields_ = [("lastBytesRcvd", ctypes.c_int32),
+                ("bytesRcvd", ctypes.c_int32),
+                ("totalBytesRcvd", ctypes.c_int32),
+                ("buffer", ctypes.POINTER(ctypes.c_char)),
+                ("buf", ctypes.POINTER(ctypes.c_char)),
+                ("backup_buf", ctypes.POINTER(ctypes.c_char)),
+                ("fd", ctypes.c_int),
+                ("type", ctypes.c_int),
+                ("buffersize", ctypes.c_uint32),
+                ("addr", sockaddr_in)]
+
+
+class cDltClient(ctypes.Structure):  # pylint: disable=invalid-name
+    """
+    typedef struct
+    {
+        DltReceiver receiver;  /**< receiver pointer to dlt receiver structure */
+        int sock;              /**< sock Connection handle/socket */
+        char *servIP;          /**< servIP IP adress/Hostname of TCP/IP interface */
+        char *hostip;          /**< IP multicast address of group */
+        int port;              /**< Port for TCP connections (optional) */
+        char *serialDevice;    /**< serialDevice Devicename of serial device */
+        char *socketPath;      /**< socketPath Unix socket path */
+        char ecuid[4];           /**< ECUiD */
+        speed_t baudrate;      /**< baudrate Baudrate of serial interface, as speed_t */
+        DltClientMode mode;    /**< mode DltClientMode */
+    } DltClient;
+    """
+    _fields_ = [("receiver", cDltReceiver),
+                ("sock", ctypes.c_int),
+                ("servIP", ctypes.c_char_p),
+                ("hostip", ctypes.c_char_p),
+                ("port", ctypes.c_int),
+                ("serialDevice", ctypes.c_char_p),
+                ("socketPath", ctypes.c_char_p),
+                ("ecuid", ctypes.c_char * 4),
+                ("baudrate", ctypes.c_uint),
+                ("mode", ctypes.c_int)]

From 939b48e1b82e68ac94ec1e67376a524be9f600a2 Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Date: Wed, 10 Feb 2021 23:18:36 +0100
Subject: [PATCH 2/2] Update tests to cope with new dlt 2.18.6 version (Closes:
 #26)

---
 tests/dlt_core_unit_tests.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tests/dlt_core_unit_tests.py b/tests/dlt_core_unit_tests.py
index 9c648b8..4d9a1be 100644
--- a/tests/dlt_core_unit_tests.py
+++ b/tests/dlt_core_unit_tests.py
@@ -21,8 +21,8 @@ def setUp(self):
                          'cDltStandardHeaderExtra': 12,
                          'cDltExtendedHeader': 10,
                          'cDLTMessage': 120,
-                         'cDltReceiver': 64,
-                         'cDltClient': 128}
+                         'cDltReceiver': 72,
+                         'cDltClient': 136}
 
     def test_sizeof(self):
         for clsname, expected in self.size_map.items():
@@ -36,11 +36,11 @@ class TestImportSpecificVersion(unittest.TestCase):
 
     def setUp(self):
         self.original_api_version = dlt.core.API_VER
-        self.version_answer = b"2.18.5"
-        self.version_str = (b"DLT Package Version: 2.18.5 STABLE, Package Revision: v2.18.5_5_g33fbad1, "
-                            b"build on Sep  2 2020 11:55:50\n-SYSTEMD -SYSTEMD_WATCHDOG -TEST -SHM\n")
-        self.version_filename = "core_2185.py"
-        self.version_truncate_str = "2.18.5"
+        self.version_answer = b"2.18.6"
+        self.version_str = (b"DLT Package Version: 2.18.6 STABLE, Package Revision: v2.18.6_5_22715aec, "
+                            b"build on Jan  6 2021 11:55:50\n-SYSTEMD -SYSTEMD_WATCHDOG -TEST -SHM\n")
+        self.version_filename = "core_2186.py"
+        self.version_truncate_str = "2.18.6"
         self.version_truncate_filename = "core_2180.py"
 
         dlt.core.API_VER = None