diff options
author | Simon Barber <simon.barber@meraki.net> | 2017-09-12 15:35:47 -0700 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-09-15 20:59:04 +0000 |
commit | 7cc677e561b9e40e87f9fbeb64b443ce5f1b52e4 (patch) | |
tree | 6954a79515f79affe70fb4de9df1a869ec5e0aec /ui/qt | |
parent | de1798aefc5233c6980ef45ec1eb027e2541a135 (diff) |
wireless-timeline: handle generators that report incorrect MCS for some frames
Macbook and QCA generators sometimes report the minimum MCS for subframes
in an aggregate that have FCS errors.
Change-Id: I77d1a81f5b3d0e3d0755adcb889f1237b0257814
Reviewed-on: https://code.wireshark.org/review/23521
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/qt')
-rw-r--r-- | ui/qt/wireless_timeline.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ui/qt/wireless_timeline.cpp b/ui/qt/wireless_timeline.cpp index 1bcfea5bbf..4f16159026 100644 --- a/ui/qt/wireless_timeline.cpp +++ b/ui/qt/wireless_timeline.cpp @@ -61,6 +61,15 @@ #include "ui/main_statusbar.h" +/* we start rendering this number of microseconds left of the left edge - to ensure + * NAV lines are drawn correctly, and that small errors in time order don't prevent some + * frames from being rendered. + * These errors in time order can come from generators that record PHY rate incorrectly + * in some circumstances. + */ +#define RENDER_EARLY 40000 + + const float fraction = 0.8F; const float base = 0.1F; class pcolor : public QColor @@ -277,7 +286,7 @@ void WirelessTimeline::captureFileReadFinished() statusbar_push_temporary_msg("Packet number %u does not include TSF timestamp, not showing timeline.", n); return; } - if (w->ifs < -15000) { + if (w->ifs < -RENDER_EARLY) { statusbar_push_temporary_msg("Packet number %u has large negative jump in TSF, not showing timeline. Perhaps TSF reference point is set wrong?", n); return; } @@ -525,7 +534,7 @@ WirelessTimeline::paintEvent(QPaintEvent *qpe) } QGraphicsScene qs; - for (packet = find_packet_tsf(start_tsf + left/zoom - 40000); packet <= cfile.count; packet++) { + for (packet = find_packet_tsf(start_tsf + left/zoom - RENDER_EARLY); packet <= cfile.count; packet++) { frame_data *fdata = frame_data_sequence_find(cfile.frames, packet); struct wlan_radio *ri = get_wlan_radio(fdata->num); float x, width, red, green, blue; |