#ifndef CCHALET_H
#define CCHALET_H

#include "ChaletGui.h"
#include <QObject>
#include <QTimer>
#include "ChaletData.h"

class CChaletMasterCtrlInterface;

class CChalet : public QObject
{
    Q_OBJECT
public:
    explicit CChalet(CChaletGui *ChaletGuiPtr);
    ~CChalet();

    CChaletGui *mChaletGui;
    CChaletMasterCtrlInterface *mNetworkInterface;

    QTimer *mChaletPollTimer;


    int Start();
    int ChaletStatusReceived(CChaletMainStatus Status);
    int ChaletLogReceived(QByteArray *Log);
    int ConnectedToMaster(bool connected);
    int ChaletCommActivity();

    int WiFiToggleButtonPressed(bool RequestedState);
    int InverterToggleButtonPressed(bool RequestedState);
    int DoHarakiriButtonClicked(bool Verified);
    int RebootCPUButtonPressed();
    int RequestChaletLogs(QDate StartDate);
    int RequestDeviceWifiParams();
    int DeviceWiFiParamsReceived(QByteArray *Data);
    int SetDeviceWifiParams(QString IP, QString Gateway, bool UseDHCP, QString APName, QString APPwd);
    int RequestFirmwareVersion();
    int DeviceFirmwareVersionReceived(QByteArray Data);
    int RequestClearCommStats();
    int RequestWifiStatus();
    int WifiStatusReceived(QByteArray Data);

signals:

public slots:
    void ChaletPollTimerExpired();

};

#endif // CCHALET_H
