Verbesserung Settings Menü

This commit is contained in:
FCS committed 2026-08-30 12:18:17 +02:00
1 parent 333d87af3e
commit f468f09ad2
1 file changed
+29 -9
+29 -9
View File
@@ -173,15 +173,22 @@ void send_page(const String &message = String())
page += html_escape(active_settings->access_point_name);
page += F("'></label><label>WLAN-Passwort<input name='ap_password' type='password' minlength='8' maxlength='63' required value='");
page += html_escape(active_settings->access_point_password);
page += F("'></label><label>Callsign<input name='callsign' maxlength='16' required value='");
page += F("'></label>");
#ifdef DEVICE_SAILPLANE
page += F("<label>Callsign<input name='callsign' maxlength='16' required value='");
page += html_escape(active_settings->callsign);
page += F("'></label><label>Min Speed (km/h)<input name='min' type='number' min='0' max='300' required value='");
page += String(active_settings->min_speed);
page += F("'></label><label>Max Speed (km/h)<input name='max' type='number' min='1' max='300' required value='");
page += String(active_settings->max_speed);
page += F("'></label><label>Uebertragungszeit (Sekunden)<input name='active_time' type='number' min='1' max='600' required value='");
page += F("'></label>");
#endif
#ifdef DEVICE_SAILPLANE
page += F("<label>Uebertragungszeit (Sekunden)<input name='active_time' type='number' min='1' max='600' required value='");
page += String(active_settings->active_time_seconds);
page += F("'></label><button type='submit'>Speichern</button></form>"
page += F("'></label>");
#endif
page += F("<button type='submit'>Speichern</button></form>"
"<h2>Firmware aktualisieren</h2><form method='post' action='/update' enctype='multipart/form-data'>"
"<input name='firmware' type='file' accept='.bin' required><button type='submit'>Upload starten</button>"
"</form><p><small>Access Point: ");
@@ -192,18 +199,27 @@ void send_page(const String &message = String())
bool parse_settings(TelemetrySettings &settings)
{
#ifdef DEVICE_SAILPLANE
String callsign = server.arg("callsign");
String access_point_name = server.arg("ap_name");
String access_point_password = server.arg("ap_password");
int min_speed = server.arg("min").toInt();
int max_speed = server.arg("max").toInt();
int active_time_seconds = server.arg("active_time").toInt();
callsign.trim();
if (callsign.length() == 0 || callsign.length() > 16 || min_speed < 0 || max_speed > 300 || min_speed >= max_speed || active_time_seconds < 1 || active_time_seconds > 600)
return false;
#else
String callsign = settings.callsign;
int min_speed = settings.min_speed;
int max_speed = settings.max_speed;
int active_time_seconds = settings.active_time_seconds;
#endif
String access_point_name = server.arg("ap_name");
String access_point_password = server.arg("ap_password");
access_point_name.trim();
access_point_password.trim();
if (callsign.length() == 0 || callsign.length() > 16 || access_point_password.length() < 8 || access_point_password.length() > 63 || min_speed < 0 || max_speed > 300 ||
min_speed >= max_speed || active_time_seconds < 1 || active_time_seconds > 600)
if (access_point_password.length() < 8 || access_point_password.length() > 63)
return false;
settings.callsign = callsign;
@@ -329,8 +345,12 @@ bool webinterface_begin(TelemetrySettings &settings)
settings.min_speed = preferences.getInt("min", default_min_speed);
settings.max_speed = preferences.getInt("max", default_max_speed);
settings.active_time_seconds = preferences.getUInt("active_time", default_active_time_seconds);
if (settings.access_point_name.length() == 0 || settings.access_point_name.length() > 32 || settings.access_point_password.length() < 8 || settings.access_point_password.length() > 63 || settings.callsign.length() == 0 || settings.min_speed < 0 || settings.min_speed >= settings.max_speed ||
settings.max_speed > 300 || settings.active_time_seconds < 1 || settings.active_time_seconds > 600)
bool settings_valid = settings.access_point_name.length() > 0 && settings.access_point_name.length() <= 32 && settings.access_point_password.length() >= 8 && settings.access_point_password.length() <= 63;
#ifdef DEVICE_SAILPLANE
settings_valid = settings_valid && settings.callsign.length() > 0 && settings.min_speed >= 0 && settings.min_speed < settings.max_speed && settings.max_speed <= 300 && settings.active_time_seconds >= 1 && settings.active_time_seconds <= 600;
#endif
if (!settings_valid)
{
settings.callsign = default_callsign;
settings.access_point_name = default_access_point_name();