Apollo 11.0
自动驾驶开放平台
main_window.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2018 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16
17#pragma once
18
19#include <QtCore/QMutex>
20#include <QtWidgets/QMainWindow>
21#include <QtWidgets/QMenu>
22#include <map>
23#include <memory>
24#include <string>
25
26#include "modules/common_msgs/sensor_msgs/pointcloud.pb.h"
27#include "modules/common_msgs/sensor_msgs/radar.pb.h"
28#include "modules/common_msgs/sensor_msgs/sensor_image.pb.h"
31
33class Texture;
34class Grid;
35class QAction;
36class QComboBox;
37class QTreeWidgetItem;
38class QOpenGLShaderProgram;
39class QCheckBox;
40class QColorDialog;
42
43namespace Ui {
44class MainWindow;
45}
46
47class MainWindow : public QMainWindow {
48 Q_OBJECT
49
50 public:
51 explicit MainWindow(QWidget* parent = nullptr);
53
56
57 protected:
58 void resizeEvent(QResizeEvent*) override;
59
60 private slots: // NOLINT
61 void ActionAddGrid(void);
62
63 void ActionOpenPointCloud(void);
64 void PlayRenderableObject(bool);
65 void ChangePointCloudChannel(void);
66
67 void ActionOpenImage(void);
68 void PlayVideoImage(bool b);
69 void ChangeVideoImgChannel(void);
70 void SelectCurrentTreeItem(FixedAspectRatioWidget*);
71
72 void ActionDelVideoImage(void);
73
74 void CloseVideoImgViewer(bool b);
75
76 void UpdateActions(void);
77 void EnableGrid(bool b);
78
79 void EditGridColor(QTreeWidgetItem* item, int column);
80 void ChangeGridCellCountBySize(int v);
81
82 void ActionOpenImages(void);
83 void AddVideoImages(void);
84
85 void ActionOpenRadarChannel(void);
86 void openRadarChannel(bool b);
87 void EnableRadarPoints(bool b);
88 void ChangeRadarChannel(void);
89
90 void showMessage(void);
91
92 void PlayPause(void);
93
94 private:
95 struct VideoImgProxy;
96 struct RadarData;
97
98 void PointCloudReaderCallback(
99 const std::shared_ptr<const apollo::drivers::PointCloud>& pdata);
100 void ImageReaderCallback(
101 const std::shared_ptr<const apollo::drivers::Image>& imgData,
102 VideoImgProxy* proxy);
103 void ImageReaderCallback(
104 const std::shared_ptr<const apollo::drivers::CompressedImage>& imgData,
105 VideoImgProxy* proxy);
106
107 void InsertAllChannelNames(void);
108 VideoImgProxy* AddVideoImgViewer(void);
109 void DoDeleteVideoImg(VideoImgProxy*);
110 void DoPlayVideoImage(bool, VideoImgProxy*);
111 void calculateWH(void);
112
113 RadarData* createRadarData(void);
114 void DoOpenRadarChannel(bool b, RadarData* radarProxy);
115 void RadarRenderCallback(
116 const std::shared_ptr<const apollo::drivers::RadarObstacles>& rawData,
117 RadarData* radar);
118
119 Ui::MainWindow* ui_;
120 MessageDialog* msg_dialog_;
121 VideoImagesDialog* open_images_dialog_;
122
123 QTreeWidgetItem* all_channel_root_;
124
125 Grid* grid_;
126 QCheckBox* enable_grid_checkBox_;
127 QTreeWidgetItem* grid_root_item_;
128
129 QTreeWidgetItem* pointcloud_top_item_;
130 QComboBox* pointcloud_comboBox_;
131 QPushButton* pointcloud_button_;
132 CyberChannReader<apollo::drivers::PointCloud>* pointcloud_channel_Reader_;
133
134 QMutex pointcloud_reader_mutex_;
135
136 QMenu right_menu_;
137
138 std::shared_ptr<QOpenGLShaderProgram> pointcloud_shader_;
139 std::shared_ptr<QOpenGLShaderProgram> grid_shader_;
140 std::shared_ptr<QOpenGLShaderProgram> radar_points_shader_;
141
142 QList<VideoImgProxy*> video_image_viewer_list_;
143 QList<VideoImgProxy*> closed_video_image_viewer_list_;
144
145 QList<RadarData*> radarData_list_;
146 QList<RadarData*> closed_radarData_list_;
147
148 std::map<std::string, std::string> _channelName2TypeMap;
149};
Definition grid.h:23
void resizeEvent(QResizeEvent *) override
void AddNewWriter(const apollo::cyber::proto::RoleAttributes &role)
void TopologyChanged(const apollo::cyber::proto::ChangeMsg &change_msg)