From fb575e062dcb29a07cda9b9f1abe28f5bbb9e368 Mon Sep 17 00:00:00 2001 From: gly11 Date: Wed, 27 May 2026 12:54:56 +0800 Subject: [PATCH] feat(app): show SBP-2 device metadata --- ASFW/Views/DeviceDiscoveryView.swift | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ASFW/Views/DeviceDiscoveryView.swift b/ASFW/Views/DeviceDiscoveryView.swift index ae9b095f..11b4c0a9 100644 --- a/ASFW/Views/DeviceDiscoveryView.swift +++ b/ASFW/Views/DeviceDiscoveryView.swift @@ -207,6 +207,11 @@ struct DeviceDetailView: View { Text(String(format: "0x%06X", device.modelId)) .monospaced() } + GridRow { + Text("Kind:") + .fontWeight(.medium) + Text(device.hasSBP2Unit ? "SBP-2 Device" : (device.isStorage ? "Storage" : "Other")) + } } .padding() } @@ -270,6 +275,38 @@ struct UnitCardView: View { Text(String(format: "%d quadlets", unit.romOffset)) .monospaced() } + if let managementAgentOffset = unit.managementAgentOffset { + GridRow { + Text("Mgmt Agent:") + .foregroundStyle(.secondary) + Text(String(format: "0x%08X", managementAgentOffset)) + .monospaced() + } + } + if let lun = unit.lun { + GridRow { + Text("LUN:") + .foregroundStyle(.secondary) + Text(String(format: "0x%02X", lun)) + .monospaced() + } + } + if let unitCharacteristics = unit.unitCharacteristics { + GridRow { + Text("Unit Chars:") + .foregroundStyle(.secondary) + Text(String(format: "0x%08X", unitCharacteristics)) + .monospaced() + } + } + if let fastStart = unit.fastStart { + GridRow { + Text("Fast Start:") + .foregroundStyle(.secondary) + Text(String(format: "0x%08X", fastStart)) + .monospaced() + } + } if let vendorName = unit.vendorName, !vendorName.isEmpty { GridRow {