Error with asammdf: "error: unpack requires a buffer of 56 bytes"

417 views Asked by At

I am using the asammdf package to load MDF file. The code below works for only some of my MDF files. Many files give me the error below. I am able to open the file in CANape with no issues.

Load files in a desktop app (this works)

from asammdf import MDF
mdf = MDF(r'\\Stnafddco123.us123.corpintra.net\veh_test\Vehicles_Data_and_Truck_Info\APTIV_logger_data\1FUJHLDR8KLXXXXXX_Trip-Detail_2019-07-16 15-18-25.mf4')
mdf

error                                     Traceback (most recent call last)
<ipython-input-16-c9001bcab2a9> in <module>()
      1 from asammdf import MDF
----> 2 mdf = MDF(r'\\Stnafddco123.us123.corpintra.net\veh_test\Vehicles_Data_and_Truck_Info\APTIV_logger_data\1FUJHLDR8KLXXXXXX_Trip-Detail_2019-07-16 15-18-25.mf4')
      3 mdf

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\mdf.py in __init__(self, name, version, **kwargs)
    124                 self._mdf = MDF3(name, **kwargs)
    125             elif version in MDF4_VERSIONS:
--> 126                 self._mdf = MDF4(name, **kwargs)
    127             elif version in MDF2_VERSIONS:
    128                 self._mdf = MDF2(name, **kwargs)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\blocks\mdf_v4.py in __init__(self, name, version, **kwargs)
    247                     self._file = mmap.mmap(x.fileno(), 0, access=mmap.ACCESS_READ)
    248                     self._from_filelike = False
--> 249                     self._read(mapped=True)
    250 
    251                     self._file.close()

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\blocks\mdf_v4.py in _read(self, mapped)
    415                 # Read channels by walking recursively in the channel group
    416                 # starting from the first channel
--> 417                 self._read_channels(ch_addr, grp, stream, dg_cntr, ch_cntr, mapped=mapped)
    418 
    419                 cg_addr = channel_group.next_cg_addr

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\blocks\mdf_v4.py in _read_channels(self, ch_addr, grp, stream, dg_cntr, ch_cntr, channel_composition, mapped)
    760                 at_map=self._attachments_map,
    761                 use_display_names=self._use_display_names,
--> 762                 mapped=mapped,
    763             )
    764 

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\blocks\v4_blocks.py in __init__(self, **kwargs)
    606                         conv = ChannelConversion(
    607                             raw_bytes=raw_bytes, stream=stream, address=address,
--> 608                             mapped=mapped,
    609                         )
    610                         cc_map[raw_bytes] = conv

~\AppData\Local\Continuum\anaconda3\lib\site-packages\asammdf\blocks\v4_blocks.py in __init__(self, **kwargs)
   2010                     self.min_phy_value,
   2011                     self.max_phy_value,
-> 2012                 ) = v4c.CONVERSION_NONE_INIT_u(block)
   2013 
   2014             elif conv == v4c.CONVERSION_TYPE_LIN:

error: unpack requires a buffer of 56 bytes
1

There are 1 answers

3
danielhrisca On

Do you see any errors when you open the file with MDFValidator?