pyxcp 0.22.26__cp313-cp313-win_amd64.whl → 0.22.28__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.22.26"
20
+ __version__ = "0.22.28"
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 wordSum(modulus, step):
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
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
- x.connect()
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
 
Binary file
Binary file
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
- status, pag = x.try_command(x.getPagProcessorInfo)
70
- if status == TryCommandResult.OK:
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
- print("*** GET_SLAVE_ID() IS NOT SUPPORTED.") # no response from bc address ???
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("-----------------------")
@@ -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()
pyxcp/transport/base.py CHANGED
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyxcp
3
- Version: 0.22.26
3
+ Version: 0.22.28
4
4
  Summary: Universal Calibration Protocol for Python
5
5
  License: LGPLv3
6
6
  Keywords: automotive,ecu,xcp,asam,autosar
@@ -1,4 +1,4 @@
1
- pyxcp/__init__.py,sha256=RJc-8q7P408Jmlwt5OMDoDop9h53YvraQnGC0mdVmtY,548
1
+ pyxcp/__init__.py,sha256=Gg_xWPOl3qvbv5BzHeRm8V4nGseVYi2kq0kj6Aq5AZs,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=alze1JiZ2JmdRul9QzP_-fuAqJcNyYBbo35zBwEKqHk,11535
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,12 +24,12 @@ 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=6QbsSXVMsmE8L8Uo3JIojb_U9EOrdJc-MZk-2GI3Y5c,279552
28
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=BD3qqAHgl5HJP--VT_C5fbtSODPobAGd1ks0co8kq9E,281600
29
- pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=XhGYmwgFsebGsoIgPLJlRd9Mls0RfSZ9tOKXSSEHBLE,285696
30
- pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=gBnrRVydI4p8Xx0Bcq9Nx6JXnG20JTDMlKvwG0mCgic,285696
31
- pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=dAWWWsucJ22tqPC_06-Kr6nhz5nNe4m6YYeMhh384AY,279552
32
- pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=te0D-4CZw619YbwRrIxS8jmdS_UcPS2gQPCSb0Jx8Vg,260096
27
+ pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=mgCEOaTY6z_62yzhW0hrsFGnVBV66NXcXnN-zoutj0g,288768
28
+ pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=SU0Yud9OHcLjZP5RdO4LyPSDKjpOMAR3lYzcJkyjTj8,291328
29
+ pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=14Fkiz-PGPQCYmaO-lgTI9J2FkTWqv1Gh62ktv7f16s,296960
30
+ pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=GA8cYlPl_dNRKgU3Cmw7HbLnAUgqKtNayijbSJhhoJU,296960
31
+ pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=U0n2Ef7_jHzJT6S1r8NkEj82HEp3rX3U-ve-FxmWzcQ,288256
32
+ pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=W6ihn06MkbY1JgKFbyozQfDurY1-yJpU1oD9uJa8okU,270336
33
33
  pyxcp/cpp_ext/daqlist.hpp,sha256=g2hlxgoQorAGKHedZFZ0c2FQh1APMIA9sVB6M6hD_n8,7277
34
34
  pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
35
35
  pyxcp/cpp_ext/extension_wrapper.cpp,sha256=FXFjyruBjQYqjCYZZcajdYv6dvNnCggMAbWLqJmfuTM,4756
@@ -41,12 +41,12 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
41
41
  pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
42
42
  pyxcp/daq_stim/scheduler.cpp,sha256=a7VK7kP2Hs8yMlcDAkXwJ0bH88lr_yz156sphcHS7Z4,715
43
43
  pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
44
- pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=Ipaa8gxNZetfWUs8SHP-uQ-3bQ6aJzv7queAOKmcZBA,189440
45
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=PeX2RT5L-kBqyfvg3AazPSrD1Fd93K9b1hB8fVzzTns,192000
46
- pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=V1Zj_B8HRGVNOK7VvQ7A8FXao1pLZdJ68FAb2mZlQWA,193536
47
- pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=s3-yxRXfcGmn6H07YmDAiihLJS1BHoWIqNa2DjVuph0,193536
48
- pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=Sh3DMZHjlD4EOKom7gyLPp2yMyIcVZK02msoFsFdCrg,189440
49
- pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=cfMM0LKRqcjWx-I0ijRk85aN9YEPlsToeNJU-dLBMec,183296
44
+ pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=XHhdvrEIu-faqrMT8XtErRRDkdnECr6_oiFKA1kjJ80,198656
45
+ pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=7ubWbR5oQ8Ek1ijY-uwD-CeS8uTz_g5b1yLRCbbLDnU,201216
46
+ pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=6inJmolUov_XZcGKtAiHSgSg1d-FyR6VCFSWvkJRzRo,204800
47
+ pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=h5tdIHlaMLsvEQG-HtqYjo1FvDp9aodgA2ZPKnkdXdk,204800
48
+ pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=iwaHAOOMB4BfSb-HttBgEpof5yy7bN0FwtC3d9fv_C8,198656
49
+ pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=sBbo3nkMSZv65x0uI7AFNUFk6A5o2hAGsE0ejOmg81A,192512
50
50
  pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
