feat: implement DTW comparison, add data segmentation and persistence, and update QML UI for file imports and graphing.

This commit is contained in:
jack
2026-06-23 21:38:45 -07:00
parent 20a34e22ee
commit 62ce5a9c37
16 changed files with 1049 additions and 8 deletions
+50 -2
View File
@@ -80,6 +80,34 @@ Rectangle {
}
}
FileDialog {
id: importFileDialog
title: "Import CSV / ZWafer file"
nameFilters: ["CSV files (*.csv)", "ZWafer files (*.zwafer)", "All files (*)"]
onAccepted: {
var path = root.cleanFolderUrl(selectedFile)
streamController.setMode("review")
streamController.stopStream()
streamController.loadFile(path)
root.selectedTabIndex = 3 // Switch to Wafer Map tab
root.selectedSideActionIndex = -1
}
}
FileDialog {
id: storedDataDialog
title: "Open Stored CSV File"
nameFilters: ["CSV files (*.csv)", "All files (*)"]
onAccepted: {
var path = root.cleanFolderUrl(selectedFile)
streamController.setMode("review")
streamController.stopStream()
streamController.loadFile(path)
root.selectedTabIndex = 3 // Switch to Wafer Map tab
root.selectedSideActionIndex = -1
}
}
// ===== Main Two-Column Layout ======
RowLayout {
anchors.fill: parent
@@ -141,6 +169,20 @@ Rectangle {
else if (index === 2) {
deviceController.openCsvFile()
}
else if (index === 3) {
// ERASE MEMORY
streamController.setMode("review")
streamController.stopStream()
deviceController.eraseMemory(deviceController.selectedPort || "")
}
else if (index === 4) {
// IMPORT DATA
importFileDialog.open()
}
else if (index === 5) {
// STORED DATA
storedDataDialog.open()
}
}
background: Rectangle {
@@ -236,17 +278,23 @@ Rectangle {
Label {
anchors.centerIn: parent
visible: parent.tabName !== "Settings" && parent.tabName !== "Status" && parent.tabName !== "Data" && parent.tabName !== "Wafer Map"
visible: parent.tabName !== "Settings" && parent.tabName !== "Status" && parent.tabName !== "Data" && parent.tabName !== "Wafer Map" && parent.tabName !== "Graph"
text: parent.tabName + " content"
color: Theme.bodyColor
font.pixelSize: 20
}
Loader{
Loader {
anchors.fill: parent
active: parent.tabName === "Wafer Map"
source: parent.tabName === "Wafer Map" ? "Tabs/WaferMapTab.qml" : ""
}
Loader {
anchors.fill: parent
active: parent.tabName === "Graph"
source: parent.tabName === "Graph" ? "Tabs/GraphTab.qml" : ""
}
}
}
}