Use constants for setting default values, bring back wifi config portal timeout setting
This commit is contained in:
parent
1d710ba7f7
commit
8e71f29d10
12 changed files with 122 additions and 86 deletions
2
data
2
data
|
@ -1 +1 @@
|
||||||
Subproject commit 124c810e291a0c642da619f3c00109240c7a061a
|
Subproject commit 2363d98965bb1fdbfdf5d130b41732f5b864e2d0
|
|
@ -89,7 +89,7 @@ void setupBlockNotify()
|
||||||
xQueueSend(workQueue, &blockUpdate, portMAX_DELAY);
|
xQueueSend(workQueue, &blockUpdate, portMAX_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!preferences.getBool("fetchEurPrice", false) && preferences.getBool("ownDataSource", true))
|
if (!preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE) && preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ void setupBlockNotify()
|
||||||
// std::strcpy(wsServer, String("wss://" + mempoolInstance +
|
// std::strcpy(wsServer, String("wss://" + mempoolInstance +
|
||||||
// "/api/v1/ws").c_str());
|
// "/api/v1/ws").c_str());
|
||||||
|
|
||||||
const String protocol = preferences.getBool("mempoolSecure", true) ? "wss" : "ws";
|
const String protocol = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE) ? "wss" : "ws";
|
||||||
|
|
||||||
String mempoolUri = protocol + "://" + preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE) + "/api/v1/ws";
|
String mempoolUri = protocol + "://" + preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE) + "/api/v1/ws";
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ void onWebsocketBlockMessage(esp_websocket_event_data_t *event_data)
|
||||||
// xTaskNotifyGive(blockUpdateTaskHandle);
|
// xTaskNotifyGive(blockUpdateTaskHandle);
|
||||||
|
|
||||||
if (getCurrentScreen() != SCREEN_BLOCK_HEIGHT &&
|
if (getCurrentScreen() != SCREEN_BLOCK_HEIGHT &&
|
||||||
preferences.getBool("stealFocus", false))
|
preferences.getBool("stealFocus", DEFAULT_STEAL_FOCUS))
|
||||||
{
|
{
|
||||||
uint64_t timerPeriod = 0;
|
uint64_t timerPeriod = 0;
|
||||||
if (isTimerActive())
|
if (isTimerActive())
|
||||||
|
@ -203,7 +203,7 @@ void onWebsocketBlockMessage(esp_websocket_event_data_t *event_data)
|
||||||
vTaskDelay(pdMS_TO_TICKS(315*NUM_SCREENS)); // Extra delay because of screen switching
|
vTaskDelay(pdMS_TO_TICKS(315*NUM_SCREENS)); // Extra delay because of screen switching
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preferences.getBool("ledFlashOnUpd", false))
|
if (preferences.getBool("ledFlashOnUpd", DEFAULT_LED_FLASH_ON_UPD))
|
||||||
{
|
{
|
||||||
vTaskDelay(pdMS_TO_TICKS(250)); // Wait until screens are updated
|
vTaskDelay(pdMS_TO_TICKS(250)); // Wait until screens are updated
|
||||||
queueLedEffect(LED_FLASH_BLOCK_NOTIFY);
|
queueLedEffect(LED_FLASH_BLOCK_NOTIFY);
|
||||||
|
@ -300,9 +300,9 @@ int getBlockFetch()
|
||||||
// Get current block height through regular API
|
// Get current block height through regular API
|
||||||
HTTPClient http;
|
HTTPClient http;
|
||||||
|
|
||||||
const String protocol = preferences.getBool("mempoolSecure", true) ? "https" : "http";
|
const String protocol = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE) ? "https" : "http";
|
||||||
|
|
||||||
if (preferences.getBool("mempoolSecure", true))
|
if (preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE))
|
||||||
http.begin(client, protocol + "://" + mempoolInstance + "/api/blocks/tip/height");
|
http.begin(client, protocol + "://" + mempoolInstance + "/api/blocks/tip/height");
|
||||||
else
|
else
|
||||||
http.begin(protocol + "://" + mempoolInstance + "/api/blocks/tip/height");
|
http.begin(protocol + "://" + mempoolInstance + "/api/blocks/tip/height");
|
||||||
|
|
|
@ -24,7 +24,7 @@ void setup()
|
||||||
setupHardware();
|
setupHardware();
|
||||||
|
|
||||||
setupDisplays();
|
setupDisplays();
|
||||||
if (preferences.getBool("ledTestOnPower", true))
|
if (preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER))
|
||||||
{
|
{
|
||||||
queueLedEffect(LED_POWER_TEST);
|
queueLedEffect(LED_POWER_TEST);
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ void setup()
|
||||||
waitUntilNoneBusy();
|
waitUntilNoneBusy();
|
||||||
|
|
||||||
#ifdef HAS_FRONTLIGHT
|
#ifdef HAS_FRONTLIGHT
|
||||||
if (!preferences.getBool("flAlwaysOn", false))
|
if (!preferences.getBool("flAlwaysOn", DEFAULT_FL_ALWAYS_ON))
|
||||||
{
|
{
|
||||||
frontlightFadeOutAll(preferences.getUInt("flEffectDelay"), true);
|
frontlightFadeOutAll(preferences.getUInt("flEffectDelay"), true);
|
||||||
flArray.allOFF();
|
flArray.allOFF();
|
||||||
|
@ -91,24 +91,21 @@ void tryImprovSetup()
|
||||||
WiFi.setAutoConnect(true);
|
WiFi.setAutoConnect(true);
|
||||||
WiFi.setAutoReconnect(true);
|
WiFi.setAutoReconnect(true);
|
||||||
WiFi.begin();
|
WiFi.begin();
|
||||||
if (preferences.getInt("txPower", 0))
|
if (preferences.getInt("txPower", DEFAULT_TX_POWER))
|
||||||
{
|
{
|
||||||
if (WiFi.setTxPower(
|
if (WiFi.setTxPower(
|
||||||
static_cast<wifi_power_t>(preferences.getInt("txPower", 0))))
|
static_cast<wifi_power_t>(preferences.getInt("txPower", DEFAULT_TX_POWER))))
|
||||||
{
|
{
|
||||||
Serial.printf("WiFi max tx power set to %d\n",
|
Serial.printf("WiFi max tx power set to %d\n",
|
||||||
preferences.getInt("txPower", 0));
|
preferences.getInt("txPower", DEFAULT_TX_POWER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!preferences.getBool("wifiConfigured", false))
|
// if (!preferences.getBool("wifiConfigured", DEFAULT_WIFI_CONFIGURED)
|
||||||
{
|
{
|
||||||
|
|
||||||
queueLedEffect(LED_EFFECT_WIFI_WAIT_FOR_CONFIG);
|
queueLedEffect(LED_EFFECT_WIFI_WAIT_FOR_CONFIG);
|
||||||
|
|
||||||
uint8_t x_buffer[16];
|
|
||||||
uint8_t x_position = 0;
|
|
||||||
|
|
||||||
bool buttonPress = false;
|
bool buttonPress = false;
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lockMcp(mcpMutex);
|
std::lock_guard<std::mutex> lockMcp(mcpMutex);
|
||||||
|
@ -128,7 +125,7 @@ void tryImprovSetup()
|
||||||
String(mac[5], 16) + String(mac[1], 16))
|
String(mac[5], 16) + String(mac[1], 16))
|
||||||
.substring(2, 10);
|
.substring(2, 10);
|
||||||
|
|
||||||
// wm.setConfigPortalTimeout(preferences.getUInt("wpTimeout", 600));
|
wm.setConfigPortalTimeout(preferences.getUInt("wpTimeout", DEFAULT_WP_TIMEOUT));
|
||||||
wm.setWiFiAutoReconnect(false);
|
wm.setWiFiAutoReconnect(false);
|
||||||
wm.setDebugOutput(false);
|
wm.setDebugOutput(false);
|
||||||
wm.setConfigPortalBlocking(true);
|
wm.setConfigPortalBlocking(true);
|
||||||
|
@ -228,13 +225,13 @@ void tryImprovSetup()
|
||||||
|
|
||||||
void syncTime()
|
void syncTime()
|
||||||
{
|
{
|
||||||
configTime(preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS), 0,
|
configTime(preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS), 0,
|
||||||
NTP_SERVER);
|
NTP_SERVER);
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
|
|
||||||
while (!getLocalTime(&timeinfo))
|
while (!getLocalTime(&timeinfo))
|
||||||
{
|
{
|
||||||
configTime(preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS), 0,
|
configTime(preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS), 0,
|
||||||
NTP_SERVER);
|
NTP_SERVER);
|
||||||
delay(500);
|
delay(500);
|
||||||
Serial.println(F("Retry set time"));
|
Serial.println(F("Retry set time"));
|
||||||
|
@ -249,8 +246,8 @@ void setupPreferences()
|
||||||
|
|
||||||
setFgColor(preferences.getUInt("fgColor", DEFAULT_FG_COLOR));
|
setFgColor(preferences.getUInt("fgColor", DEFAULT_FG_COLOR));
|
||||||
setBgColor(preferences.getUInt("bgColor", DEFAULT_BG_COLOR));
|
setBgColor(preferences.getUInt("bgColor", DEFAULT_BG_COLOR));
|
||||||
setBlockHeight(preferences.getUInt("blockHeight", 816000));
|
setBlockHeight(preferences.getUInt("blockHeight", INITIAL_BLOCK_HEIGHT));
|
||||||
setPrice(preferences.getUInt("lastPrice", 30000));
|
setPrice(preferences.getUInt("lastPrice", INITIAL_LAST_PRICE));
|
||||||
|
|
||||||
screenNameMap[SCREEN_BLOCK_HEIGHT] = "Block Height";
|
screenNameMap[SCREEN_BLOCK_HEIGHT] = "Block Height";
|
||||||
screenNameMap[SCREEN_BLOCK_FEE_RATE] = "Block Fee Rate";
|
screenNameMap[SCREEN_BLOCK_FEE_RATE] = "Block Fee Rate";
|
||||||
|
@ -265,7 +262,7 @@ void setupWebsocketClients(void *pvParameters)
|
||||||
{
|
{
|
||||||
setupBlockNotify();
|
setupBlockNotify();
|
||||||
|
|
||||||
if (preferences.getBool("fetchEurPrice", false))
|
if (preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE))
|
||||||
{
|
{
|
||||||
setupPriceFetchTask();
|
setupPriceFetchTask();
|
||||||
}
|
}
|
||||||
|
@ -287,7 +284,7 @@ void setupTimers()
|
||||||
|
|
||||||
void finishSetup()
|
void finishSetup()
|
||||||
{
|
{
|
||||||
if (preferences.getBool("ledStatus", false))
|
if (preferences.getBool("ledStatus", DEFAULT_LED_STATUS))
|
||||||
{
|
{
|
||||||
restoreLedState();
|
restoreLedState();
|
||||||
}
|
}
|
||||||
|
@ -711,7 +708,7 @@ String getMyHostname()
|
||||||
// WiFi.macAddress(mac);
|
// WiFi.macAddress(mac);
|
||||||
esp_efuse_mac_get_default(mac);
|
esp_efuse_mac_get_default(mac);
|
||||||
char hostname[15];
|
char hostname[15];
|
||||||
String hostnamePrefix = preferences.getString("hostnamePrefix", "btclock");
|
String hostnamePrefix = preferences.getString("hostnamePrefix", DEFAULT_HOSTNAME_PREFIX);
|
||||||
snprintf(hostname, sizeof(hostname), "%s-%02x%02x%02x", hostnamePrefix,
|
snprintf(hostname, sizeof(hostname), "%s-%02x%02x%02x", hostnamePrefix,
|
||||||
mac[3], mac[4], mac[5]);
|
mac[3], mac[4], mac[5]);
|
||||||
return hostname;
|
return hostname;
|
||||||
|
@ -734,16 +731,16 @@ void setupFrontlight()
|
||||||
|
|
||||||
if (!preferences.isKey("flMaxBrightness"))
|
if (!preferences.isKey("flMaxBrightness"))
|
||||||
{
|
{
|
||||||
preferences.putUInt("flMaxBrightness", 2048);
|
preferences.putUInt("flMaxBrightness", DEFAULT_FL_MAX_BRIGHTNESS);
|
||||||
}
|
}
|
||||||
if (!preferences.isKey("flEffectDelay"))
|
if (!preferences.isKey("flEffectDelay"))
|
||||||
{
|
{
|
||||||
preferences.putUInt("flEffectDelay", 15);
|
preferences.putUInt("flEffectDelay", DEFAULT_FL_EFFECT_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!preferences.isKey("flFlashOnUpd"))
|
if (!preferences.isKey("flFlashOnUpd"))
|
||||||
{
|
{
|
||||||
preferences.putBool("flFlashOnUpd", false);
|
preferences.putBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,17 +26,12 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define NTP_SERVER "pool.ntp.org"
|
#define NTP_SERVER "pool.ntp.org"
|
||||||
#define DEFAULT_MEMPOOL_INSTANCE "mempool.space"
|
#define DEFAULT_TIME_OFFSET_SECONDS 3600
|
||||||
#define TIME_OFFSET_SECONDS 3600
|
|
||||||
#define USER_AGENT "BTClock/3.0"
|
#define USER_AGENT "BTClock/3.0"
|
||||||
#ifndef MCP_DEV_ADDR
|
#ifndef MCP_DEV_ADDR
|
||||||
#define MCP_DEV_ADDR 0x20
|
#define MCP_DEV_ADDR 0x20
|
||||||
#endif
|
#endif
|
||||||
#define DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE 30
|
|
||||||
#define DEFAULT_MINUTES_FULL_REFRESH 60
|
|
||||||
|
|
||||||
#define DEFAULT_FG_COLOR GxEPD_WHITE
|
|
||||||
#define DEFAULT_BG_COLOR GxEPD_BLACK
|
|
||||||
|
|
||||||
void setup();
|
void setup();
|
||||||
void syncTime();
|
void syncTime();
|
||||||
|
|
43
src/lib/defaults.hpp
Normal file
43
src/lib/defaults.hpp
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#define INITIAL_BLOCK_HEIGHT 851500
|
||||||
|
#define INITIAL_LAST_PRICE 50000
|
||||||
|
#define DEFAULT_TX_POWER 0
|
||||||
|
|
||||||
|
#define DEFAULT_MEMPOOL_SECURE true
|
||||||
|
#define DEFAULT_LED_TEST_ON_POWER true
|
||||||
|
#define DEFAULT_LED_FLASH_ON_UPD false
|
||||||
|
#define DEFAULT_LED_BRIGHTNESS 128
|
||||||
|
#define DEFAULT_STEAL_FOCUS false
|
||||||
|
#define DEFAULT_MCAP_BIG_CHAR true
|
||||||
|
#define DEFAULT_MDNS_ENABLED true
|
||||||
|
#define DEFAULT_OTA_ENABLED true
|
||||||
|
#define DEFAULT_FETCH_EUR_PRICE false
|
||||||
|
#define DEFAULT_USE_SATS_SYMBOL false
|
||||||
|
#define DEFAULT_USE_BLOCK_COUNTDOWN true
|
||||||
|
#define DEFAULT_SUFFIX_PRICE false
|
||||||
|
#define DEFAULT_DISABLE_LEDS false
|
||||||
|
#define DEFAULT_OWN_DATA_SOURCE true
|
||||||
|
|
||||||
|
#define DEFAULT_TIME_OFFSET_SECONDS 3600
|
||||||
|
|
||||||
|
#define DEFAULT_HOSTNAME_PREFIX "btclock"
|
||||||
|
#define DEFAULT_MEMPOOL_INSTANCE "mempool.space"
|
||||||
|
|
||||||
|
#define DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE 30
|
||||||
|
#define DEFAULT_MINUTES_FULL_REFRESH 60
|
||||||
|
|
||||||
|
#define DEFAULT_FG_COLOR GxEPD_WHITE
|
||||||
|
#define DEFAULT_BG_COLOR GxEPD_BLACK
|
||||||
|
|
||||||
|
#define DEFAULT_WP_TIMEOUT 15*60
|
||||||
|
|
||||||
|
#define DEFAULT_FL_MAX_BRIGHTNESS 2048
|
||||||
|
#define DEFAULT_FL_EFFECT_DELAY 15
|
||||||
|
|
||||||
|
#define DEFAULT_LUX_LIGHT_TOGGLE 128
|
||||||
|
#define DEFAULT_FL_ALWAYS_ON false
|
||||||
|
#define DEFAULT_FL_FLASH_ON_UPDATE false
|
||||||
|
|
||||||
|
#define DEFAULT_LED_STATUS false
|
||||||
|
#define DEFAULT_TIMER_ACTIVE true
|
||||||
|
#define DEFAULT_TIMER_SECONDS 1800
|
||||||
|
#define DEFAULT_CURRENT_SCREEN 0
|
|
@ -209,7 +209,7 @@ void ledTask(void *parameter)
|
||||||
pdPASS)
|
pdPASS)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (preferences.getBool("disableLeds", false))
|
if (preferences.getBool("disableLeds", DEFAULT_DISABLE_LEDS))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,9 @@ void ledTask(void *parameter)
|
||||||
{
|
{
|
||||||
oldLights[i] = pixels.getPixelColor(i);
|
oldLights[i] = pixels.getPixelColor(i);
|
||||||
}
|
}
|
||||||
|
#ifdef HAS_FRONTLIGHT
|
||||||
|
uint flDelayTime = preferences.getUInt("flEffectDelay");
|
||||||
|
#endif
|
||||||
switch (ledTaskParams)
|
switch (ledTaskParams)
|
||||||
{
|
{
|
||||||
case LED_POWER_TEST:
|
case LED_POWER_TEST:
|
||||||
|
@ -274,32 +276,32 @@ void ledTask(void *parameter)
|
||||||
#ifdef HAS_FRONTLIGHT
|
#ifdef HAS_FRONTLIGHT
|
||||||
bool frontlightWasOn = false;
|
bool frontlightWasOn = false;
|
||||||
|
|
||||||
if (preferences.getBool("flFlashOnUpd", false))
|
if (preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE))
|
||||||
{
|
{
|
||||||
if (frontlightOn)
|
if (frontlightOn)
|
||||||
{
|
{
|
||||||
frontlightWasOn = true;
|
frontlightWasOn = true;
|
||||||
frontlightFadeOutAll(1);
|
frontlightFadeOutAll(flDelayTime, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
frontlightFadeInAll(1);
|
frontlightFadeInAll(flDelayTime, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
blinkDelayTwoColor(250, 3, pixels.Color(224, 67, 0),
|
blinkDelayTwoColor(250, 3, pixels.Color(224, 67, 0),
|
||||||
pixels.Color(8, 2, 0));
|
pixels.Color(8, 2, 0));
|
||||||
#ifdef HAS_FRONTLIGHT
|
#ifdef HAS_FRONTLIGHT
|
||||||
if (preferences.getBool("flFlashOnUpd", false))
|
if (preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE))
|
||||||
{
|
{
|
||||||
vTaskDelay(pdMS_TO_TICKS(10));
|
vTaskDelay(pdMS_TO_TICKS(10));
|
||||||
if (frontlightWasOn)
|
if (frontlightWasOn)
|
||||||
{
|
{
|
||||||
frontlightFadeInAll(1);
|
frontlightFadeInAll(flDelayTime, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
frontlightFadeOutAll(1);
|
frontlightFadeOutAll(flDelayTime, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -397,11 +399,11 @@ void ledTask(void *parameter)
|
||||||
void setupLeds()
|
void setupLeds()
|
||||||
{
|
{
|
||||||
pixels.begin();
|
pixels.begin();
|
||||||
pixels.setBrightness(preferences.getUInt("ledBrightness", 128));
|
pixels.setBrightness(preferences.getUInt("ledBrightness", DEFAULT_LED_BRIGHTNESS));
|
||||||
pixels.clear();
|
pixels.clear();
|
||||||
pixels.show();
|
pixels.show();
|
||||||
setupLedTask();
|
setupLedTask();
|
||||||
if (preferences.getBool("ledTestOnPower", true))
|
if (preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER))
|
||||||
{
|
{
|
||||||
while (!ledTaskQueue)
|
while (!ledTaskQueue)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,7 @@ TaskHandle_t taskOtaHandle = NULL;
|
||||||
bool isOtaUpdating = false;
|
bool isOtaUpdating = false;
|
||||||
|
|
||||||
void setupOTA() {
|
void setupOTA() {
|
||||||
if (preferences.getBool("otaEnabled", true)) {
|
if (preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED)) {
|
||||||
ArduinoOTA.onStart(onOTAStart);
|
ArduinoOTA.onStart(onOTAStart);
|
||||||
|
|
||||||
ArduinoOTA.onProgress(onOTAProgress);
|
ArduinoOTA.onProgress(onOTAProgress);
|
||||||
|
|
|
@ -43,9 +43,7 @@ bool priceNotifyInit = false;
|
||||||
|
|
||||||
void setupPriceNotify()
|
void setupPriceNotify()
|
||||||
{
|
{
|
||||||
// currentPrice = preferences.get("lastPrice", 30000);
|
if (preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
|
||||||
|
|
||||||
if (preferences.getBool("ownDataSource", true))
|
|
||||||
{
|
{
|
||||||
config = {.uri = wsOwnServerPrice,
|
config = {.uri = wsOwnServerPrice,
|
||||||
.user_agent = USER_AGENT};
|
.user_agent = USER_AGENT};
|
||||||
|
@ -76,7 +74,7 @@ void onWebsocketPriceEvent(void *handler_args, esp_event_base_t base,
|
||||||
break;
|
break;
|
||||||
case WEBSOCKET_EVENT_DATA:
|
case WEBSOCKET_EVENT_DATA:
|
||||||
onWebsocketPriceMessage(data);
|
onWebsocketPriceMessage(data);
|
||||||
if (preferences.getBool("ownDataSource", true))
|
if (preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
|
||||||
{
|
{
|
||||||
onWebsocketBlockMessage(data);
|
onWebsocketBlockMessage(data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,17 +30,17 @@ void workerTask(void *pvParameters) {
|
||||||
case TASK_PRICE_UPDATE: {
|
case TASK_PRICE_UPDATE: {
|
||||||
uint price = getPrice();
|
uint price = getPrice();
|
||||||
char priceSymbol = '$';
|
char priceSymbol = '$';
|
||||||
if (preferences.getBool("fetchEurPrice", false)) {
|
if (preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE)) {
|
||||||
priceSymbol = '[';
|
priceSymbol = '[';
|
||||||
}
|
}
|
||||||
if (getCurrentScreen() == SCREEN_BTC_TICKER) {
|
if (getCurrentScreen() == SCREEN_BTC_TICKER) {
|
||||||
taskEpdContent = parsePriceData(price, priceSymbol, preferences.getBool("suffixPrice", false));
|
taskEpdContent = parsePriceData(price, priceSymbol, preferences.getBool("suffixPrice", DEFAULT_SUFFIX_PRICE));
|
||||||
} else if (getCurrentScreen() == SCREEN_MSCW_TIME) {
|
} else if (getCurrentScreen() == SCREEN_MSCW_TIME) {
|
||||||
taskEpdContent = parseSatsPerCurrency(price, priceSymbol, preferences.getBool("useSatsSymbol", false));
|
taskEpdContent = parseSatsPerCurrency(price, priceSymbol, preferences.getBool("useSatsSymbol", DEFAULT_USE_SATS_SYMBOL));
|
||||||
} else {
|
} else {
|
||||||
taskEpdContent =
|
taskEpdContent =
|
||||||
parseMarketCap(getBlockHeight(), price, priceSymbol,
|
parseMarketCap(getBlockHeight(), price, priceSymbol,
|
||||||
preferences.getBool("mcapBigChar", true));
|
preferences.getBool("mcapBigChar", DEFAULT_MCAP_BIG_CHAR));
|
||||||
}
|
}
|
||||||
|
|
||||||
setEpdContent(taskEpdContent);
|
setEpdContent(taskEpdContent);
|
||||||
|
@ -57,7 +57,7 @@ void workerTask(void *pvParameters) {
|
||||||
if (getCurrentScreen() != SCREEN_HALVING_COUNTDOWN) {
|
if (getCurrentScreen() != SCREEN_HALVING_COUNTDOWN) {
|
||||||
taskEpdContent = parseBlockHeight(getBlockHeight());
|
taskEpdContent = parseBlockHeight(getBlockHeight());
|
||||||
} else {
|
} else {
|
||||||
taskEpdContent = parseHalvingCountdown(getBlockHeight(), preferences.getBool("useBlkCountdown", true));
|
taskEpdContent = parseHalvingCountdown(getBlockHeight(), preferences.getBool("useBlkCountdown", DEFAULT_USE_BLOCK_COUNTDOWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getCurrentScreen() == SCREEN_HALVING_COUNTDOWN ||
|
if (getCurrentScreen() == SCREEN_HALVING_COUNTDOWN ||
|
||||||
|
@ -147,7 +147,7 @@ void setupTasks() {
|
||||||
&taskScreenRotateTaskHandle);
|
&taskScreenRotateTaskHandle);
|
||||||
|
|
||||||
waitUntilNoneBusy();
|
waitUntilNoneBusy();
|
||||||
setCurrentScreen(preferences.getUInt("currentScreen", 0));
|
setCurrentScreen(preferences.getUInt("currentScreen", DEFAULT_CURRENT_SCREEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupTimeUpdateTimer(void *pvParameters) {
|
void setupTimeUpdateTimer(void *pvParameters) {
|
||||||
|
@ -180,7 +180,7 @@ void setupScreenRotateTimer(void *pvParameters) {
|
||||||
|
|
||||||
esp_timer_create(&screenRotateTimerConfig, &screenRotateTimer);
|
esp_timer_create(&screenRotateTimerConfig, &screenRotateTimer);
|
||||||
|
|
||||||
if (preferences.getBool("timerActive", true)) {
|
if (preferences.getBool("timerActive", DEFAULT_TIMER_ACTIVE)) {
|
||||||
esp_timer_start_periodic(screenRotateTimer,
|
esp_timer_start_periodic(screenRotateTimer,
|
||||||
getTimerSeconds() * usPerSecond);
|
getTimerSeconds() * usPerSecond);
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ void setupScreenRotateTimer(void *pvParameters) {
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint getTimerSeconds() { return preferences.getUInt("timerSeconds", 1800); }
|
uint getTimerSeconds() { return preferences.getUInt("timerSeconds", DEFAULT_TIMER_SECONDS); }
|
||||||
|
|
||||||
bool isTimerActive() { return esp_timer_is_active(screenRotateTimer); }
|
bool isTimerActive() { return esp_timer_is_active(screenRotateTimer); }
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <utils.hpp>
|
#include <utils.hpp>
|
||||||
|
|
||||||
|
#include "defaults.hpp"
|
||||||
|
|
||||||
extern Adafruit_MCP23X17 mcp1;
|
extern Adafruit_MCP23X17 mcp1;
|
||||||
#ifdef IS_BTCLOCK_S3
|
#ifdef IS_BTCLOCK_S3
|
||||||
extern Adafruit_MCP23X17 mcp2;
|
extern Adafruit_MCP23X17 mcp2;
|
||||||
|
|
|
@ -69,7 +69,7 @@ void setupWebserver()
|
||||||
// server.on("^\\/api\\/lights\\/([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", HTTP_GET,
|
// server.on("^\\/api\\/lights\\/([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", HTTP_GET,
|
||||||
// onApiLightsSetColor);
|
// onApiLightsSetColor);
|
||||||
|
|
||||||
if (preferences.getBool("otaEnabled", true))
|
if (preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED))
|
||||||
{
|
{
|
||||||
server.on("/upload/firmware", HTTP_POST, onFirmwareUpdate, asyncFirmwareUpdateHandler);
|
server.on("/upload/firmware", HTTP_POST, onFirmwareUpdate, asyncFirmwareUpdateHandler);
|
||||||
server.on("/upload/webui", HTTP_POST, onFirmwareUpdate, asyncWebuiUpdateHandler);
|
server.on("/upload/webui", HTTP_POST, onFirmwareUpdate, asyncWebuiUpdateHandler);
|
||||||
|
@ -94,7 +94,7 @@ void setupWebserver()
|
||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
if (preferences.getBool("mdnsEnabled", true))
|
if (preferences.getBool("mdnsEnabled", DEFAULT_MDNS_ENABLED))
|
||||||
{
|
{
|
||||||
if (!MDNS.begin(getMyHostname()))
|
if (!MDNS.begin(getMyHostname()))
|
||||||
{
|
{
|
||||||
|
@ -454,7 +454,7 @@ void onApiSettingsPatch(AsyncWebServerRequest *request, JsonVariant &json)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String uintSettings[] = {"minSecPriceUpd", "fullRefreshMin", "ledBrightness", "flMaxBrightness", "flEffectDelay", "luxLightToggle"};
|
String uintSettings[] = {"minSecPriceUpd", "fullRefreshMin", "ledBrightness", "flMaxBrightness", "flEffectDelay", "luxLightToggle", "wpTimeout"};
|
||||||
|
|
||||||
for (String setting : uintSettings)
|
for (String setting : uintSettings)
|
||||||
{
|
{
|
||||||
|
@ -572,39 +572,38 @@ void onApiSettingsGet(AsyncWebServerRequest *request)
|
||||||
"minSecPriceUpd", DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE);
|
"minSecPriceUpd", DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE);
|
||||||
root["fullRefreshMin"] =
|
root["fullRefreshMin"] =
|
||||||
preferences.getUInt("fullRefreshMin", DEFAULT_MINUTES_FULL_REFRESH);
|
preferences.getUInt("fullRefreshMin", DEFAULT_MINUTES_FULL_REFRESH);
|
||||||
root["wpTimeout"] = preferences.getUInt("wpTimeout", 600);
|
root["wpTimeout"] = preferences.getUInt("wpTimeout", DEFAULT_WP_TIMEOUT);
|
||||||
root["tzOffset"] = preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS) / 60;
|
root["tzOffset"] = preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS) / 60;
|
||||||
// root["useBitcoinNode"] = preferences.getBool("useNode", false);
|
|
||||||
root["mempoolInstance"] =
|
root["mempoolInstance"] =
|
||||||
preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE);
|
preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE);
|
||||||
root["mempoolSecure"] = preferences.getBool("mempoolSecure", true);
|
root["mempoolSecure"] = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE);
|
||||||
root["ledTestOnPower"] = preferences.getBool("ledTestOnPower", true);
|
root["ledTestOnPower"] = preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER);
|
||||||
root["ledFlashOnUpd"] = preferences.getBool("ledFlashOnUpd", false);
|
root["ledFlashOnUpd"] = preferences.getBool("ledFlashOnUpd", DEFAULT_LED_FLASH_ON_UPD);
|
||||||
root["ledBrightness"] = preferences.getUInt("ledBrightness", 128);
|
root["ledBrightness"] = preferences.getUInt("ledBrightness", DEFAULT_LED_BRIGHTNESS);
|
||||||
root["stealFocus"] = preferences.getBool("stealFocus", false);
|
root["stealFocus"] = preferences.getBool("stealFocus", DEFAULT_STEAL_FOCUS);
|
||||||
root["mcapBigChar"] = preferences.getBool("mcapBigChar", true);
|
root["mcapBigChar"] = preferences.getBool("mcapBigChar", DEFAULT_MCAP_BIG_CHAR);
|
||||||
root["mdnsEnabled"] = preferences.getBool("mdnsEnabled", true);
|
root["mdnsEnabled"] = preferences.getBool("mdnsEnabled", DEFAULT_MDNS_ENABLED);
|
||||||
root["otaEnabled"] = preferences.getBool("otaEnabled", true);
|
root["otaEnabled"] = preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED);
|
||||||
root["fetchEurPrice"] = preferences.getBool("fetchEurPrice", false);
|
root["fetchEurPrice"] = preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE);
|
||||||
root["useSatsSymbol"] = preferences.getBool("useSatsSymbol", false);
|
root["useSatsSymbol"] = preferences.getBool("useSatsSymbol", DEFAULT_USE_SATS_SYMBOL);
|
||||||
root["useBlkCountdown"] = preferences.getBool("useBlkCountdown", true);
|
root["useBlkCountdown"] = preferences.getBool("useBlkCountdown", DEFAULT_USE_BLOCK_COUNTDOWN);
|
||||||
root["suffixPrice"] = preferences.getBool("suffixPrice", false);
|
root["suffixPrice"] = preferences.getBool("suffixPrice", DEFAULT_SUFFIX_PRICE);
|
||||||
root["disableLeds"] = preferences.getBool("disableLeds", false);
|
root["disableLeds"] = preferences.getBool("disableLeds", DEFAULT_DISABLE_LEDS);
|
||||||
|
|
||||||
root["hostnamePrefix"] = preferences.getString("hostnamePrefix", "btclock");
|
root["hostnamePrefix"] = preferences.getString("hostnamePrefix", DEFAULT_HOSTNAME_PREFIX);
|
||||||
root["hostname"] = getMyHostname();
|
root["hostname"] = getMyHostname();
|
||||||
root["ip"] = WiFi.localIP();
|
root["ip"] = WiFi.localIP();
|
||||||
root["txPower"] = WiFi.getTxPower();
|
root["txPower"] = WiFi.getTxPower();
|
||||||
root["ownDataSource"] = preferences.getBool("ownDataSource", true);
|
root["ownDataSource"] = preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE);
|
||||||
|
|
||||||
#ifdef HAS_FRONTLIGHT
|
#ifdef HAS_FRONTLIGHT
|
||||||
root["hasFrontlight"] = true;
|
root["hasFrontlight"] = true;
|
||||||
root["flMaxBrightness"] = preferences.getUInt("flMaxBrightness", 2048);
|
root["flMaxBrightness"] = preferences.getUInt("flMaxBrightness", DEFAULT_FL_MAX_BRIGHTNESS);
|
||||||
root["flAlwaysOn"] = preferences.getBool("flAlwaysOn", false);
|
root["flAlwaysOn"] = preferences.getBool("flAlwaysOn", DEFAULT_FL_ALWAYS_ON);
|
||||||
root["flEffectDelay"] = preferences.getUInt("flEffectDelay");
|
root["flEffectDelay"] = preferences.getUInt("flEffectDelay", DEFAULT_FL_EFFECT_DELAY);
|
||||||
root["flFlashOnUpd"] = preferences.getBool("flFlashOnUpd", false);
|
root["flFlashOnUpd"] = preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE);
|
||||||
root["hasLightLevel"] = hasLightLevel();
|
root["hasLightLevel"] = hasLightLevel();
|
||||||
root["luxLightToggle"] = preferences.getUInt("luxLightToggle", 128);
|
root["luxLightToggle"] = preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE);
|
||||||
#else
|
#else
|
||||||
root["hasFrontlight"] = false;
|
root["hasFrontlight"] = false;
|
||||||
root["hasLightLevel"] = false;
|
root["hasLightLevel"] = false;
|
||||||
|
|
|
@ -48,7 +48,7 @@ extern "C" void app_main()
|
||||||
if (!getIsOTAUpdating())
|
if (!getIsOTAUpdating())
|
||||||
{
|
{
|
||||||
#ifdef HAS_FRONTLIGHT
|
#ifdef HAS_FRONTLIGHT
|
||||||
if (preferences.getUInt("luxLightToggle", 128) != 0)
|
if (preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE) != 0)
|
||||||
{
|
{
|
||||||
if (hasLightLevel() && getLightLevel() == 0)
|
if (hasLightLevel() && getLightLevel() == 0)
|
||||||
{
|
{
|
||||||
|
@ -56,11 +56,11 @@ extern "C" void app_main()
|
||||||
frontlightFadeOutAll();
|
frontlightFadeOutAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (hasLightLevel() && getLightLevel() < preferences.getUInt("luxLightToggle", 128) && !frontlightIsOn())
|
else if (hasLightLevel() && getLightLevel() < preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE) && !frontlightIsOn())
|
||||||
{
|
{
|
||||||
frontlightFadeInAll();
|
frontlightFadeInAll();
|
||||||
}
|
}
|
||||||
else if (frontlightIsOn() && getLightLevel() > preferences.getUInt("luxLightToggle", 128))
|
else if (frontlightIsOn() && getLightLevel() > preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE))
|
||||||
{
|
{
|
||||||
frontlightFadeOutAll();
|
frontlightFadeOutAll();
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ extern "C" void app_main()
|
||||||
Serial.println(F("Connection restored, reset timer."));
|
Serial.println(F("Connection restored, reset timer."));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getPriceNotifyInit() && !preferences.getBool("fetchEurPrice", false) && !isPriceNotifyConnected())
|
if (getPriceNotifyInit() && !preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE) && !isPriceNotifyConnected())
|
||||||
{
|
{
|
||||||
priceNotifyLostConnection++;
|
priceNotifyLostConnection++;
|
||||||
Serial.println(F("Lost price data connection..."));
|
Serial.println(F("Lost price data connection..."));
|
||||||
|
|
Loading…
Reference in a new issue