Skip to content

Commit

Permalink
fix CAN logging extraction
Browse files Browse the repository at this point in the history
  • Loading branch information
danielhrisca committed Jul 11, 2019
1 parent 08997cf commit 6c084ae
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 28 deletions.
4 changes: 0 additions & 4 deletions asammdf/blocks/mdf_v4.py
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,6 @@ def _read(self, mapped=False):
continue

if group.raw_can:

try:
_sig = self.get("CAN_DataFrame", group=i, ignore_invalidation_bits=True)
except MdfException:
Expand Down Expand Up @@ -1543,9 +1542,6 @@ def _append_structure_composition(
inval_bits,
inval_cntr,
):

print(signal, signal.samples.dtype)

si_map = self._si_map

fields = []
Expand Down
50 changes: 27 additions & 23 deletions asammdf/blocks/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1517,33 +1517,37 @@ def pandas_query_compatible(name):


def load_can_database(file, contents=None):

file = Path(file)

dbc = None

if file.exists() and file.suffix.lower() in ('.dbc', '.arxml'):
import_type = file.suffix.lower().strip('.')
loads = dbc_load if import_type == 'dbc' else arxml_load
if contents is None:
if file.suffix.lower() in ('.dbc', '.arxml'):
if contents is None and file.exists():
contents = file.read_bytes()
contents = BytesIO(contents)
try:
dbc = loads(
contents,
import_type=import_type,
key="db",
)
except UnicodeDecodeError:
encoding = detect(contents)["encoding"]
contents = contents.decode(
encoding
)
dbc = loads(
contents,
importType=import_type,
import_type=import_type,
key="db",
encoding=encoding,
)

if contents:
import_type = file.suffix.lower().strip('.')
loads = dbc_load if import_type == 'dbc' else arxml_load

contents = BytesIO(contents)
try:
dbc = loads(
contents,
import_type=import_type,
key="db",
)
except UnicodeDecodeError:
encoding = detect(contents)["encoding"]
contents = contents.decode(
encoding
)
dbc = loads(
contents,
importType=import_type,
import_type=import_type,
key="db",
encoding=encoding,
)

return dbc
5 changes: 4 additions & 1 deletion asammdf/mdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -3687,6 +3687,9 @@ def extract_can_logging(self, dbc_files, version=None, ignore_invalid_signals=Fa
if not group.CAN_logging:
continue

if not 'CAN_DataFrame' in [ch.name for ch in group.channels]:
continue

parents, dtypes = self._prepare_record(group)
data = self._load_data(group)

Expand Down Expand Up @@ -3736,7 +3739,7 @@ def extract_can_logging(self, dbc_files, version=None, ignore_invalid_signals=Fa
bus_msg_ids = msg_ids.samples[idx]
bus_data_bytes = data_bytes[idx]

unique_ids = np.unique(bus_msg_ids)
unique_ids = np.unique(bus_msg_ids).astype('<u8')

for msg_id in unique_ids:
message = messages.get(msg_id, None)
Expand Down

0 comments on commit 6c084ae

Please sign in to comment.