Add tests for MoonrakerSocketManager, some UI changes in front-end

This commit is contained in:
Madeline Pace
2023-05-24 13:35:51 -04:00
parent 0f0d0c0628
commit e04a6bc31f
8 changed files with 146 additions and 75 deletions

View File

@@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.300",
"green" : "0.300",
"red" : "0.300"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000",
"red" : "1.000"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -2,6 +2,11 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
@@ -21,7 +26,5 @@
<string>_moonraker._tcp.</string>
<string>_http._tcp.</string>
</array>
<key>NSServices</key>
<array/>
</dict>
</plist>

View File

@@ -1,5 +1,5 @@
//
// PrinterRequestManager.swift
// MoonrakerSocketManager.swift
// KlipperMon
//
// Created by maddiefuzz on 2/7/23.
@@ -11,8 +11,6 @@ import AppKit
import Starscream
// MARK: PrinterRequestManager
//@MainActor
class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
let WEBSOCKET_TIMEOUT_INTERVAL: TimeInterval = 60.0
@@ -32,10 +30,11 @@ class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
private var socket: WebSocket?
private var lastPingDate = Date()
private var starscreamEngine: Engine
// MARK: PRM init()
init() {
init(starscreamEngine: Engine = WSEngine(transport: TCPTransport())) {
state = ""
progress = 0.0
extruderTemperature = 0.0
@@ -43,6 +42,8 @@ class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
socketHost = ""
socketPort = ""
self.starscreamEngine = starscreamEngine
// Set up sleep/wake notification observers
let center = NSWorkspace.shared.notificationCenter;
let mainQueue = OperationQueue.main
@@ -80,7 +81,8 @@ class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
let hostString = "\(host)"
let regex = try! Regex("%(.+)")
let match = hostString.firstMatch(of: regex)
let sanitizedHost = hostString.replacingOccurrences(of: match!.0, with: "")
let sanitizedHost = hostString.replacingOccurrences(of: match?.0 ?? "", with: "")
print("[sanitized] Resolved \(sanitizedHost):\(port)")
@@ -111,8 +113,9 @@ class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
//let fullUrlString = "http://\(socketHost):\(socketPort)/websocket"
var request = URLRequest(url: URL(string: "http://\(socketHost):\(socketPort)/websocket")!)
request.timeoutInterval = 5
socket = WebSocket(request: request)
socket = WebSocket(request: request, engine: starscreamEngine)
socket!.delegate = self
print("About to connect to WebSocket at: \(request.debugDescription)")
socket!.connect()
}
@@ -125,7 +128,7 @@ class MoonrakerSocketManager: ObservableObject, WebSocketDelegate {
self.openWebsocket()
}
// MARK: Callsbacks
// MARK: Callbacks
func screenChangedSleepState(_ notification: Notification) {
switch(notification.name) {
case NSWorkspace.screensDidSleepNotification:

View File

@@ -38,7 +38,7 @@ struct PrinterConfigView: View {
printerManager.connectToBonjourEndpoint(result.endpoint)
} label: {
Text("Connect")
.foregroundColor(.white)
//.foregroundColor(.white)
.padding()
}
}

View File

@@ -83,7 +83,7 @@ struct SoyuzMenuBarExtraView: View {
openWindow(id: "soyuz_cfg")
} label: {
Text("Printers")
.foregroundColor(.white)
.foregroundColor(Color("ButtonForegroundColor"))
}
Spacer()
if(printerManager.isConnected) {