0

I have an MF4 file with raw can data and want to decode this to get the physical values. It seems like the decoding of all signals with length 8 (as defined in the dbc file) is working as expected. However, I have a segment in the dbc file that looks like this

BO_ 2381841918 GNSS_PositionData: 51 GNSS 
 SG_ GNSS_Longitude : 120|64@1- (1E-016,0) [-180|180] "deg"  Tester 
 SG_ GNSS_Latitude : 56|64@1- (1E-016,0) [-90|90] "deg"  Tester

that is not being decoded (I cannot find any signals defined in this section after decoding) when trying in asammdf. However, when I decode the data with the same dbc in canoe it works and I can see all data. Also, what I can see in canoe is that the event types for signals of length 8 and length 51 are "CAN frame" and "j1939 frame" respectively. Or more accurately, the signals of longer length have both event types, see image below. canoe_image

Is there any setting in asammdf I'm missing or is it not possible to decode?

Note: As you probably understand I'm no expert on CAN data so if I'm missing something fundamental please inform me!

This is what I've tried in asammdf according to the documentation.

from asammdf import MDF

with MDF(path_to_mdf_file) as mdf:
    db = {"CAN": [("GNSS.dbc", 7)]}
    extracted_mdf = mdf.extract_bus_logging(database_files=db)

I've also read this question on stackoverflow and I've been looking through the sources (both source_type and bus_type) of all signals in the raw MF4 and cannot really see anything that differs in between groups.

  • CAN or CAN FD? CAN cannot have more than 8 bytes data per frame and I don't think J1939 supports CAN FD. – Lundin Aug 28 '23 at 06:28
  • Haven't heard of CAN FD but it definitely sounds like it when reading [here](https://www.kvaser.com/about-can/can-fd/). Do you have any idea on how to go about decoding CAN FD using the asammdf library? Not possible? – VictorGardi Aug 28 '23 at 09:19
  • This seems to be what is used: [fast packet protocol](https://copperhilltech.com/blog/what-is-the-difference-between-sae-j1939-and-nmea-2000/). _"The Fast Packet protocol defined in NMEA 2000 provides a means to stream up to 223 bytes of data, with the advantage that each frame retains the parameter group identity and priority"_ Any experience on this? @Lundin – VictorGardi Aug 28 '23 at 11:29
  • Both of those are application-level protocols using classic 8 byte CAN as data-link layer. Application-level protocols often have some means of sending larger chunks of data across multiple CAN frames. – Lundin Aug 28 '23 at 12:49

0 Answers0