ironOS native ios app
1//
2// IronOSUUIDs.swift
3// Tinkcil
4//
5
6import CoreBluetooth
7import Foundation
8
9enum IronOSUUIDs {
10
11 // MARK: - Bulk Data Service (for discovery)
12 static let bulkDataService = CBUUID(string: "9EAE1000-9D0D-48C5-AA55-33E27F9BC533")
13 static let bulkLiveData = CBUUID(string: "9EAE1001-9D0D-48C5-AA55-33E27F9BC533")
14 static let buildID = CBUUID(string: "9EAE1003-9D0D-48C5-AA55-33E27F9BC533") // Firmware build version
15 static let deviceSerial = CBUUID(string: "9EAE1004-9D0D-48C5-AA55-33E27F9BC533") // MAC address
16
17 // MARK: - Live Data Service
18 static let liveDataService = CBUUID(string: "D85EF000-168E-4A71-AA55-33E27F9BC533")
19 static let liveTemp = CBUUID(string: "D85EF001-168E-4A71-AA55-33E27F9BC533")
20 static let setpointRead = CBUUID(string: "D85EF002-168E-4A71-AA55-33E27F9BC533")
21 static let dcInput = CBUUID(string: "D85EF003-168E-4A71-AA55-33E27F9BC533")
22 static let handleTemp = CBUUID(string: "D85EF004-168E-4A71-AA55-33E27F9BC533")
23 static let powerLevel = CBUUID(string: "D85EF005-168E-4A71-AA55-33E27F9BC533")
24 static let powerSource = CBUUID(string: "D85EF006-168E-4A71-AA55-33E27F9BC533")
25 static let tipResistance = CBUUID(string: "D85EF007-168E-4A71-AA55-33E27F9BC533")
26 static let uptime = CBUUID(string: "D85EF008-168E-4A71-AA55-33E27F9BC533")
27 static let lastMovement = CBUUID(string: "D85EF009-168E-4A71-AA55-33E27F9BC533")
28 static let maxTemp = CBUUID(string: "D85EF00A-168E-4A71-AA55-33E27F9BC533")
29 static let rawTip = CBUUID(string: "D85EF00B-168E-4A71-AA55-33E27F9BC533")
30 static let hallSensor = CBUUID(string: "D85EF00C-168E-4A71-AA55-33E27F9BC533")
31 static let operatingMode = CBUUID(string: "D85EF00D-168E-4A71-AA55-33E27F9BC533")
32 static let estimatedWatts = CBUUID(string: "D85EF00E-168E-4A71-AA55-33E27F9BC533")
33
34 // MARK: - Settings Service
35 static let settingsService = CBUUID(string: "F6D80000-5A10-4EBA-AA55-33E27F9BC533")
36 static let saveSettings = CBUUID(string: "F6D7FFFF-5A10-4EBA-AA55-33E27F9BC533")
37 static let resetSettings = CBUUID(string: "F6D7FFFE-5A10-4EBA-AA55-33E27F9BC533")
38
39 // Helper to generate setting UUID from index
40 static func settingUUID(index: UInt16) -> CBUUID {
41 let hexString = String(format: "F6D7%04X-5A10-4EBA-AA55-33E27F9BC533", index)
42 return CBUUID(string: hexString)
43 }
44
45 // Helper to extract setting index from UUID
46 static func settingIndex(from uuid: CBUUID) -> UInt16? {
47 let uuidString = uuid.uuidString.uppercased()
48 guard uuidString.hasPrefix("F6D7") && uuidString.hasSuffix("-5A10-4EBA-AA55-33E27F9BC533") else {
49 return nil
50 }
51 let hexIndex = String(uuidString.prefix(8).suffix(4))
52 return UInt16(hexIndex, radix: 16)
53 }
54}