GithubHelp home page GithubHelp logo

lin-analyzer's Introduction

Saleae Local Interconnect Network (LIN) Analyzer

Saleae Local Interconnect Network (LIN) Analyzer

Getting Started

The following documentation describes how to build this analyzer locally. For more detailed information about the Analyzer SDK, debugging, CI builds, and more, check out the readme in the Sample Analyzer repository.

https://github.com/saleae/SampleAnalyzer

MacOS

Dependencies:

  • XCode with command line tools
  • CMake 3.13+
  • git

Install command line tools after XCode is installed:

xcode-select --install

Then open XCode, open Preferences from the main menu, go to locations, and select the only option under 'Command line tools'.

Install CMake on MacOS:

  1. Download the binary distribution for MacOS, cmake-*-Darwin-x86_64.dmg
  2. Install the usual way by dragging into applications.
  3. Open a terminal and run the following:
/Applications/CMake.app/Contents/bin/cmake-gui --install

Note: Errors may occur if older versions of CMake are installed.

Build the analyzer:

mkdir build
cd build
cmake ..
cmake --build .

Ubuntu 18.04+

Dependencies:

  • CMake 3.13+
  • gcc 4.8+
  • git

Misc dependencies:

sudo apt-get install build-essential

Build the analyzer:

mkdir build
cd build
cmake ..
cmake --build .

Windows

Dependencies:

  • Visual Studio 2019
  • CMake 3.13+
  • git

Visual Studio 2019

Note - newer and older versions of Visual Studio are likely to work.

Setup options:

  • Workloads > Desktop & Mobile > "Desktop development with C++"

Note - if CMake has any problems with the MSVC compiler, it's likely a component is missing.

CMake

Download and install the latest CMake release here. https://cmake.org/download/

git

Download and install git here. https://git-scm.com/

Build the analyzer:

mkdir build
cd build
cmake .. -A x64

Then, open the newly created solution file located here: build\lin_analyzer.sln

Optionally, build from the command line without opening Visual Studio:

cmake --build .

The built analyzer DLLs will be located here:

build\Analyzers\Debug

build\Analyzers\Release

For debug and release builds, respectively.

Output Frame Format

Frame Type: "no_frame"

Property Type Description

Inter-byte space

Frame Type: "header_break"

Property Type Description

Header break

Frame Type: "header_sync"

Property Type Description

Header sync

Frame Type: "header_pid"

Property Type Description
protected_id int 6 bit protected Id

Protected identifier

Frame Type: "data"

Property Type Description
data int Data byte
index int Index, 0-8, of the data byte inside of the transaction

Frame Type: "checksum"

Property Type Description
checksum int LIN checksum

Checksum byte

Frame Type: "data_or_checksum"

Property Type Description
checksum int LIN checksum
data int Data byte
index int Index, 0-8, of the data byte inside of the transaction

Unable to determine if this byte is a data byte or a checksum. It is technically valid as both. This occurs if a a data byte, at index N, is equal to what the CRC should be if the transaction is N-1 bytes.

lin-analyzer's People

Contributors

marcus10110 avatar schmicro avatar tarikku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lin-analyzer's Issues

Decoder cropping first 2 bits on ID

I've instances where ID has been 0x50 (0101 0000) and Seleae LIN decoder
showed it as 0x10 (0001 0000).

Also had ID be CF (1100 1111) and the decodes reported this as 0x0F (0000 1111).

Tried sending 0xFF as ID and the decoder showed this as 3F (0011 1111).

Why is the decoder cropping the first 2 bits?
Sidenote: The decoder changes the bit-order from LSB to MSB. Why is there no option for this?

Data Table view displays bytes as 64 bit values

I just tried the LIN analyzer with my Logic Pro 8 using Logic 2 2.4.13.
And while the decoder seems to work just fine, all the bytes in the "Data Table" view are printed as 64 bit values.

This also ends up in the export:
name type start_time duration protected_id data index checksum
LIN header_break 0.00245888 0.00075392
LIN header_sync 0.00329216 0.00049392
LIN header_pid 0.00381296 0.00049392 0x0000000000000012
LIN data 0.00432672 0.00049392 0x0000000000000000 0x0000000000000000
LIN data 0.00484752 0.00049392 0x0000000000000000 0x0000000000000001
LIN data 0.00536832 0.00049392 0x0000000000000000 0x0000000000000002
LIN data 0.00588912 0.00049392 0x0000000000000000 0x0000000000000003

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.