Sub Process_Globals
Public Serial1 As Serial
Private usocket As WiFiUDP
Private wifi As ESP8266WiFi
Private Credentials(2) As String 'SSID & password
Private ip(4) As Byte
Private port As UInt = 3661
Private astream As AsyncStreams
Private bc As ByteConverter
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
ScanNetworks 'Find SSID of strongest WiFi access point
If wifi.Connect2(Credentials(0), Credentials(1)) = False Then
Log("Error connecting to network")
Return
Else
Log("Connected to network:", Credentials(0))
Log("My IP address: ", wifi.LocalIp)
Dim index As UInt = 0
For Each s() As Byte In bc.Split(wifi.localIP, ".")
Dim b As Byte = bc.StringFromBytes(s)
ip(index) = b
index = index + 1
Next
ip(3) = 255
Log("Broadcast IP address: ", ip(0), ".", ip(1), ".", ip(2), ".", ip(3))
End If
astream.Initialize(Serial1.Stream, "astream_NewData", "astream_Error")
usocket.Initialize(51042, "usocket_PacketArrived")
End Sub
Sub astream_NewData (Buffer() As Byte)
usocket.BeginPacket(ip, port)
For Each s() As Byte In bc.Split(Buffer, CRLF)
If s.Length <> 0 Then
usocket.Write(s)
usocket.SendPacket
End If
Next
End Sub
Sub usocket_PacketArrived (Data() As Byte, ip1() As Byte, port1 As UInt)
'not used
Log("Packet arrived")
End Sub
Sub astream_Error
Log("Error")
End Sub
Private Sub ScanNetworks
Dim numberOfNetworks As Byte = wifi.Scan
Log("Found ", numberOfNetworks, " networks")
Dim RSSI As Int = -255
Dim strongest As Byte = 0
For i = 0 To numberOfNetworks - 1
Log("SSID: ", wifi.ScannedSSID(i), "|RSSI: ", wifi.ScannedRSSI(i))
If wifi.ScannedRSSI(i) > RSSI Then
RSSI = wifi.ScannedRSSI(i)
strongest = i
End If
Next
Log("Strongest SSID: ", wifi.ScannedSSID(strongest), "|RSSI: ", wifi.ScannedRSSI(strongest))
Credentials(0) = wifi.ScannedSSID(strongest)
Credentials(1) = "********"
End Sub