#pragma once
#include "GwSynchronized.h"
#include "GwApi.h"
#include "freertos/semphr.h"
#include "Pagedata.h"

class SharedData{
    private:
        SemaphoreHandle_t locker;
        SensorData sensors;
    public:
        GwApi *api=NULL;
        SharedData(GwApi *api){
            locker=xSemaphoreCreateMutex();
            this->api=api;
        }
        void setSensorData(SensorData &values){
            GWSYNCHRONIZED(&locker);
            sensors=values;
        }
        SensorData getSensorData(){
            GWSYNCHRONIZED(&locker);
            return sensors;
        }
};

void createSensorTask(SharedData *shared);