parent
23681c9a0f
commit
5bb7a303b3
@ -1,3 +1,3 @@ |
|||||||
#!/bin/bash |
#!/bin/bash |
||||||
|
|
||||||
xterm -title "ESP html build" -e "source $HOME/.bashrc && make flash -B -j4" |
xterm -title "ESP flash" -e "source $HOME/.bashrc && make flash -B -j4" |
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"uptime": "%uptime%", |
||||||
|
"heap": %heap%, |
||||||
|
"wifiMode": "%wifiMode%", |
||||||
|
"sta": %staInfo%, |
||||||
|
"ap": %apInfo% |
||||||
|
} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,78 +0,0 @@ |
|||||||
<?php $page='home'; include "_start.php"; ?> |
|
||||||
|
|
||||||
<h1>System Status</h1> |
|
||||||
|
|
||||||
<div class="Box"> |
|
||||||
<h2>Runtime</h2> |
|
||||||
<table> |
|
||||||
<tbody> |
|
||||||
<tr> |
|
||||||
<th>Uptime:</th> |
|
||||||
<td>%uptime%</td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<th>Free heap:</th> |
|
||||||
<td>%heap% bytes</td> |
|
||||||
</tr> |
|
||||||
</tbody> |
|
||||||
</table> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="Box"> |
|
||||||
<h2>Wireless</h2> |
|
||||||
<table> |
|
||||||
<tbody> |
|
||||||
<tr> |
|
||||||
<th>WiFi mode:</th> |
|
||||||
<td>%wifiMode%</td> |
|
||||||
</tr> |
|
||||||
<tr class="sta-only"> |
|
||||||
<th>SSID:</th> |
|
||||||
<td>%staSSID%</td> |
|
||||||
</tr> |
|
||||||
<tr class="sta-only"> |
|
||||||
<th>RSSI:</th> |
|
||||||
<td><span id="rssi-perc"></span>, <span id="rssi-dbm"></span></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<th>Client MAC:</th> |
|
||||||
<td>%staMAC%</td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<th>AP MAC:</th> |
|
||||||
<td>%apMAC%</td> |
|
||||||
</tr> |
|
||||||
</tbody> |
|
||||||
</table> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="Box"> |
|
||||||
<h2>Hardware</h2> |
|
||||||
<table> |
|
||||||
<tbody> |
|
||||||
<tr> |
|
||||||
<th>ESP8266 S/N:</th> |
|
||||||
<td>%chipID%</td> |
|
||||||
</tr> |
|
||||||
</tbody> |
|
||||||
</table> |
|
||||||
</div> |
|
||||||
|
|
||||||
<script> |
|
||||||
var wifiMode = '%wifiMode%'; |
|
||||||
var staRSSI = '%staRSSI%'; |
|
||||||
|
|
||||||
$().ready(function() { |
|
||||||
if (wifiMode == 'SoftAP') { |
|
||||||
$('.sta-only').hide(); |
|
||||||
} else { |
|
||||||
$('#rssi-perc').html(rssiPerc(staRSSI)); |
|
||||||
$('#rssi-dbm').html(staRSSI); |
|
||||||
} |
|
||||||
|
|
||||||
// TODO use json + ajax instead |
|
||||||
setTimeout(function(){location.reload()}, 10000); |
|
||||||
}); |
|
||||||
</script> |
|
||||||
|
|
||||||
<?php include "_end.php"; ?> |
|
@ -1,5 +0,0 @@ |
|||||||
<?php $page='fft'; include "_start.php"; ?> |
|
||||||
|
|
||||||
Home page. |
|
||||||
|
|
||||||
<?php include "_end.php"; ?> |
|
@ -0,0 +1,58 @@ |
|||||||
|
var page_status = (function() { |
||||||
|
var st = {}; |
||||||
|
|
||||||
|
function onUpdate(resp, status) { |
||||||
|
if (status != 200) { |
||||||
|
// bad response
|
||||||
|
console.error('Update failed.'); |
||||||
|
} else { |
||||||
|
try { |
||||||
|
// OK
|
||||||
|
var j = JSON.parse(resp); |
||||||
|
|
||||||
|
$('.sta-only').toggle(j.sta); |
||||||
|
$('.ap-only').toggle(j.ap); |
||||||
|
|
||||||
|
$('#uptime').html(j.uptime); |
||||||
|
$('#heap').html(j.heap + " bytes"); |
||||||
|
$('#wmode').html(j.wifiMode); |
||||||
|
|
||||||
|
if (j.sta) { |
||||||
|
$('#staSSID').html(j.sta.SSID); |
||||||
|
$('#staRSSIperc').html(j.sta.RSSIperc); |
||||||
|
$('#staRSSI').html(j.sta.RSSI); |
||||||
|
$('#staMAC').html(j.sta.MAC); |
||||||
|
} |
||||||
|
|
||||||
|
if (j.ap) { |
||||||
|
$('#apSSID').html(j.ap.SSID); |
||||||
|
$('#apHidden').html(j.ap.hidden ? "Yes" : "No"); |
||||||
|
$('#apAuth').html(j.ap.auth); |
||||||
|
|
||||||
|
// hide the password row if auth is Open
|
||||||
|
$('.ap-auth-only').toggle(j.ap.auth != 'Open'); |
||||||
|
|
||||||
|
$('#apPwd').html(j.ap.pwd); |
||||||
|
$('#apChan').html(j.ap.chan); |
||||||
|
$('#apMAC').html(j.ap.MAC); |
||||||
|
} |
||||||
|
// chip ID & macs don't change
|
||||||
|
} catch(e) { |
||||||
|
console.error(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
setTimeout(requestUpdate, 10000); |
||||||
|
} |
||||||
|
|
||||||
|
function requestUpdate() { |
||||||
|
$().get('/api/status.json', onUpdate, true, true); |
||||||
|
} |
||||||
|
|
||||||
|
st.init = function() { |
||||||
|
requestUpdate(); |
||||||
|
setTimeout(requestUpdate, 10000); |
||||||
|
}; |
||||||
|
|
||||||
|
return st; |
||||||
|
})(); |
@ -1,4 +1,4 @@ |
|||||||
var wfm = (function () { |
var page_waveform = (function () { |
||||||
var wfm = {}; |
var wfm = {}; |
||||||
|
|
||||||
function buildChart(samples, xlabel, ylabel) { |
function buildChart(samples, xlabel, ylabel) { |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,95 @@ |
|||||||
|
<?php $page = 'home'; |
||||||
|
include "_start.php"; ?> |
||||||
|
|
||||||
|
<h1>System Status</h1> |
||||||
|
|
||||||
|
<div class="Box"> |
||||||
|
<h2>Runtime</h2> |
||||||
|
<table> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<th>Uptime:</th> |
||||||
|
<td id="uptime">%uptime%</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>Free heap:</th> |
||||||
|
<td id="heap">%heap%</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Box"> |
||||||
|
<h2>WiFi</h2> |
||||||
|
<table> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<th>WiFi mode:</th> |
||||||
|
<td id="wmode">%wifiMode%</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- WiFi info is read & updated using AJAX --> |
||||||
|
|
||||||
|
<div class="Box sta-only" style="display:none"> |
||||||
|
<h2>WiFi Station</h2> |
||||||
|
<table> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<th>SSID:</th> |
||||||
|
<td id="staSSID"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>RSSI:</th> |
||||||
|
<td> |
||||||
|
<span id="staRSSIperc"></span>, |
||||||
|
<span id="staRSSI"></span> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>MAC:</th> |
||||||
|
<td id="staMAC"></td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Box ap-only" style="display:none"> |
||||||
|
<h2>WiFi AP</h2> |
||||||
|
<table> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<th>SSID:</th> |
||||||
|
<td id="apSSID"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>Hidden:</th> |
||||||
|
<td id="apHidden"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>Auth. mode:</th> |
||||||
|
<td id="apAuth"></td> |
||||||
|
</tr> |
||||||
|
<tr class="ap-auth-only"> |
||||||
|
<th>Password:</th> |
||||||
|
<td id="apPwd"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>Channel:</th> |
||||||
|
<td id="apChan"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th>MAC:</th> |
||||||
|
<td id="apMAC"></td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script> |
||||||
|
$().ready(page_status.init); |
||||||
|
</script> |
||||||
|
|
||||||
|
<?php include "_end.php"; ?> |
@ -1,9 +0,0 @@ |
|||||||
#ifndef CGI_H |
|
||||||
#define CGI_H |
|
||||||
|
|
||||||
#include <esp8266.h> |
|
||||||
#include "httpd.h" |
|
||||||
|
|
||||||
int tplReadSamplesJSON(HttpdConnData *connData, char *token, void **arg); |
|
||||||
|
|
||||||
#endif |
|
@ -1,72 +0,0 @@ |
|||||||
#include <esp8266.h> |
|
||||||
#include <httpd.h> |
|
||||||
#include "page_home.h" |
|
||||||
#include "uptime.h" |
|
||||||
|
|
||||||
|
|
||||||
/** System Status page */ |
|
||||||
int FLASH_FN tplHome(HttpdConnData *connData, char *token, void **arg) |
|
||||||
{ |
|
||||||
// arg is unused
|
|
||||||
(void)arg; |
|
||||||
|
|
||||||
struct station_config stconf; |
|
||||||
char buff[128]; |
|
||||||
u8 mac[6]; |
|
||||||
|
|
||||||
// empty string if no token matches
|
|
||||||
buff[0] = 0; |
|
||||||
|
|
||||||
if (token == NULL) return HTTPD_CGI_DONE; |
|
||||||
|
|
||||||
if (strcmp(token, "uptime") == 0) { |
|
||||||
// Uptime
|
|
||||||
uptime_str(buff); |
|
||||||
|
|
||||||
} else if (strcmp(token, "heap") == 0) { |
|
||||||
// Free heap
|
|
||||||
sprintf(buff, "%u", system_get_free_heap_size()); |
|
||||||
|
|
||||||
} else if (strcmp(token, "wifiMode") == 0) { |
|
||||||
// WiFi mode
|
|
||||||
switch (wifi_get_opmode()) { |
|
||||||
case STATION_MODE: strcpy(buff, "Client"); break; |
|
||||||
case SOFTAP_MODE: strcpy(buff, "SoftAP"); break; |
|
||||||
case STATIONAP_MODE: strcpy(buff, "STA+AP"); break; |
|
||||||
default: strcpy(buff, "Unknown"); |
|
||||||
} |
|
||||||
|
|
||||||
} else if (strcmp(token, "staSSID") == 0) { |
|
||||||
// Station SSID (if in station mode)
|
|
||||||
int opmode = wifi_get_opmode(); |
|
||||||
if (opmode != STATION_MODE && opmode != STATIONAP_MODE) { |
|
||||||
strcpy(buff, "N/A"); // no SSID in AP-only mode
|
|
||||||
} else { |
|
||||||
wifi_station_get_config(&stconf); |
|
||||||
strcpy(buff, (char*)stconf.ssid); |
|
||||||
} |
|
||||||
|
|
||||||
} else if (strcmp(token, "staRSSI") == 0) { |
|
||||||
// Signal strength if in Station mode
|
|
||||||
int rssi = wifi_station_get_rssi(); |
|
||||||
sprintf(buff, "%d", rssi); |
|
||||||
|
|
||||||
} else if (strcmp(token, "staMAC") == 0) { |
|
||||||
// Station MAC addr
|
|
||||||
wifi_get_macaddr(STATION_IF, mac); |
|
||||||
sprintf(buff, MACSTR, MAC2STR(mac)); |
|
||||||
|
|
||||||
} else if (strcmp(token, "apMAC") == 0) { |
|
||||||
// SoftAP MAC addr
|
|
||||||
wifi_get_macaddr(SOFTAP_IF, mac); |
|
||||||
sprintf(buff, MACSTR, MAC2STR(mac)); |
|
||||||
|
|
||||||
} else if (strcmp(token, "chipID") == 0) { |
|
||||||
// Chip serial number
|
|
||||||
sprintf(buff, "%08x", system_get_chip_id()); |
|
||||||
} |
|
||||||
|
|
||||||
httpdSend(connData, buff, -1); |
|
||||||
|
|
||||||
return HTTPD_CGI_DONE; |
|
||||||
} |
|
@ -0,0 +1,159 @@ |
|||||||
|
#include <esp8266.h> |
||||||
|
#include <httpd.h> |
||||||
|
#include "page_status.h" |
||||||
|
#include "uptime.h" |
||||||
|
|
||||||
|
#include "utils.h" |
||||||
|
|
||||||
|
|
||||||
|
/** System Status page */ |
||||||
|
int FLASH_FN tplSystemStatus(HttpdConnData *connData, char *token, void **arg) |
||||||
|
{ |
||||||
|
// arg is unused
|
||||||
|
(void)arg; |
||||||
|
|
||||||
|
struct station_config stconf; |
||||||
|
struct softap_config apconf; |
||||||
|
|
||||||
|
char buff[300]; |
||||||
|
u8 mac[6]; |
||||||
|
int rssi; |
||||||
|
|
||||||
|
// empty string if no token matches
|
||||||
|
buff[0] = 0; |
||||||
|
|
||||||
|
if (token == NULL) return HTTPD_CGI_DONE; |
||||||
|
|
||||||
|
|
||||||
|
// {
|
||||||
|
// "uptime": "00:01:1200:01:12",
|
||||||
|
// "heap": 3391233912,
|
||||||
|
// "wifiMode": "ClientClient",
|
||||||
|
// "sta": null,
|
||||||
|
// "ap": {"SSID": "ESP_D58987", "pwd": "", "MAC": "1a:fe:34:d5:89:87", "chan": 1, "hidden": false, "auth": Open, }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int opmode = wifi_get_opmode(); |
||||||
|
bool is_sta = (opmode == STATION_MODE || opmode == STATIONAP_MODE); |
||||||
|
bool is_ap = (opmode == SOFTAP_MODE || opmode == STATIONAP_MODE); |
||||||
|
|
||||||
|
if (streq(token, "uptime")) { |
||||||
|
// Uptime
|
||||||
|
uptime_str(buff); |
||||||
|
|
||||||
|
} else if (streq(token, "heap")) { |
||||||
|
// Free heap
|
||||||
|
sprintf(buff, "%u", system_get_free_heap_size()); |
||||||
|
|
||||||
|
} else if (streq(token, "wifiMode")) { |
||||||
|
// WiFi mode
|
||||||
|
strcpy(buff, opmode2str(opmode)); |
||||||
|
|
||||||
|
} else if (streq(token, "staInfo")) { |
||||||
|
if (!is_sta) { |
||||||
|
strcpy(buff, "null"); |
||||||
|
} else { |
||||||
|
// AP info
|
||||||
|
wifi_station_get_config(&stconf); |
||||||
|
wifi_get_macaddr(STATION_IF, mac); |
||||||
|
rssi = wifi_station_get_rssi(); |
||||||
|
|
||||||
|
sprintf(buff, |
||||||
|
"{" |
||||||
|
"\"SSID\": \"%s\", " |
||||||
|
"\"RSSI\": %d, " |
||||||
|
"\"RSSIperc\": %d, " |
||||||
|
"\"MAC\": \""MACSTR"\"" |
||||||
|
"}", |
||||||
|
stconf.ssid, |
||||||
|
rssi, |
||||||
|
rssi2perc(rssi), |
||||||
|
MAC2STR(mac) |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
} else if (streq(token, "apInfo")) { |
||||||
|
if (!is_ap) { |
||||||
|
strcpy(buff, "null"); |
||||||
|
} else { |
||||||
|
wifi_softap_get_config(&apconf); |
||||||
|
wifi_get_macaddr(SOFTAP_IF, mac); |
||||||
|
|
||||||
|
// AP info
|
||||||
|
sprintf(buff, |
||||||
|
"{" |
||||||
|
"\"SSID\": \"%s\", " |
||||||
|
"\"pwd\": \"%s\", " |
||||||
|
"\"MAC\": \""MACSTR"\", " |
||||||
|
"\"chan\": %d, " |
||||||
|
"\"hidden\": %s, " |
||||||
|
"\"auth\": \"%s\"" |
||||||
|
"}", |
||||||
|
apconf.ssid, |
||||||
|
apconf.password, |
||||||
|
MAC2STR(mac), |
||||||
|
apconf.channel, |
||||||
|
apconf.ssid_hidden ? "true" : "false", |
||||||
|
auth2str(apconf.authmode) |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
/*} else if (streq(token, "staSSID")) {
|
||||||
|
// Station SSID (if in station mode)
|
||||||
|
if (!is_sta) { |
||||||
|
strcpy(buff, "N/A"); |
||||||
|
} else { |
||||||
|
strcpy(buff, (char*)stconf.ssid); |
||||||
|
} |
||||||
|
|
||||||
|
} else if (streq(token, "staRSSI")) { |
||||||
|
// Signal strength if in Station mode
|
||||||
|
if (!is_sta) { |
||||||
|
strcpy(buff, "0"); |
||||||
|
} else { |
||||||
|
rssi = wifi_station_get_rssi(); |
||||||
|
sprintf(buff, "%d", rssi); |
||||||
|
} |
||||||
|
|
||||||
|
} else if (streq(token, "staRSSIperc")) { |
||||||
|
// Signal strength if in Station mode
|
||||||
|
if (!is_sta) { |
||||||
|
strcpy(buff, "0"); |
||||||
|
} else { |
||||||
|
rssi = wifi_station_get_rssi(); |
||||||
|
sprintf(buff, "%d", rssi2perc(rssi)); |
||||||
|
} |
||||||
|
|
||||||
|
} else if (streq(token, "staMAC")) { |
||||||
|
// Station MAC addr
|
||||||
|
wifi_get_macaddr(STATION_IF, mac); |
||||||
|
sprintf(buff, MACSTR, MAC2STR(mac)); |
||||||
|
|
||||||
|
} else if (streq(token, "apMAC")) { |
||||||
|
// SoftAP MAC addr
|
||||||
|
wifi_get_macaddr(SOFTAP_IF, mac); |
||||||
|
sprintf(buff, MACSTR, MAC2STR(mac)); |
||||||
|
|
||||||
|
} else if (streq(token, "chipID")) { |
||||||
|
// Chip serial number
|
||||||
|
sprintf(buff, "%08x", system_get_chip_id());*/ |
||||||
|
} |
||||||
|
|
||||||
|
httpdSend(connData, buff, -1); |
||||||
|
|
||||||
|
return HTTPD_CGI_DONE; |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
"sta": { |
||||||
|
"SSID": "%staSSID%", |
||||||
|
"RSSI": %staRSSI%, |
||||||
|
"RSSIperc": %staRSSIperc%, |
||||||
|
"MAC": "%staMAC%" |
||||||
|
}, |
||||||
|
"ap": { |
||||||
|
"MAC": "%apMAC%" |
||||||
|
}, |
||||||
|
*/ |
@ -0,0 +1,8 @@ |
|||||||
|
#ifndef PAGE_WAVEFORM_H |
||||||
|
#define PAGE_WAVEFORM_H |
||||||
|
|
||||||
|
#include <httpd.h> |
||||||
|
|
||||||
|
int tplWaveformJSON(HttpdConnData *connData, char *token, void **arg); |
||||||
|
|
||||||
|
#endif // PAGE_WAVEFORM_H
|
@ -0,0 +1,42 @@ |
|||||||
|
#include <esp8266.h> |
||||||
|
#include "utils.h" |
||||||
|
|
||||||
|
int FLASH_FN rssi2perc(int rssi) |
||||||
|
{ |
||||||
|
int r; |
||||||
|
|
||||||
|
// convert to percentage
|
||||||
|
if (rssi > -50) |
||||||
|
r = 100; |
||||||
|
else if (rssi < -100) |
||||||
|
r = 0; |
||||||
|
else |
||||||
|
r = 2 * (rssi + 100); // approx.
|
||||||
|
|
||||||
|
return r; |
||||||
|
} |
||||||
|
|
||||||
|
const FLASH_FN char *auth2str(AUTH_MODE auth) |
||||||
|
{ |
||||||
|
switch (auth) { |
||||||
|
case AUTH_OPEN: return "Open"; |
||||||
|
case AUTH_WEP: return "WEP"; |
||||||
|
case AUTH_WPA_PSK: return "WPA"; |
||||||
|
case AUTH_WPA2_PSK: return "WPA2"; |
||||||
|
case AUTH_WPA_WPA2_PSK: return "WPA/WPA2"; |
||||||
|
default: |
||||||
|
return "Unknown"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
const FLASH_FN char *opmode2str(int opmode) |
||||||
|
{ |
||||||
|
switch (opmode) { |
||||||
|
case NULL_MODE: return "Disabled"; |
||||||
|
case STATION_MODE: return "Client"; |
||||||
|
case SOFTAP_MODE: return "SoftAP"; |
||||||
|
case STATIONAP_MODE: return "STA+AP"; |
||||||
|
default: |
||||||
|
return "Unknown"; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,10 @@ |
|||||||
|
#ifndef UTILS_H |
||||||
|
#define UTILS_H |
||||||
|
|
||||||
|
#include <esp8266.h> |
||||||
|
|
||||||
|
int rssi2perc(int rssi); |
||||||
|
const char *auth2str(AUTH_MODE auth); |
||||||
|
const char *opmode2str(int opmode); |
||||||
|
|
||||||
|
#endif // UTILS_H
|
Loading…
Reference in new issue