//
// Created by villuton on 16.09.2025.
//

#ifndef CHARGER_DEVICESTORAGE_H
#define CHARGER_DEVICESTORAGE_H
#include "DataFlash.h"
#include "DataRuntime.h"

#include "VarsTabDumpObserver.h"

typedef struct {
    tLoggerInterface *logger;

    tDeviceDataRuntime runtime;
    tDeviceDataNonVolatile nvm;

    tVariablesTable publicVariablesTable;

    tVarsTabDumpObserver dumpObserver;

    struct {
        tVariableDescriptor vartab[64];
    } mem;

} tDeviceStorage;

bool DeviceStorage_Init(tDeviceStorage *env, tStorageInterface *storageInterface);

//использоввать только для отладки
void DeviceStorage_InitDefaults(tDeviceStorage *env);

void DeviceStorage_ForceDump(tDeviceStorage *env);

#endif //CHARGER_DEVICESTORAGE_H