51
51
  pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
52
52
  pyxcp/daq_stim/stim_wrapper.cpp,sha256=iT2yxJ3LRG7HoYC1bwhM3tCAxF9X_HHierBNsLRmTJg,1995
@@ -61,7 +61,7 @@ pyxcp/examples/conf_nixnet.json,sha256=BvXPrljPGzaRTNPch3K0XfU3KSBP1sVDDNP7yY850
61
61
  pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO4o7r8k,269
62
62
  pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
63
63
  pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
64
- pyxcp/examples/run_daq.py,sha256=gSKkJ_S4QgP6Pgeu-gNoh_hGzxtrAgcbQ1AEEC2QWHE,5484
64
+ pyxcp/examples/run_daq.py,sha256=osUkVyYiA2f1cTflqbwMdrxgyfXVJ7LmpHt3u68iyQU,5624
65
65
  pyxcp/examples/xcp_policy.py,sha256=io9tS2W-7PvR8ZzU203KolFrDp67eorUlwNWvA4kC5k,1921
66
66
  pyxcp/examples/xcp_read_benchmark.py,sha256=zOG0Yrji10vA0vhHa27KK7zgc3JDpzXzXsFnIU4C_AM,956
67
67
  pyxcp/examples/xcp_skel.py,sha256=YXLQC8nn8aAwYSVuBGhr1dvmdMBjmO1Ee1w3e5sy16s,1159
@@ -88,12 +88,12 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
88
88
  pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
89
89
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
90
90
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=kdZ8tFAEG6DYBZhh6gq353ciHfADV_tr-4xODSm0Xtw,377856
92
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=KY_0mU2ZWOtaTZohpLAlXPOBQ5ueyXlkDCqrh1Gjcwo,380416
93
- pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=1G6rlgiKpjBNf5_Ipt7xsvDPrOZc2ErOiGu0Vd-Syj4,382976
94
- pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=x9Q5QlCnynjavnRbOAcb6XzX5ArXez4N9HFojWK1IeU,382976
95
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=QXsP963LBZg8uxjZqmFgxBlxxjFKiKKrvja-v7asr1c,377856
96
- pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=MHWy_5Em0uDyGq39Rt3kmwMZRG9qYwcGN5tWug_i-Js,364032
91
+ pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=Cyd9a3uBZR8daO5V6eyVJmw8IRpUKGQPnU5yXcJ3xPA,386560
92
+ pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=-YYs6NGQp48jOJDMZR5BlzvXbi0EwXKvgTTLtUhyrig,388608
93
+ pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=XcD0kBcE6NC4EORERXasJSFsSSYXkusltdFenqe_Fgk,394752
94
+ pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=5d36LH7wVsKrg75JT6sAAbJFTlEPo6AMyab1OexWLJY,394752
95
+ pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=GUHwztQv6u3-vUxr-J63Rh_XJoXBuI7sYMtapEyV7Qo,386048
96
+ pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=JPCYjHbOGiyd4Uyk1flpgpZDWAHZura30HEjonbE438,372736
97
97
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
98
98
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
99
99
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
@@ -106,8 +106,9 @@ pyxcp/scripts/pyxcp_probe_can_drivers.py,sha256=P_gscDTAofbSVA_Wd1GATrnyWGTf1-Dz
106
106
  pyxcp/scripts/xcp_examples.py,sha256=q2wNXHVZu4GjcIlZwp2j9Sqm5QH39Olro4BQaLoIqiM,2583
107
107
  pyxcp/scripts/xcp_fetch_a2l.py,sha256=72818jdJiLsDuWWfkAPxekZ7fzRRz_A4RVSy06LQNe4,1239
