Metadata-Version: 2.1
Name: canLogParse
Version: 1.0.1
Summary: A tool to import and format data from Kvaser CAN files when you dont have a DBC file.
Home-page: https://github.com/hrjkknox/canLogParse
Author: Hamish Knox
Author-email: hrjkknox@gmail.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/hrjkknox/canLogParse/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE


# canLogParse

This is a library for importing and parsing data from Kvaser CAN files when you don't have a DBC file. The code should be fairly simple and self-documenting, and all other information should be contained within this file. You can install the library on pip via `pip3 install canLogParse`.

  

## Functions

### `parseCanPacket(rawPacket, outputFormat="2dArray")`
Takes a raw, unformatted CAN packet and returns it in a more useful format. The possible formats are `array` (the default), `tuple`, and `dict`. 

#### Output data

The data is structured as follows:

`leadingZero`: The zero at the start of the packet.

`id`: The packet ID.

`dataLength`: The number of data bytes.

`data`: The data bytes in an array.

`T/R`: It is assumed that this is transmit/receive, but so far it has only been observed as `R`.

`timeStamp`: The packet timestamp.  

In `array` and `tuple` formats, the data is in the order above. In `dict	` format, the keys are as stated above and 

### `parseCanData(rawData, outputFormat="array")`
Parses an array of CAN packets in the same way as `parseCanPacket`. Formats are the same as `parseCanPacket`, but put together in an array.

### `importCanLogFile(file, outputFormat="array")`

The same as `parseCanData`, but taking the data from a file.

### `findUniqueIDs(packets)`

Takes a 2D array (or array of tuples) of packets, returns a list of all unique packet IDs.

### `_formatPacket(leadingZero, id, dataLength, data, tr, timeStamp, outputFormat="2dArray")`

This function takes the given data and formats it in the specified way.

### `_formatPacketList(leadingZero, id, dataLength, data, tr, timeStamp)`, `_formatPacketDict`, and `_formatPacketTuple`

These functions take in the packet data and format it into either a list, a dictionary, or a tuple.

### `_extractDataFromPacket(packet)`

This function takes a packet array and returns the data bytes. It does this by removing all known non-data bytes, which is a terrible way to do it. This function should be updated to extract it using the included `dataLength` byte.

### `_fileToList(file)`

This takes a file name, and returns its rows in a list.

## TODO

- Take code out of `__init__.py` and put it into a separate file

- Update `_extractDataFromPacket` to use the `dataLength` byte


