GithubHelp home page GithubHelp logo

can-explorer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

can-explorer's Issues

Logging How To?

Hi Bruno

i'm getting back into the canbus hacking project again and trying to figure out this world :)

how is it possible to make a log file of the canbus entries from your canopy software?

i see the oscilloscope moving up and down and i use the volume on my stereo - how do i determine what the message packet are - as i see high and low but how do i know what the packet data is to tie this into my arduino project?

thank you

support: How to use with Arduino

Hello and thank you for your posts on hacking the can bus. My Arduino Nano and MCP2515 are functioning properly and collecting data. I'd like to use can-explorer to help interpret that data but can't seem to find the proper settings for Interface and channel. The Ibus on my Saab runs at 33.33kbps. Thanks

Separate UI creation logic

Currently the view classes are responsible for both the UI creation and app interactions. The creation portion should be broken out and separated into it's own class ie: UIBuilder.

Python Error?

Hi guys

After being side tracked i've come back to revisit this project.

I've build a laptop with ubutu on it and i've cloned the repository and run the install as per the instructions.

However when i run command: python canopy -i serial -c /dev/ttyACM0 -b 115200
i get the following error:

File "canopy.py", line 20
def init(self, buffer: defaultditct,, *args, **kwargs):
^
syntaxerror: invalid syntax

can anyone assist?

thank you

support: How to Launch Viewer with vcan?

Hi, I found your medium article explaining can-explorer (FKA canopy?). I have CAN data coming in on vcan0 after following the directions at ICSim. I am able to view with both candump and cansniffer, but I can't figure out how to get your live plotter working. I can launch it using $ can-explorer, but how do I configure the GUI settings for vcan0?

Sorry for the newb question, I'm looking through your docs but its not apparent to me, as your docs are mostly for the Python scripting interface, and don't mention ICSim/ vcan0.

Thanks for your help, really great code!

Investigate test flakiness

The test suite will fail if modules are collected and run in alphabetical order (default)

Notes:

  • all modules are successful if run individually
  • test suite successful if test_gui.py is run before all others

log:

✦5 ❯ poetry run pytest -v
=============================================================================================== test session starts ================================================================================================
platform linux -- Python 3.10.12, pytest-7.4.4, pluggy-1.5.0 -- /home/tj/projects/can-explorer/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/tj/projects/can-explorer
plugins: order-1.2.1
collected 7 items                                                                                                                                                                                                  

tests/test_app.py::test_app_must_apply_settings_before_running PASSED                                                                                                                                        [ 14%]
tests/test_app.py::test_app_must_be_inactive_to_apply_settings PASSED                                                                                                                                        [ 28%]
tests/test_controller.py::test_controller_starts_worker PASSED                                                                                                                                               [ 42%]
tests/test_controller.py::test_controller_stops_worker PASSED                                                                                                                                                [ 57%]
tests/test_controller.py::test_controller_populates_data_in_ascending_order PASSED                                                                                                                           [ 71%]
tests/test_gui.py::test_gui_launch_basic Fatal Python error: Segmentation fault

Current thread 0x00007f0881ffb640 (most recent call first):
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/dearpygui/dearpygui.py", line 9008 in set_axis_limits
  File "/home/tj/projects/can-explorer/src/can_explorer/plotting.py", line 56 in update
  File "/home/tj/projects/can-explorer/src/can_explorer/views.py", line 60 in update
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/wrapt/decorators.py", line 527 in _synchronized_wrapper
  File "/home/tj/projects/can-explorer/src/can_explorer/controllers.py", line 116 in _worker_loop
  File "/usr/lib/python3.10/threading.py", line 953 in run
  File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap

Thread 0x00007f08827fc640 (most recent call first):
  File "/usr/lib/python3.10/threading.py", line 324 in wait
  File "/usr/lib/python3.10/queue.py", line 180 in get
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/interfaces/virtual.py", line 131 in _recv_internal
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/bus.py", line 127 in recv
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/notifier.py", line 126 in _rx_thread
  File "/usr/lib/python3.10/threading.py", line 953 in run
  File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap

Thread 0x00007f0882ffd640 (most recent call first):
  File "/usr/lib/python3.10/threading.py", line 324 in wait
  File "/usr/lib/python3.10/threading.py", line 607 in wait
  File "/home/tj/projects/can-explorer/src/can_explorer/controllers.py", line 105 in _worker_loop
  File "/usr/lib/python3.10/threading.py", line 953 in run
  File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap

