#Region Project Attributes
#CommandLineArgs:
#MergeLibraries: True
#End Region
Sub Process_Globals
Private srvr As Server
Dim lastLayer As Int = 0
Dim lastPrinterState As String
Dim LayerTimer As Timer
Dim PrinterStateTimer As Timer
End Sub
Sub AppStart (Args() As String)
srvr.Initialize("srvr")
' srvr.Port = 51042
' srvr.StaticFilesFolder = File.Combine(File.DirApp, "www")
' srvr.AddHandler("/guessmynumber/guess", "GuessMyNumber", False)
' srvr.AddHandler("/guessmynumber/reset", "ResetMyNumber", False)
' srvr.AddWebSocket("/guessmynumber_ws/ws", "WSGuessMyNumber")
' srvr.Start
PrinterStateTimer.Initialize("status",500)
PrinterStateTimer.Enabled=True
LayerTimer.Initialize("Layer",250)
StartMessageLoop
End Sub
Sub layer_tick
' Try
Wait For (getlayer) complete (result As Int)
If result <> -1 Then
If lastLayer <> result Then
Log ("Layer: "&result)
lastLayer=result
End If
End If
' Catch
' Log("Layertick")
' End Try
End Sub
Sub status_tick
' Try
Dim j As HttpJob
j.Initialize("", Me)
j.Download("http://192.168.188.36/rr_model?key=state.status")
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
Dim parser As JSONParser
parser.Initialize(j.GetString)
Dim root As Map = parser.NextObject
Dim PrinterState As String = root.Get("result")
If lastPrinterState <> PrinterState Then
Log(PrinterState)
lastPrinterState=PrinterState
End If
Else
Log ("status error "&j.ErrorMessage)
End If
j.Release
If PrinterState <> "idle" And PrinterState <> "busy" And PrinterState <>"halted" Then 'processing
LayerTimer.Enabled=True
Else
LayerTimer.Enabled=False
End If
' Catch
' Log ("error can't get Printer status")
' End Try
End Sub
Sub getlayer As ResumableSub
' Try
Dim j As HttpJob
j.Initialize("", Me)
j.Download("http://192.168.188.36/rr_model?key=job.layer")
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
Dim parser As JSONParser
parser.Initialize(j.GetString)
Dim root As Map = parser.NextObject
Dim Layer As Int = root.Get("result")
j.Release
Return Layer
Else
Log ("getlayer error "&j.ErrorMessage)
End If
' Catch
' Log ("error can't get Layer")
' End Try
Return -1
End Sub
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Log ("app error")
' If srvr.CurrentThreadIndex = 0 Then 'main thread
' LogError(StackTrace)
' Return False
'' Else 'handlers threads
'' Return True
' End If
Log (Error)
Return False
End Sub