pyxcp 0.22.27__cp311-cp311-win_amd64.whl → 0.22.29__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.
Potentially problematic release.
This version of pyxcp might be problematic. Click here for more details.
- pyxcp/__init__.py +1 -1
- pyxcp/checksum.py +14 -4
- pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp39-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/daq_stim/stim.cp38-win_amd64.pyd +0 -0
- pyxcp/daq_stim/stim.cp39-win_amd64.pyd +0 -0
- pyxcp/examples/run_daq.py +8 -1
- pyxcp/master/master.py +1 -2
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd +0 -0
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd +0 -0
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd +0 -0
- pyxcp/recorder/rekorder.cp39-win_amd64.pyd +0 -0
- pyxcp/scripts/xcp_info.py +42 -8
- {pyxcp-0.22.27.dist-info → pyxcp-0.22.29.dist-info}/METADATA +1 -1
- {pyxcp-0.22.27.dist-info → pyxcp-0.22.29.dist-info}/RECORD +22 -22
- {pyxcp-0.22.27.dist-info → pyxcp-0.22.29.dist-info}/WHEEL +1 -1
- {pyxcp-0.22.27.dist-info → pyxcp-0.22.29.dist-info}/LICENSE +0 -0
- {pyxcp-0.22.27.dist-info → pyxcp-0.22.29.dist-info}/entry_points.txt +0 -0
pyxcp/__init__.py
CHANGED
pyxcp/checksum.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
.. [1] XCP Specification, BUILD_CHECKSUM service.
|
|
5
5
|
"""
|
|
6
|
+
|
|
6
7
|
import enum
|
|
7
8
|
import struct
|
|
8
9
|
import zlib
|
|
@@ -641,7 +642,15 @@ def adder(modulus):
|
|
|
641
642
|
return add
|
|
642
643
|
|
|
643
644
|
|
|
644
|
-
def
|
|
645
|
+
def pad_to_word_size(frame: bytes, word_size: int, padding_value=b"\x00") -> bytes:
|
|
646
|
+
padding_bytes = word_size - (len(frame) % word_size)
|
|
647
|
+
if padding_bytes == word_size:
|
|
648
|
+
return frame
|
|
649
|
+
else:
|
|
650
|
+
return frame + (padding_value * padding_bytes)
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
def wordSum(modulus: int, step: int) -> int:
|
|
645
654
|
"""Factory function for (double-)word modulus sums
|
|
646
655
|
|
|
647
656
|
Parameters
|
|
@@ -657,13 +666,14 @@ def wordSum(modulus, step):
|
|
|
657
666
|
summation function
|
|
658
667
|
"""
|
|
659
668
|
|
|
660
|
-
def add(frame):
|
|
669
|
+
def add(frame: bytes):
|
|
661
670
|
if step == 2:
|
|
662
671
|
mask = "<H"
|
|
663
672
|
elif step == 4:
|
|
664
673
|
mask = "<I"
|
|
665
674
|
else:
|
|
666
675
|
raise NotImplementedError("Only WORDs or DWORDs are supported.")
|
|
676
|
+
frame = pad_to_word_size(frame, step)
|
|
667
677
|
x = [struct.unpack(mask, frame[x : x + step])[0] for x in range(0, len(frame), step)]
|
|
668
678
|
return sum(x) % modulus
|
|
669
679
|
|
|
@@ -680,7 +690,7 @@ CRC16 = Crc16(CRC16, 0x0000, 0x0000, True, True)
|
|
|
680
690
|
CRC16_CCITT = Crc16(CRC16_CCITT, 0xFFFF, 0x0000, False, False)
|
|
681
691
|
|
|
682
692
|
|
|
683
|
-
def CRC32(x):
|
|
693
|
+
def CRC32(x) -> int:
|
|
684
694
|
return zlib.crc32(x) & 0xFFFFFFFF
|
|
685
695
|
|
|
686
696
|
|
|
@@ -703,7 +713,7 @@ ALGO = {
|
|
|
703
713
|
}
|
|
704
714
|
|
|
705
715
|
|
|
706
|
-
def check(frame, algo):
|
|
716
|
+
def check(frame: bytes, algo: str):
|
|
707
717
|
"""Calculate checksum using given algorithm
|
|
708
718
|
|
|
709
719
|
Parameters
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
pyxcp/examples/run_daq.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
|
|
3
|
+
import sys
|
|
3
4
|
import time
|
|
4
5
|
|
|
5
6
|
from pyxcp.cmdline import ArgumentParser
|
|
6
7
|
from pyxcp.daq_stim import DaqList, DaqRecorder, DaqToCsv # noqa: F401
|
|
8
|
+
from pyxcp.types import XcpTimeoutError
|
|
7
9
|
|
|
8
10
|
|
|
9
11
|
ap = ArgumentParser(description="DAQ test")
|
|
@@ -131,7 +133,12 @@ daq_parser = DaqToCsv(DAQ_LISTS) # Record to CSV file(s).
|
|
|
131
133
|
# daq_parser = DaqRecorder(DAQ_LISTS, "run_daq", 2) # Record to ".xmraw" file.
|
|
132
134
|
|
|
133
135
|
with ap.run(policy=daq_parser) as x:
|
|
134
|
-
|
|
136
|
+
try:
|
|
137
|
+
x.connect()
|
|
138
|
+
except XcpTimeoutError:
|
|
139
|
+
print("TO")
|
|
140
|
+
sys.exit(2)
|
|
141
|
+
|
|
135
142
|
if x.slaveProperties.optionalCommMode:
|
|
136
143
|
x.getCommModeInfo()
|
|
137
144
|
|
pyxcp/master/master.py
CHANGED
|
@@ -113,6 +113,7 @@ class Master:
|
|
|
113
113
|
|
|
114
114
|
def __enter__(self):
|
|
115
115
|
"""Context manager entry part."""
|
|
116
|
+
self.transport.connect()
|
|
116
117
|
return self
|
|
117
118
|
|
|
118
119
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
@@ -171,8 +172,6 @@ class Master:
|
|
|
171
172
|
more attempts to connect are silently ignored.
|
|
172
173
|
|
|
173
174
|
"""
|
|
174
|
-
self.transport.connect()
|
|
175
|
-
|
|
176
175
|
response = self.transport.request(types.Command.CONNECT, mode & 0xFF)
|
|
177
176
|
|
|
178
177
|
# First get byte-order
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
pyxcp/scripts/xcp_info.py
CHANGED
|
@@ -9,6 +9,44 @@ from pyxcp.cmdline import ArgumentParser
|
|
|
9
9
|
from pyxcp.types import TryCommandResult
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
def getPagInfo(x):
|
|
13
|
+
result = {}
|
|
14
|
+
if x.slaveProperties.supportsCalpag:
|
|
15
|
+
status, pag = x.try_command(x.getPagProcessorInfo)
|
|
16
|
+
if status == TryCommandResult.OK:
|
|
17
|
+
result["maxSegments"] = pag.maxSegments
|
|
18
|
+
result["pagProperties"] = {}
|
|
19
|
+
result["pagProperties"]["freezeSupported"] = pag.pagProperties.freezeSupported
|
|
20
|
+
result["segments"] = []
|
|
21
|
+
for i in range(pag.maxSegments):
|
|
22
|
+
segment = {}
|
|
23
|
+
status, std_info = x.try_command(x.getSegmentInfo, 0x01, i, 0, 0)
|
|
24
|
+
std_info = x.getSegmentInfo(0x01, i, 2, 0)
|
|
25
|
+
if status == TryCommandResult.OK:
|
|
26
|
+
segment["maxPages"] = std_info.maxPages
|
|
27
|
+
segment["addressExtension"] = std_info.addressExtension
|
|
28
|
+
segment["maxMapping"] = std_info.maxMapping
|
|
29
|
+
segment["compressionMethod"] = std_info.compressionMethod
|
|
30
|
+
segment["encryptionMethod"] = std_info.encryptionMethod
|
|
31
|
+
|
|
32
|
+
status, seg_address = x.try_command(x.getSegmentInfo, 0x00, i, 0, 0)
|
|
33
|
+
status, seg_length = x.try_command(x.getSegmentInfo, 0x00, i, 1, 0)
|
|
34
|
+
|
|
35
|
+
segment["address"] = seg_address.basicInfo
|
|
36
|
+
segment["length"] = seg_length.basicInfo
|
|
37
|
+
|
|
38
|
+
result["segments"].append(segment)
|
|
39
|
+
|
|
40
|
+
status, pgi = x.try_command(x.getPageInfo, i, 0)
|
|
41
|
+
# print("PAGE:", pgi)
|
|
42
|
+
# for j in range(si.maxPages):
|
|
43
|
+
# pgi = x.getPageInfo(i, j)
|
|
44
|
+
# print(pgi)
|
|
45
|
+
else:
|
|
46
|
+
break
|
|
47
|
+
return result
|
|
48
|
+
|
|
49
|
+
|
|
12
50
|
def main():
|
|
13
51
|
ap = ArgumentParser(description="XCP info/exploration tool.")
|
|
14
52
|
|
|
@@ -66,14 +104,10 @@ def main():
|
|
|
66
104
|
print("\nPAG Info:")
|
|
67
105
|
print("=========")
|
|
68
106
|
if x.slaveProperties.supportsCalpag:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
print(pag)
|
|
72
|
-
# for idx in range(pag.maxSegments):
|
|
73
|
-
# x.getSegmentInfo(0x01, idx, 0, 0)
|
|
107
|
+
pgi = getPagInfo(x)
|
|
108
|
+
pprint(pgi)
|
|
74
109
|
else:
|
|
75
110
|
print("*** PAGING IS NOT SUPPORTED.")
|
|
76
|
-
|
|
77
111
|
print("\nPGM Info:")
|
|
78
112
|
print("=========")
|
|
79
113
|
if x.slaveProperties.supportsPgm:
|
|
@@ -82,7 +116,6 @@ def main():
|
|
|
82
116
|
print(pgm)
|
|
83
117
|
else:
|
|
84
118
|
print("*** FLASH PROGRAMMING IS NOT SUPPORTED.")
|
|
85
|
-
|
|
86
119
|
if x.slaveProperties.transport_layer == "CAN":
|
|
87
120
|
print("\nTransport-Layer CAN:")
|
|
88
121
|
print("====================")
|
|
@@ -90,7 +123,8 @@ def main():
|
|
|
90
123
|
if status == TryCommandResult.OK:
|
|
91
124
|
print("CAN identifier for CMD/STIM:\n", res)
|
|
92
125
|
else:
|
|
93
|
-
|
|
126
|
+
pass
|
|
127
|
+
# print("*** GET_SLAVE_ID() IS NOT SUPPORTED.") # no response from bc address ???
|
|
94
128
|
|
|
95
129
|
print("\nPer DAQ-list Identifier")
|
|
96
130
|
print("-----------------------")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyxcp/__init__.py,sha256=
|
|
1
|
+
pyxcp/__init__.py,sha256=CfVT1SdmpLo0RUcrWbWh55AgFA7AMWc7swLMPD1DN-s,548
|
|
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
|
|
@@ -16,7 +16,7 @@ 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
18
|
pyxcp/asamkeydll.sh,sha256=DC2NKUMwvi39OQgJ6514Chr4wc1LYbTmQHmMq9jAHHs,59
|
|
19
|
-
pyxcp/checksum.py,sha256=
|
|
19
|
+
pyxcp/checksum.py,sha256=hO2JW_eiO9I0A4eiqovMV9d_y5oidq_w8jKdAE4FeOo,11899
|
|
20
20
|
pyxcp/cmdline.py,sha256=na3ZbWQ-5ezsi1MrkuxMTCAXonUF3X6-LutoneyE3dU,1529
|
|
21
21
|
pyxcp/config/__init__.py,sha256=nToBy_zPFQZmCUgRZ1RUjlw-OulCcvoFuGFvPw242z8,41701
|
|
22
22
|
pyxcp/config/legacy.py,sha256=4QdDheX8DbBKv5JVT72_C_cjCgKvZmhN3tJ6hsvBEtI,5220
|
|
@@ -24,10 +24,10 @@ pyxcp/constants.py,sha256=9yGfujC0ImTYQWfn41wyw8pluJTSrhMGWIVeIZTgsLg,1160
|
|
|
24
24
|
pyxcp/cpp_ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
pyxcp/cpp_ext/bin.hpp,sha256=PwJloZek21la-RBSda2Hc0u_6gID0sfTduPeplaAyR4,2561
|
|
26
26
|
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=
|
|
29
|
-
pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=
|
|
30
|
-
pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=
|
|
27
|
+
pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=OIbbZtaaP47n_F1IG7x_tJjcGLY9Rnf9_DqX5I3gxXE,288768
|
|
28
|
+
pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=A5rYGNlvk21SZ-URHHN_KRZNZW-Yi_s8c-I8-PBM_4A,291328
|
|
29
|
+
pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=LhPMsPk4SJaN8mm-0n7MnTSFL9VSe_nk06FVa7NVpLA,288256
|
|
30
|
+
pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=y-IKXP6XtB0a7xTbrn42pARyjiYfIOmYgzIMyv0emTg,270336
|
|
31
31
|
pyxcp/cpp_ext/daqlist.hpp,sha256=g2hlxgoQorAGKHedZFZ0c2FQh1APMIA9sVB6M6hD_n8,7277
|
|
32
32
|
pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
|
|
33
33
|
pyxcp/cpp_ext/extension_wrapper.cpp,sha256=FXFjyruBjQYqjCYZZcajdYv6dvNnCggMAbWLqJmfuTM,4756
|
|
@@ -39,10 +39,10 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
|
|
|
39
39
|
pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
|
|
40
40
|
pyxcp/daq_stim/scheduler.cpp,sha256=a7VK7kP2Hs8yMlcDAkXwJ0bH88lr_yz156sphcHS7Z4,715
|
|
41
41
|
pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
|
|
42
|
-
pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256
|
|
43
|
-
pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=
|
|
44
|
-
pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=
|
|
45
|
-
pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=
|
|
42
|
+
pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=F7w1aw2XEhDpIWM9M9haK_8OR9jw3vmaV8SiaI8s-84,198656
|
|
43
|
+
pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=li0q5g0vn8OtON_JekO9B1aGeDsWj1x1tfB1i8H-ig4,201216
|
|
44
|
+
pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=W9jYBCX2yy0h2PLXYbaiXiG__AsDBE4OLr5UDZl5_xE,198656
|
|
45
|
+
pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=v7n3DIq0mJsuHWwrL8c0ugcECSUNjkoGXowHlZ75ESY,192512
|
|
46
46
|
pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
|
|
47
47
|
pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
|
|
48
48
|
pyxcp/daq_stim/stim_wrapper.cpp,sha256=iT2yxJ3LRG7HoYC1bwhM3tCAxF9X_HHierBNsLRmTJg,1995
|
|
@@ -57,7 +57,7 @@ pyxcp/examples/conf_nixnet.json,sha256=BvXPrljPGzaRTNPch3K0XfU3KSBP1sVDDNP7yY850
|
|
|
57
57
|
pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO4o7r8k,269
|
|
58
58
|
pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
|
|
59
59
|
pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
|
|
60
|
-
pyxcp/examples/run_daq.py,sha256=
|
|
60
|
+
pyxcp/examples/run_daq.py,sha256=osUkVyYiA2f1cTflqbwMdrxgyfXVJ7LmpHt3u68iyQU,5624
|
|
61
61
|
pyxcp/examples/xcp_policy.py,sha256=io9tS2W-7PvR8ZzU203KolFrDp67eorUlwNWvA4kC5k,1921
|
|
62
62
|
pyxcp/examples/xcp_read_benchmark.py,sha256=zOG0Yrji10vA0vhHa27KK7zgc3JDpzXzXsFnIU4C_AM,956
|
|
63
63
|
pyxcp/examples/xcp_skel.py,sha256=YXLQC8nn8aAwYSVuBGhr1dvmdMBjmO1Ee1w3e5sy16s,1159
|
|
@@ -67,7 +67,7 @@ pyxcp/examples/xcphello.py,sha256=xbcWq8StRJyUZBLUvknsXv7VkEBD5SU0SJjlZTHsSzs,26
|
|
|
67
67
|
pyxcp/examples/xcphello_recorder.py,sha256=QHWJsq5h5CI9t5qEmMSorZyzirTpoXz4nzuKTMzbZCA,3409
|
|
68
68
|
pyxcp/master/__init__.py,sha256=QQbkUJM1WQ-5p2MiNFYxLAmHhNsCQLzDp-S4aoOFxoA,318
|
|
69
69
|
pyxcp/master/errorhandler.py,sha256=ulL6WiraZbVZnM2pfR8S9vlWAAP5UXwXqmbjjxH9rgc,15359
|
|
70
|
-
pyxcp/master/master.py,sha256=
|
|
70
|
+
pyxcp/master/master.py,sha256=VFi4Dh_cguGrx6tWngEpBqU1KtXtwmOAPRwj-3Q5oik,78363
|
|
71
71
|
pyxcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
72
|
pyxcp/recorder/__init__.py,sha256=jeTmKvfjIenxHxt7zn6HMjnDpuPQU0d9SdnYK_t3gdE,2850
|
|
73
73
|
pyxcp/recorder/build_clang.cmd,sha256=JvFngSnb28XcBGXxC6MGrcOCGYfahOIvHpgRpqbA6HQ,175
|
|
@@ -84,10 +84,10 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
|
|
|
84
84
|
pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
|
|
85
85
|
pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
|
|
86
86
|
pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
-
pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=
|
|
88
|
-
pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=
|
|
89
|
-
pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=
|
|
90
|
-
pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=
|
|
87
|
+
pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=tDhQFadGaNHF4yQ8T4JRRtlmoHdm3-DpYgR3xUSKk0A,386560
|
|
88
|
+
pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=hnimRgMAelEZkvXowLJobCDXx1wDCY97wIt2YqCGPy8,388608
|
|
89
|
+
pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=Qjxu3vW-7qFBSz35p_OiqnBa7BJ18E5rV4QNmPNbboE,386048
|
|
90
|
+
pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=8vVyKQbXq9Dj7bQAV4oNWJcRFJ_aCAtm-Wf-7IYDJmI,372736
|
|
91
91
|
pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
|
|
92
92
|
pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
|
|
93
93
|
pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
|
|
@@ -100,7 +100,7 @@ pyxcp/scripts/pyxcp_probe_can_drivers.py,sha256=P_gscDTAofbSVA_Wd1GATrnyWGTf1-Dz
|
|
|
100
100
|
pyxcp/scripts/xcp_examples.py,sha256=q2wNXHVZu4GjcIlZwp2j9Sqm5QH39Olro4BQaLoIqiM,2583
|
|
101
101
|
pyxcp/scripts/xcp_fetch_a2l.py,sha256=72818jdJiLsDuWWfkAPxekZ7fzRRz_A4RVSy06LQNe4,1239
|
|
102
102
|
pyxcp/scripts/xcp_id_scanner.py,sha256=2P53qrvM-rYFTBbbm7eAKyOxESkKrorieND-KoZZ9mo,421
|
|
103
|
-
pyxcp/scripts/xcp_info.py,sha256=
|
|
103
|
+
pyxcp/scripts/xcp_info.py,sha256=H4bDcJilgkzHWapuCT49A3dq04CAwrp7z0zv1ibwkZQ,5711
|
|
104
104
|
pyxcp/scripts/xcp_profile.py,sha256=ryJnx7cqQ40O05F3beuUEOthsiW_k9d_2wMf4Z9CWkc,615
|
|
105
105
|
pyxcp/scripts/xmraw_converter.py,sha256=LvjiKAWHUKs5QZNiIDT-vdNgPG0Gioas2MzLJOo62-Y,684
|
|
106
106
|
pyxcp/stim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -126,8 +126,8 @@ pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
|
|
|
126
126
|
pyxcp/utils.py,sha256=unlg0CoNwcWYfd-BE0hZJ93uhlAoW_nryv9tS_R3C44,2969
|
|
127
127
|
pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
128
|
pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
|
|
129
|
-
pyxcp-0.22.
|
|
130
|
-
pyxcp-0.22.
|
|
131
|
-
pyxcp-0.22.
|
|
132
|
-
pyxcp-0.22.
|
|
133
|
-
pyxcp-0.22.
|
|
129
|
+
pyxcp-0.22.29.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
|
|
130
|
+
pyxcp-0.22.29.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
|
|
131
|
+
pyxcp-0.22.29.dist-info/METADATA,sha256=2IV2kgBpGDSwKrvsS8Mstr2Z0BCOWdzbwuNQOn_LWZI,4088
|
|
132
|
+
pyxcp-0.22.29.dist-info/WHEEL,sha256=hAjrwIdyeCDRZUAIRkSN3U0jR-RjwzSh5uFvppaSuws,98
|
|
133
|
+
pyxcp-0.22.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|