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/QLoggingCategory>
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
13Q_DECLARE_LOGGING_CATEGORY(QGCSerialPortInfoLog)
14
15
18{
19 friend class QGCSerialPortInfoTest;
20public:
22 explicit QGCSerialPortInfo(const QSerialPort &port);
24
26 BoardTypePixhawk = 0,
30 BoardTypeUnknown
31 };
32
33 bool getBoardInfo(BoardType_t &boardType, QString &name) const;
34
36 bool canFlash() const;
37
39 bool isBootloader() const;
40
42 bool isBlackCube() const;
43
46 static bool isSystemPort(const QSerialPortInfo &port);
47
49 static QList<QGCSerialPortInfo> availablePorts();
50
51private:
52 struct BoardClassString2BoardType_t {
53 const QString classString;
54 const BoardType_t boardType = BoardTypeUnknown;
55 };
56
57 static bool _loadJsonData();
58 static BoardType_t _boardClassStringToType(const QString &boardClass);
59 static QString _boardTypeToString(BoardType_t boardType);
60
61 static bool _jsonLoaded;
62 static bool _jsonDataValid;
63
64 struct BoardInfo_t {
65 int vendorId;
66 int productId;
67 BoardType_t boardType;
68 QString name;
69 };
70 static QList<BoardInfo_t> _boardInfoList;
71
72 struct BoardRegExpFallback_t {
73 QString regExp;
74 BoardType_t boardType;
75 bool androidOnly;
76 };
77 static QList<BoardRegExpFallback_t> _boardDescriptionFallbackList;
78 static QList<BoardRegExpFallback_t> _boardManufacturerFallbackList;
79
80 static constexpr const char *_jsonFileTypeValue = "USBBoardInfo";
81 static constexpr const char *_jsonBoardInfoKey = "boardInfo";
82 static constexpr const char *_jsonBoardDescriptionFallbackKey = "boardDescriptionFallback";
83 static constexpr const char *_jsonBoardManufacturerFallbackKey = "boardManufacturerFallback";
84 static constexpr const char *_jsonVendorIDKey = "vendorID";
85 static constexpr const char *_jsonProductIDKey = "productID";
86 static constexpr const char *_jsonBoardClassKey = "boardClass";
87 static constexpr const char *_jsonNameKey = "name";
88 static constexpr const char *_jsonRegExpKey = "regExp";
89 static constexpr const char *_jsonAndroidOnlyKey = "androidOnly";
90};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
Provides information about existing serial ports.
Provides functions to access serial ports.
Definition qserialport.h:17
Q_DECLARE_METATYPE(satellite_info_s)