pyxcp 0.23.0__cp313-cp313-win_arm64.whl

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.

Files changed (134) hide show
  1. pyxcp/__init__.py +20 -0
  2. pyxcp/aml/EtasCANMonitoring.a2l +82 -0
  3. pyxcp/aml/EtasCANMonitoring.aml +67 -0
  4. pyxcp/aml/XCP_Common.aml +408 -0
  5. pyxcp/aml/XCPonCAN.aml +78 -0
  6. pyxcp/aml/XCPonEth.aml +33 -0
  7. pyxcp/aml/XCPonFlx.aml +113 -0
  8. pyxcp/aml/XCPonSxI.aml +66 -0
  9. pyxcp/aml/XCPonUSB.aml +106 -0
  10. pyxcp/aml/ifdata_CAN.a2l +20 -0
  11. pyxcp/aml/ifdata_Eth.a2l +11 -0
  12. pyxcp/aml/ifdata_Flx.a2l +94 -0
  13. pyxcp/aml/ifdata_SxI.a2l +13 -0
  14. pyxcp/aml/ifdata_USB.a2l +81 -0
  15. pyxcp/asam/__init__.py +0 -0
  16. pyxcp/asam/types.py +131 -0
  17. pyxcp/asamkeydll.c +116 -0
  18. pyxcp/asamkeydll.sh +2 -0
  19. pyxcp/checksum.py +732 -0
  20. pyxcp/cmdline.py +52 -0
  21. pyxcp/config/__init__.py +1113 -0
  22. pyxcp/config/legacy.py +120 -0
  23. pyxcp/constants.py +47 -0
  24. pyxcp/cpp_ext/__init__.py +0 -0
  25. pyxcp/cpp_ext/bin.hpp +104 -0
  26. pyxcp/cpp_ext/blockmem.hpp +58 -0
  27. pyxcp/cpp_ext/cpp_ext.cp310-win_arm64.pyd +0 -0
  28. pyxcp/cpp_ext/cpp_ext.cp311-win_arm64.pyd +0 -0
  29. pyxcp/cpp_ext/cpp_ext.cp312-win_arm64.pyd +0 -0
  30. pyxcp/cpp_ext/cpp_ext.cp313-win_arm64.pyd +0 -0
  31. pyxcp/cpp_ext/daqlist.hpp +206 -0
  32. pyxcp/cpp_ext/event.hpp +67 -0
  33. pyxcp/cpp_ext/extension_wrapper.cpp +100 -0
  34. pyxcp/cpp_ext/helper.hpp +280 -0
  35. pyxcp/cpp_ext/mcobject.hpp +246 -0
  36. pyxcp/cpp_ext/tsqueue.hpp +46 -0
  37. pyxcp/daq_stim/__init__.py +232 -0
  38. pyxcp/daq_stim/optimize/__init__.py +67 -0
  39. pyxcp/daq_stim/optimize/binpacking.py +41 -0
  40. pyxcp/daq_stim/scheduler.cpp +62 -0
  41. pyxcp/daq_stim/scheduler.hpp +75 -0
  42. pyxcp/daq_stim/stim.cp310-win_arm64.pyd +0 -0
  43. pyxcp/daq_stim/stim.cp311-win_arm64.pyd +0 -0
  44. pyxcp/daq_stim/stim.cp312-win_arm64.pyd +0 -0
  45. pyxcp/daq_stim/stim.cp313-win_arm64.pyd +0 -0
  46. pyxcp/daq_stim/stim.cpp +13 -0
  47. pyxcp/daq_stim/stim.hpp +604 -0
  48. pyxcp/daq_stim/stim_wrapper.cpp +50 -0
  49. pyxcp/dllif.py +100 -0
  50. pyxcp/errormatrix.py +878 -0
  51. pyxcp/examples/conf_can.toml +19 -0
  52. pyxcp/examples/conf_can_user.toml +16 -0
  53. pyxcp/examples/conf_can_vector.json +11 -0
  54. pyxcp/examples/conf_can_vector.toml +11 -0
  55. pyxcp/examples/conf_eth.toml +9 -0
  56. pyxcp/examples/conf_nixnet.json +20 -0
  57. pyxcp/examples/conf_socket_can.toml +12 -0
  58. pyxcp/examples/conf_sxi.json +9 -0
  59. pyxcp/examples/conf_sxi.toml +7 -0
  60. pyxcp/examples/run_daq.py +163 -0
  61. pyxcp/examples/xcp_policy.py +60 -0
  62. pyxcp/examples/xcp_read_benchmark.py +38 -0
  63. pyxcp/examples/xcp_skel.py +49 -0
  64. pyxcp/examples/xcp_unlock.py +38 -0
  65. pyxcp/examples/xcp_user_supplied_driver.py +44 -0
  66. pyxcp/examples/xcphello.py +78 -0
  67. pyxcp/examples/xcphello_recorder.py +107 -0
  68. pyxcp/master/__init__.py +9 -0
  69. pyxcp/master/errorhandler.py +442 -0
  70. pyxcp/master/master.py +2047 -0
  71. pyxcp/py.typed +0 -0
  72. pyxcp/recorder/__init__.py +101 -0
  73. pyxcp/recorder/build_clang.cmd +1 -0
  74. pyxcp/recorder/build_clang.sh +2 -0
  75. pyxcp/recorder/build_gcc.cmd +1 -0
  76. pyxcp/recorder/build_gcc.sh +2 -0
  77. pyxcp/recorder/build_gcc_arm.sh +2 -0
  78. pyxcp/recorder/converter/__init__.py +450 -0
  79. pyxcp/recorder/lz4.c +2829 -0
  80. pyxcp/recorder/lz4.h +879 -0
  81. pyxcp/recorder/lz4hc.c +2041 -0
  82. pyxcp/recorder/lz4hc.h +413 -0
  83. pyxcp/recorder/mio.hpp +1714 -0
  84. pyxcp/recorder/reader.hpp +139 -0
  85. pyxcp/recorder/reco.py +277 -0
  86. pyxcp/recorder/recorder.rst +0 -0
  87. pyxcp/recorder/rekorder.cp310-win_arm64.pyd +0 -0
  88. pyxcp/recorder/rekorder.cp311-win_arm64.pyd +0 -0
  89. pyxcp/recorder/rekorder.cp312-win_arm64.pyd +0 -0
  90. pyxcp/recorder/rekorder.cp313-win_arm64.pyd +0 -0
  91. pyxcp/recorder/rekorder.cpp +59 -0
  92. pyxcp/recorder/rekorder.hpp +274 -0
  93. pyxcp/recorder/setup.py +41 -0
  94. pyxcp/recorder/test_reko.py +34 -0
  95. pyxcp/recorder/unfolder.hpp +1332 -0
  96. pyxcp/recorder/wrap.cpp +189 -0
  97. pyxcp/recorder/writer.hpp +302 -0
  98. pyxcp/scripts/__init__.py +0 -0
  99. pyxcp/scripts/pyxcp_probe_can_drivers.py +20 -0
  100. pyxcp/scripts/xcp_examples.py +64 -0
  101. pyxcp/scripts/xcp_fetch_a2l.py +40 -0
  102. pyxcp/scripts/xcp_id_scanner.py +19 -0
  103. pyxcp/scripts/xcp_info.py +144 -0
  104. pyxcp/scripts/xcp_profile.py +27 -0
  105. pyxcp/scripts/xmraw_converter.py +31 -0
  106. pyxcp/stim/__init__.py +0 -0
  107. pyxcp/tests/test_asam_types.py +24 -0
  108. pyxcp/tests/test_binpacking.py +186 -0
  109. pyxcp/tests/test_can.py +1324 -0
  110. pyxcp/tests/test_checksum.py +95 -0
  111. pyxcp/tests/test_daq.py +193 -0
  112. pyxcp/tests/test_daq_opt.py +426 -0
  113. pyxcp/tests/test_frame_padding.py +156 -0
  114. pyxcp/tests/test_master.py +2006 -0
  115. pyxcp/tests/test_transport.py +81 -0
  116. pyxcp/tests/test_utils.py +30 -0
  117. pyxcp/timing.py +60 -0
  118. pyxcp/transport/__init__.py +10 -0
  119. pyxcp/transport/base.py +440 -0
  120. pyxcp/transport/base_transport.hpp +0 -0
  121. pyxcp/transport/can.py +556 -0
  122. pyxcp/transport/eth.py +219 -0
  123. pyxcp/transport/sxi.py +135 -0
  124. pyxcp/transport/transport_wrapper.cpp +0 -0
  125. pyxcp/transport/usb_transport.py +213 -0
  126. pyxcp/types.py +1000 -0
  127. pyxcp/utils.py +128 -0
  128. pyxcp/vector/__init__.py +0 -0
  129. pyxcp/vector/map.py +82 -0
  130. pyxcp-0.23.0.dist-info/LICENSE +165 -0
  131. pyxcp-0.23.0.dist-info/METADATA +107 -0
  132. pyxcp-0.23.0.dist-info/RECORD +134 -0
  133. pyxcp-0.23.0.dist-info/WHEEL +4 -0
  134. pyxcp-0.23.0.dist-info/entry_points.txt +9 -0
