index mods

This commit is contained in:
richonguzman 2024-09-24 16:11:26 -03:00
parent c20521a42c
commit a44b48525c
10 changed files with 202 additions and 637 deletions

View File

@ -51,8 +51,6 @@
"maxDistanceToTracker": 30,
"standingUpdateTime": 15,
"sendAltitude": true,
"bluetoothType": 1,
"bluetoothActive": true,
"disableGPS": false
},
"winlink": {

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -544,52 +544,6 @@
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
<svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-broadcast-pin"
viewBox="0 0 16 16"
>
<path
d="M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM6 8a2 2 0 1 1 2.5 1.937V15.5a.5.5 0 0 1-1 0V9.937A2 2 0 0 1 6 8"
/>
</svg>
Digipeating
</h5>
<small>Define the Digipeater mode</small>
</div>
<div class="col-9 mt-2">
<div class="row">
<div class="col-12">
<label
for="digi.mode"
class="form-label"
>Repeater Mode</label
>
<select
class="form-select form-select"
name="digi.mode"
id="digi.mode"
>
<option value="0">off</option>
<option value="2">
WIDE1 (fill-in) Digi
</option>
<option value="3">
WIDE2 (+WIDE1) Digi
</option>
</select>
</div>
</div>
</div>
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
@ -851,14 +805,29 @@
<div class="form-check form-switch">
<input
type="checkbox"
name="display.alwaysOn"
id="display.alwaysOn"
name="display.showSymbol"
id="display.showSymbol"
class="form-check-input"
/>
<label
for="display.alwaysOn"
for="display.showSymbol"
class="form-label"
>Always On</label
>Show Symbol Drawing instead of Character</label
>
</div>
</div>
<div class="col-6">
<div class="form-check form-switch">
<input
type="checkbox"
name="display.ecoMode"
id="display.ecoMode"
class="form-check-input"
/>
<label
for="display.ecoMode"
class="form-label"
>EcoMode On</label
>
</div>
</div>
@ -927,199 +896,6 @@
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
<svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-heart-pulse-fill"
viewBox="0 0 16 16"
>
<path
d="M1.475 9C2.702 10.84 4.779 12.871 8 15c3.221-2.129 5.298-4.16 6.525-6H12a.5.5 0 0 1-.464-.314l-1.457-3.642-1.598 5.593a.5.5 0 0 1-.945.049L5.889 6.568l-1.473 2.21A.5.5 0 0 1 4 9z"
/>
<path
d="M.88 8C-2.427 1.68 4.41-2 7.823 1.143q.09.083.176.171a3 3 0 0 1 .176-.17C11.59-2 18.426 1.68 15.12 8h-2.783l-1.874-4.686a.5.5 0 0 0-.945.049L7.921 8.956 6.464 5.314a.5.5 0 0 0-.88-.091L3.732 8z"
/>
</svg>
Battery
</h5>
<small>
Battery Monitor & Health
<br>
<br>
Max Voltage on input pin is 3.3V.
<br>
<br>
Calculate voltage divider accordingly.
</small>
</div>
<div class="col-9 mt-2">
<div class="row mt-2">
<div class="col-6">
<div class="form-check form-switch">
<input
type="checkbox"
name="battery.sendInternalVoltage"
id="battery.sendInternalVoltage"
class="form-check-input"
/>
<label
for="battery.sendInternalVoltage"
class="form-label"
>Send Internal Voltage</label
>
</div>
<div class="form-check form-switch">
<input
type="checkbox"
name="battery.sendVoltageAsTelemetry"
id="battery.sendVoltageAsTelemetry"
class="form-check-input"
/>
<label
for="battery.sendVoltageAsTelemetry"
class="form-label"
style="font-style: italic;"
>(Send Voltage As Telemetry)</label
>
</div>
<div class="form-check form-switch mt-3">
<input
type="checkbox"
name="battery.monitorInternalVoltage"
id="battery.monitorInternalVoltage"
class="form-check-input"
/>
<label
for="battery.monitorInternalVoltage"
class="form-label"
>Monitor Internal Voltage Health</label
>
</div>
<div class="col">
<label for="battery.internalSleepVoltage" class="form-label"
>Internal Sleep Voltage</label
>
<div class="input-group">
<input
type="number"
name="battery.internalSleepVoltage"
id="battery.internalSleepVoltage"
placeholder="3.0"
class="form-control"
step="0.1"
min="3.0"
max="3.7"
/>
<span class="input-group-text"
>volts</span
>
</div>
</div>
</div>
<div class="col-6">
<div class="form-check form-switch">
<input
type="checkbox"
name="battery.sendExternalVoltage"
id="battery.sendExternalVoltage"
class="form-check-input"
/>
<label
for="battery.sendExternalVoltage"
class="form-label"
>Send External Voltage</label
>
</div>
<div class="form-check form-switch mt-5">
<input
type="checkbox"
name="battery.monitorExternalVoltage"
id="battery.monitorExternalVoltage"
class="form-check-input"
/>
<label
for="battery.monitorExternalVoltage"
class="form-label"
>Monitor External Voltage Health</label
>
</div>
<div class="col">
<label for="battery.externalSleepVoltage" class="form-label"
>External Sleep Voltage</label
>
<div class="input-group">
<input
type="number"
name="battery.externalSleepVoltage"
id="battery.externalSleepVoltage"
placeholder="3.0"
class="form-control"
step="0.1"
min="3.0"
max="24.0"
/>
<span class="input-group-text"
>volts</span
>
</div>
</div>
<div class="form-floating col-7 mt-3">
<input
type="text"
name="battery.externalVoltagePin"
id="battery.externalVoltagePin"
value="34"
class="form-control"
/>
<label
for="battery.externalVoltagePin"
class="form-label"
>External Voltage Pin</label
>
</div>
<div class="col">
<label for="battery.voltageDividerR1" class="form-label">External Voltage divider R1</label>
<div class="input-group">
<input
type="number"
name="battery.voltageDividerR1"
id="battery.voltageDividerR1"
placeholder="100.0"
class="form-control"
step="0.1"
min="1"
max="1000"
/>
<span class="input-group-text">kOhm</span>
</div>
</div>
<div class="col">
<label for="battery.voltageDividerR2" class="form-label">External Voltage divider R2</label>
<div class="input-group">
<input
type="number"
name="battery.voltageDividerR2"
id="battery.voltageDividerR2"
placeholder="27.0"
class="form-control"
step="0.1"
min="1"
max="1000"
/>
<span class="input-group-text">kOhm</span>
</div>
</div>
</div>
</div>
</div>
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
@ -1135,9 +911,9 @@
d="M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM6 8a2 2 0 1 1 2.5 1.937V15.5a.5.5 0 0 1-1 0V9.937A2 2 0 0 1 6 8"
/>
</svg>
Telemetry
Wx Telemetry
</h5>
<small>Define Wx telemetry</small>
<small>Define Wx Telemetry (Wx Data will only be sended when Station doesn't move for at least 15 min)</small>
</div>
<div class="col-9 mt-2">
<div class="row">
@ -1161,25 +937,6 @@
</div>
</div>
<div class="row mt-3">
<div class="col-6">
<label for="bme.heightCorrection" class="form-label"
>Height Correction (Above Sea-Level)</label
>
<div class="input-group">
<input
type="number"
name="bme.heightCorrection"
id="bme.heightCorrection"
placeholder="0"
class="form-control"
step="1"
min="0"
/>
<span class="input-group-text"
>meters</span
>
</div>
</div>
<div class="col-6">
<label for="bme.temperatureCorrection" class="form-label"
>Temperature Correction</label
@ -1192,14 +949,28 @@
placeholder="0.0"
class="form-control"
step="0.1"
min="-5"
max="5"
min="0"
/>
<span class="input-group-text"
>C°</span
>Celsius</span
>
</div>
</div>
<div class="col-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="bme.sendTelemetry"
id="bme.sendTelemetry"
class="form-check-input"
/>
<label
for="bme.sendTelemetry"
class="form-label"
>Send Wx Telemetry in GPS Beacon
</label>
</div>
</div>
</div>
</div>
</div>
@ -1220,58 +991,33 @@
d="M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0M9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1M4.5 9a.5.5 0 0 1 0-1h7a.5.5 0 0 1 0 1zM4 10.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5m.5 2.5a.5.5 0 0 1 0-1h4a.5.5 0 0 1 0 1z"
/>
</svg>
Syslog
BlueTooth
</h5>
<small
>Broadcast the system log over the
network.</small
>BT Classic or BLE Configuration.</small
>
</div>
<div class="col-lg-9 col-sm-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="syslog.active"
id="syslog.active"
name="bluetooth.active"
id="bluetooth.active"
class="form-check-input"
/>
<label
for="syslog.active"
for="bluetooth.active"
class="form-label"
>Enable syslog</label
>Enable bluetooth</label
>
</div>
<div class="row mt-3">
<div class="col-6">
<label
for="syslog.server"
class="form-label"
>Server</label
>
<input
type="text"
name="syslog.server"
id="syslog.server"
placeholder="192.168.0.100"
class="form-control"
disabled
/>
</div>
<div class="col-6">
<label
for="syslog.port"
class="form-label"
>Port</label
>
<input
type="text"
name="syslog.port"
id="syslog.port"
placeholder="514"
class="form-control"
disabled
/>
</div>
<div class="col-6">
<label for="bluetooth.type" class="form-label">Bluetooth Type</label>
<select name="bluetooth.type" id="bluetooth.type" class="form-control">
<option value="0">BT Classic</option>
<option value="1">BLE for iPhone</option>
<option value="2">BLE for Android</option>
</select>
</div>
</div>
</div>
@ -1301,29 +1047,26 @@
d="M2 12.161V13c0 1.007.875 1.755 1.904 2.223C4.978 15.711 6.427 16 8 16s3.022-.289 4.096-.777C13.125 14.755 14 14.007 14 13v-.839c-.457.432-1.004.751-1.49.972-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
</svg>
TNC
BATTERY
</h5>
<small
>TNC and KISS configuration</small
>BATTERY Information on GPS Beacon Configuration</small
>
</div>
<div class="col-lg-9 col-sm-12">
<div class="row">
<div class="col-12">
<div class="form-check form-switch">
<div class="form-text">
Server will be available at port <strong>8001</strong>
</div>
<input
type="checkbox"
name="tnc.enableServer"
id="tnc.enableServer"
name="battery.sendVoltage"
id="battery.sendVoltage"
class="form-check-input"
/>
<label
for="tnc.enableServer"
for="battery.sendVoltage"
class="form-label"
>Enable TNC server</label
>Send Battery Voltage in GPS Beacon</label
>
</div>
</div>
@ -1331,14 +1074,14 @@
<div class="form-check form-switch">
<input
type="checkbox"
name="tnc.enableSerial"
id="tnc.enableSerial"
name="battery.voltageAsTelemetry"
id="battery.voltageAsTelemetry"
class="form-check-input"
/>
<label
for="tnc.enableSerial"
for="battery.voltageAsTelemetry"
class="form-label"
>Enable Serial KISS</label
>Send as Encoded Telemetry</label
>
</div>
</div>
@ -1346,14 +1089,14 @@
<div class="form-check form-switch">
<input
type="checkbox"
name="tnc.acceptOwn"
id="tnc.acceptOwn"
name="battery.sendVoltageAlways"
id="battery.sendVoltageAlways"
class="form-check-input"
/>
<label
for="tnc.acceptOwn"
for="battery.sendVoltageAlways"
class="form-label"
>Accept own frames via KISS</label
>Force Sending Voltage Info on every GPS Beacon</label
>
</div>
</div>
@ -1380,7 +1123,7 @@
d="M.88 8C-2.427 1.68 4.41-2 7.823 1.143q.09.083.176.171a3 3 0 0 1 .176-.17C11.59-2 18.426 1.68 15.12 8h-2.783l-1.874-4.686a.5.5 0 0 0-.945.049L7.921 8.956 6.464 5.314a.5.5 0 0 0-.88-.091L3.732 8z"
/>
</svg>
Reboot Time
PTT Trigger
</h5>
</div>
<div class="col-9 mt-2">
@ -1389,14 +1132,14 @@
<div class="form-check form-switch">
<input
type="checkbox"
name="other.rebootMode"
id="other.rebootMode"
name="pttTrigger.active"
id="pttTrigger.active"
class="form-check-input"
/>
<label
for="other.rebootMode"
for="pttTrigger.active"
class="form-label"
>Reboot Mode Active</label
>PTT Active</label
>
</div>
</div>
@ -1404,23 +1147,84 @@
<div class="row mt-3">
<div class="col-6">
<label
for="other.rebootModeTime"
for="pttTrigger.io_pin"
class="form-label"
>Time before forced Reboot</label
>Pin used for external Amp trigger</label
>
<div class="input-group">
<input
type="number"
name="other.rebootModeTime"
id="other.rebootModeTime"
placeholder="6"
name="pttTrigger.io_pin"
id="pttTrigger.io_pin"
class="form-control"
step="6"
min="6"
max="168"
/>
<span class="input-group-text"
>hours</span
>Pin</span
>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-6">
<label
for="pttTrigger.preDelay"
class="form-label"
>Time to enable trigger before Tx</label
>
<div class="input-group">
<input
type="number"
name="pttTrigger.preDelay"
id="pttTrigger.preDelay"
placeholder="0"
class="form-control"
step="50"
min="0"
max="2000"
/>
<span class="input-group-text"
>miliseconds</span
>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-6">
<label
for="pttTrigger.postDelay"
class="form-label"
>Time to disable trigger after Tx</label
>
<div class="input-group">
<input
type="number"
name="pttTrigger.postDelay"
id="pttTrigger.postDelay"
placeholder="0"
class="form-control"
step="50"
min="0"
max="2000"
/>
<span class="input-group-text"
>miliseconds</span
>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="pttTrigger.reverse"
id="pttTrigger.reverse"
class="form-check-input"
/>
<label
for="pttTrigger.reverse"
class="form-label"
>PTT in Reverse Mode</label
>
</div>
</div>
@ -1453,262 +1257,32 @@
d="M8.5 5.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0"
/>
</svg>
Auto AP
WiFi AP
</h5>
<small
>Add your password and power off timeout to
auto access point. Auto AP will start if
there is no WiFi connection. Timeout will
count from startup or last client
disconnected.</small
>Add your password to access WiFi AP.</small
>
</div>
<div class="col-lg-9 col-sm-12">
<div class="col-12">
<label
for="wifi.autoAP.password"
for="wifiAP.password"
class="form-label"
>Password</label
>
<input
type="password"
name="wifi.autoAP.password"
id="wifi.autoAP.password"
name="wifiAP.password"
id="wifiAP.password"
class="form-control"
placeholder="1234567890"
required=""
/>
</div>
<div class="col-12 mt-3">
<label
for="wifi.autoAP.powerOff"
class="form-label"
>Power off timeout
<small>(in minutes)</small></label
>
<input
type="number"
name="wifi.autoAP.powerOff"
id="wifi.autoAP.powerOff"
class="form-control"
placeholder="15"
required=""
step="1"
min="0"
/>
<div class="form-text">
Set to <strong>0</strong> if you don't
want this option.
</div>
</div>
</div>
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
<svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-cloud-upload-fill"
viewBox="0 0 16 16"
>
<path
fill-rule="evenodd"
d="M8 0a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 4.095 0 5.555 0 7.318 0 9.366 1.708 11 3.781 11H7.5V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11h4.188C14.502 11 16 9.57 16 7.773c0-1.636-1.242-2.969-2.834-3.194C12.923 1.999 10.69 0 8 0m-.5 14.5V11h1v3.5a.5.5 0 0 1-1 0"
/>
</svg>
OTA
</h5>
<small
>Set your username and password to allow
firmware updating over-the-air.</small
>
</div>
<div class="col-lg-9 col-sm-12">
<div class="col-12">
<label for="ota.username" class="form-label"
>Username</label
>
<input
type="text"
name="ota.username"
id="ota.username"
class="form-control"
/>
</div>
<div class="col-12 mt-3">
<label for="ota.password" class="form-label"
>Password</label
>
<input
type="password"
name="ota.password"
id="ota.password"
class="form-control"
/>
</div>
</div>
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
<svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-cloud-upload-fill"
viewBox="0 0 16 16"
>
<path
fill-rule="evenodd"
d="M8 0a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 4.095 0 5.555 0 7.318 0 9.366 1.708 11 3.781 11H7.5V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11h4.188C14.502 11 16 9.57 16 7.773c0-1.636-1.242-2.969-2.834-3.194C12.923 1.999 10.69 0 8 0m-.5 14.5V11h1v3.5a.5.5 0 0 1-1 0"
/>
</svg>
Admin
</h5>
<small
>Set your username and password to allow
access to the web interface.</small
>
</div>
<div class="col-lg-9 col-sm-12">
<div class="row">
<div class="col-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="webadmin.active"
id="webadmin.active"
class="form-check-input"
/>
<label
for="webadmin.active"
class="form-label"
>Web interface authentication</label
>
</div>
</div>
</div>
<div class="col-12">
<label for="webadmin.username" class="form-label"
>Username</label
>
<input
type="text"
name="webadmin.username"
id="webadmin.username"
class="form-control"
value="admin"
required=""
/>
</div>
<div class="col-12 mt-3">
<label for="webadmin.password" class="form-label"
>Password</label
>
<input
type="password"
name="webadmin.password"
id="webadmin.password"
class="form-control"
/>
</div>
</div>
</div>
<hr />
<div class="row my-5 d-flex align-items-top">
<div class="col-lg-3 col-sm-12">
<h5>
<svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-heart-pulse-fill"
viewBox="0 0 16 16"
>
<path
d="M1.475 9C2.702 10.84 4.779 12.871 8 15c3.221-2.129 5.298-4.16 6.525-6H12a.5.5 0 0 1-.464-.314l-1.457-3.642-1.598 5.593a.5.5 0 0 1-.945.049L5.889 6.568l-1.473 2.21A.5.5 0 0 1 4 9z"
/>
<path
d="M.88 8C-2.427 1.68 4.41-2 7.823 1.143q.09.083.176.171a3 3 0 0 1 .176-.17C11.59-2 18.426 1.68 15.12 8h-2.783l-1.874-4.686a.5.5 0 0 0-.945.049L7.921 8.956 6.464 5.314a.5.5 0 0 0-.88-.091L3.732 8z"
/>
</svg>
Experimental
</h5>
<small>You can test new features. <u>Use at your own risk!</u></small>
</div>
<div class="col-lg-9 col-sm-12">
<div class="row">
<div class="col-12">
<div class="form-check form-switch">
<div class="form-text">
When "only" iGate Mode loses WiFi, it will change into a Digirepeater Mode and after 15 min check if WiFi available and return to "only" iGate Mode.
</div>
<input
type="checkbox"
name="other.backupDigiMode"
id="other.backupDigiMode"
class="form-check-input"
/>
<label
for="other.backupDigiMode"
class="form-label"
>Backup Digirepeater Mode</label
>
</div>
</div>
<div class="col-12">
<div class="form-check form-switch">
<div class="form-text">
WiFi disabled. Sleep mode. Best for solar Digi with SX126X.
</div>
<input
type="checkbox"
name="other.lowPowerMode"
id="other.lowPowerMode"
class="form-check-input"
/>
<label
for="other.lowPowerMode"
class="form-label"
>Low power mode (only for HT-CT62)</label
>
</div>
</div>
<div class="col-12 mt-3">
<label
for="other.lowVoltageCutOff"
class="form-label"
>Low voltage cut off <small>(Deep sleep below specific voltage)</small></label
>
<input
type="text"
name="other.lowVoltageCutOff"
id="other.lowVoltageCutOff"
placeholder="0"
min="0"
step="0.01"
class="form-control"
/>
<span class="input-group-text"
>Volts</span
>
<div class="form-text">
MCU will deep sleep when below provided battery voltage to save power. Set to <strong>0</strong> if you don't want this option. <u>Please calibrate your voltage reading first!</u>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<footer

Binary file not shown.

View File

@ -58,13 +58,6 @@ alwaysOnCheckbox.addEventListener("change", function () {
timeoutInput.disabled = this.checked;
});
// timeoutInput.addEventListener("change", function () {
// alwaysOnCheckbox.disabled = this.value !== "";
// });
const logCheckbox = document.querySelector('input[name="syslog.active"]');
const serverField = document.querySelector('input[name="syslog.server"]');
const portField = document.querySelector('input[name="syslog.port"]');
logCheckbox.addEventListener("change", function () {
serverField.disabled = !this.checked;
@ -117,6 +110,8 @@ function loadSettings(settings) {
networkCount++;
});
/*
// APRS-IS
document.getElementById("aprs_is.active").checked = settings.aprs_is.active;
document.getElementById("aprs_is.messagesToRF").checked = settings.aprs_is.messagesToRF;
@ -134,8 +129,6 @@ function loadSettings(settings) {
document.getElementById("beacon.sendViaAPRSIS").checked = settings.beacon.sendViaAPRSIS;
document.getElementById("beacon.sendViaRF").checked = settings.beacon.sendViaRF;
// Digi
document.getElementById("digi.mode").value = settings.digi.mode;
// LoRa
document.getElementById("lora.txFreq").value = settings.lora.txFreq;
@ -145,59 +138,52 @@ function loadSettings(settings) {
document.getElementById("lora.spreadingFactor").value = settings.lora.spreadingFactor;
document.getElementById("lora.signalBandwidth").value = settings.lora.signalBandwidth;
document.getElementById("lora.codingRate4").value = settings.lora.codingRate4;
document.getElementById("lora.power").value = settings.lora.power;
document.getElementById("lora.power").value = settings.lora.power;*/
// Display
document.getElementById("display.alwaysOn").checked = settings.display.alwaysOn;
document.getElementById("display.turn180").checked = settings.display.turn180;
document.getElementById("display.showSymbol").checked = settings.display.showSymbol;
document.getElementById("display.ecoMode").checked = settings.display.ecoMode;
document.getElementById("display.timeout").value = settings.display.timeout;
document.getElementById("display.turn180").checked = settings.display.turn180;
if (settings.display.alwaysOn) {
timeoutInput.disabled = true;
}
// BATTERY
document.getElementById("battery.sendInternalVoltage").checked = settings.battery.sendInternalVoltage;
document.getElementById("battery.monitorInternalVoltage").checked = settings.battery.monitorInternalVoltage;
document.getElementById("battery.internalSleepVoltage").value = settings.battery.internalSleepVoltage.toFixed(1);
document.getElementById("battery.sendExternalVoltage").checked = settings.battery.sendExternalVoltage;
document.getElementById("battery.externalVoltagePin").value = settings.battery.externalVoltagePin;
document.getElementById("battery.voltageDividerR1").value = settings.battery.voltageDividerR1.toFixed(1);
document.getElementById("battery.voltageDividerR2").value = settings.battery.voltageDividerR2.toFixed(1);
document.getElementById("battery.monitorExternalVoltage").checked = settings.battery.monitorExternalVoltage;
document.getElementById("battery.externalSleepVoltage").value = settings.battery.externalSleepVoltage.toFixed(1);
document.getElementById("battery.sendVoltageAsTelemetry").checked = settings.battery.sendVoltageAsTelemetry;
document.getElementById("battery.sendVoltage").checked = settings.battery.sendVoltage;
document.getElementById("battery.voltageAsTelemetry").checked = settings.battery.voltageAsTelemetry;
document.getElementById("battery.sendVoltageAlways").checked = settings.battery.sendVoltageAlways;
// TELEMETRY BME/WX
document.getElementById("bme.active").checked = settings.bme.active;
document.getElementById("bme.heightCorrection").value = settings.bme.heightCorrection;
document.getElementById("bme.temperatureCorrection").value = settings.bme.temperatureCorrection.toFixed(1);
document.getElementById("bme.sendTelemetry").checked = settings.bme.sendTelemetry;
// SYSLOG
document.getElementById("syslog.active").checked = settings.syslog.active;
document.getElementById("syslog.server").value = settings.syslog.server;
document.getElementById("syslog.port").value = settings.syslog.port;
// BLUETOOTH
document.getElementById("bluettooth.active").checked = settings.bluetooth.active;
document.getElementById("bluettooth.type").value = settings.bluetooth.type;
// PTT Trigger
document.getElementById("pttTrigger.active").checked = settings.pttTrigger.active;
document.getElementById("pttTrigger.io_pin").value = settings.pttTrigger.io_pin;
document.getElementById("pttTrigger.preDelay").value = settings.pttTrigger.preDelay;
document.getElementById("pttTrigger.postDelay").value = settings.pttTrigger.postDelay;
document.getElementById("pttTrigger.reverse").checked = settings.pttTrigger.reverse;
// WiFi AP
document.getElementById("wifiAP.password").value = settings.wifiAP.password;
if (settings.syslog.active) {
serverField.disabled = false;
portField.disabled = false;
}
// TNC
if (settings.tnc) {
document.getElementById("tnc.enableServer").checked = settings.tnc.enableServer;
document.getElementById("tnc.enableSerial").checked = settings.tnc.enableSerial;
document.getElementById("tnc.acceptOwn").checked = settings.tnc.acceptOwn;
}
// Reboot
document.getElementById("other.rebootMode").checked = settings.other.rebootMode;
document.getElementById("other.rebootModeTime").value = settings.other.rebootModeTime;
// WiFi Auto AP
document.getElementById("wifi.autoAP.password").value = settings.wifi.autoAP.password;
document.getElementById("wifi.autoAP.powerOff").value = settings.wifi.autoAP.powerOff;
// OTA
document.getElementById("ota.username").value = settings.ota.username;
document.getElementById("ota.password").value = settings.ota.password;
@ -207,11 +193,6 @@ function loadSettings(settings) {
document.getElementById("webadmin.username").value = settings.webadmin.username;
document.getElementById("webadmin.password").value = settings.webadmin.password;
// Experimental
document.getElementById("other.backupDigiMode").checked = settings.other.backupDigiMode;
document.getElementById("other.lowPowerMode").checked = settings.other.lowPowerMode;
document.getElementById("other.lowVoltageCutOff").value = settings.other.lowVoltageCutOff || 0
updateImage();
refreshSpeedStandard();

Binary file not shown.

Binary file not shown.

View File

@ -83,6 +83,9 @@ namespace WEB_Utils {
void handleWriteConfiguration(AsyncWebServerRequest *request) {
Serial.println("Got new config from www");
// beacons
Config.display.showSymbol = request->hasParam("display.showSymbol", true);
if (request->hasParam("display.ecoMode", true)) {
Config.display.ecoMode = true;
if (request->hasParam("display.timeout", true)) {
@ -91,17 +94,31 @@ namespace WEB_Utils {
} else {
Config.display.ecoMode = false;
}
Config.display.turn180 = request->hasParam("display.turn180", true);
Config.display.showSymbol = request->hasParam("display.showSymbol", true);
Config.battery.sendVoltage = request->hasParam("battery.sendVoltage", true);
Config.battery.voltageAsTelemetry = request->hasParam("battery.voltageAsTelemetry", true);
Config.battery.sendVoltageAlways = request->hasParam("battery.sendVoltageAlways", true);
// other
Config.simplifiedTrackerMode = request->hasParam("other.simplifiedTrackerMode", true);
Config.sendCommentAfterXBeacons = request->getParam("other.sendCommentAfterXBeacons", true)->value().toInt();
Config.path = request->getParam("other.path", true)->value();
Config.nonSmartBeaconRate = request->getParam("other.nonSmartBeaconRate", true)->value().toInt();
Config.rememberStationTime = request->getParam("other.rememberStationTime", true)->value().toInt();
Config.maxDistanceToTracker = request->getParam("other.maxDistanceToTracker", true)->value().toInt();
Config.standingUpdateTime = request->getParam("other.standingUpdateTime", true)->value().toInt();
Config.sendAltitude = request->hasParam("other.sendAltitude", true);
Config.disableGPS = request->hasParam("other.disableGPS", true);
//
if (request->hasParam("winlink.password", true)) {
Config.winlink.password = request->getParam("winlink.password", true)->value();
}
/*Config.bme.active = request->hasParam("bme.active", true);
Config.bme.temperatureCorrection = request->getParam("bme.temperatureCorrection", true)->value().toFloat();
Config.bme.sendTelemetry = request->hasParam("bme.sendTelemetry", true);
Config.bme.active = request->hasParam("bme.active", true);
Config.bme.temperatureCorrection = request->getParam("bme.temperatureCorrection", true)->value().toFloat();
Config.bme.sendTelemetry = request->hasParam("bme.sendTelemetry", true);
Config.notification.ledTx = request->hasParam("notification.ledTx", true);
Config.notification.ledTxPin = request->getParam("notification.ledTxPin", true)->value().toInt();
@ -119,24 +136,19 @@ namespace WEB_Utils {
Config.notification.lowBatteryBeep = request->hasParam("notification.lowBatteryBeep", true);
Config.notification.shutDownBeep = request->hasParam("notification.shutDownBeep", true);
// lora
Config.bluetooth.active = request->hasParam("bluetooth.active", true);
Config.bluetooth.type = request->getParam("bluetooth.type", true)->value().toInt();
Config.ptt.active = request->hasParam("ptt.active", true);
Config.ptt.io_pin = request->getParam("ptt.io_pin", true)->value().toInt();
Config.ptt.preDelay = request->getParam("ptt.preDelay", true)->value().toInt();
Config.ptt.postDelay = request->getParam("ptt.postDelay", true)->value().toInt();
Config.ptt.reverse = request->hasParam("ptt.reverse", true);
Config.simplifiedTrackerMode = request->hasParam("other.simplifiedTrackerMode", true);
Config.sendCommentAfterXBeacons = request->getParam("other.sendCommentAfterXBeacons", true)->value().toInt();
Config.path = request->getParam("other.path", true)->value();
Config.nonSmartBeaconRate = request->getParam("other.nonSmartBeaconRate", true)->value().toInt();
Config.rememberStationTime = request->getParam("other.rememberStationTime", true)->value().toInt();
Config.maxDistanceToTracker = request->getParam("other.maxDistanceToTracker", true)->value().toInt();
Config.standingUpdateTime = request->getParam("other.standingUpdateTime", true)->value().toInt();
Config.sendAltitude = request->hasParam("other.sendAltitude", true);
Config.sendBatteryInfo = request->hasParam("other.sendBatteryInfo", true);
Config.bluetoothType = request->getParam("other.bluetoothType", true)->value().toInt();
Config.bluetoothActive = request->hasParam("other.bluetoothActive", true);
Config.disableGPS = request->hasParam("other.disableGPS", true);*/
// wifi
Config.writeFile();