pyxcp 0.23.6__cp311-cp311-win_amd64.whl → 0.23.8__cp311-cp311-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.
- pyxcp/__init__.py +1 -1
- pyxcp/asamkeydll.exe +0 -0
- pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd +0 -0
- pyxcp/daq_stim/stim.cp310-win_amd64.pyd +0 -0
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd +0 -0
- pyxcp/examples/run_daq.py +3 -2
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd +0 -0
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd +0 -0
- pyxcp/recorder/unfolder.hpp +16 -41
- {pyxcp-0.23.6.dist-info → pyxcp-0.23.8.dist-info}/METADATA +2 -2
- {pyxcp-0.23.6.dist-info → pyxcp-0.23.8.dist-info}/RECORD +15 -14
- {pyxcp-0.23.6.dist-info → pyxcp-0.23.8.dist-info}/LICENSE +0 -0
- {pyxcp-0.23.6.dist-info → pyxcp-0.23.8.dist-info}/WHEEL +0 -0
- {pyxcp-0.23.6.dist-info → pyxcp-0.23.8.dist-info}/entry_points.txt +0 -0
pyxcp/__init__.py
CHANGED
pyxcp/asamkeydll.exe
ADDED
|
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, "
|
|
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
|
|
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
|
pyxcp/recorder/unfolder.hpp
CHANGED
|
@@ -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) {
|
|
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
|
-
|
|
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
|
-
|
|
1160
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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=
|
|
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,8 +25,8 @@ 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=
|
|
28
|
-
pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=
|
|
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
|
|
29
30
|
pyxcp/cpp_ext/daqlist.hpp,sha256=g2hlxgoQorAGKHedZFZ0c2FQh1APMIA9sVB6M6hD_n8,7277
|
|
30
31
|
pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
|
|
31
32
|
pyxcp/cpp_ext/extension_wrapper.cpp,sha256=xFs3IcrvHPHA82-n11WPzt8HATGqcks02p84SjQ2BKM,4855
|
|
@@ -37,8 +38,8 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
|
|
|
37
38
|
pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
|
|
38
39
|
pyxcp/daq_stim/scheduler.cpp,sha256=NuNkAz3Dv849f51_T36YPck2dl-YsdDdG-cozc7XN9U,1504
|
|
39
40
|
pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
|
|
40
|
-
pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=
|
|
41
|
-
pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=
|
|
41
|
+
pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=pyjkYTxkEMe5cfC_OfPx6dCLMhaKyShzGSa3fH2BQEE,208896
|
|
42
|
+
pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=6flS41F05MSHVHCZmPpJjsZo09UKQjhb997mnxGmd9E,210432
|
|
42
43
|
pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
|
|
43
44
|
pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
|
|
44
45
|
pyxcp/daq_stim/stim_wrapper.cpp,sha256=iT2yxJ3LRG7HoYC1bwhM3tCAxF9X_HHierBNsLRmTJg,1995
|
|
@@ -53,7 +54,7 @@ pyxcp/examples/conf_nixnet.json,sha256=BvXPrljPGzaRTNPch3K0XfU3KSBP1sVDDNP7yY850
|
|
|
53
54
|
pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO4o7r8k,269
|
|
54
55
|
pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
|
|
55
56
|
pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
|
|
56
|
-
pyxcp/examples/run_daq.py,sha256=
|
|
57
|
+
pyxcp/examples/run_daq.py,sha256=uPZQUXUTkvPwZD3PdLSLpfp6fPbaoJb0ryB8ux5SrG0,5673
|
|
57
58
|
pyxcp/examples/xcp_policy.py,sha256=io9tS2W-7PvR8ZzU203KolFrDp67eorUlwNWvA4kC5k,1921
|
|
58
59
|
pyxcp/examples/xcp_read_benchmark.py,sha256=zOG0Yrji10vA0vhHa27KK7zgc3JDpzXzXsFnIU4C_AM,956
|
|
59
60
|
pyxcp/examples/xcp_skel.py,sha256=YXLQC8nn8aAwYSVuBGhr1dvmdMBjmO1Ee1w3e5sy16s,1159
|
|
@@ -80,13 +81,13 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
|
|
|
80
81
|
pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
|
|
81
82
|
pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
|
|
82
83
|
pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
-
pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=
|
|
84
|
-
pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=
|
|
84
|
+
pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=VCzmU9duNtEZ-LTQCCWrn7Fh7b4K2o6_qRuURFriidM,386560
|
|
85
|
+
pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=zLTtYZbzlz3rHdYknaePpbW4tzHZmsCIv6KAn7iFRvA,388096
|
|
85
86
|
pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
|
|
86
87
|
pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
|
|
87
88
|
pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
|
|
88
89
|
pyxcp/recorder/test_reko.py,sha256=M8lfKBmBUl-28IMVoD6lU5Bnorz7fYFOvcAjfVZxuXA,1014
|
|
89
|
-
pyxcp/recorder/unfolder.hpp,sha256=
|
|
90
|
+
pyxcp/recorder/unfolder.hpp,sha256=KDmRM0FRs3w-yFeS7-e5u743HKinE8v8sbh3_6RnCQ4,48002
|
|
90
91
|
pyxcp/recorder/wrap.cpp,sha256=T4cwpmjhYbr75Q3plQpJTkNLyKE4lL0W7GC-8QSURJ8,8666
|
|
91
92
|
pyxcp/recorder/writer.hpp,sha256=rNjtRTtJes5z-BzKR2K56P_Kvc9MEVQgycu8J0wKf1g,11284
|
|
92
93
|
pyxcp/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -121,8 +122,8 @@ pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
|
|
|
121
122
|
pyxcp/utils.py,sha256=75j5W91l9gtz0bz8x6JsQxJY9Q3PiFgiyZtFaICabLU,3532
|
|
122
123
|
pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
124
|
pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
|
|
124
|
-
pyxcp-0.23.
|
|
125
|
-
pyxcp-0.23.
|
|
126
|
-
pyxcp-0.23.
|
|
127
|
-
pyxcp-0.23.
|
|
128
|
-
pyxcp-0.23.
|
|
125
|
+
pyxcp-0.23.8.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
|
|
126
|
+
pyxcp-0.23.8.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
|
|
127
|
+
pyxcp-0.23.8.dist-info/METADATA,sha256=8wRiL3ofoAwld1lCnzIsPh6NDt0UWmZPZIj50dcOPTA,12718
|
|
128
|
+
pyxcp-0.23.8.dist-info/WHEEL,sha256=hAjrwIdyeCDRZUAIRkSN3U0jR-RjwzSh5uFvppaSuws,98
|
|
129
|
+
pyxcp-0.23.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|