You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.7 KiB
120 lines
3.7 KiB
import QtQuick 2.3 |
|
import QtQuick.Controls 2.4 |
|
import QtQuick.Layouts 1.11 |
|
import QtQuick.Dialogs 1.2 |
|
|
|
import QGroundControl 1.0 |
|
import QGroundControl.Palette 1.0 |
|
import QGroundControl.ScreenTools 1.0 |
|
|
|
Rectangle { |
|
height: visible ? (rowLayout.height + (_margins * 2)) : 0 |
|
color: qgcPal.window |
|
|
|
property real _margins: ScreenTools.defaultFontPixelHeight / 4 |
|
property var _logReplayLink: null |
|
|
|
function pickLogFile() { |
|
if (globals.activeVehicle) { |
|
mainWindow.showMessageDialog(qsTr("Log Replay"), qsTr("You must close all connections prior to replaying a log.")) |
|
return |
|
} |
|
|
|
filePicker.openForLoad() |
|
} |
|
|
|
QGCPalette { id: qgcPal } |
|
|
|
QGCFileDialog { |
|
id: filePicker |
|
title: qsTr("Select Telemetery Log") |
|
nameFilters: [ qsTr("Telemetry Logs (*.%1)").arg(_logFileExtension), qsTr("All Files (*)") ] |
|
selectExisting: true |
|
folder: QGroundControl.settingsManager.appSettings.telemetrySavePath |
|
onAcceptedForLoad: { |
|
controller.link = QGroundControl.linkManager.startLogReplay(file) |
|
close() |
|
} |
|
|
|
property string _logFileExtension: QGroundControl.settingsManager.appSettings.telemetryFileExtension |
|
} |
|
|
|
LogReplayLinkController { |
|
id: controller |
|
|
|
onPercentCompleteChanged: slider.updatePercentComplete(percentComplete) |
|
} |
|
|
|
RowLayout { |
|
id: rowLayout |
|
anchors.margins: _margins |
|
anchors.top: parent.top |
|
anchors.left: parent.left |
|
anchors.right: parent.right |
|
|
|
QGCButton { |
|
text: controller.isPlaying ? qsTr("Pause") : qsTr("Play") |
|
enabled: controller.link |
|
onClicked: controller.isPlaying = !controller.isPlaying |
|
} |
|
|
|
QGCComboBox { |
|
textRole: "text" |
|
currentIndex: 3 |
|
|
|
model: ListModel { |
|
ListElement { text: "0.1"; value: 0.1 } |
|
ListElement { text: "0.25"; value: 0.25 } |
|
ListElement { text: "0.5"; value: 0.5 } |
|
ListElement { text: "1x"; value: 1 } |
|
ListElement { text: "2x"; value: 2 } |
|
ListElement { text: "5x"; value: 5 } |
|
} |
|
|
|
onActivated: controller.playbackSpeed = model.get(currentIndex).value |
|
} |
|
|
|
QGCLabel { text: controller.playheadTime } |
|
|
|
Slider { |
|
id: slider |
|
Layout.fillWidth: true |
|
from: 0 |
|
to: 100 |
|
enabled: controller.link |
|
|
|
property bool manualUpdate: false |
|
|
|
function updatePercentComplete(percentComplete) { |
|
manualUpdate = true |
|
value = percentComplete |
|
manualUpdate = false |
|
} |
|
|
|
onValueChanged: { |
|
if (!manualUpdate) { |
|
controller.percentComplete = value |
|
} |
|
} |
|
} |
|
|
|
QGCLabel { text: controller.totalTime } |
|
|
|
QGCButton { |
|
text: qsTr("Load Telemetry Log") |
|
onClicked: pickLogFile() |
|
visible: !controller.link |
|
} |
|
|
|
QGCButton { |
|
text: qsTr("Close") |
|
onClicked: { |
|
var activeVehicle = QGroundControl.multiVehicleManager.activeVehicle |
|
if (activeVehicle) { |
|
activeVehicle.disconnectInactiveVehicle() |
|
} |
|
QGroundControl.settingsManager.flyViewSettings.showLogReplayStatusBar.rawValue = false |
|
} |
|
} |
|
} |
|
}
|
|
|