QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCSerialPortInfo.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QRegularExpression>
4#include <QtCore/QtSystemDetection>
5#ifdef Q_OS_ANDROID
6 #include "qserialportinfo.h"
7#else
8 #include <QtSerialPort/QSerialPortInfo>
9#endif
10
11class QGCSerialPortInfoTest;
12
15
17{
19public:
21 explicit QGCSerialPortInfo(const QSerialPort &port);
23
31
32 bool getBoardInfo(BoardType_t &boardType, QString &name) const;
33
35 bool canFlash() const;
36
38 bool isBootloader() const;
39
41 bool isBlackCube() const;
42
45 static bool isSystemPort(const QSerialPortInfo &port);
46
48 static QList<QGCSerialPortInfo> availablePorts();
49
50private:
51 struct BoardClassString2BoardType_t {
52 const QString classString;
53 const BoardType_t boardType = BoardTypeUnknown;
54 };
55
56 static bool _loadJsonData();
57 static BoardType_t _boardClassStringToType(const QString &boardClass);
58 static QString _boardTypeToString(BoardType_t boardType);
59
60 static bool _jsonLoaded;
61 static bool _jsonDataValid;
62
63 struct BoardInfo_t {
64 int vendorId;
65 int productId;
66 BoardType_t boardType;
67 QString name;
68 };
69 static QList<BoardInfo_t> _boardInfoList;
70
71 struct BoardRegExpFallback_t {
72 QRegularExpression regExp;
73 BoardType_t boardType;
74 bool androidOnly;
75 };
76 static QList<BoardRegExpFallback_t> _boardDescriptionFallbackList;
77 static QList<BoardRegExpFallback_t> _boardManufacturerFallbackList;
78
79 static constexpr const char *_jsonFileTypeValue = "USBBoardInfo";
80 static constexpr const char *_jsonBoardInfoKey = "boardInfo";
81 static constexpr const char *_jsonBoardDescriptionFallbackKey = "boardDescriptionFallback";
82 static constexpr const char *_jsonBoardManufacturerFallbackKey = "boardManufacturerFallback";
83 static constexpr const char *_jsonVendorIDKey = "vendorID";
84 static constexpr const char *_jsonProductIDKey = "productID";
85 static constexpr const char *_jsonBoardClassKey = "boardClass";
86 static constexpr const char *_jsonNameKey = "name";
87 static constexpr const char *_jsonRegExpKey = "regExp";
88 static constexpr const char *_jsonAndroidOnlyKey = "androidOnly";
89};
QGC's version of Qt QSerialPortInfo. It provides additional information about board types that QGC ca...
friend class QGCSerialPortInfoTest
static bool isSystemPort(const QSerialPortInfo &port)
bool getBoardInfo(BoardType_t &boardType, QString &name) const
static QList< QGCSerialPortInfo > availablePorts()
Override of QSerialPortInfo::availablePorts.
Provides information about existing serial ports.
Provides functions to access serial ports.
Definition qserialport.h:17
Q_DECLARE_METATYPE(satellite_info_s)