Commit Graph

61 Commits

Author SHA1 Message Date
Adeeb Shihadeh
c9531b463a Revert "ui: single-threaded CameraView (#32291)"
This reverts commit dd6e2a400b.
2024-05-18 16:34:03 -07:00
Dean Lee
dd6e2a400b ui: single-threaded CameraView (#32291)
single thread cameraview
2024-05-17 20:18:41 -07:00
Dean Lee
bab8cdfdef Cabana: bug fixes (#32272)
* Fix SIGSEGV due to thread race conditions after seeking

* adding ID as a secondary sorting factor

* fix gaps
2024-04-21 22:34:24 -07:00
Dean Lee
2c409e0980 replay: bug fixes and improvements (#32193) 2024-04-21 17:09:17 -07:00
Dean Lee
a824bd75ef replay: refactor Event to remove the readers (#32252)
Refactor struct Event to remove the MessageReader from it
2024-04-19 11:15:34 -07:00
Adeeb Shihadeh
073fc89ad4 Revert "UI: single-threaded CameraView (#30397)"
This reverts commit 17ac1d3c7b.
2024-01-07 14:54:39 -08:00
Dean Lee
17ac1d3c7b UI: single-threaded CameraView (#30397)
* single-threaded CameraView

* updateFrame

* inherit from CameraWidget

* clear frame on offroadTransition

* check frame_id

* optional

* unique_ptr

* CameraView

* cleanup

* cleanup

* log skipping frame

* fix driverview

* disconnectVipc

* debug inconsistent frame

* skip frame if uiPlan is outdate

* cleanup

* set connected = false

* support camerad reboot&seeking in replay

* cleanup

* qDebug

* use deque

* cleanup

---------

Co-authored-by: Comma Device <device@comma.ai>
2024-01-03 13:14:29 -08:00
Dean Lee
86a5ac383e cabana: highlight dowloaded segments (#30459)
highlight dowloaded segments
2023-11-14 03:23:33 -08:00
Dean Lee
86efd70fa9 cabana: allocate qt objects on the heap instead of stack (#30374)
allocate qobject in heap
2023-11-09 20:20:48 -08:00
Dean Lee
01610128bb cabana: support suppress highlighted bits (#30336)
* support suppress highlighted bits

d

* faster filtering and sorting

* improve livestream

* specify the context in the connections

* remove inline
2023-10-30 09:47:23 -07:00
Dean Lee
fe4ad96701 cabana: support multiple cameras (#30339)
support multiple cameras
2023-10-29 07:05:59 -10:00
Dean Lee
ae26280118 cabana: fix two ui bugs (#30327)
fix ui bugs
2023-10-25 14:39:52 -07:00
Dean Lee
952838335d cabana: improve playback controller (#30325)
improve playback controller
2023-10-25 10:57:09 -07:00
Dean Lee
e287a5f164 cabana: remove the qlog parsing thread (#30319)
remove the qlog thread
2023-10-24 10:38:50 -07:00
Dean Lee
818d29818f cabana: reduce minimum size (#30223)
reduce minimumsize
2023-10-12 11:09:32 -07:00
Dean Lee
6f9798745c cabana: add button to skip to the end of stream (#29953) 2023-09-17 15:20:21 -07:00
Dean Lee
74daab120d cabana: speed up exit (#29813) 2023-09-07 11:30:53 -07:00
Dean Lee
2d99521e75 cpplint: build/include_what_you_use (#29556)
* include_what_you_use

* remove comments

* include <memory>

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2023-08-23 13:25:17 -07:00
Dean Lee
059529cae2 cabana: improve timeline (#28801) 2023-07-04 12:03:08 -07:00
Dean Lee
e853af2ca6 cabana: fix seeking issue (#28346)
* fix seekto

* rename loadThumbnail to parseQLog
2023-05-31 11:22:47 -07:00
Dean Lee
a26e6d1633 cabana: supports switching streams on the fly (#28081)
* open stream

* use std::atomic::exchange

* emit streamStarted immediately
2023-05-24 20:47:37 -07:00
Dean Lee
64fb5cb922 cabana: fix time is displayed incorrectly when mouse dragged outside of the slider (#28048)
fix time is displayed incorrectly when the mouse is dragged outside of the slider
2023-04-27 14:19:06 -07:00
Dean Lee
7f856eafd9 cabana: fix wrong total seconds in replay mode (#28015)
* fix total_sec

* fix chart max range

* fix all_evnets order & use vector to improve performance

* dynamic updating max time

* get real time from qlog

* Update tools/cabana/streams/livestream.cc

Co-authored-by: Shane Smiskol <shane@smiskol.com>

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
2023-04-25 21:49:10 -07:00
Dean Lee
91dc064ac7 cabana: support all features except video in live stream mode. (#27994) 2023-04-21 13:23:17 -07:00
Dean Lee
7fff874755 cabana: fix thumbnail position issue (#27852)
* fix thumbnail position issue on WSL

* continue

* remove Qt::tool

* set parent
2023-04-10 17:33:27 -07:00
Dean Lee
fc90814199 cabana: switch theme on the fly (#27855)
* switch theme on the fly

* better chart theme

* Darcula like dark theme

* add TODO

* use theme aware toolbutton in ChartView

* add margin to text title

* lighter activity colors

* fix historylog header

* replace hardcoded color

* improve chart tooltip color

* use macro

* space

* remove function toolbutton

* fix remove all btn

* remove menu arrow

* improve chart::removeIf

* cleanup charts
2023-04-10 15:53:50 -07:00
Dean Lee
2d061e2041 cabana: dispaly alert info in thumbnail&video player (#27837)
* show alert info in thumbnail

* dispaly alert info in video
2023-04-08 11:34:37 -07:00
Justin Newberry
f8d9263eae cabana: sort events based on priority (#27809)
* sort events based on priority

* cleanup for pr

* pr cleanup 2

* pr cleanup 3
2023-04-06 21:31:04 -07:00
Dean Lee
d6961152b8 cabana: add a slider to set sparkline time range (#27727)
* add slider to set sparkline time range

* rename signaleedit to signalview

* default is 15s

* util::formatSeconds

* update() is faster than invalidate

* draw points

* fix scatter width
2023-03-29 12:43:43 -07:00
Dean Lee
a1fb8d2480 cabana: improve video thumbnail (#27711) 2023-03-28 13:24:54 -07:00
Dean Lee
9c84af296c cabana: clear the old timeline after opening a new route from menu (#27672) 2023-03-24 11:01:26 -07:00
Dean Lee
4efd246bac 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 &nbsp;

* 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
2023-02-20 14:16:30 -08:00
Dean Lee
524f7079a9 cabana: add description for timeline color in help (#27375) 2023-02-17 10:35:50 -08:00
Dean Lee
2510f78126 cabana: add online-help (#27349)
* add online helps

* typo

* remove duplicate 'too'

* show idle message:For Help, Press F1

* improve drawHelp

* fix color desc
2023-02-16 14:47:36 -08:00
Dean Lee
152f1bf485 cabana: fix inconsistent size for play button (#27298) 2023-02-10 12:57:20 -08:00
Dean Lee
0402e94927 cabana: render light or dark icon based on system theme (#27155) 2023-01-31 13:45:57 -08:00
Dean Lee
544ad25a0b cabana: support pause and slow motion playback in live stream mode (#27051)
* support pause and slow motion playback in live stream mode

* override

* virtual functions

* move to function

fix

* lock handleEvent

* show speed controls in video widget

* fix pause signal

* set margins

* cleanup
2023-01-24 15:07:11 -08:00
Dean Lee
e49c7fa2bf cabana: fix slider crash on exit if loadThumbnails is running (#27052) 2023-01-23 10:16:11 -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
cebee69f30 cabana: click time label to seek to a specified time (#27006) 2023-01-19 10:32:48 -08:00
Dean Lee
c21d9408a1 cabana: use bootstrap icons (#26981)
* use bootstrap icons

* typo

* build into asset_obj

* add to files_common
2023-01-18 13:19:23 -08:00
Dean Lee
351d97ab5a cabana: make video resizable (#26998) 2023-01-18 11:40:44 -08:00
Dean Lee
9884957e3e cabana: sync play button state (#26917)
sync play button
2023-01-11 15:32:13 -08:00
Dean Lee
7ae8792386 Cabana: make all panels dockable into each other (#26838) 2022-12-28 18:21:06 -08:00
Dean Lee
7006230e08 Cabana: add --ecam flag to dispaly the wide road camera (#26727) 2022-12-08 11:19:57 -08:00
Dean Lee
f6496ce670 Cabana: show video thumbnail over slider (#26689)
* show thumbnail

* copy segments vector

* cleanup

cleanup mouseMoveEvent

cleanup include

* move lambda to memeber function

* reduce lock time

* private functions

* split to small functions
2022-12-04 11:28:54 -08:00
Dean Lee
7b0f7312e5 Cabana: miscellaneous fixes (#26477)
* update pos after adjusted margins

* ts >=0

* output debug message to console

* fix freq&count incorrect after replay auto loop restart replay

* fix different height of play/pause

* delay posting CAN message if UI thread is busy

* >=

* clear undo stack after saving

* no space allowed in names

* const referer
2022-11-13 12:55: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
5e717c12f1 Cabana:: remove a fixed TODO (#26257)
remove a fixed TODO
2022-10-26 22:14:26 -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