mirror of
https://github.com/AlexGyver/GyverLamp2.git
synced 2025-08-07 08:40:35 +03:00
105 lines
3.8 KiB
C
105 lines
3.8 KiB
C
// -------------- ВНУТР. КОНСТАНТЫ ---------------
|
||
#define GL_ADC_NONE 1
|
||
#define GL_ADC_BRI 2
|
||
#define GL_ADC_MIC 3
|
||
#define GL_ADC_BOTH 4
|
||
#define GL_TYPE_STRIP 1
|
||
#define GL_TYPE_ZIG 2
|
||
#define GL_TYPE_PARAL 3
|
||
#define GL_MUS_NONE 1
|
||
#define GL_MUS_VOL 2
|
||
#define GL_MUS_LOW 3
|
||
#define GL_MUS_HIGH 4
|
||
#define GL_REACT_BRI 1
|
||
#define GL_REACT_SCL 2
|
||
#define GL_REACT_LEN 3
|
||
#define GL_SLAVE 0
|
||
#define GL_MASTER 1
|
||
|
||
// ------------------- МАКРО --------------------
|
||
#ifdef DEBUG_SERIAL
|
||
#define DEBUGLN(x) Serial.println(x)
|
||
#define DEBUG(x) Serial.print(x)
|
||
#else
|
||
#define DEBUGLN(x)
|
||
#define DEBUG(x)
|
||
#endif
|
||
|
||
#define FOR_i(x,y) for (int i = (x); i < (y); i++)
|
||
#define FOR_j(x,y) for (int j = (x); j < (y); j++)
|
||
#define CUR_PRES preset[cfg.curPreset]
|
||
|
||
byte scaleFF(byte x, byte b) {
|
||
return ((uint16_t)x * (b + 1)) >> 8;
|
||
}
|
||
int mapFF(byte x, byte min, byte max) {
|
||
return (((max - min) * x + (min << 8) + 1) >> 8);
|
||
}
|
||
|
||
const char OTAhost[] = "http://ota.alexgyver.ru/GL2_latest.bin";
|
||
|
||
const char *NTPservers[] = {
|
||
"pool.ntp.org",
|
||
"europe.pool.ntp.org",
|
||
"ntp1.stratum2.ru",
|
||
"ntp2.stratum2.ru",
|
||
"ntp.msk-ix.ru",
|
||
};
|
||
|
||
#define CFG_SIZE 13
|
||
struct Config {
|
||
byte GMT = 3; // часовой пояс +13
|
||
byte NTP = 1; // 1..5 ВЫЧЕСТЬ 1
|
||
byte bright = 100; // яркость
|
||
byte adcMode = 1; // режим ацп (1 выкл, 2 ярк, 3 муз)
|
||
byte minBright = 0; // мин яркость
|
||
byte maxBright = 255; // макс яркость
|
||
byte rotation = 0; // смена режимов: 0 ручная, 1 авто
|
||
byte rotRnd = 0; // тип автосмены: 0 в порядке, 1 рандом
|
||
byte rotPeriod = 1; // период смены (1,5..)
|
||
byte deviceType = 1; // 1 лента, 2 зигзаг, 3 параллел
|
||
byte maxCur = 5; // макс ток (мА/100)
|
||
byte workFrom = 0; // часы работы (0,1.. 23)
|
||
byte workTo = 0; // часы работы (0,1.. 23)
|
||
|
||
int length = 100; // длина ленты
|
||
int width = 1; // ширина матрицы
|
||
|
||
byte state = 1; // состояние 0 выкл, 1 вкл
|
||
byte group = 1; // группа девайса (1-10)
|
||
byte role = 0; // 0 slave, 1 master
|
||
byte WiFimode = 0; // 0 AP, 1 local
|
||
byte presetAmount = 1; // количество режимов
|
||
byte manualOff = 0; // выключали вручную?
|
||
int8_t curPreset = 0; // текущий режим
|
||
int minLight = 0; // мин освещённость
|
||
int maxLight = 1023; // макс освещённость
|
||
char ssid[16]; // логин wifi
|
||
char pass[16]; // пароль wifi
|
||
};
|
||
|
||
#define PRES_SIZE 13
|
||
struct Preset {
|
||
byte effect = 1; // тип эффекта (1,2...) ВЫЧЕСТЬ 1
|
||
byte fadeBright = 0; // флаг на свою яркость (0/1)
|
||
byte bright = 100; // своя яркость (0.. 255)
|
||
byte soundMode = 1; // тип звука (1,2...) ВЫЧЕСТЬ 1
|
||
byte soundReact = 1; // реакция на звук (1,2...) ВЫЧЕСТЬ 1
|
||
byte min = 0; // мин сигнал светомузыки (0.. 255)
|
||
byte max = 0; // макс сигнал светомузыки (0.. 255)
|
||
byte speed = 10; // скорость (0.. 255)
|
||
byte palette = 1; // палитра (1,2...) ВЫЧЕСТЬ 1
|
||
byte scale = 1; // масштаб (0.. 255)
|
||
byte fromCenter = 0; // эффект из центра (0/1)
|
||
byte color = 0; // цвет (0.. 255)
|
||
byte rnd = 0; // случайный (0/1)
|
||
};
|
||
|
||
struct Dawn {
|
||
byte state[7] = {0, 0, 0, 0, 0, 0, 0}; // (1/0)
|
||
byte hour[7] = {0, 0, 0, 0, 0, 0, 0}; // (0.. 59)
|
||
byte minute[7] = {0, 0, 0, 0, 0, 0, 0}; // (0.. 59)
|
||
byte bright = 100; // (0.. 255)
|
||
byte time = 1; // (5,10,15,20..)
|
||
};
|