#ifndef VIEWS_H
#define VIEWS_H

#include "SAB.h"

typedef struct view1Packet
{
  DateTime dateTime;
  float sdCardSize;
  PowerManager::PowerInfo powerInfo;
  unsigned char nbViews;
  const char *version;
  SAB *sab;
} View1Packet;

//Global info
boolean view_1(Adafruit_SSD1306 &display, void *pData);

typedef struct viewAPPacket
{
  String macAddr;
  String ssid;
  IPAddress ipAddr;
  uint8_t nbOfCon;
  boolean enabled;
} ViewAPPacket;

//AP info
boolean view_2(Adafruit_SSD1306 &display, void *pData);

typedef struct viewSTAPacket
{
  String macAddr;
  IPAddress ipAddr;
  int sigStrength;
  boolean enabled;
} ViewSTAPacket;

//STA info
boolean view_3(Adafruit_SSD1306 &display, void *pData);

//Memory INFO
boolean memInfo(Adafruit_SSD1306 &display, void *pData);

//For testing purposes
boolean dummy(Adafruit_SSD1306 &display, void *pData);

//IO Info View
boolean ioInfo(Adafruit_SSD1306 &display, void *pData);
typedef struct viewIoInfoPacket
{
  boolean ioState[8];
  boolean ioMode[8];
}ViewIoInfoPacket;

//System Error View
boolean sysErrorInfo(Adafruit_SSD1306 &display, void *pData);

#endif //VIEWS_H