@@ -0,0 +1,156 @@
1
+ import pytest
2
+
3
+ from pyxcp.transport.can import pad_frame
4
+
5
+
6
+ def test_frame_padding_no_padding_length():
7
+ EXPECTED = (
8
+ (0, 8),
9
+ (1, 8),
10
+ (2, 8),
11
+ (3, 8),
12
+ (4, 8),
13
+ (5, 8),
14
+ (6, 8),
15
+ (7, 8),
16
+ (8, 8),
17
+ (9, 12),
18
+ (10, 12),
19
+ (11, 12),
20
+ (12, 12),
21
+ (13, 16),
22
+ (14, 16),
23
+ (15, 16),
24
+ (16, 16),
25
+ (17, 20),
26
+ (18, 20),
27
+ (19, 20),
28
+ (20, 20),
29
+ (21, 24),
30
+ (22, 24),
31
+ (23, 24),
32
+ (24, 24),
33
+ (25, 32),
34
+ (26, 32),
35
+ (27, 32),
36
+ (28, 32),
37
+ (29, 32),
38
+ (30, 32),
39
+ (31, 32),
40
+ (32, 32),
41
+ (33, 48),
42
+ (34, 48),
43
+ (35, 48),
44
+ (36, 48),
45
+ (37, 48),
46
+ (38, 48),
47
+ (39, 48),
48
+ (40, 48),
49
+ (41, 48),
50
+ (42, 48),
51
+ (43, 48),
52
+ (44, 48),
53
+ (45, 48),
54
+ (46, 48),
55
+ (47, 48),
56
+ (48, 48),
57
+ (49, 64),
58
+ (50, 64),
59
+ (51, 64),
60
+ (52, 64),
61
+ (53, 64),
62
+ (54, 64),
63
+ (55, 64),
64
+ (56, 64),
65
+ (57, 64),
66
+ (58, 64),
67
+ (59, 64),
68
+ (60, 64),
69
+ (61, 64),
70
+ (62, 64),
71
+ (63, 64),
72
+ (64, 64),
73
+ )
74
+ for frame_len in range(65):
75
+ frame = bytes(frame_len)
76
+ padded_frame = pad_frame(frame, padding_value=0, pad_frame=True)
77
+ frame_len = len(padded_frame)
78
+ _, expected_len = EXPECTED[frame_len]
79
+ assert frame_len == expected_len
80
+
81
+
82
+ @pytest.mark.skip
83
+ def test_frame_padding_padding_length32():
84
+ EXPECTED = (
85
+ (0, 32),
86
+ (1, 32),
87
+ (2, 32),
88
+ (3, 32),
89
+ (4, 32),
90
+ (5, 32),
91
+ (6, 32),
92
+ (7, 32),
93
+ (8, 32),
94
+ (9, 32),
95
+ (10, 32),
96
+ (11, 32),
97
+ (12, 32),
98
+ (13, 32),
99
+ (14, 32),
100
+ (15, 32),
101
+ (16, 32),
102
+ (17, 32),
103
+ (18, 32),
104
+ (19, 32),
105
+ (20, 32),
106
+ (21, 32),
107
+ (22, 32),
108
+ (23, 32),
109
+ (24, 32),
110
+ (25, 32),
111
+ (26, 32),
112
+ (27, 32),
113
+ (28, 32),
114
+ (29, 32),
115
+ (30, 32),
116
+ (31, 32),
117
+ (32, 32),
118
+ (33, 48),
119
+ (34, 48),
120
+ (35, 48),
121
+ (36, 48),
122
+ (37, 48),
123
+ (38, 48),
124
+ (39, 48),
125
+ (40, 48),
126
+ (41, 48),
127
+ (42, 48),
128
+ (43, 48),
129
+ (44, 48),
130
+ (45, 48),
131
+ (46, 48),
132
+ (47, 48),
133
+ (48, 48),
134
+ (49, 64),
135
+ (50, 64),
136
+ (51, 64),
137
+ (52, 64),
138
+ (53, 64),
139
+ (54, 64),
140
+ (55, 64),
141
+ (56, 64),
142
+ (57, 64),
143
+ (58, 64),
144
+ (59, 64),
145
+ (60, 64),
146
+ (61, 64),
147
+ (62, 64),
148
+ (63, 64),
149
+ (64, 64),
150
+ )
151
+ for frame_len in range(65):
152
+ frame = bytes(frame_len)
153
+ padded_frame = pad_frame(frame, padding_value=0, pad_frame=True)
154
+ frame_len = len(padded_frame)
155
+ _, expected_len = EXPECTED[frame_len]
156
+ assert frame_len == expected_len