Sub Process_Globals
Private timer1 As Timer
Private us As UDPSocket
End Sub
Sub AppStart (Args() As String)
us.Initialize("us", 52041, 8192)
timer1.Initialize("Timer1", 1000)
timer1.Enabled = True
If ProcessIsRunning = False Then
Log("starting piface_udp")
Dim shl As Shell
File.Copy(File.DirAssets, "piface_udp.py", File.DirApp, "piface_udp.py")
shl.Initialize("shl", "python", Array(File.Combine(File.DirApp, "piface_udp.py")))
shl.Run(-1)
End If
StartMessageLoop
End Sub
Sub shl_ProcessCompleted (Success As Boolean, ExitCode As Int, StdOut As String, StdErr As String)
Log("Process completed: " & StdErr & ", " & StdOut)
End Sub
Sub ProcessIsRunning As Boolean
Dim shl As Shell
shl.Initialize("", "ps", Array("-ef"))
Return shl.RunSynchronous(10000).StdOut.Contains("piface_udp.py")
End Sub
Private Sub Timer1_Tick
SendMessage($"$Time{DateTime.Now}"$)
End Sub
Private Sub us_PacketArrived (Packet As UDPPacket)
timer1.Enabled = False
Dim btnNumber As Int = BytesToString(Packet.Data, 0, Packet.Length, "ASCII")
SendMessage($"User clicked on
button #${btnNumber}"$)
End Sub
Private Sub SendMessage(msg As String)
Dim Packet As UDPPacket
Packet.Initialize(msg.GetBytes("ASCII"), "127.0.0.1", 52042)
us.Send(Packet)
End Sub