diff --git a/src/comm/QGCSerialPortInfo.cc b/src/comm/QGCSerialPortInfo.cc index 56e299fe3ce8ede5567f9bf5de461f7e1ded2105..539a8c7ddaf7b688221be24e5dc7224ba75f2fb1 100644 --- a/src/comm/QGCSerialPortInfo.cc +++ b/src/comm/QGCSerialPortInfo.cc @@ -18,16 +18,17 @@ QGC_LOGGING_CATEGORY(QGCSerialPortInfoLog, "QGCSerialPortInfoLog") -bool QGCSerialPortInfo::_jsonLoaded = false; -const char* QGCSerialPortInfo::_jsonFileTypeValue = "USBBoardInfo"; -const char* QGCSerialPortInfo::_jsonBoardInfoKey = "boardInfo"; -const char* QGCSerialPortInfo::_jsonBoardFallbackKey = "boardFallback"; -const char* QGCSerialPortInfo::_jsonVendorIDKey = "vendorID"; -const char* QGCSerialPortInfo::_jsonProductIDKey = "productID"; -const char* QGCSerialPortInfo::_jsonBoardClassKey = "boardClass"; -const char* QGCSerialPortInfo::_jsonNameKey = "name"; -const char* QGCSerialPortInfo::_jsonRegExpKey = "regExp"; -const char* QGCSerialPortInfo::_jsonAndroidOnlyKey = "androidOnly"; +bool QGCSerialPortInfo::_jsonLoaded = false; +const char* QGCSerialPortInfo::_jsonFileTypeValue = "USBBoardInfo"; +const char* QGCSerialPortInfo::_jsonBoardInfoKey = "boardInfo"; +const char* QGCSerialPortInfo::_jsonBoardDescriptionFallbackKey = "boardDescriptionFallback"; +const char* QGCSerialPortInfo::_jsonBoardManufacturerFallbackKey = "boardManufacturerFallback"; +const char* QGCSerialPortInfo::_jsonVendorIDKey = "vendorID"; +const char* QGCSerialPortInfo::_jsonProductIDKey = "productID"; +const char* QGCSerialPortInfo::_jsonBoardClassKey = "boardClass"; +const char* QGCSerialPortInfo::_jsonNameKey = "name"; +const char* QGCSerialPortInfo::_jsonRegExpKey = "regExp"; +const char* QGCSerialPortInfo::_jsonAndroidOnlyKey = "androidOnly"; const QGCSerialPortInfo::BoardClassString2BoardType_t QGCSerialPortInfo::_rgBoardClass2BoardType[] = { { "Pixhawk", QGCSerialPortInfo::BoardTypePixhawk }, @@ -37,8 +38,9 @@ const QGCSerialPortInfo::BoardClassString2BoardType_t QGCSerialPortInfo::_rgBoar { "OpenPilot", QGCSerialPortInfo::BoardTypeOpenPilot }, }; -QList QGCSerialPortInfo::_boardInfoList; -QList QGCSerialPortInfo::_boardFallbackList; +QList QGCSerialPortInfo::_boardInfoList; +QList QGCSerialPortInfo::_boardDescriptionFallbackList; +QList QGCSerialPortInfo::_boardManufacturerFallbackList; QGCSerialPortInfo::QGCSerialPortInfo(void) : QSerialPortInfo() @@ -90,8 +92,9 @@ void QGCSerialPortInfo::_loadJsonData(void) // Validate root object keys QList rootKeyInfoList = { - { _jsonBoardInfoKey, QJsonValue::Array, true }, - { _jsonBoardFallbackKey, QJsonValue::Array, true }, + { _jsonBoardInfoKey, QJsonValue::Array, true }, + { _jsonBoardDescriptionFallbackKey, QJsonValue::Array, true }, + { _jsonBoardManufacturerFallbackKey, QJsonValue::Array, true }, }; if (!JsonHelper::validateKeys(json, rootKeyInfoList, errorString)) { qWarning() << errorString; @@ -143,7 +146,7 @@ void QGCSerialPortInfo::_loadJsonData(void) { _jsonAndroidOnlyKey, QJsonValue::Bool, false }, }; - QJsonArray rgBoardFallback = json[_jsonBoardFallbackKey].toArray(); + QJsonArray rgBoardFallback = json[_jsonBoardDescriptionFallbackKey].toArray(); for (int i=0; i _boardInfoList; - static QList _boardFallbackList; + static QList _boardDescriptionFallbackList; + static QList _boardManufacturerFallbackList; }; diff --git a/src/comm/USBBoardInfo.json b/src/comm/USBBoardInfo.json index 358480fa476eb5e10e025c8588636a58a130bbf0..6a91abb6b0a8c06689d8c601893f75b87df5844e 100644 --- a/src/comm/USBBoardInfo.json +++ b/src/comm/USBBoardInfo.json @@ -20,8 +20,6 @@ { "vendorID": 9900, "productID": 22, "boardClass": "Pixhawk", "name": "Crazyflie 2" }, { "vendorID": 9900, "productID": 1, "boardClass": "Pixhawk", "name": "Omnibus F4 SD" }, { "vendorID": 8137, "productID": 28, "boardClass": "Pixhawk", "name": "PX4 NXPHlite v3.x" }, - { "vendorID": 1155, "productID": 22336, "boardClass": "Pixhawk", "name": "ArduPilot ChibiOS" }, - { "vendorID": 4617, "productID": 22336, "boardClass": "Pixhawk", "name": "ArduPilot ChibiOS" }, { "vendorID": 9900, "productID": 21, "boardClass": "PX4 Flow", "name": "PX4 Flow" }, @@ -29,17 +27,17 @@ { "vendorID": 1027, "productID": 24577, "boardClass": "SiK Radio", "name": "SiK Radio", "comment": "3DR Radio on FTDI" }, { "vendorID": 4292, "productID": 60000, "boardClass": "SiK Radio", "name": "SiK Radio", "comment": "SILabs Radio" }, - { "vendorID": 5446, "productID": 424, "boardClass": "RTK GPS", "name": "U-blox RTK GPS", "comment": "U-blox RTK GPS (M8P)" }, - { "vendorID": 5446, "productID": 425, "boardClass": "RTK GPS", "name": "U-blox RTK GPS", "comment": "U-blox RTK GPS (F9P)" }, - { "vendorID": 1317, "productID": 42151, "boardClass": "RTK GPS", "name": "Trimble RTK GPS", "comment": "Trimble RTK GPS" }, - { "vendorID": 5418, "productID": 34240, "boardClass": "RTK GPS", "name": "Septentrio RTK GPS", "comment": "Septentrio RTK GPS" }, + { "vendorID": 5446, "productID": 424, "boardClass": "RTK GPS", "name": "U-blox RTK GPS", "comment": "U-blox RTK GPS (M8P)" }, + { "vendorID": 5446, "productID": 425, "boardClass": "RTK GPS", "name": "U-blox RTK GPS", "comment": "U-blox RTK GPS (F9P)" }, + { "vendorID": 1317, "productID": 42151, "boardClass": "RTK GPS", "name": "Trimble RTK GPS" }, + { "vendorID": 5418, "productID": 34240, "boardClass": "RTK GPS", "name": "Septentrio RTK GPS" }, { "vendorID": 8352, "productID": 16732, "boardClass": "OpenPilot", "name": "OpenPilot OPLink" }, { "vendorID": 8352, "productID": 16733, "boardClass": "OpenPilot", "name": "OpenPilot CC3D" }, { "vendorID": 8352, "productID": 16734, "boardClass": "OpenPilot", "name": "OpenPilot Revolution" }, { "vendorID": 8352, "productID": 16848, "boardClass": "OpenPilot", "name": "Taulabs Sparky2" } ], - "boardFallback": [ + "boardDescriptionFallback": [ { "regExp": "^PX4 FMU v5.x$", "boardClass": "Pixhawk" }, { "regExp": "^PX4 BL FMU v5.x$", "boardClass": "Pixhawk" }, { "regExp": "^PX4 FMU v4.x PRO$", "boardClass": "Pixhawk" }, @@ -64,5 +62,11 @@ { "regExp": "PX4.*Flow", "boardClass": "PX4 Flow" }, { "regExp": "^FT231X USB UART$", "boardClass": "SiK Radio" }, { "regExp": "USB UART$", "boardClass": "SiK Radio", "androidOnly": true, "comment": "Very broad fallback, too dangerous for non-android" } + ], + + "boardManufacturerFallback": [ + { "regExp": "^ArduPilot$", "boardClass": "Pixhawk" }, + { "regExp": "^Hex/ProfiCNC$", "boardClass": "Pixhawk" }, + { "regExp": "^Holybro$", "boardClass": "Pixhawk" } ] }