#Region Project Attributes
#AutoFlushLogs: True
#CheckArrayBounds: True
#StackBufferSize: 1000
#End Region
Sub Process_Globals
Public Serial1 As Serial
Private d1pins As D1Pins
Private d6 As Pin 'not yet used
Private mqtt As MqttClient
Private wifi As ESP8266WiFi
Private client As WiFiSocket
Private ObjectsBuffer(500) As Object
Private Ser As B4RSerializator
Dim bc As ByteConverter
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
d6.Initialize(d1pins.D6, d6.MODE_OUTPUT) 'not yet used
d6.DigitalWrite(False)
If wifi.Connect2("TP-LINK_507A4F","02507A4F") = False Then
Log("Error connecting to router!")
Return
End If
'broker address is: 192.168.0.6:51042. Change as needed.
mqtt.Initialize(client.Stream, Array As Byte(192, 168, 0, 100), _
1883, "esp2", "Mqtt_MessageArrived", "Mqtt_Disconnected")
Connect(0)
End Sub
Sub Connect(unused As Byte)
If mqtt.Connect = False Then
Log("trying to connect again")
CallSubPlus("Connect", 1000, 0)
Return
End If
Log("Connected to broker")
mqtt.Subscribe("esp", 0)
End Sub
Sub Mqtt_MessageArrived (Topic As String, Payload() As Byte)
Log("Message arrived. Topic=", Topic, " payload: ", Payload)
Log(bc.HexFromBytes(Payload))
If Topic= "esp" Then
Dim Objects() As Object = Ser.ConvertBytesToArray(Payload, ObjectsBuffer)
Log(Payload.Length)
Log(Objects.Length)
Log(ObjectsBuffer.Length)
End If
End Sub
Sub Mqtt_Disconnected
Log("Disconnected")
mqtt.Close
Connect(0)
End Sub