pyxcp 0.23.7__cp313-cp313-win_amd64.whl → 0.23.8__cp313-cp313-win_amd64.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.

pyxcp/__init__.py CHANGED
@@ -17,4 +17,4 @@ tb_install(show_locals=True, max_frames=3) # Install custom exception handler.
17
17
 
18
18
  # if you update this manually, do not forget to update
19
19
  # .bumpversion.cfg and pyproject.toml.
20
- __version__ = "0.23.7"
20
+ __version__ = "0.23.8"
pyxcp/asamkeydll.exe ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
pyxcp/examples/run_daq.py CHANGED
@@ -130,7 +130,7 @@ else:
130
130
  ]
131
131
 
132
132
  daq_parser = DaqToCsv(DAQ_LISTS) # Record to CSV file(s).
133
- # daq_parser = DaqRecorder(DAQ_LISTS, "run_daq", 2) # Record to ".xmraw" file.
133
+ # daq_parser = DaqRecorder(DAQ_LISTS, "run_daq_02092025_01", 4) # Record to ".xmraw" file.
134
134
 
135
135
  with ap.run(policy=daq_parser) as x:
136
136
  try:
@@ -149,7 +149,8 @@ with ap.run(policy=daq_parser) as x:
149
149
  print("start DAQ lists.")
150
150
  daq_parser.start() # Start DAQ lists.
151
151
 
152
- time.sleep(2.0 * 60.0 * 60.0) # Run for 15 minutes.
152
+ time.sleep(2.0 * 60.0)
153
+ # time.sleep(2.0 * 60.0 * 60.0) # Run for 15 minutes.
153
154
 
154
155
  print("Stop DAQ....")
155
156
  daq_parser.stop() # Stop DAQ lists.