108
108
  pyxcp/scripts/xcp_id_scanner.py,sha256=2P53qrvM-rYFTBbbm7eAKyOxESkKrorieND-KoZZ9mo,421
109
- pyxcp/scripts/xcp_info.py,sha256=pNb0h7bwAuUEUbCFRIWyHCrOcTU6ElQkFMAvqzjDJUs,4152
109
+ pyxcp/scripts/xcp_info.py,sha256=H4bDcJilgkzHWapuCT49A3dq04CAwrp7z0zv1ibwkZQ,5711
110
110
  pyxcp/scripts/xcp_profile.py,sha256=ryJnx7cqQ40O05F3beuUEOthsiW_k9d_2wMf4Z9CWkc,615
111
+ pyxcp/scripts/xmraw_converter.py,sha256=LvjiKAWHUKs5QZNiIDT-vdNgPG0Gioas2MzLJOo62-Y,684
111
112
  pyxcp/stim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
113
  pyxcp/tests/test_asam_types.py,sha256=0M08q8dJIVx-rkUtFKTqUhhW9NkThYL83LW3d_yCols,587
113
114
  pyxcp/tests/test_binpacking.py,sha256=kxLwYNzop775BkV68WXBoXVnLIuP0y4EKIW7u9niMKc,7623
@@ -120,7 +121,7 @@ pyxcp/tests/test_transport.py,sha256=Qn2VjNRfYCU6DH8olVSBUCqb0zdAM9GlTbVBM99YxFQ
120
121
  pyxcp/tests/test_utils.py,sha256=SrURAFc_6jtHng3PSZ5gpqXzVBVuPoMPB0YNvOvaIE0,880
121
122
  pyxcp/timing.py,sha256=zE6qPqOuidg6saNt7_zmbQgufxL9Id6akVYhAtpweQc,1705
122
123
  pyxcp/transport/__init__.py,sha256=31PaQLj76n5pXr68aJRWcYfrxEYWWgYoe9f_w3jZxsc,438
123
- pyxcp/transport/base.py,sha256=uyCJF6Lznm4gIa_Jq5Pkp6JAT6H6hQuZwryZkLz3kVI,16337
124
+ pyxcp/transport/base.py,sha256=Wf1ymrchtJ3JaETpVsGEV6X7OQR9o5DZmoD3zoXxkyU,16353
124
125
  pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
126
  pyxcp/transport/can.py,sha256=cQ8lrwBL7Ar0GSf48987TztR9wqYS_UnXUngzhaHXe0,14909
126
127
  pyxcp/transport/eth.py,sha256=xPzN2oSALoPKJVvZpBljPSV1AxfpjRusOzymO-TD1Rw,8711
@@ -131,8 +132,8 @@ pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
131
132
  pyxcp/utils.py,sha256=unlg0CoNwcWYfd-BE0hZJ93uhlAoW_nryv9tS_R3C44,2969
132
133
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
134
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
134
- pyxcp-0.22.26.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
135
- pyxcp-0.22.26.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
136
- pyxcp-0.22.26.dist-info/METADATA,sha256=_lhdH3MGmewLKRJk-lBDNRuqSu2n9VJs_hbwWsuSUD8,4088
137
- pyxcp-0.22.26.dist-info/WHEEL,sha256=CAXnmTOdevtyHhGbx1uQxRlUnaXo4-LVkad_lFClKZs,98
138
- pyxcp-0.22.26.dist-info/RECORD,,
135
+ pyxcp-0.22.28.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
136
+ pyxcp-0.22.28.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
137
+ pyxcp-0.22.28.dist-info/METADATA,sha256=_lAXRVqtCZRJ7hL3Rm1k_OOQWMdHIDOF-1Jt_7JA9SE,4088
138
+ pyxcp-0.22.28.dist-info/WHEEL,sha256=w_pux8TTDQuz9Krw9GOwbeX8IaarZ2ONZ_U-ohythu0,98
139
+ pyxcp-0.22.28.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.1
2
+ Generator: poetry-core 2.1.1
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win_amd64
@@ -5,4 +5,5 @@ xcp-fetch-a2l=pyxcp.scripts.xcp_fetch_a2l:main
5
5
  xcp-id-scanner=pyxcp.scripts.xcp_id_scanner:main
6
6
  xcp-info=pyxcp.scripts.xcp_info:main
7
7
  xcp-profile=pyxcp.scripts.xcp_profile:main
8
+ xmraw-converter=pyxcp.scripts.xmraw_converter:main
8
9