feat: 5 слотов для пультов вместо одного, v1.9

This commit is contained in:
Aleksei
2026-06-17 13:28:26 +00:00
parent 056f4030e1
commit a40d324ab6
+26 -10
View File
@@ -19,7 +19,7 @@
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT #define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
#define AP_SSID "Barrier-Setup" #define AP_SSID "Barrier-Setup"
#define FW_VERSION "1.8" #define FW_VERSION "1.9"
#define AP_PASS "barrier123" #define AP_PASS "barrier123"
Preferences prefs; Preferences prefs;
@@ -37,7 +37,7 @@ String cfg_token = "barrier_token_2026";
String cfg_self_ip = ""; // пусто = DHCP String cfg_self_ip = ""; // пусто = DHCP
String cfg_gateway = ""; String cfg_gateway = "";
String cfg_subnet = "255.255.255.0"; String cfg_subnet = "255.255.255.0";
String cfg_peer_ip = ""; String cfg_peers[5] = {"", "", "", "", ""};
unsigned long lastPress1 = 0; unsigned long lastPress1 = 0;
unsigned long lastPress2 = 0; unsigned long lastPress2 = 0;
@@ -82,7 +82,9 @@ void loadConfig() {
cfg_self_ip = prefs.getString("self_ip", ""); cfg_self_ip = prefs.getString("self_ip", "");
cfg_gateway = prefs.getString("gateway", ""); cfg_gateway = prefs.getString("gateway", "");
cfg_subnet = prefs.getString("subnet", "255.255.255.0"); cfg_subnet = prefs.getString("subnet", "255.255.255.0");
cfg_peer_ip = prefs.getString("peer_ip", ""); for (int i = 0; i < 5; i++) {
cfg_peers[i] = prefs.getString(("peer" + String(i)).c_str(), "");
}
prefs.end(); prefs.end();
} }
@@ -96,17 +98,21 @@ void saveConfig() {
prefs.putString("self_ip", cfg_self_ip); prefs.putString("self_ip", cfg_self_ip);
prefs.putString("gateway", cfg_gateway); prefs.putString("gateway", cfg_gateway);
prefs.putString("subnet", cfg_subnet); prefs.putString("subnet", cfg_subnet);
prefs.putString("peer_ip", cfg_peer_ip); for (int i = 0; i < 5; i++) {
prefs.putString(("peer" + String(i)).c_str(), cfg_peers[i]);
}
prefs.end(); prefs.end();
} }
void notifyPeer(int btn) { void notifyPeer(int btn) {
if (cfg_peer_ip.length() == 0) return; for (int i = 0; i < 5; i++) {
if (cfg_peers[i].length() == 0) continue;
HTTPClient http; HTTPClient http;
http.begin("http://" + cfg_peer_ip + "/peer_led?b=" + String(btn)); http.begin("http://" + cfg_peers[i] + "/peer_led?b=" + String(btn));
http.addHeader("X-Token", cfg_token); http.addHeader("X-Token", cfg_token);
http.GET(); http.GET();
http.end(); http.end();
}
} }
void sendCommand(String ip) { void sendCommand(String ip) {
@@ -200,9 +206,17 @@ input[type=text]:focus,input[type=password]:focus{outline:none;border-color:#219
<input type='password' name='pass' placeholder='оставь пустым не менять'> <input type='password' name='pass' placeholder='оставь пустым не менять'>
<hr class='sep'> <hr class='sep'>
<h3>Второй пульт</h3> <h3>Другие пульты (синхронизация LED)</h3>
<label>IP второго пульта <span class='hint'>(пусто = не синхронизировать)</span></label> <label>Пульт 1 <span class='hint'>(пусто = не использовать)</span></label>
<input type='text' name='peer_ip' value=')" + cfg_peer_ip + R"(' placeholder='например 192.168.15.21'> <input type='text' name='peer0' value=')" + cfg_peers[0] + R"(' placeholder='192.168.15.x'>
<label>Пульт 2 <span class='hint'>(пусто = не использовать)</span></label>
<input type='text' name='peer1' value=')" + cfg_peers[1] + R"(' placeholder='192.168.15.x'>
<label>Пульт 3 <span class='hint'>(пусто = не использовать)</span></label>
<input type='text' name='peer2' value=')" + cfg_peers[2] + R"(' placeholder='192.168.15.x'>
<label>Пульт 4 <span class='hint'>(пусто = не использовать)</span></label>
<input type='text' name='peer3' value=')" + cfg_peers[3] + R"(' placeholder='192.168.15.x'>
<label>Пульт 5 <span class='hint'>(пусто = не использовать)</span></label>
<input type='text' name='peer4' value=')" + cfg_peers[4] + R"(' placeholder='192.168.15.x'>
<hr class='sep'> <hr class='sep'>
<h3>IP этого устройства</h3> <h3>IP этого устройства</h3>
@@ -262,7 +276,9 @@ void setupRoutes() {
cfg_self_ip = server.arg("self_ip"); cfg_self_ip = server.arg("self_ip");
cfg_gateway = server.arg("gateway"); cfg_gateway = server.arg("gateway");
cfg_subnet = server.arg("subnet"); cfg_subnet = server.arg("subnet");
cfg_peer_ip = server.arg("peer_ip"); for (int i = 0; i < 5; i++) {
cfg_peers[i] = server.arg(("peer" + String(i)).c_str());
}
String np = server.arg("pass"); String np = server.arg("pass");
if (np.length() > 0) cfg_pass = np; if (np.length() > 0) cfg_pass = np;
saveConfig(); saveConfig();