#ifndef CHARGER_MAIN_ENV_H
#define CHARGER_MAIN_ENV_H

#include "Adcs.h"
#include "Gpios.h"
#include "Indication.h"
#include "SerialPorts.h"
#include "DeviceStorage.h"
#include "StorageOnFlash.h"
#include "LoggerToSerialPort.h"

typedef struct {
    tAdcs adcs;
    tGpios gpios;
    tIndication indication;
    tSerialPorts *serialPorts;
    tDeviceStorage storage;
    tStorageOnFlash *flash;
    tLoggerToSerialPort slog;

    struct {
        osThreadId_t id;
        uint32_t stack[2048];
        StaticTask_t controlBlock;
        osThreadAttr_t attr;
    } thread;

    struct {
        uint32_t timer;
        bool check;
        float chanel_value;
        eChargerChannels currentChanel;
    }processing;
}tMain;
#endif //CHARGER_MAIN_ENV_H