// config.h
#ifndef CONFIG_H
#define CONFIG_H

#define SERIAL_SPEED 115200

//Adatta il pinout in base al tuo hardaware:
#define RELE_LUCI PB8
#define RELE_ASPIRATORE PB5
#define RELE_STUFA PB14
#define RELE_POMPA1 PB12
#define RELE_POMPA2 PB13
#define DHT_PIN PB1
#define SOIL_SENSOR PA2

#define MAX_TIMER_STEPS 16
#define SERIAL_SPEED 115200


const char* STORED_TOKEN = "password";//imposta la tua password dovra` corrispondere con quella messa in app

//imposta i tuoi dati:
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 178, 133);
IPAddress dns(192, 168, 178, 1);
IPAddress gw(192, 168, 178, 1);
IPAddress sn(255, 255, 255, 0);
WebSocketsServer webSocket = WebSocketsServer(81);


// Definizioni per la gestione della memoria FLASH
#define FLASH_START_ADDR        0x0801F000
#define FLASH_PAGE_SIZE         1024

// Chiavi di accesso alla FLASH
#define FLASH_KEY1              0x45670123
#define FLASH_KEY2              0xCDEF89AB

// Registri di controllo FLASH
typedef volatile uint32_t* reg32;
#define FLASH_R_BASE           0x40022000
#define FLASH_ACR              (reg32)(FLASH_R_BASE + 0x00)  // Registro di controllo accesso
#define FLASH_KEYR             (reg32)(FLASH_R_BASE + 0x04)  // Registro chiave
#define FLASH_SR               (reg32)(FLASH_R_BASE + 0x0C)  // Registro di stato
#define FLASH_CR               (reg32)(FLASH_R_BASE + 0x10)  // Registro di controllo
#define FLASH_AR               (reg32)(FLASH_R_BASE + 0x14)  // Registro indirizzo

// Numero magico per validazione settings
#define NUMERO_MAGICO          0xAB12CD34

#define NTP_PACKET_SIZE 48
#define TIME_ZONE 1     // GMT+1 per Italia
#define TIME_ZONE_OFFSET 3600  // Offset in secondi
#endif

