331 lines
16 KiB
HTML
Executable File
Vendored
331 lines
16 KiB
HTML
Executable File
Vendored
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
|
|
<title>Dashboard - Pico %SK_PROCESSOR% Admin</title>
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<!-- Add custom CSS here -->
|
|
<link href="css/sb-admin.css" rel="stylesheet">
|
|
<link href="css/%SK_DEVICE%.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="font-awesome/css/font-awesome.css">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="wrapper">
|
|
|
|
<!-- Sidebar -->
|
|
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
|
<!-- Brand and toggle get grouped for better mobile display -->
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
|
<span class="sr-only">Toggle navigation</span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="index.htm">Pico %SK_PROCESSOR% Dashboard</a>
|
|
</div>
|
|
|
|
<!-- Collect the nav links, forms, and other content for toggling -->
|
|
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
|
<ul class="nav navbar-nav side-nav">
|
|
|
|
<li class="active"><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i> Status</a></li>
|
|
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Config Editor</a></li>
|
|
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i> File Manager</a></li>
|
|
|
|
<li>
|
|
<a href="#settings" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
|
|
<i style="color: yellow;" class="fa fa-gear"></i> Settings
|
|
<span class="caret pull-right"></span>
|
|
</a>
|
|
|
|
<ul id="settings" class="nav collapse">
|
|
<li>
|
|
<a href="#ota" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
|
|
<i style="color: yellow;" class="fa fa-refresh"></i> Firmware
|
|
<span class="caret pull-right"></span>
|
|
</a>
|
|
|
|
<ul id="ota" class="nav collapse">
|
|
<li><a href="ota-esp32.htm">ESP32</a></li>
|
|
<li><a href="ota-rp2350.htm">RP2350</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="wifimanager.htm">
|
|
<i style="color: yellow;" class="fa fa-wifi"></i> WiFi Manager
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="personality.htm">
|
|
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="configgui.htm">
|
|
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="nav navbar-nav navbar-right navbar-user">
|
|
<li class="dropdown user-dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="padding-right:40px;"><i class="fa fa-rotate-left" style="color: yellow;"></i> Reboot <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
<li style="margin-left: 1em;"><b>Reboot Menu</b></li>
|
|
<li class="divider"></li>
|
|
<li><a href="reboot/esp32"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">ESP32</a></li>
|
|
<li><a href="#" onclick="rebootRP2350(); return false;"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">RP2350B</a></li>
|
|
<li><a href="#" onclick="rebootHost(); return false;"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">Host</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="nav navbar-nav navbar-right navbar-user">
|
|
<li class="dropdown user-dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="padding-right:35px;"><i class="fa fa-tasks" style="color: yellow;"></i> Actions <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
<li style="margin-left: 1em;"><b>Action Menu</b></li>
|
|
<li class="divider"></li>
|
|
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</a></li>
|
|
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</a></li>
|
|
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</a></li>
|
|
<hr style="margin-top: 10px; margin-bottom: 10px;">
|
|
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
</div><!-- /.navbar-collapse -->
|
|
</nav>
|
|
|
|
<div id="page-wrapper">
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<h1>Status </h1>
|
|
<ol class="breadcrumb">
|
|
<li class="active"><i class="fa fa-dashboard"></i> Status</li>
|
|
</ol>
|
|
<div class="alert alert-success alert-dismissable justify">
|
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
|
<p>This built-in web app allows configuration of the host, emulated processor, virtual interfaces, <u>O</u>ver <u>T</u>he <u>A</u>ir firmware updates and more.<br>Please read the documentation if you need help.</p>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.row -->
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title"><i class="fa fa-wifi"></i> WiFi Configuration</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<div class="table-responsive" id="client-wifi-config-area">
|
|
<!--<div id="client-wifi-config-area">-->
|
|
<div id="wifiCfg%SK_WIFIMODEAP%">
|
|
<table class="table table-borderless table-sm">
|
|
<tbody>
|
|
<tr style="display: compact;">
|
|
<td>SSID:</td><td><span style="color: blue;">%SK_APSSID%</span></td>
|
|
<td>TX Power:</td><td><span class="txpower-live" style="color: blue;">%SK_TXPOWERDBM% dBm</span></td>
|
|
</tr>
|
|
<tr style="display: compact;">
|
|
<td>Password:</td><td><span style="color: blue;">%SK_APPWD%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>IP (AP):</td><td><span style="color: blue;">%SK_CURRENTIP%</span></td>
|
|
<td>NETMASK:</td><td><span style="color: blue;">%SK_CURRENTNM%</span></td>
|
|
<td>GATEWAY:</td><td><span style="color: blue;">%SK_CURRENTGW%</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="wifiCfg0%SK_WIFIMODECLIENT%">
|
|
<table class="table table-borderless table-sm">
|
|
<tbody>
|
|
<tr style="display: compact;">
|
|
<td>SSID:</td><td><span style="color: blue;">%SK_CLIENTSSID%</span></td>
|
|
<td>TX Power:</td><td><span class="txpower-live" style="color: blue;">%SK_TXPOWERDBM% dBm</span></td>
|
|
<td>RSSI:</td><td><span class="rssi-live" style="color: blue;">%SK_RSSI% dBm</span></td>
|
|
</tr>
|
|
<tr style="display: compact;" id="wifiCfg1%SK_CLIENTDHCPON%">
|
|
<td>DHCP:</td><td><span style="color: blue;">Enabled</span></td>
|
|
</tr>
|
|
<tr id="wifiCfg3%SK_CLIENTDHCPON%">
|
|
<td>IP (assigned):</td><td><span style="color: blue;">%SK_CURRENTIP%</span></td>
|
|
<td>NETMASK:</td><td><span style="color: blue;">%SK_CURRENTNM%</span></td>
|
|
<td>GATEWAY:</td><td><span style="color: blue;">%SK_CURRENTGW%</span></td>
|
|
</tr>
|
|
<tr id="wifiCfg3%SK_CLIENTDHCPOFF%">
|
|
<td>IP (fixed):</td><td><span style="color: blue;">%SK_CURRENTIP%</span></td>
|
|
<td>NETMASK:</td><td><span style="color: blue;">%SK_CURRENTNM%</span></td>
|
|
<td>GATEWAY:</td><td><span style="color: blue;">%SK_CURRENTGW%</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- </div>-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.row -->
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title"><i class="fa fa-dashboard"></i> System Status</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<table class="table table-borderless table-sm" style="margin-bottom:0; width:auto;">
|
|
<tbody>
|
|
<tr>
|
|
<td style="width:140px; padding-right:4px;">Firmware Version:</td><td style="width:200px;"><span style="color:#5bf;">%SK_FWVERSION%</span></td>
|
|
<td style="width:140px; padding-right:4px;">ESP32 Version:</td><td style="width:200px;"><span style="color:#5bf;">%SK_ESPVERSION%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Active Partition:</td><td><span style="color:#5bf;">%SK_ACTIVEPARTITION%</span></td>
|
|
<td>Active Persona:</td><td><span style="color:#5bf;">%SK_PERSONA%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>RP2350 Clock:</td><td><span style="color:#5bf;">%SK_CPUCLOCK%</span></td>
|
|
<td>ESP32 Clock:</td><td><span style="color:#5bf;">%SK_ESP32CLOCK%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>RP2350 Flash:</td><td><span style="color:#5bf;">%SK_RP2350FLASH%</span></td>
|
|
<td>ESP32 Flash:</td><td><span style="color:#5bf;">%SK_ESP32FLASH%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>RP2350 PSRAM:</td><td><span style="color:#5bf;">%SK_RP2350PSRAM%</span></td>
|
|
<td>ESP32 PSRAM:</td><td><span style="color:#5bf;">%SK_ESP32PSRAM%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>PSRAM Clock:</td><td><span style="color:#5bf;">%SK_PSRAMCLOCK%</span></td>
|
|
<td>SD Card:</td><td><span style="color:#5bf;">%SK_SDCARD%</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>FilePack:</td><td><span style="color:#5bf;">%SK_FILEPACK%</span></td>
|
|
<td>Uptime:</td><td><span style="color:#5bf;" id="sys-uptime">%SK_UPTIME%</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.row -->
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title"><i class="fa fa-file"></i> Version Information</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<div class="table-responsive">
|
|
<div id="title" style="font-size:16px;padding-bottom:25px;">%SK_PRODNAME% v%SK_PRODVERSION% © P.D. Smart, 2018-26</div>
|
|
<div id="esp32-info" style="font-size:12px;padding-top:8px;padding-bottom:8px;"><b>ESP32 Partitions</b></div>
|
|
<div id="esp32-partitions-area" style="padding-left:25px;">
|
|
<table class="table table-borderless table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th><b>Partition Name</b></th>
|
|
<th><b>Type</b></th>
|
|
<th><b>Sub-Type</b></th>
|
|
<th><b>Address</b></th>
|
|
<th><b>Size</b></th>
|
|
<th><b>Version</b></th>
|
|
<th><b>Timestamp</b></th>
|
|
<th><b>Active (Running)</b></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
%SK_PARTITIONS%
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="rp2350-info" style="font-size:12px;padding-top:8px;padding-bottom:8px;"><b>RP2350 Partitions</b></div>
|
|
<div id="rp2350-partitions-area" style="padding-left:25px;">
|
|
<table class="table table-borderless table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th><b>Partition</b></th>
|
|
<th><b>Addr</b></th>
|
|
<th><b>Size</b></th>
|
|
<th><b>CheckSum</b></th>
|
|
<th><b>Active (Running)</b></th>
|
|
<th><b>License</b></th>
|
|
<th><b>Author</b></th>
|
|
<th><b>Description</b></th>
|
|
<th><b>Version</b></th>
|
|
<th><b>Date</b></th>
|
|
<th><b>Copyright</b></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
%SK_RP_PARTITIONS%
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.row -->
|
|
|
|
</div><!-- /#page-wrapper -->
|
|
|
|
</div><!-- /#wrapper -->
|
|
|
|
<!-- JavaScript -->
|
|
<script src="js/jquery.min.js"></script>
|
|
<script src="js/bootstrap.min.js"></script>
|
|
<script>
|
|
// Store the name of the active and secondary interfaces.
|
|
const activeInterface = "%SK_CURRENTIF%";
|
|
const secondaryInterface = "%SK_SECONDIF%"
|
|
|
|
</script>
|
|
<script src="js/index.js"></script>
|
|
<script src="js/actions.js"></script>
|
|
<script src="js/common.js"></script>
|
|
<script>
|
|
// Live WiFi signal strength polling (updates every 3 seconds).
|
|
(function pollWifiStatus() {
|
|
$.getJSON("/data/wifistatus", function(data) {
|
|
$(".rssi-live").text(data.rssi + " dBm");
|
|
$(".txpower-live").text(data.txPower.toFixed(1) + " dBm");
|
|
if (data.connected) {
|
|
var r = data.rssi;
|
|
var color = r >= -50 ? "green" : r >= -70 ? "blue" : r >= -80 ? "orange" : "red";
|
|
$(".rssi-live").css("color", color);
|
|
} else {
|
|
$(".rssi-live").text("N/A").css("color", "gray");
|
|
}
|
|
// Update uptime if present in response
|
|
if (data.uptime) {
|
|
$("#sys-uptime").text(data.uptime);
|
|
}
|
|
}).always(function() {
|
|
setTimeout(pollWifiStatus, 3000);
|
|
});
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|