void ThermalCalibrationHelper::createDebugLog() { if (m_debugFile.isOpen()) { closeDebugLog(); } if (m_tempdir->isValid()) { QString filename = QStringLiteral("thcaldebug_%1.txt").arg(QDateTime::currentDateTime().toString("dd.MM.yyyy-hh.mm.ss.zzz")); QDir dir = QDir(m_tempdir->path()); m_debugFile.setFileName(dir.filePath(filename)); if (!m_debugFile.open(QIODevice::WriteOnly | QIODevice::Text)) { m_debugStream.setDevice(0); return; } qDebug() << "Saving debug data for this session to " << dir.filePath(filename); m_debugStream.setDevice(&m_debugFile); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); deviceDescriptorStruct board = utilMngr->getBoardDescriptionStruct(); m_debugStream << "INFO::Hardware" << " type:" << QString().setNum(board.boardType, 16) << " revision:" << QString().setNum(board.boardRevision, 16) << " serial:" << QString(utilMngr->getBoardCPUSerial().toHex()) << endl; QString uavo = board.uavoHash.toHex(); m_debugStream << "INFO::firmware tag:" << board.gitTag << " date:" << board.gitDate << " hash:" << board.gitHash << " uavo:" << uavo.left(8) << endl; m_debugStream << "INFO::gcs tag:" << VersionInfo::tagOrBranch() + VersionInfo::dirty() << " date:" << VersionInfo::dateTime() << " hash:" << VersionInfo::hash().left(8) << " uavo:" << VersionInfo::uavoHash().left(8) << endl; } }
void UsageTrackerPlugin::collectUsageParameters(QMap<QString, QString> ¶meters) { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); QByteArray description = utilMngr->getBoardDescription(); deviceDescriptorStruct devDesc; if (UAVObjectUtilManager::descriptionToStructure(description, devDesc)) { int boardModel = utilMngr->getBoardModel(); parameters["board_type"] = "0x" + QString::number(boardModel, 16).toLower(); parameters["board_serial"] = utilMngr->getBoardCPUSerial().toHex(); parameters["bl_version"] = QString::number(utilMngr->getBootloaderRevision()); parameters["fw_tag"] = devDesc.gitTag; parameters["fw_hash"] = devDesc.gitHash; parameters["os_version"] = QSysInfo::prettyProductName() + " " + QSysInfo::currentCpuArchitecture(); parameters["os_threads"] = QString::number(QThread::idealThreadCount()); parameters["os_timezone"] = QTimeZone::systemTimeZoneId(); parameters["gcs_version"] = VersionInfo::revision(); // Configuration parameters ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectManager *objManager = pm->getObject<UAVObjectManager>(); parameters["conf_receiver"] = getUAVFieldValue(objManager, "ManualControlSettings", "ChannelGroups", 0); parameters["conf_vehicle"] = getUAVFieldValue(objManager, "SystemSettings", "AirframeType"); if ((boardModel & 0xff00) == 0x0400) { // CopterControl family parameters["conf_rport"] = getUAVFieldValue(objManager, "HwSettings", "CC_RcvrPort"); parameters["conf_mport"] = getUAVFieldValue(objManager, "HwSettings", "CC_MainPort"); parameters["conf_fport"] = getUAVFieldValue(objManager, "HwSettings", "CC_FlexiPort"); } else if ((boardModel & 0xff00) == 0x0900) { // Revolution family parameters["conf_rport"] = getUAVFieldValue(objManager, "HwSettings", "RM_RcvrPort"); parameters["conf_mport"] = getUAVFieldValue(objManager, "HwSettings", "RM_MainPort"); parameters["conf_fport"] = getUAVFieldValue(objManager, "HwSettings", "RM_FlexiPort"); parameters["conf_fusion"] = getUAVFieldValue(objManager, "RevoSettings", "FusionAlgorithm"); } parameters["conf_uport"] = getUAVFieldValue(objManager, "HwSettings", "USB_HIDPort"); parameters["conf_vport"] = getUAVFieldValue(objManager, "HwSettings", "USB_VCPPort"); parameters["conf_rotation"] = QString("[%1:%2:%3]") .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 0)) .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 1)) .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 2)); parameters["conf_pidr"] = QString("[%1:%2:%3:%4][%5:%6:%7:%8][%9:%10:%11:%12]") .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 3)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 3)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 3)); parameters["conf_pia"] = QString("[%1:%2:%3][%4:%5:%6][%7:%8:%9]") .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 2)); parameters["conf_tps"] = getUAVFieldValue(objManager, "StabilizationSettingsBank1", "EnableThrustPIDScaling"); parameters["conf_piro"] = getUAVFieldValue(objManager, "StabilizationSettingsBank1", "EnablePiroComp"); parameters["conf_fmcount"] = getUAVFieldValue(objManager, "ManualControlSettings", "FlightModeNumber"); parameters["conf_fmodes"] = QString("[%1:%2:%3]").arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 0)) .arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 1)) .arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 2)); } }