Sub Process_Globals
Public Serial1 As Serial
Dim eth As Ethernet
Dim sock As EthernetSocket
Dim Astream As AsyncStreams
Dim pins(3) As Pin
Dim btn As Pin
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Dim pinNumbers() As Byte = Array As Byte(pins(0).A0, pins(0).A1, pins(0).A2)
For i = 0 To pins.Length - 1
pins(i).Initialize(pinNumbers(i), pins(i).MODE_OUTPUT)
pins(i).DigitalWrite(True)
Next
btn.Initialize(btn.A3, btn.MODE_INPUT_PULLUP)
btn.AddListener("Btn_StateChanged")
Log("Trying to connect...")
If eth.InitializeDHCP(Array As Byte(0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED)) = False Then
Log("Error getting ip address.")
Else
If sock.ConnectIP(Array As Byte(192, 168, 0, 8), 51042) = False Then
Log("Error connecting")
Else
Log("Connected")
Astream.Initialize(sock.Stream, "Astream_NewData", "Astream_Error")
End If
End If
End Sub
Sub Btn_StateChanged (State As Boolean)
Dim b(1) As Byte
If State Then b(0) = 1 Else b(0) = 0
Astream.Write(b)
End Sub
Sub Astream_NewData (Buffer() As Byte)
Dim bc As ByteConverter
Log("NewData: ", bc.HexFromBytes(Buffer))
For i = 0 To Buffer.Length - 1 Step 2
Dim b As Boolean
If Buffer(i + 1) = 1 Then b = True Else b = False
pins(Buffer(i)).DigitalWrite(b)
Next
End Sub
Sub Astream_Error
Log("Error")
End Sub