Commit Graph

38 Commits

Author SHA1 Message Date
Dean Lee 53396076df 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>
2023-02-02 13:16:32 -08:00
Dean Lee 628b80de3d cabana: improve line marker (#27189) 2023-02-02 13:14:53 -08:00
Dean Lee 7a485d4308 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
2023-01-29 19:19:50 -08:00
Willem Melching fa4f37a098 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()
2023-01-29 13:02:32 -08:00
Dean Lee 35a943030b cabana: add new plot btn to create chart (#27023) 2023-01-21 16:00:39 -08:00
Dean Lee f0d22f88e1 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
2023-01-20 11:47:29 -08:00
Dean Lee f9490739ab 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
2023-01-19 15:26:00 -08:00
Dean Lee fd4dc109e1 cabana: add support for multiple columns charts (#27000) 2023-01-19 13:51:55 -08:00
Dean Lee 58bd024089 cabana: support drag and drop to merge charts (#26968) 2023-01-15 12:52:11 -08:00
Dean Lee 97b931a12a cabana: fix chart glitches (#26928) 2023-01-12 11:27:20 -08:00
Dean Lee f15a5c9ad6 cabana: align y axis correctly (#26837) 2022-12-28 16:47:49 -08:00
Dean Lee fd91ab6469 Cabana: fix "show plot" button state sync issue (#26769) 2022-12-12 10:25:23 -08:00
Dean Lee 4e3598c9f6 Cabana: use opengl to draw the line series. (#26761) 2022-12-11 15:00:58 -08:00
Dean Lee 9ffb7a7518 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
2022-12-10 13:21:23 -08:00
Dean Lee 59ed74ae4a Cabanba: new dialog to manage chart series (#26675)
* New dialog to manage chart series

* connect to signal currentIndexChanged

* cleanup

use cbegin/cend
2022-12-02 13:15:32 -08:00
Dean Lee 4662f1e0be 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
2022-11-22 14:23:49 -08:00
Dean Lee 17b1839e0a 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
2022-11-20 13:23:59 -08:00
Dean Lee 9c815c2081 Cabana: draw line marker in drawForegound (#26542)
draw line marker in drawForegound
2022-11-18 10:25:11 -08:00
Dean Lee 37ad8f4f3f 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
2022-11-17 10:52:04 -08:00
Dean Lee 29f24c7491 Cabana: Fix title overlapping on chart with long names (#26494)
fix title overlapping
2022-11-14 10:04:14 -08:00
Dean Lee 45891c7907 Cabana: use QToolBar to manage the controls in ChartsView (#26388)
use QToolBar
2022-11-06 11:06:42 -08:00
Dean Lee 3dc5dbf103 Cabana: move the chart title into graphics view (#26389)
remove class ChartWidget
2022-11-06 11:05:46 -08:00
Dean Lee ac76cc9325 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
2022-11-05 16:52:16 -07:00
Dean Lee e4ec1d7c4c Cabana: update line series concurrently (#26339)
update series concurrently
2022-11-03 10:44:49 -07:00
Dean Lee 9c7e375944 Cabana: sync button state with chart (#26285)
sync button state with charts
2022-10-30 07:31:43 -07:00
Dean Lee 8de9bbaa73 Cabana: improve track line (#26231)
* improve track line

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

* cleanup

* cleanup
2022-10-28 10:55:05 -07:00
Dean Lee ba570b963f Cabana: change the chart theme in setting (#26220)
* change the chart theme in setting

* change title colors

* cleanup
2022-10-27 14:48:40 -07:00
Dean Lee 728d969249 Cabana: limit X-axis range from settings (#26213)
* limit X-axis range from settings

* continue

* update range if events merged

* update line series by range

* cleanup removeChart

* cleanup updateAxisy
2022-10-26 12:59:37 -07:00
Dean Lee 8697e928fc Cabana: Fix unable to display charts for same signals from different buses. (#26191)
keep charts in list instead of hash
2022-10-21 08:31:28 -07:00
Dean Lee 60586e0d58 Cabana: align the charts properly (#26116) 2022-10-17 14:39:18 -07:00
Dean Lee 93346c31d3 Cabana: add chart_height setting (#26066)
add chart_height setting
2022-10-17 10:20:27 -07:00
Dean Lee e25ea85296 Cabana: complete edit functions (#26097)
complete forms
2022-10-16 07:55:53 -07:00
Dean Lee cc6dd18cf0 Cabana: display the (x,y) values while MouseMove on the chart (#26064) 2022-10-13 13:24:55 -07:00
Dean Lee 0fa1588f6c Cabana: stable initial release (#26004)
* increase form size & fix wrong charts number

* set max axisy to 1.0 if no value

* show 'close' button in floating window

* alwasy show scroll bar

* complete the logs

* more

* increase size to 50

* keep logs for all messages

* more

* rename signal

* better height

* avoid flicker

* dont call setupdatesenabled

* filter dbc files bye typing

* remove all charts if dbc file changed

* fix wrong idx

* bolder dbc filename

* update chart if signal has been edited

* new signals signalAdded,signalUpdated

* split class Parser into CanMessages and DBCManager

* cleanup

* updateState after set message

* cleanup

* emit msgUpdated

* clear history log if selected range changed

* always update time

* change title layout

* show selected range

hide title bar if no charts

less space between title and chart

* custome historylogmodel for extreme fast update

* move historylog to seperate file

* 2 decimal

* cleanup

cleanup

* left click on the chart to set start time

* todo

* show tooltip for header item&cleanup binaryview

add hline to signal form

* better paint

* cleanup signals/slots

* better range if min==max

* set historylog's minheight to 300

* 3x faster,sortable message list.

* zero copy in queued connection

* proxymodel

* clear log if loop to the begin

* simplify history log

* remove icon

* remove assets

* hide linemarker on initialization

* rubber width may less than 0

* dont zoom char if selected range is too small

* cleanup messageslist

* don't zoom chart if selected range less than 500ms

* typo

* check boundary

* check msg_id

* capital first letter

* move history log out of scrollarea

* Show only one form at a time

* auto scroll to header

d

* reduce msg size
entire row clickable

rename filter_msgs
2022-10-12 13:55:17 -07:00
Dean Lee 2ed82387a5 cabana: fix Incorrect Y-Axis Scale (#26018) 2022-10-08 14:10:00 -07:00
Dean Lee 9ec262bbfd cabana: Docking and undocking charts (#25983)
* floating dock charts

* more button

* setMinimumSize

* move reset zoom button to title bar

* show chart count

* cleanup

* reduce flicker

* dont update linemarker if pos not changed

* cleanup

* remove blank line

* always show dock/undock button
2022-10-06 13:57:11 -07:00
Dean Lee a6ba073231 canbana: complete basic functions (#25965)
* add chart header

* get all signal val from logs

* loop in selected range

* clear list before append

* automatically zoom on yaxis

* cleanup

* sync charts

* fix event_begin_sec

* set the color of rubber

* add TODO

* sync slider with charts

* keep video aspect ratio

* sync plot buttons

* reduce flickers

* cleanup

* refactor detail view

* clear counters

* more

use qcamera
2022-10-05 21:17:22 -07:00
Dean Lee 1b8324af87 c++ cabana: Initial version (#25946)
* draft

* continue

* fix QChart unresponsive with large points

* build with --extras

* add filter

* save DBC button

* more buttons

* add flag to use qcamera

* stop replay in dctor

* README

* use getMsg

* video control

* edit signal

* add colors

* correct ts

* add/edit signals

* use bus:address as key
2022-10-03 15:19:42 -07:00