Binary file
Binary file
Binary file
Binary file
@@ -1142,38 +1142,30 @@ class DaqRecorderPolicy : public DAQPolicyBase {
1142
1142
  class DaqTimeTracker {
1143
1143
  public:
1144
1144
 
1145
- DaqTimeTracker(std::uint64_t overflow_value) : m_overflow_value(overflow_value), m_overflow_counter(0ULL), m_previous_timestamp(0ULL) { m_ts_base_set=false; m_ts0_base=0ULL; m_ts1_base=0ULL; }
1145
+ DaqTimeTracker(std::uint64_t overflow_value) : m_overflow_value(overflow_value), m_overflow_counter(0ULL), m_previous_timestamp(0ULL) {
1146
+ m_ts_base_set=false;
1147
+ m_ts0_base=0ULL; m_ts1_base=0ULL;
1148
+ //std::cout << "\tOverflow value: " << overflow_value << "\n";
1149
+ }
1146
1150
 
1147
- auto get_previous_timestamp() const noexcept {
1148
- return m_previous_timestamp;
1149
- }
1150
-
1151
- void set_previous_timestamp(std::uint64_t timestamp) noexcept {
1152
- m_previous_timestamp = timestamp;
1153
- }
1154
-
1155
- void inc_overflow_counter() noexcept {
1156
- m_overflow_counter++;
1157
- }
1151
+ std::pair<std::uint64_t,std::uint64_t> normalize(std::uint64_t ts0, std::uint64_t ts1) noexcept {
1158
1152
 
1159
- auto get_overflow_counter() const noexcept {
1160
- return m_overflow_counter;
1161
- }
1153
+ if (m_previous_timestamp > ts1) {
1154
+ m_overflow_counter++;
1155
+ }
1156
+ m_previous_timestamp = ts1;
1162
1157
 
1163
- auto get_value() const noexcept {
1164
- return m_overflow_value * m_overflow_counter;
1165
- }
1166
-
1167
- public:
1168
- std::pair<std::uint64_t,std::uint64_t> normalize(std::uint64_t ts0, std::uint64_t ts1) noexcept {
1169
1158
  if (!m_ts_base_set) {
1170
1159
  m_ts0_base = ts0;
1171
1160
  m_ts1_base = ts1;
1172
1161
  m_ts_base_set = true;
1162
+ // std::cout << "\tSet ts0: " << ts0 << " ts1:" << ts1 << "\n";
1173
1163
  }
1174
- return {ts0 - m_ts0_base, ts1 - m_ts1_base};
1164
+ // std::cout << "\t\tts0: " << ts0 << " Base: " << m_ts0_base << " ts1: " << ts1 << " Base: " << m_ts1_base << "\n";
1165
+ return {ts0 - m_ts0_base, (ts1 - m_ts1_base) + (m_overflow_value * m_overflow_counter) };
1175
1166
  }
1176
1167
  private:
1168
+
1177
1169
  std::uint64_t m_overflow_value{};
1178
1170
  std::uint64_t m_overflow_counter{};
1179
1171
  std::uint64_t m_previous_timestamp{};
@@ -1211,19 +1203,11 @@ class DaqOnlinePolicy : public DAQPolicyBase {
1211
1203
  auto result = m_decoder->feed(timestamp, payload);
1212
1204
  if (result) {
1213
1205
  const auto& [daq_list, ts0, ts1, meas] = *result;
1214
-
1215
1206
  auto& overflow = m_overflows[daq_list];
1216
1207
 
1217
1208
  auto [norm_ts0, norm_ts1] = overflow.normalize(ts0, ts1);
1218
1209
 
1219
- if (overflow.get_previous_timestamp() > norm_ts1) {
1220
- overflow.inc_overflow_counter();
1221
- }
1222
-
1223
- on_daq_list(daq_list, norm_ts0, norm_ts1 + overflow.get_value(), meas);
1224
-
1225
- overflow.set_previous_timestamp(norm_ts1);
1226
-
1210
+ on_daq_list(daq_list, norm_ts0, norm_ts1, meas);
1227
1211
  }
1228
1212
  }
1229
1213
 
@@ -1296,20 +1280,11 @@ class XcpLogFileDecoder {
1296
1280
  auto result = m_decoder->feed(timestamp, str_data);
1297
1281
  if (result) {
1298
1282
  const auto& [daq_list, ts0, ts1, meas] = *result;
1299
-
1300
1283
  auto& overflow = m_overflows[daq_list];
1301
1284
 
1302
1285
  auto [norm_ts0, norm_ts1] = overflow.normalize(ts0, ts1);
1303
1286
 
1304
- if (overflow.get_previous_timestamp() > norm_ts1) {
1305
- overflow.inc_overflow_counter();
1306
- // Maybe on debug-level?
1307
- // std::cout << "Overflow detected, counter: " << overflow.get_overflow_counter() << " " << overflow.get_previous_timestamp() << " " << ts1 << std::endl;
1308
- }
1309
-
1310
- on_daq_list(daq_list, norm_ts0, norm_ts1 + overflow.get_value(), meas);
1311
-
1312
- overflow.set_previous_timestamp(norm_ts1);
1287
+ on_daq_list(daq_list, norm_ts0, norm_ts1, meas);
1313
1288
  }
1314
1289
  }
1315
1290
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyxcp
3
- Version: 0.23.7
3
+ Version: 0.23.8
4
4
  Summary: Universal Calibration Protocol for Python
5
5
  License: LGPLv3
6
6
  Keywords: automotive,ecu,xcp,asam,autosar
@@ -39,7 +39,7 @@ Description-Content-Type: text/x-rst
39
39
  Readme
40
40
  ======
41
41
 
42
- .. image:: pyxcp_social.jpg
42
+ .. image:: pyxcp_social.svg
43
43
  :align: center
44
44
 
45
45
  Reliable Python tooling for the ASAM MCD-1 XCP protocol (measurement,
@@ -1,4 +1,4 @@
1
- pyxcp/__init__.py,sha256=WX5r7dc_dsPzym0sxtX_i0yipNgLxAqy-cddYkfaMpA,547
1
+ pyxcp/__init__.py,sha256=cVy-ZNktSYO66uB5mxmZNTNVfHYESCtKMgbBB3l00lM,547
2
2
  pyxcp/aml/EtasCANMonitoring.a2l,sha256=EJYwe3Z3H24vyWAa6lUgcdKnQY8pwFxjyCN6ZU1ST8w,1509
3
3
  pyxcp/aml/EtasCANMonitoring.aml,sha256=xl0DdyeiIaLW0mmmJNAyJS0CQdOLSxt9dxfgrdSlU8Y,2405
4
4
  pyxcp/aml/ifdata_CAN.a2l,sha256=NCUnCUEEgRbZYSLGtUGwL2e7zJ8hrp0SbmLHGv8uY58,612
@@ -15,6 +15,7 @@ pyxcp/aml/XCPonUSB.aml,sha256=Xcu52ZckyuEX0v5rwYQxz8gJCAs4qyepXmd_bkCJVlA,4953
15
15
  pyxcp/asam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  pyxcp/asam/types.py,sha256=_gKcpBF5mon_SDWZBUW0PGBMcb37yrvhhEuk1wslg-s,2441
17
17
  pyxcp/asamkeydll.c,sha256=dVEvU0S1kgIo62S0La-T8xHSw668LM_DYc_fiQ0No6g,2952
18
+ pyxcp/asamkeydll.exe,sha256=_dl7btiOXdVzuSjvS8uHHBnwJ0OV50rQdxTQLX-87gI,11264
18
19
  pyxcp/asamkeydll.sh,sha256=DC2NKUMwvi39OQgJ6514Chr4wc1LYbTmQHmMq9jAHHs,59
19
20
  pyxcp/checksum.py,sha256=hO2JW_eiO9I0A4eiqovMV9d_y5oidq_w8jKdAE4FeOo,11899
20
21
  pyxcp/cmdline.py,sha256=FrVp7G5ORj92h7LWPfoqAzdaoW2etiui5MvCN1F6cRw,2537
@@ -24,10 +25,10 @@ pyxcp/constants.py,sha256=9yGfujC0ImTYQWfn41wyw8pluJTSrhMGWIVeIZTgsLg,1160
24
25
  pyxcp/cpp_ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
26
  pyxcp/cpp_ext/bin.hpp,sha256=PwJloZek21la-RBSda2Hc0u_6gID0sfTduPeplaAyR4,2561
26
27
  pyxcp/cpp_ext/blockmem.hpp,sha256=ysaJwmTWGTfE54Outk3gJYOfAVFd_QaonBMtXLcXwCc,1242
27
- pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=frUoWNDkE0uLOZMwZeBC_vSElOE_7Kefr4_b0JqrbkA,288768
28
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=5sO19xba0fv3NN763FDpxEj_0HWw-ri8myFfIYIzhE0,290816
29
- pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=yMkpeKtGUf5ytXbLvyDrs3zPu6A_s3EkzHNkkemY7Zg,295424
30
- pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=2GjuABjiU-OEavTbf7HHDN4K1gHVwzLNUK6zgq4MeUs,295424
28
+ pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=sfKSNzJSY-vNGHevnvz5_S43YcyDGMm3R5OT1_bvJf0,288768
29
+ pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=QsPGTQL6FdOl6Z9aac4p1d8gLfQkdON6bKVkr74As5A,290816
30
+ pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=50AWfucv4Sh5-dxoa6vN6HcspybPM-5bKReo0YPBxMo,295424
31
+ pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=yqyDboAu60q5dmeDtiu0nL8koj_CqVxLKXznjwEXHJ8,295424
31
32
  pyxcp/cpp_ext/daqlist.hpp,sha256=g2hlxgoQorAGKHedZFZ0c2FQh1APMIA9sVB6M6hD_n8,7277
32
33
  pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
33
34
  pyxcp/cpp_ext/extension_wrapper.cpp,sha256=xFs3IcrvHPHA82-n11WPzt8HATGqcks02p84SjQ2BKM,4855
@@ -39,10 +40,10 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
39
40
  pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
40
41
  pyxcp/daq_stim/scheduler.cpp,sha256=NuNkAz3Dv849f51_T36YPck2dl-YsdDdG-cozc7XN9U,1504
41
42
  pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
42
- pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=7S_7sOEaUTcKAPsGTxeHYR3rhspKGpASipzoA4H-brA,208896
43
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=ivIStsAqdjIXG5lNbn57w1Xxg5PhQ9r6jfa7kHePmdE,210432
44
- pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=QzZYfoMjz22DVjDQ9zsmqLQ050__MEqbx0vcBJ86F2o,214528
45
- pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=jfxDIXwc4SJsmCjrbN4yX_3sYiEwKkU8DH_ufELmzxw,214528
43
+ pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=pyjkYTxkEMe5cfC_OfPx6dCLMhaKyShzGSa3fH2BQEE,208896
44
+ pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=6flS41F05MSHVHCZmPpJjsZo09UKQjhb997mnxGmd9E,210432
45
+ pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=B0fBKME3oETa-8H0KglblXrZms6kIvYkmdhgpHOaVP0,214528
46
+ pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=e8FvkWFvr9ESHSXnWgngC2XAC7dCfhh3PMcSE9pIhH4,214528
46
47
  pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
47
48
  pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
48
49
  pyxcp/daq_stim/stim_wrapper.cpp,sha256=iT2yxJ3LRG7HoYC1bwhM3tCAxF9X_HHierBNsLRmTJg,1995
@@ -57,7 +58,7 @@ pyxcp/examples/conf_nixnet.json,sha256=BvXPrljPGzaRTNPch3K0XfU3KSBP1sVDDNP7yY850
57
58
  pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO4o7r8k,269
58
59
  pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
59
60
  pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
60
- pyxcp/examples/run_daq.py,sha256=T91EmIVC2CS7vU4IlCzNcxNzkD1AGOWmBGMXklR6g0w,5631
61
+ pyxcp/examples/run_daq.py,sha256=uPZQUXUTkvPwZD3PdLSLpfp6fPbaoJb0ryB8ux5SrG0,5673
61
62
  pyxcp/examples/xcp_policy.py,sha256=io9tS2W-7PvR8ZzU203KolFrDp67eorUlwNWvA4kC5k,1921
62
63
  pyxcp/examples/xcp_read_benchmark.py,sha256=zOG0Yrji10vA0vhHa27KK7zgc3JDpzXzXsFnIU4C_AM,956
63
64
  pyxcp/examples/xcp_skel.py,sha256=YXLQC8nn8aAwYSVuBGhr1dvmdMBjmO1Ee1w3e5sy16s,1159
@@ -84,15 +85,15 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
84
85
  pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
85
86
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
86
87
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=HQAY2Yt3JAdxkOyif7C8FfcADRZEjW6R2JXSMzdK_vE,386560
88
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=zT2MUiZ4DuEctk4HRHFxh0KJtmyXhETiAtMWZM-Ow0U,388096
89
- pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=VzzPSxyLq8M1qWz7wDjzuq-oYCPfm1IJqfGHRrWHR0o,393216
90
- pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=s0fpKVwl-aV0hTThaS9a4BO_5_kdchBBE11PCMlyHig,393216
88
+ pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=VCzmU9duNtEZ-LTQCCWrn7Fh7b4K2o6_qRuURFriidM,386560
89
+ pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=zLTtYZbzlz3rHdYknaePpbW4tzHZmsCIv6KAn7iFRvA,388096
90
+ pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=HMKyC3_ALxTtB_f3ED8Pr2ingQqc0CtWUrwReqBDcYY,393216
91
+ pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=tWwDiIpou9Qzs2Nx6noWC-mU-mi3G04rzZYgV-HnQM0,393216
91
92
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
92
93
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
93
94
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
94
95
  pyxcp/recorder/test_reko.py,sha256=M8lfKBmBUl-28IMVoD6lU5Bnorz7fYFOvcAjfVZxuXA,1014
95
- pyxcp/recorder/unfolder.hpp,sha256=jKvjQs8VSVfsYRkLguV97Csde_Xbt8G-tGkuKnbaSqY,48763
96
+ pyxcp/recorder/unfolder.hpp,sha256=KDmRM0FRs3w-yFeS7-e5u743HKinE8v8sbh3_6RnCQ4,48002
96
97
  pyxcp/recorder/wrap.cpp,sha256=T4cwpmjhYbr75Q3plQpJTkNLyKE4lL0W7GC-8QSURJ8,8666
97
98
  pyxcp/recorder/writer.hpp,sha256=rNjtRTtJes5z-BzKR2K56P_Kvc9MEVQgycu8J0wKf1g,11284
98
99
  pyxcp/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -127,8 +128,8 @@ pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
127
128
  pyxcp/utils.py,sha256=75j5W91l9gtz0bz8x6JsQxJY9Q3PiFgiyZtFaICabLU,3532
128
129
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
130
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
130
- pyxcp-0.23.7.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
131
- pyxcp-0.23.7.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
132
- pyxcp-0.23.7.dist-info/METADATA,sha256=t_ndqpGCZ0vWyXI2tRS73YMxpWAS1Co6OXGEAXy1IxY,12718
133
- pyxcp-0.23.7.dist-info/WHEEL,sha256=mALHoYUTvmSuUvATXVCIUbSdKauf2WkQvaEK6Gk1YTE,98
134
- pyxcp-0.23.7.dist-info/RECORD,,
131
+ pyxcp-0.23.8.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
132
+ pyxcp-0.23.8.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
133
+ pyxcp-0.23.8.dist-info/METADATA,sha256=8wRiL3ofoAwld1lCnzIsPh6NDt0UWmZPZIj50dcOPTA,12718
134
+ pyxcp-0.23.8.dist-info/WHEEL,sha256=mALHoYUTvmSuUvATXVCIUbSdKauf2WkQvaEK6Gk1YTE,98
135
+ pyxcp-0.23.8.dist-info/RECORD,,
File without changes