Commit Graph

54 Commits

Author SHA1 Message Date
Dean Lee be9d291dad 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
old-commit-hash: 01610128bb340f83ebf08b344404330806178825
2023-10-30 09:47:23 -07:00
Dean Lee c7efe08e08 cabana: add comparision operator for CanEvent (#29864)
old-commit-hash: ef4c963c60276a62d64a89c158a1a1ff1dbe8a10
2023-09-10 16:09:22 -07:00
Dean Lee 7a1b7d4206 cabana: improve frequency accuracy (#29631)
* improve frequency accuracy

* apply review

* 2 less lines!

* another!

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 2484548fddd1de51a75c52736b1709081ea61eb9
2023-08-25 15:15:16 -07:00
Dean Lee 97e9d55588 cpplint: build/include_what_you_use (#29556)
* include_what_you_use

* remove comments

* include <memory>

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 2d99521e7500902070d0aacce69528bcfd8b9964
2023-08-23 13:25:17 -07:00
Dean Lee b31de7db56 cabana: fixed the multi-threading issues of AbstractStream (#28590)
* fix multi-threading issues

* protect masks with mutex
old-commit-hash: e80440dc5d76c12cd6782b6a3446b12f6c62016e
2023-06-19 10:21:16 -07:00
Dean Lee c5543bf21d cabana: support multiplexed signals (#28309)
* support muxed signals

* write multiplexor in generateDBC

* edit multiplex_switch_value in signalView

* no overlapping warning for mux signals

* group signals by multiplexer indicator

* display freq for each multiplexed signals

* remove all multiplexed signals after switch deleted

* disable switch value

* cleanup

* historyView: use getValue

* sort by switch value

* check address

* rename variables

* rename signale type

* parse multiplexed signals in dbcmanater

* cache signal color in member variable

* cleanup num_decimals

* remove sources from dbcmanager and cleanup code

* fix sort

* check mltiplex in operator==

* fix sizehint

* convert multipledxed to normal after changing multiplxor to normal

* throw error on multiple 'M' signals

* add comment

* parse multipled signals in test case

* cleanup

* change order

* cleanup open

* display multiplexed/overlapping signals in binaryview

* sort overlapped signals by size

* refactor dbcmanager

* trimmed

* parse multiplexed signals in test case

* cleanup

* merge master

* space

* use pointer for sigs

* alldbcFiles

* cleanup

* cleanup sparkline

* use std::vector

* skip draw sparkline if isnull

* bigger capacity
old-commit-hash: e08569b0f31953e185369eba9afb7fb20de714fa
2023-06-13 13:22:03 -07:00
Dean Lee eba8100ea5 cabana: refactor dbc manager (#28445)
* rafactor signal

* cleanup

* refacto dbcmanager

* refactor dbcmanger
old-commit-hash: ff4aae85fe39b6442c03963a6a8cbfc900ba61c3
2023-06-08 13:41:55 -07:00
Angus Gratton f2ed4745c4 Cabana: Improve contrast when using dark themes (#28389)
old-commit-hash: 7cb4adfebbb3c1a5901018f177bf87add7c0799b
2023-06-06 22:22:06 -07:00
Dean Lee 90bff752c1 cabana: improve dbc parsing (#28321)
old-commit-hash: 2a6458b44ed4189ec110036de956598e39fe8151
2023-05-27 15:43:42 -07:00
Willem Melching 10215bc44e cabana: add option to suppress already known signals (#28106)
* suppress using static mask

* use mask in updateLastMsgsTo

* store mask in cabana::Msg

* update mask in the right places

* actually build mask

* restore setting

* less diff
old-commit-hash: b53f748a1a328e63dff0a404114c5210eeaf2282
2023-05-04 10:50:28 -07:00
Dean Lee 2b9c35ddf7 cabana: support all features except video in live stream mode. (#27994)
old-commit-hash: 91dc064ac730302ae6e6b38eddd928e702bbd0e1
2023-04-21 13:23:17 -07:00
Dean Lee 70800c6397 cabana: refactor the cache for CAN events (#27969)
old-commit-hash: 8ad2d84aebc29a0cec031f798a6af5c5c202cc27
2023-04-19 10:44:52 -07:00
Dean Lee a5cb283b27 cabana: speed up parsing can events (#27874)
speed up parsing can events

cleanup include
old-commit-hash: f15cb01137ca4eb9bad0d134795919739969e04d
2023-04-11 19:35:11 -07:00
Dean Lee c635bf8723 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
old-commit-hash: fc90814199d10b4419574f0e5a01102ec55c9cdb
2023-04-10 15:53:50 -07:00
Dean Lee 9e0df8b2ed cabana: align signal value vcenter (#27675)
old-commit-hash: f08132475dc94214c6deda42add8bb4360220ea6
2023-03-24 11:01:03 -07:00
Dean Lee 35e5b4d927 cabana: group CAN events by message id to reduce the time complex from O(N) to O(1) (#27601)
* refactor streams

* helper function xLessThan

* fix fill gaps
old-commit-hash: 74db5a4b421c822065677b12c4493c4e20aa2a9b
2023-03-17 10:16:14 -07:00
Willem Melching da54ce208f cabana: show signal values with consistent number of digits (#27556)
old-commit-hash: b591b0c764b3ba025ec31b083143fcab4ffcb0d8
2023-03-14 11:29:00 -07:00
Dean Lee b12a2a0eaf cabana: replace hardcoded margins, colors, spacing with values from style. (#27449)
replace hardcoded margins, colors, spacing

improve performance of MessageBytesDelegate
old-commit-hash: 78116029d33ab7724daa087201f1743fd34d6a19
2023-02-25 14:27:18 -08:00
Willem Melching eb77f1c15b cabana: show units (#27433)
* show units on chart y axis

* show in signal list

* show in historyview

* use clear()
old-commit-hash: a5644faa3f1095c2aa36b12e534fbba1b2ac921d
2023-02-23 10:45:13 -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 &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
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
Dean Lee af6892d118 cabana: simplify conversions between QVariant and QVector<QColor> (#27367)
old-commit-hash: 37adf5d3a681daac2542270a24897ae00d42e4b8
2023-02-16 18:53:12 -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 907939d882 cabana: fixed the buggy has_more_data, reduce unncessary calls to fetchMore (#27319)
old-commit-hash: 38cf0b8382d6f41e4e9ccd2610bdabe34ff33a87
2023-02-12 20:11:32 -08:00
Willem Melching b94e06a6be cabana: extend color palette, make chart colors match signal view (#27258)
* cabana: extend color palette, make chart colors match signal view

* vary saturation too

* cleanup
old-commit-hash: fcaa6fb06fd68a71b129487d80ee00918695fc5b
2023-02-08 13:03:23 -08:00
Dean Lee 43e4b84fec cabana: syc the last messages after seeking (#27149)
* fix wrong last message time

* update last messages after seekto

* cleanup

* remove src,address from CanData

* merge master

merge master
old-commit-hash: 41304db1e661fa6593d777f0f17dfd60e6f909c8
2023-02-02 20:39:16 -08:00
Willem Melching 4081c51c73 cabana: add button to suppress highlighted bytes (#27131)
old-commit-hash: e3c202b4a2d79f6843aa54ec9a1ef81e39da2731
2023-02-02 13:16:09 -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
Dean Lee adfdbfac54 cabana: only update the colors of newly fetched messages in historylog (#27144)
only update new msgs color
old-commit-hash: d60aca8dd28731f947153f9f5dcb26d0f92ac2ad
2023-01-29 13:01:57 -08:00
Dean Lee db8d4c8ff7 cabana: remove extra frame border in logs (#27133)
remove extra frame border
old-commit-hash: 07b32750c16fe4e71abbf81e07aa839ac60b5343
2023-01-28 12:03:59 -08:00
Dean Lee dd369848cd cabana: set time column to fixed width (#27117)
improve column width
old-commit-hash: f0078eafac20ac5af7e9683e61045bfb524f82cf
2023-01-27 11:33:52 -08:00
Dean Lee 7f350927d1 cabana: cleanup historylog and fix some known issues (#27100)
improve history logs
old-commit-hash: 0f37ff6c0284b91881984ce5cf2d74c48bdf7e68
2023-01-26 12:37:04 -08:00
Dean Lee fc3dac373e cabana: colorful logs based on activity (#27008)
* color logs

* remove space

* update in updateColors
old-commit-hash: b2675cef9a9d4993859b0cd924a1ca74281024f9
2023-01-24 11:36:40 -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 e982122f90 cabana: add a combobox to switch between signal and raw hex value (#26974)
* switch between hex&signal value

* sync display mode between view & model
old-commit-hash: 164880524a705fee3ba0507e70c7c0069b1f7ef0
2023-01-16 11:21:15 -08:00
Dean Lee 371ac89f84 Cabana: add dynamic/static mode to logs view (#26832)
old-commit-hash: e01809857174533e61a25d4bcb85b708031aa8cb
2022-12-30 13:57:29 -08:00
Dean Lee d37a669449 Cabana: double click on logs cell to open the chart (#26833)
old-commit-hash: ab797588f800c02c6ea181a86b3b1c7d760e8c72
2022-12-28 18:22:04 -08:00
Dean Lee 82761359a3 Cabana: add not equal (!=) filter (#26780)
add not equal filter
old-commit-hash: 1e596f964c65ddec1303cebf9128e26df2379d90
2022-12-12 23:04:36 -08:00
Dean Lee 62dbfd8fd6 Cabana: add signal value filters to the logs view (#26779)
add filter to logs view
old-commit-hash: cecef89124be03eae55b6ee3bc33b3d5cdf7f93c
2022-12-12 22:31:36 -08:00
Dean Lee 79170305dc Cabana: display all logs in log view (#26659)
* fetch more

* clear log in showevent

* fix wrong time value

* check list size

* fix canmessages::process

* cache all events

* improve segment cache

* cleanup
old-commit-hash: f49520db0fd343ccca5975ee62d602d09f98d8b0
2022-12-12 14:47:45 -08:00
Dean Lee e88e88555d Cabana: fix header word wrap issue (#26737)
old-commit-hash: 767261e61cd9e50cc93941792bc14c8932321150
2022-12-09 10:42:43 -08:00
Dean Lee 4f1ff1d253 Cabana: sort signals by address in logs view (#26639)
cleanup
old-commit-hash: 2b916044f5e7e6466709bd45301765d0b7599eec
2022-11-30 12:40:36 -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 53922eaed4 Cabana: Move history logs to a tabbed widget (#26481)
* tabwidget

* cleanup

* update state  before show

* cleanup

* remove spacing

* fix right panel stretch issue

* fix missing }
old-commit-hash: 8e91ce1eb4f91c976570056fd8979a4afcf43a53
2022-11-14 19:09:19 -08:00
Dean Lee 5f80ca6359 Cabana: Added support for undo & redo (#26440)
* undo/redo

* display command list to rolling the state backwards or forward

* update detailview after rolling states

* add * to title bar to indicate dbc has changed

* fix signal pointer address changed after removed

* cleanup

* fix id error

* clear undo stack after dbc file changed

* cleanup

* use map

* cleanup

* typo
old-commit-hash: 7c922eafe9d9c8e07de80f8bafcd9b2dc2932c13
2022-11-10 10:37:38 -08:00
Dean Lee 32ff5a5b1c Cabana: Reimplement HistoryLog::sizeHintForColumn to improve performance (#26393)
Reimplement sizeHintForColumn to improve performance
old-commit-hash: cdcc0fb3695d75e781053f9feda6b6b91a08ea86
2022-11-06 11:06:10 -08:00
Dean Lee d81bd3f8ec Cabana: word wrap header (#26341)
* auto wrap header

* custom headerview
old-commit-hash: 70363e2491ea4150f85b44ff221d3318208581a9
2022-11-03 13:23:53 -07:00
Dean Lee 01b10ac864 Cabana: make whole DetailWidget scrollable (#26340)
old-commit-hash: b25e56925c2453464f554bfab57b38f9487a9844
2022-11-03 10:44:37 -07:00
Dean Lee a02e81b710 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
old-commit-hash: 728d96924924dd8d4e899ccaba0ed6bcc4a23417
2022-10-26 12:59:37 -07:00
Dean Lee fc4d06777c Cabana: fix time column was being cutoff (#26156)
fix time column
old-commit-hash: a24e6616c2f701896328c7cba5e6e8e76b42de1e
2022-10-19 08:01:42 -07:00