Thread 0x00007f08837fe640 (most recent call first):
  File "/usr/lib/python3.10/threading.py", line 324 in wait
  File "/usr/lib/python3.10/threading.py", line 607 in wait
  File "/home/tj/projects/can-explorer/src/can_explorer/controllers.py", line 105 in _worker_loop
  File "/usr/lib/python3.10/threading.py", line 953 in run
  File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap

Thread 0x00007f0883fff640 (most recent call first):
  File "/usr/lib/python3.10/threading.py", line 324 in wait
  File "/usr/lib/python3.10/queue.py", line 180 in get
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/interfaces/virtual.py", line 131 in _recv_internal
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/bus.py", line 127 in recv
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/can/notifier.py", line 126 in _rx_thread
  File "/usr/lib/python3.10/threading.py", line 953 in run
  File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
  File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap

Thread 0x00007f08acc31000 (most recent call first):
  File "/usr/lib/python3.10/selectors.py", line 416 in select
  File "/usr/lib/python3.10/subprocess.py", line 2021 in _communicate
  File "/usr/lib/python3.10/subprocess.py", line 1154 in communicate
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pyvirtualdisplay/util.py", line 19 in get_helptext
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pyvirtualdisplay/abstractdisplay.py", line 85 in __init__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pyvirtualdisplay/xephyr.py", line 36 in __init__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pyvirtualdisplay/display.py", line 54 in __init__
  File "/home/tj/projects/can-explorer/tests/test_gui.py", line 47 in virtual_display
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 895 in call_fixture_func
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 1123 in pytest_fixture_setup
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 1069 in execute
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 693 in _compute_fixture_value
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 607 in _get_active_fixturedef
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 1045 in execute
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 693 in _compute_fixture_value
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 607 in _get_active_fixturedef
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 1045 in execute
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 693 in _compute_fixture_value
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 607 in _get_active_fixturedef
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 585 in getfixturevalue
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/fixtures.py", line 566 in _fillfixtures
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/python.py", line 1795 in setup
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 494 in setup
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 157 in pytest_runtest_setup
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 262 in <lambda>
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 341 in from_call
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 261 in call_runtest_hook
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 222 in call_and_report
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 127 in runtestprotocol
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 114 in pytest_runtest_protocol
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/main.py", line 350 in pytest_runtestloop
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/main.py", line 325 in _main
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/main.py", line 271 in wrap_session
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/main.py", line 318 in pytest_cmdline_main
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 169 in main
  File "/home/tj/projects/can-explorer/.venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 192 in console_main
  File "/home/tj/projects/can-explorer/.venv/bin/pytest", line 8 in <module>

Extension modules: dearpygui._dearpygui, numpy._core._multiarray_umath, numpy._core._multiarray_tests, numpy.linalg._umath_linalg, PIL._imaging (total: 5)
Segmentation fault (core dumped)

Gui under windows shows half button

Hello,

thanks a lot for this usefull tool!

One small bug i have under windows 10 is that the gui is showing the Start/Stop and Clear buttons only half and i have a scrollbar:
Animation

I installed the can-explorer with pipx

feature: DBC parser

It would be nice to add a DBC file to parse data not only in messages, but in signal too.

Fix app lagginess

When rapidly adjusting the buffer or height sliders the plot tab can get bogged down. This is likely due to the controller callbacks continuously creating and deleting each row.

A potential alternative could be to hide/show existing rows instead of creating/deleting

Using candumps instead of live traffic from interface

Would it be possible to adjust canopy to also allow for the visualization of recorded candumps instead of connecting to an interface? I have recorded several candumps and would like to analyze them using canopy for reverse engineering.

e.g. for candump message format
(1620458408.814144) can3 0C000003#0150140000000000
(1620458408.814144) can3 0CFF0303#6400000000000000
(1620458408.814144) can0 069#9102460028284600

reading from file

Hi, Is it possible to use a logfile earlier created with candump?

I tried piping a cadump log to can-explorer in the terminal ..

Is there a protocol like virtual that allows opening or would i need some tool like can-replay?

Adruino Can Com

Hi Tbruno25

First of all great design and thankyou for sharing with the community.

A question about which devices can be used?
Can we use an arduino with a canbus chip on it like you wrote up for canano and point to the arduino comm port? or do we have to use a specific device?

thank you

Remove global app variable

Currently a singleton can_explorer.app.app is created on import and referenced as a global variable. This leads to false failures and potential strange behavior when testing as experienced in #28.

A better design pattern should be utilized and all global references removed. d3c50b6 should also be reverted as it's a temporary fix to avoid the behavior.

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.