Commit Graph

61 Commits

Author SHA1 Message Date
Dean Lee 640d68e3bc cabana: move dbc related files to dbc/ (#27712)
* move dbc related files to dbc/

* move generate_dbc_json.py to dbc/
old-commit-hash: 8903e03c8844df03783ae78d97e1294d0869ffea
2023-03-28 11:52:28 -07:00
Willem Melching cfa62044d6 cabana: go to previous zoom window (#27702)
* cabana: go to previous zoom level

* zoom undo on right click

* catch mousepress event on linux
old-commit-hash: e4348dc45d383c5ef0622b3bbf5dcd659081e5bb
2023-03-27 12:45:55 -07:00
Dean Lee ac56a33a2d cabana: fix high DPI issues in chart (#27694)
old-commit-hash: c77a0feab4e8474f73e47d7f111f3f41f0d68ff3
2023-03-25 15:38:41 -07:00
Dean Lee ee692c5bec cabana: eliminate deep copy of events in live stream mode (#27588)
old-commit-hash: f00c108acb49bb633167dfdfcbdf84461cf59025
2023-03-15 10:54:22 -07:00
Willem Melching 918bad4847 cabana: DBCManager only expose methods/signals through MessageId (#27540)
old-commit-hash: 0afd3bab34432e0ba83818c264f17e3ef16005df
2023-03-14 11:31:04 -07:00
Willem Melching e8105f0413 cabana: extend max chart range to 30 minutes (#27555)
old-commit-hash: fc44ed63d78c3b45020db1130dae41f597c91e18
2023-03-11 12:47:53 -08:00
Willem Melching f0d648d8c6 cabana: refactor Msg and Signal into dbc.cc (#27552)
old-commit-hash: e4d591ecbfaaf12b267e3f93927a89e9b4f6a7b9
2023-03-10 11:19:37 -08:00
Willem Melching ed75ea1836 cabana: scrub by shift dragging on graph (#27545)
* cabana: scrub by shift dragging on graph

* not while live streaming
old-commit-hash: b79f4594c42b4af0fc371b5d48445ce86c1cb3ff
2023-03-09 13:14:06 -08:00
Dean Lee ca0b965d08 cabana: use a segment tree to solve range queries in O(log n) time complexity (#27498)
old-commit-hash: c2018d6bf291e68102859eb31bb1dd68790172b1
2023-03-05 16:03:44 -08:00
Dean Lee db35b147ac cabana: added a new series type to chart: step line (#27422)
* add step line series

* create buttons in createToolButtons

* add inline function clearTrackPoints

* do not show tooltip if series is invisible

* use QActionGroup
old-commit-hash: dc4ebeb29c569c2b3bc9c687778b6e4ed754d329
2023-02-23 10:45:59 -08:00
Dean Lee 2aafd3bf01 cabana: improve UI & fix bugs (#27387)
* improve ui

* keep splitter size after msg changed

* no leading spaces allowed in msg filter and signal filter

* draw color byte AlignCenter

* always set as current index

* reduce chart flickers while resizing

* dispaly more info in tooltip for signal

* narrow combobox

* use  

* typo

* private sigs,fix bugs

* merge  #27383

* no expanding after undo/redo

* gray color in tooltip

* clear current_msg_id before reset model

* dont call setmeesage if id is the same

* fix bugs

* cleanup

* dont fetch logs if invisible

* add new CenterWidget, make sure msg_id is always valid

* cache icons

* cleanup paint byte color

* merge #27385 implement sizeHint

* cleanup code

* fillrect if alpha>0
old-commit-hash: 4efd246bac004f3b6f1f7d733e6e285b3fdc8322
2023-02-20 14:16:30 -08:00
Dean Lee 972e91463c cabana: add support for load&save extra dbc info (#27203)
* support extra info

* support undo/redo

* fix undo/redo

* cleanup

* fix regexp

* refactor dbcmanager

* replace text in headerview

* fix binary::refresh

* cleanup

* use QRegularExpression

* add desc validation

* edit val description in table

* cleanup
old-commit-hash: ac0dbf74bc835faa46beab4bbb948c95597e4e67
2023-02-17 19:31:54 -08:00
Willem Melching c9a2d19596 cabana: refactor message id from QString to struct (#27352)
* cabana: refactor message id from QString to struct

* fix tabbar

* fix findsimilarbits

* optimize hash function

* cleanup sorting

* use in updateLastMsgsTo
old-commit-hash: 5078c918056c189a3ec84bc63231fbae75c57eda
2023-02-15 12:39:03 -08:00
Dean Lee 1804f5cc67 cabana: cleanup code for charts (#27350)
old-commit-hash: e4d0ee8716c382e90fd725998216a2f7deafc592
2023-02-15 10:59:57 -08:00
Dean Lee cff6df8b8c cabana: set series color in createSeries (#27270)
* set color in createSeries

* fix
old-commit-hash: 37abe3711788d87255b6b1719ea2dc30f0b57522
2023-02-09 10:37:37 -08:00
Dean Lee 9bd4af9781 cabana: imporve series selector dialog (#27266)
* imporve series selector dialog

* typo
old-commit-hash: f4f081c56209a2fc0669e76e881821b43830462c
2023-02-08 15:18:07 -08:00
Dean Lee 8a5dfaa35d cabana: remove toolbutton padding (#27240)
* remove toolbutton padding

* fix incorrect checked state in setSeriesType
old-commit-hash: 55ad7ee3cb50256bdc16c6777e2432bcf9f702eb
2023-02-06 21:14:07 -08:00
Dean Lee b31e9b5bb8 cabana: improve charts toolbar (#27233)
* improve toolbar

* add text
old-commit-hash: 8f6521ded3c06b52f0d3c1389e4077be3f184329
2023-02-06 18:57:37 -08:00
Dean Lee d318513c33 cabana: fixed wrong plot area after changed column count (#27228)
old-commit-hash: 1a99fd36101fbe4cbe9853b1df5dfe6c59fea5c4
2023-02-06 16:39:16 -08:00
Dean Lee bd2e71260e cabana: click on legend to show/hide series (#27231)
* click on legend to show/hide series

* update axis y

* add move icon
old-commit-hash: f9de6a0dd876352dacc843ef2b28fb2456771239
2023-02-06 10:18:44 -08:00
Dean Lee e58743cbea cabana: improve align charts (#27217)
* improve align charts

* set range on need

* cleanup

* remove unused include
old-commit-hash: 9b054af8b6943ffea8d26a4dadb6cfe8fbefe990
2023-02-05 12:35:15 -08:00
Dean Lee 8d359ca270 cabana: fix incorrect point size after adding new series to chart or changing series type (#27199)
* update pointers after create series

* cleanup
old-commit-hash: d6516059bd757b1e23c94808187b2dbc38786ca8
2023-02-03 13:03:01 -08:00
Dean Lee 7af5741071 cabana: add dialog to open route from remote or local (#27183)
* add OpenRouteDialog

* cleanup

* failed_to_load

* fix load

* clear message list and stream after open new route

* show message

* remove all tabs and charts after open

* use textEdited

* check route format

* cleanup loadRoute
old-commit-hash: 29d9d037590d2db33b7d49c44120d83307ec6568
2023-02-03 12:47:26 -08:00
Dean Lee b4ba7f91a5 cabana: add capability for switching between line and scatter plots (#27169)
* add capability for switching between line and scatter plots

* Update tools/cabana/chartswidget.cc

Co-authored-by: Willem Melching <willem.melching@gmail.com>

* setUserOpengl in createSeries

* update series title

* set marker size by pixels_per_point

* sync menu state

* cleanup

* set default series type in settings dlg

* remove qdebug

---------

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 53396076dfaa857da735d9943fc7e33cefdadf69
2023-02-02 13:16:32 -08:00
Dean Lee 78fd6462c9 cabana: improve line marker (#27189)
old-commit-hash: 628b80de3d1ac9b5556fcd4c60818d99b4b76af9
2023-02-02 13:14:53 -08:00
Dean Lee a583bd621f cabana: refactor and improve signal view (#26997)
* refactor and improve signal view

* cleanup undostack after save

* set clean

* fix logswidget::refresh

* fix bugs in historylog

* historylog:dont reset display_type on msg changed

* inline displaySignals

* historylog:add stretch to header

* remove sizePolicy

* always show toolbar

* add icon to tabwidget

* create new chart on top

* fix 'show plot' btn state sync issue

* rename removeSeries to removeItem

* historylog::fix displayRange

* MessageListModeL: improve setFilterString

* set as current index after expanded

* disable update during setmessage

* ChartWidget: fix issue in updateState

* skip align charts if there only one chart

* fix updateLayout

* cleanup historylog

* updateState before end reset model

* add validator

* improve sigmodel

* expand new signal

* add comment

* reserve vector

* cleanup condition

* single click on row to expand signal

* improve layout for canfd(64 bytes)

* cleanup

* return false on default

* show the latest signal value next to the signal name

* update sig value after setmessage.to make the value updated in pause mode.

* better size policy

* +1 for grid size

* better palette

* set autofillbg
old-commit-hash: 7a485d4308ff263cd3432edaa27d118d264b25b5
2023-01-29 19:19:50 -08:00
Willem Melching a8b63f672b cabana: small improvements to charts (#27140)
* cabana: small improvements to charts toolbar

* show column count when wide enough

* call setspacing

* set in same place

* remove call to updateToolBar()
old-commit-hash: fa4f37a0985802f83ec47b7fe0b29d1607ebe83c
2023-01-29 13:02:32 -08:00
Dean Lee 7a5ee2eb11 cabana: add new plot btn to create chart (#27023)
old-commit-hash: 35a943030ba67b89a13bdf95257e0b349ffb0ef7
2023-01-21 16:00:39 -08:00
Dean Lee e675648a16 cabana: add a slider to adjust chart range from 1 sec to max cached seconds. (#27005)
* add slider to set chart range

* set minumu to 1 sec

* make chart work in any range

* cleanup

* rename to max_cached_minitues

* more

* dont draw out of plotarea

* cleanup

* updateLayout after chart removed

* cleanup

* fix clamp

* usea same cur_sec to update all charts
old-commit-hash: f0d22f88e183c381897a3d48c34bfac63feb63a3
2023-01-20 11:47:29 -08:00
Dean Lee 504453c3e4 Cabana: support live streaming (#26946)
* support live streaming

* update live stream's time

* cleanup stream classes

* disable video control in live streaming mode

* emit streamStarted() in LiveStream::streamThread

* disable some features in live streaming mode

* refactor charts to support live streaming mode

* disable dynamic mode checkbox in live streaming mode

* updateDispalyRange

* thread safe events

* TODO: add support for ZMQ

* atomic time stamp

* only keep settings.cached_segment_limit*60  seconds data in liveStream

* make charts work better in live mode

* cleanup ChartView

* fix toolbar

* cleanup

cleanup

* disable openpilotPrefix and useOpenGL on macos

* add comment

* exit gracefully

* support ZMQ

* use ::operator new/delete

* cleanup streams

* cleanup

* align stream buffers

* check looping back

* check if series is empty

* cleanup

* add TODO: write stream to log file to replay it

* upper_bound

* remove class member event_range

* change default settings value

* cleanup updateDisplayrange

* fix merge error
old-commit-hash: f9490739ab37ae680aef272d51eb3cf2b36b4103
2023-01-19 15:26:00 -08:00
Dean Lee 26ca64da0f cabana: add support for multiple columns charts (#27000)
old-commit-hash: fd4dc109e1ab01b2d1ea6aaf3e99126dbaddc63b
2023-01-19 13:51:55 -08:00
Dean Lee c59ee39caa cabana: support drag and drop to merge charts (#26968)
old-commit-hash: 58bd02408979f19999acd8c755ed30785b9ef6d7
2023-01-15 12:52:11 -08:00
Dean Lee 84b6e18b53 cabana: fix chart glitches (#26928)
old-commit-hash: 97b931a12ae94567062891586496e7a73bd3ebbd
2023-01-12 11:27:20 -08:00
Dean Lee b6cece6abe cabana: align y axis correctly (#26837)
old-commit-hash: f15a5c9ad697e41eb273875577855ec5edede7f4
2022-12-28 16:47:49 -08:00
Dean Lee b4a98b8740 Cabana: fix "show plot" button state sync issue (#26769)
old-commit-hash: fd91ab6469506ee2afe5db3c8b718433bc9317c6
2022-12-12 10:25:23 -08:00
Dean Lee 443e49b659 Cabana: use opengl to draw the line series. (#26761)
old-commit-hash: 4e3598c9f60e16bc48cbbb3152d74a5d89bebbea
2022-12-11 15:00:58 -08:00
Dean Lee 3acdabe2c2 Cabana: add button to display all cached data in chart (#26575)
* display all data btn

* remove timer

* update toolbar later

* dont update axis y in updateSeries

faster get_raw_value

* faster update

* optimize zoom y axis

* cleanup

* revert changes to get_raw_value

* updateState in eventsMerge

* cleanup:

* cleanup
old-commit-hash: 9ffb7a751874ce829b01c23809615a955819b9a6
2022-12-10 13:21:23 -08:00
Dean Lee 78c649c60a Cabanba: new dialog to manage chart series (#26675)
* New dialog to manage chart series

* connect to signal currentIndexChanged

* cleanup

use cbegin/cend
old-commit-hash: 59ed74ae4a7a51fcfa673393947b755d7b29c323
2022-12-02 13:15:32 -08:00
Dean Lee 4a67971c61 Cabana: auto theme, detect from system. (#26563)
* auto theme

* cleanup

* get font color from ForegroundRole

* fix label color

* add padding for header

* smaller warning icon

* fix bg of binary view

* hightlight after init
old-commit-hash: 4662f1e0be77d6636ef7e3f663fb839448d86af6
2022-11-22 14:23:49 -08:00
Dean Lee b902c26c6f Cabana: faster align charts, visual glitches removed. (#26543)
* faster adjust chart margins

* delay adjust

* update foreground after set margins

* set display range on create

* fix init display_range

* common function updateDisplayRange

* set min max to 0 if no values

* fix axis y

* use mapToValue

* cleanup

* get minmax from series

* cleanup

* cleanup eventsMerged

* cleanup include
old-commit-hash: 17b1839e0a358302e049f37f5c843532fb9c7f26
2022-11-20 13:23:59 -08:00
Dean Lee de99eb91c6 Cabana: draw line marker in drawForegound (#26542)
draw line marker in drawForegound
old-commit-hash: 9c815c2081fb61dfe84a79b617f17280c0396773
2022-11-18 10:25:11 -08:00
Dean Lee 40123aed4b Cabana: support for multiple series in chart (#26538)
* customize axis x & y

* new function chartView::addSignal

* support multiple series in chartView

* more

* show legend

* update changed signals only

* fix z value

* cleanup

* limit trake line in plot area

* display signal name in value_text

* &nbsp

* fix axis y

* add spaces

* cache min max value for axis y

* cleanup

* better values text

* remove force_update
old-commit-hash: 37ad8f4f3fe0e730c46ba60f60e9c8db20c4c20e
2022-11-17 10:52:04 -08:00
Dean Lee ec2a47f007 Cabana: Fix title overlapping on chart with long names (#26494)
fix title overlapping
old-commit-hash: 29f24c7491d74ff2d2f7ca12e9a085dbe91c93fb
2022-11-14 10:04:14 -08:00
Dean Lee b858a1c4a4 Cabana: use QToolBar to manage the controls in ChartsView (#26388)
use QToolBar
old-commit-hash: 45891c79079ae4404b8828d9bcfe5cd79bce0c90
2022-11-06 11:06:42 -08:00
Dean Lee 2a6edbea60 Cabana: move the chart title into graphics view (#26389)
remove class ChartWidget
old-commit-hash: 3dc5dbf103290355b85a146f213f733cbb1dfeb5
2022-11-06 11:05:46 -08:00
Dean Lee 1bc0166499 Cabana: cleanup code (#26369)
* remove ChartView::enterEvent

* cleanup ChartsWidget::removeAll

* group graphics items

* remove rubber->setPalette

* helper function DBCManager::parseId

* remove variable name from dbcManager

* fix readme/Usage

* use QSlider::setRange

* cleanup include

* use emplace_back

* remove varialbe routeName from CanMessages

* remove tmp variable

* remove blank line

* cleanup layout

* clean settings layout

* connect to streamStarted

* cleanup signal/slot
old-commit-hash: ac76cc93256578f24db255cefd10c013dd906c28
2022-11-05 16:52:16 -07:00
Dean Lee 21960039ed Cabana: update line series concurrently (#26339)
update series concurrently
old-commit-hash: e4ec1d7c4cc65d2f91530776584807eb4b13e59e
2022-11-03 10:44:49 -07:00
Dean Lee 37b0ba7535 Cabana: sync button state with chart (#26285)
sync button state with charts
old-commit-hash: 9c7e3759441f0dff1200f7946e77f06c6a101c26
2022-10-30 07:31:43 -07:00
Dean Lee bdadda4a0e Cabana: improve track line (#26231)
* improve track line

* show text label on the left if reach the right edge

* cleanup

* cleanup
old-commit-hash: 8de9bbaa73ea94b966b1161fb630bf3cac72c764
2022-10-28 10:55:05 -07:00
Dean Lee 72f6a3b56d Cabana: change the chart theme in setting (#26220)
* change the chart theme in setting

* change title colors

* cleanup
old-commit-hash: ba570b963f18d96ac181882b1f4e1678b992f665
2022-10-27 14:48:40 -07:00