Files
AI-on-the-edge-device/sd-card/html/common.js
2023-11-07 22:42:15 +01:00

146 lines
4.1 KiB
JavaScript

/* The UI can also be run locally, but you have to set the IP of your devide accordingly.
* And you also might have to disable CORS in your webbrowser!
* Keep empty to disable using it. Enabling it will break access through a forwared port, see
* https://github.com/jomjol/AI-on-the-edge-device/issues/2681 */
var domainname_for_testing = "";
//var domainname_for_testing = "192.168.1.151";
/* Returns the domainname with prepended protocol.
Eg. http://watermeter.fritz.box or http://192.168.1.5 */
function getDomainname(){
var host = window.location.hostname;
if (domainname_for_testing != "") {
console.log("Using pre-defined domainname for testing: " + domainname_for_testing);
domainname = "http://" + domainname_for_testing
}
else
{
domainname = window.location.protocol + "//" + host;
if (window.location.port != "") {
domainname = domainname + ":" + window.location.port;
}
}
return domainname;
}
function UpdatePage(_dosession = true){
var zw = location.href;
zw = zw.substr(0, zw.indexOf("?"));
if (_dosession) {
window.location = zw + '?session=' + Math.floor((Math.random() * 1000000) + 1);
}
else {
window.location = zw;
}
}
function LoadHostname() {
_domainname = getDomainname();
var xhttp = new XMLHttpRequest();
xhttp.addEventListener('load', function(event) {
if (xhttp.status >= 200 && xhttp.status < 300) {
hostname = xhttp.responseText;
document.title = hostname + " - AI on the edge";
document.getElementById("id_title").innerHTML = "Digitizer - AI on the edge - " + hostname;
}
else {
console.warn(request.statusText, request.responseText);
}
});
// var xhttp = new XMLHttpRequest();
try {
url = _domainname + '/info?type=Hostname';
xhttp.open("GET", url, true);
xhttp.send();
}
catch (error)
{
// alert("Loading Hostname failed");
}
}
var fwVersion = "";
var webUiVersion = "";
function LoadFwVersion() {
_domainname = getDomainname();
var xhttp = new XMLHttpRequest();
xhttp.addEventListener('load', function(event) {
if (xhttp.status >= 200 && xhttp.status < 300) {
fwVersion = xhttp.responseText;
document.getElementById("Version").innerHTML = fwVersion;
console.log(fwVersion);
compareVersions();
}
else {
console.warn(request.statusText, request.responseText);
fwVersion = "NaN";
}
});
try {
url = _domainname + '/info?type=FirmwareVersion';
xhttp.open("GET", url, true);
xhttp.send();
}
catch (error) {
fwVersion = "NaN";
}
}
function LoadWebUiVersion() {
_domainname = getDomainname();
var xhttp = new XMLHttpRequest();
xhttp.addEventListener('load', function(event) {
if (xhttp.status >= 200 && xhttp.status < 300) {
webUiVersion = xhttp.responseText;
console.log("Web UI Version: " + webUiVersion);
compareVersions();
}
else {
console.warn(request.statusText, request.responseText);
webUiVersion = "NaN";
}
});
try {
url = _domainname + '/info?type=HTMLVersion';
console.log("url");
xhttp.open("GET", url, true);
xhttp.send();
}
catch (error) {
webUiVersion = "NaN";
}
}
function compareVersions() {
if (fwVersion == "" || webUiVersion == "") {
return;
}
arr = fwVersion.split(" ");
fWGitHash = arr[arr.length - 1].substring(0, 7);
arr = webUiVersion.split(" ");
webUiHash = arr[arr.length - 1].substring(0, 7);
console.log("FW Hash: " + fWGitHash + ", Web UI Hash: " + webUiHash);
if (fWGitHash != webUiHash) {
firework.launch("The version of the web interface (" + webUiHash +
") does not match the firmware version (" +
fWGitHash + ")! It is suggested to keep them on the same version!", 'warning', 30000);
}
}