﻿B4J=true
Group=Default Group
ModulesStructureVersion=1
Type=StaticCode
Version=9.1
@EndOfDesignText@
'Static code module
Sub Process_Globals
    'MQTT Variables
    Public BROKERHOST As String
    Private TIMERRECONNECTMQTT As Timer 
	Private TIMERSTARTPROGRAM As Timer
    Private TIMERTIMEOUTMQTT As Timer 
End Sub

' This is the main method of the application.
Sub AppStart (Args() As String)
	' Initialize TIMERRECONNECTMQTT & TIMERTIMEOUTMQTT timer
	TIMERRECONNECTMQTT.Initialize("TIMERRECONNECTMQTT", 5000)
	TIMERRECONNECTMQTT.Enabled = False
	TIMERTIMEOUTMQTT.Initialize("TIMERTIMEOUTMQTT", 10000)
	TIMERTIMEOUTMQTT.Enabled = False
	' Call the ReadINIFile method in order to read the INI file with creds for creating a MQTT Connection
	' File.DirApp returns the path where the B4J application is stored.
	Private map As Map = IniFileReader.ReadINIFile($"${File.DirApp}"$,"example.ini")
	initializeMQTTBrokerVariable(map)
    MqttConnector.initializeMQTTVariables(map)
	MqttConnector.connectoToMQTT
    ' Initialize TIMERSTARTPROGRAM timer
    TIMERSTARTPROGRAM.Initialize("TIMERSTARTPROGRAM",15000)
	TIMERSTARTPROGRAM.Enabled = True 
End Sub

#Region MQTT Connection variables

' This method will initialize the variables for the MQTT broker out of the INI file.
public Sub initializeMQTTBrokerVariable(map As Map)
	BROKERHOST = map.Get("MQTT.mqttBroker")
End Sub

Sub SetReconnectTimer
	TIMERRECONNECTMQTT.Enabled = True
End Sub

Sub TIMERRECONNECTMQTT_Tick
	TIMERRECONNECTMQTT.Enabled = False
	Logger.Logging("Trying to reconnect to MQTT broker " & BROKERHOST)
	MqttConnector.connectoToMQTT
End Sub

Public Sub SetStateTIMERTIMEOUTMQTT(timerTimeOutState As Boolean)
	TIMERTIMEOUTMQTT.Enabled = timerTimeOutState
End Sub

Sub TIMERTIMEOUTMQTT_Tick
	Logger.Logging("Can't connect to MQTT broker")
End Sub
#End Region