#ifndef WLAN_H
#define WLAN_H

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const int SLEEP_TIME = 900000000;
const int WIFI_TIMEOUT = 10000;

void initial_connection();
void connect_wlan(const int max_retries);
void connect_mqtt(PubSubClient &client, const char *device_id,
                  const char *topic);
void disconnect_mqtt(PubSubClient &client, const char *topic);
size_t construct_json(float *data, char *buffer, int buffer_size);
void mqtt_transfer(PubSubClient &client, const char *device_id,
                   const char *topic, float *data);
void enter_deep_sleep(bool wifi_timeout);

#endif /* WLAN_H */