pyxcp 0.22.26__tar.gz → 0.22.27__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyxcp might be problematic. Click here for more details.
- {pyxcp-0.22.26 → pyxcp-0.22.27}/PKG-INFO +1 -1
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyproject.toml +2 -1
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/__init__.py +1 -1
- pyxcp-0.22.27/pyxcp/scripts/xmraw_converter.py +31 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/base.py +1 -1
- {pyxcp-0.22.26 → pyxcp-0.22.27}/CMakeLists.txt +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/LICENSE +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/README.md +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/build_ext.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/EtasCANMonitoring.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/EtasCANMonitoring.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCP_Common.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCPonCAN.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCPonEth.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCPonFlx.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCPonSxI.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/XCPonUSB.aml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/ifdata_CAN.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/ifdata_Eth.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/ifdata_Flx.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/ifdata_SxI.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/aml/ifdata_USB.a2l +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/asam/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/asam/types.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/asamkeydll.c +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/asamkeydll.sh +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/checksum.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cmdline.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/config/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/config/legacy.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/constants.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/bin.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/blockmem.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/daqlist.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/event.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/extension_wrapper.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/helper.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/mcobject.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/cpp_ext/tsqueue.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/optimize/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/optimize/binpacking.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/scheduler.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/scheduler.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/stim.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/stim.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/daq_stim/stim_wrapper.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/dllif.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/errormatrix.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_can.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_can_user.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_can_vector.json +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_can_vector.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_eth.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_nixnet.json +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_socket_can.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_sxi.json +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/conf_sxi.toml +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/run_daq.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcp_policy.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcp_read_benchmark.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcp_skel.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcp_unlock.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcp_user_supplied_driver.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcphello.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/examples/xcphello_recorder.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/master/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/master/errorhandler.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/master/master.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/py.typed +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/build_clang.cmd +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/build_clang.sh +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/build_gcc.cmd +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/build_gcc.sh +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/build_gcc_arm.sh +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/converter/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/lz4.c +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/lz4.h +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/lz4hc.c +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/lz4hc.h +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/mio.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/reader.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/reco.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/recorder.rst +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/rekorder.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/rekorder.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/setup.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/test_reko.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/unfolder.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/wrap.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/recorder/writer.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/pyxcp_probe_can_drivers.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/xcp_examples.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/xcp_fetch_a2l.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/xcp_id_scanner.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/xcp_info.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/scripts/xcp_profile.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/stim/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_asam_types.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_binpacking.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_can.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_checksum.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_daq.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_frame_padding.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_master.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_transport.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/tests/test_utils.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/timing.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/base_transport.hpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/can.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/eth.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/sxi.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/transport_wrapper.cpp +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/transport/usb_transport.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/types.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/utils.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/vector/__init__.py +0 -0
- {pyxcp-0.22.26 → pyxcp-0.22.27}/pyxcp/vector/map.py +0 -0
|
@@ -36,7 +36,7 @@ dynamic = ["license", "readme", "authors", "requires-python", "description", "cl
|
|
|
36
36
|
[tool.poetry]
|
|
37
37
|
authors = ["Christoph Schueler <cpu.gems@googlemail.com>"]
|
|
38
38
|
name = "pyxcp"
|
|
39
|
-
version = "0.22.
|
|
39
|
+
version = "0.22.27"
|
|
40
40
|
readme = "README.md"
|
|
41
41
|
description = "Universal Calibration Protocol for Python"
|
|
42
42
|
keywords = ["automotive", "ecu", "xcp", "asam", "autosar"]
|
|
@@ -102,6 +102,7 @@ xcp-fetch-a2l = "pyxcp.scripts.xcp_fetch_a2l:main"
|
|
|
102
102
|
xcp-info = "pyxcp.scripts.xcp_info:main"
|
|
103
103
|
xcp-profile = "pyxcp.scripts.xcp_profile:main"
|
|
104
104
|
xcp-examples = "pyxcp.scripts.xcp_examples:main"
|
|
105
|
+
xmraw-converter = "pyxcp.scripts.xmraw_converter:main"
|
|
105
106
|
|
|
106
107
|
[tool.pytest]
|
|
107
108
|
addopts = "--verbose --tb=short --junitxml=result.xml -o junit_family=xunit2"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
|
|
3
|
+
from pyxcp.recorder.converter import convert_xmraw
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
parser = argparse.ArgumentParser(description="Convert .xmraw files.")
|
|
7
|
+
|
|
8
|
+
parser.add_argument(
|
|
9
|
+
"target_type",
|
|
10
|
+
help="target file type",
|
|
11
|
+
choices=[
|
|
12
|
+
"arrow",
|
|
13
|
+
"csv",
|
|
14
|
+
"excel",
|
|
15
|
+
"hdf5",
|
|
16
|
+
"mdf",
|
|
17
|
+
"sqlite3",
|
|
18
|
+
],
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def main():
|
|
23
|
+
parser.add_argument("xmraw_file", help=".xmraw file")
|
|
24
|
+
parser.add_argument("-t", "--taget-file-name", dest="target_file_name", help="target file name")
|
|
25
|
+
args = parser.parse_args()
|
|
26
|
+
|
|
27
|
+
convert_xmraw(args.target_type, args.xmraw_file, args.target_file_name)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
if __name__ == "__main__":
|
|
31
|
+
main()
|
|
@@ -240,7 +240,7 @@ class BaseTransport(metaclass=abc.ABCMeta):
|
|
|
240
240
|
xcpPDU = self.get()
|
|
241
241
|
except EmptyFrameError:
|
|
242
242
|
if not ignore_timeout:
|
|
243
|
-
MSG = f"Response timed out (timeout={self.timeout}s)"
|
|
243
|
+
MSG = f"Response timed out (timeout={self.timeout / 1_000_000_000}s)"
|
|
244
244
|
with self.policy_lock:
|
|
245
245
|
self.policy.feed(types.FrameCategory.METADATA, self.counter_send, self.timestamp.value, bytes(MSG, "ascii"))
|
|
246
246
|
raise types.XcpTimeoutError(MSG) from None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|