Project opens websocket and reconnects if ping replies from the printer stop

This commit is contained in:
Madeline
2023-02-21 00:35:54 -05:00
parent ab849a721b
commit d084ebb1ac
9 changed files with 416 additions and 193 deletions
+44
View File
@@ -0,0 +1,44 @@
//
// PrinterStats.swift
// KlipperMon
//
// Created by maddiefuzz on 2/9/23.
//
import Foundation
class PrinterStats: ObservableObject {
@Published var state: String
@Published var progress: Double
@Published var extruderTemperature: Double
@Published var bedTemperature: Double
init(response: jsonRpcResponse) {
state = response.result.status.print_stats?.state ?? ""
progress = response.result.status.virtual_sdcard?.progress ?? 0.0
extruderTemperature = response.result.status.extruder?.temperature ?? 0.0
bedTemperature = response.result.status.heater_bed?.temperature ?? 0.0
print(response)
}
func update(update: jsonRpcUpdate) {
// print(update)
if let newState = update.params.status?.print_stats?.state {
//state = update.params[0].print_stats?.state
state = newState
}
if let newProgress = update.params.status?.virtual_sdcard?.progress {
print("Update progress")
progress = newProgress
}
if let newExtruderTemp = update.params.status?.extruder?.temperature {
print("Update extruder temp \(newExtruderTemp)")
extruderTemperature = newExtruderTemp
}
if let newBedTemp = update.params.status?.heater_bed?.temperature {
print("Update heated bed \(newBedTemp)")
bedTemperature = newBedTemp
}
}
}