| Wireshark 4.7.3 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
lte_rlc_graph_dialog.h
Go to the documentation of this file.
1
9
10#ifndef LTE_RLC_GRAPH_DIALOG_H
11#define LTE_RLC_GRAPH_DIALOG_H
12
13#include "wireshark_dialog.h"
14#include <ui/tap-rlc-graph.h>
15
16#include <ui/qt/widgets/qcustomplot.h>
17
18 class QMenu;
19 class QRubberBand;
20
21 namespace Ui {
22 class LteRlcGraphDialog;
23}
24
28 class LteRlcGraphDialog : public WiresharkDialog
29{
30 Q_OBJECT
31
32 public:
33 // TODO: will need to add another constructor option to give channel explicitly,
34 // rather than find in currently selected packet, for when launch graph from
35 // RLC statistics dialog.
36
43 explicit LteRlcGraphDialog(QWidget &parent, CaptureFile &cf, bool channelKnown);
44
48 ~LteRlcGraphDialog();
49
60 void setChannelInfo(uint8_t rat, uint16_t ueid, uint8_t rlcMode,
61 uint16_t channelType, uint16_t channelId, uint8_t direction,
62 bool maybe_empty=false);
63
64signals:
69 void goToPacket(int packet_num);
70
71 protected:
76 void showEvent(QShowEvent *event) override;
77
82 void keyPressEvent(QKeyEvent *event) override;
83
84 private:
86 Ui::LteRlcGraphDialog *ui;
87
89 bool mouse_drags_;
90
92 QRubberBand *rubber_band_;
93
95 QPoint rb_origin_;
96
98 QMenu *ctx_menu_;
99
101 struct rlc_graph graph_;
102
103 // Data
105 QMultiMap<double, struct rlc_segment *> time_stamp_map_;
106
108 QMap<double, struct rlc_segment *> sequence_num_map_;
109
111 QCPGraph *base_graph_;
112
114 QCPGraph *reseg_graph_;
115
117 QCPGraph *acks_graph_;
118
120 QCPGraph *nacks_graph_;
121
123 QCPItemTracer *tracer_;
124
126 uint32_t packet_num_;
127
132 void completeGraph(bool may_be_empty=false);
133
139 bool compareHeaders(rlc_segment *seg);
140
145 void findChannel(bool may_fail=false);
146
150 void fillGraph();
151
156 void zoomAxes(bool in);
157
162 void zoomXAxis(bool in);
163
168 void zoomYAxis(bool in);
169
175 void panAxes(int x_pixels, int y_pixels);
176
182 QRectF getZoomRanges(QRect zoom_rect);
183
188 void toggleTracerStyle(bool force_default);
189
190 private slots:
195 void showContextMenu(const QPoint &pos);
196
201 void graphClicked(QMouseEvent *event);
202
207 void mouseMoved(QMouseEvent *event);
208
213 void mouseReleased(QMouseEvent *event);
214
218 void resetAxes();
219
224 void on_dragRadioButton_toggled(bool checked);
225
230 void on_zoomRadioButton_toggled(bool checked);
231
235 void on_resetButton_clicked();
236
240 void on_otherDirectionButton_clicked();
241
245 void on_actionReset_triggered();
246
250 void on_actionZoomIn_triggered();
251
255 void on_actionZoomOut_triggered();
256
260 void on_actionMoveUp10_triggered();
261
265 void on_actionMoveLeft10_triggered();
266
270 void on_actionMoveRight10_triggered();
271
275 void on_actionMoveDown10_triggered();
276
280 void on_actionMoveUp1_triggered();
281
285 void on_actionMoveLeft1_triggered();
286
290 void on_actionMoveRight1_triggered();
291
295 void on_actionMoveDown1_triggered();
296
300 void on_actionDragZoom_triggered();
301
305 void on_actionMoveUp100_triggered();
306
310 void on_actionMoveDown100_triggered();
311
315 void on_actionGoToPacket_triggered();
316
320 void on_actionCrosshairs_triggered();
321
325 void on_actionSwitchDirection_triggered();
326
330 void on_buttonBox_accepted();
331};
332
333#endif // LTE_RLC_GRAPH_DIALOG_H
CaptureFile
Manages a capture file and its associated state and operations.
Definition capture_file.h:27
LteRlcGraphDialog::~LteRlcGraphDialog
~LteRlcGraphDialog()
Destroys the LteRlcGraphDialog.
Definition lte_rlc_graph_dialog.cpp:111
LteRlcGraphDialog::keyPressEvent
void keyPressEvent(QKeyEvent *event) override
Handles key press events within the dialog.
Definition lte_rlc_graph_dialog.cpp:349
LteRlcGraphDialog::goToPacket
void goToPacket(int packet_num)
Signal emitted to navigate to a specific packet in the main window.
LteRlcGraphDialog::LteRlcGraphDialog
LteRlcGraphDialog(QWidget &parent, CaptureFile &cf, bool channelKnown)
Constructs a new LteRlcGraphDialog.
Definition lte_rlc_graph_dialog.cpp:47
LteRlcGraphDialog::showEvent
void showEvent(QShowEvent *event) override
Handles the event when the dialog is shown.
Definition lte_rlc_graph_dialog.cpp:343
LteRlcGraphDialog::setChannelInfo
void setChannelInfo(uint8_t rat, uint16_t ueid, uint8_t rlcMode, uint16_t channelType, uint16_t channelId, uint8_t direction, bool maybe_empty=false)
Sets the channel information manually.
Definition lte_rlc_graph_dialog.cpp:117
WiresharkDialog::WiresharkDialog
WiresharkDialog(QWidget &parent, CaptureFile &capture_file)
Constructs a new WiresharkDialog object.
Definition wireshark_dialog.cpp:30
rlc_graph
Holds all state required to render an RLC sequence-number graph for one channel.
Definition tap-rlc-graph.h:62
rlc_segment
Represents a single RLC PDU or control segment captured from the air interface.
Definition packet-rlc-lte.c:381
tap-rlc-graph.h
wireshark_dialog.h