CG_scale/data/settings.html

280 lines
13 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="M. Lehmann">
<title>CG scale by M. Lehmann</title>
<link href="/bootstrap.min.css" rel="stylesheet">
<script src="/bootstrap.min.js"></script>
<script>
var CG_trans_visible = true;
2019-01-23 21:40:06 +01:00
function getHead(){
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
if(this.responseText != null){
var responseString = this.responseText;
var value = responseString.split("&");
document.getElementById("ssid").innerHTML = value[0];
document.getElementById("cgscaleVersion").innerHTML = value[2];
}
}
}
request.open("GET", "getHead", true);
request.send();
}
function getRawValue(){
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
if(this.responseText != null){
var responseString = this.responseText;
var value = responseString.split("&");
document.getElementById("lc1").innerHTML = value[0];
document.getElementById("lc2").innerHTML = value[1];
if(CG_trans_visible == true){
document.getElementById("lc3").innerHTML = value[2];
}
}
}
}
request.open("GET", "getRawValue", true);
request.send();
setTimeout('getRawValue()', 1000);
}
function getParameter(){
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
if(this.responseText != null){
var responseString = this.responseText;
var value = responseString.split("&");
setValue("nLoadcells", value[0]);
setValue("distanceX1", value[1]);
setValue("distanceX2", value[2]);
setValue("distanceX3", value[3]);
setValue("refWeight", value[4]);
setValue("refCG", value[5]);
setValue("calFactorLoadcell1", value[6]);
setValue("calFactorLoadcell2", value[7]);
setValue("calFactorLoadcell3", value[8]);
setValue("resistorR1", value[9]);
setValue("resistorR2", value[10]);
setValue("enableBatVolt", value[11]);
setValue("ssid_STA", value[12]);
setValue("password_STA", value[13]);
setValue("ssid_AP", value[14]);
setValue("password_AP", value[15]);
2019-01-23 21:40:06 +01:00
document.getElementById("modelName").innerHTML = value[16];
if(value[0] == "2"){
CG_trans_visible = false;
document.getElementById("lc3_div").outerHTML = "";
}
}
}
}
request.open("GET", "getParameter", true);
request.send();
}
function getWiFiNetworks(){
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
if(this.responseText != null){
var responseString = this.responseText;
var value = responseString.split("&");
var select = document.getElementById('ssid_STA');
for (var i = 0; i<value.length; ++i){
var opt = document.createElement('option');
opt.value = value[i];
opt.innerHTML = value[i];
select.appendChild(opt);
}
}
}
}
request.open("GET", "getWiFiNetworks", true);
request.send();
}
function saveParameter(){
var data = "?";
data += "nLoadcells=" + document.getElementById("nLoadcells").value;
data += "&distanceX1=" + document.getElementById("distanceX1").value;
data += "&distanceX2=" + document.getElementById("distanceX2").value;
data += "&distanceX3=" + document.getElementById("distanceX3").value;
data += "&refWeight=" + document.getElementById("refWeight").value;
data += "&refCG=" + document.getElementById("refCG").value;
data += "&calFactorLoadcell1=" + document.getElementById("calFactorLoadcell1").value;
data += "&calFactorLoadcell2=" + document.getElementById("calFactorLoadcell2").value;
data += "&calFactorLoadcell3=" + document.getElementById("calFactorLoadcell3").value;
data += "&resistorR1=" + document.getElementById("resistorR1").value;
data += "&resistorR2=" + document.getElementById("resistorR2").value;
data += "&enableBatVolt=" + document.getElementById("enableBatVolt").value;
data += "&ssid_STA=" + document.getElementById("ssid_STA").value;
data += "&password_STA=" + document.getElementById("password_STA").value;
data += "&ssid_AP=" + document.getElementById("ssid_AP").value;
data += "&password_AP=" + document.getElementById("password_AP").value;
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
2019-01-23 21:40:06 +01:00
alert("Parameters saved");
getParameter();
}else if(this.readyState == 4 && this.status == 404){
alert("Save parameter failed !");
}
}
2019-01-23 21:40:06 +01:00
request.open("GET", "saveParameter" + data, true);
request.send();
}
function autoCalibrate(){
alert("Please put the reference weight on the scale.");
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
2019-01-23 21:40:06 +01:00
alert("Calibration successful");
getParameter();
}else if(this.readyState == 4 && this.status == 404){
alert("Calibration failed !");
}
}
2019-01-23 21:40:06 +01:00
request.open("GET", "autoCalibrate", true);
request.send();
}
function setValue(id, value)
{
var element = document.getElementById(id);
element.value = value;
}
function getValue(id)
{
return document.getElementById(id).value;
}
</script>
</head>
2019-01-23 21:40:06 +01:00
<body>
<nav class="navbar navbar-dark fixed-top bg-dark">
<div class="container-fluid">
<div class="navbar-header">
2019-01-23 21:40:06 +01:00
<a class="navbar-brand" href="#"><span id="ssid"></span></a>
</div>
<ul class="nav navbar-nav navbar-right">
2019-01-23 21:40:06 +01:00
<form class="form-inline">
<button type="button" onclick="location.href = '/models.html'" class="btn btn-primary navbar-btn mx-2">
<img src="airplane.png" alt="" style="width:auto;height:30px">
<span id="modelName"></span>
</button>
<button type="button" onclick="location.href = '/'" class="btn btn-danger navbar-btn">
<img src="home.png" alt="" style="width:auto;height:30px">
</button>
</form>
</ul>
</div>
</nav>
2019-01-23 21:40:06 +01:00
<main role="main" class="container" style="margin-top:100px">
<h3>WiFi settings</h3>
<div class="form-group">
<label>Home WiFi name (SSID):</label>
<select class="form-control" id="ssid_STA">
</select>
<small class="form-text text-muted">Connect to existing network</small>
</div>
<div class="form-group">
<label>WiFi password:</label>
<input type="password" class="form-control" id="password_STA" value="-">
</div>
<br>
<div class="form-group">
<label>Access point WiFi name (SSID):</label>
<input type="text" class="form-control" id="ssid_AP" value="-">
<small class="form-text text-muted">If no network is present, a private network is created</small>
</div>
<div class="form-group">
<label>WiFi password:</label>
<input type="password" class="form-control" id="password_AP" value="-">
<small class="form-text text-muted">At least 8 characters</small>
</div>
<br><br>
<h3>CG scale settings</h3>
<div class="form-group">
<label>Number of load cells:</label>
<select class="form-control" id="nLoadcells">
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<div class="form-group">
<label>Distance X1 [mm]:</label>
<input type="text" class="form-control" id="distanceX1" value="-">
</div>
<div class="form-group">
<label>Distance X2 [mm]:</label>
<input type="text" class="form-control" id="distanceX2" value="-">
</div>
<div class="form-group">
<label>Distance X3 [mm]:</label>
<input type="text" class="form-control" id="distanceX3" value="-">
</div>
<div class="form-group">
<label>Reference weight [g]:</label>
<input type="text" class="form-control" id="refWeight" value="-">
</div>
<div class="form-group">
<label>Reference CG [mm]:</label>
<input type="text" class="form-control" id="refCG" value="-">
</div>
<div class="form-group">
<label>Calibration factor of load cell 1:</label>
<input type="text" class="form-control" id="calFactorLoadcell1" value="-">
</div>
<div class="form-group">
<label>Calibration factor of load cell 2:</label>
<input type="text" class="form-control" id="calFactorLoadcell2" value="-">
</div>
<div class="form-group">
<label>Calibration factor of load cell 3:</label>
<input type="text" class="form-control" id="calFactorLoadcell3" value="-">
</div>
<div class="form-group">
<label>Value of resistor R1 [ohm]:</label>
<input type="text" class="form-control" id="resistorR1" value="-">
</div>
<div class="form-group">
<label>Value of resistor R2 [ohm]:</label>
<input type="text" class="form-control" id="resistorR2" value="-">
</div>
<div class="form-group">
<label>Voltage measurement:</label>
<select class="form-control" id="enableBatVolt">
<option value="ON">ON</option>
<option value="OFF">OFF</option>
</select>
</div>
<br><br>
2019-01-23 21:40:06 +01:00
<button class="btn btn-success btn-lg" onclick="saveParameter()">Save</button>
<button class="btn btn-primary btn-lg" onclick="autoCalibrate()">Auto calibrate</button>
<img src="CG_scale_mechanics.png" class="pull-left mr-4" alt="mechanics" style="width:100%">
<font size="4">
<div>
<p><center>Lc1: <span id="lc1">-</span></center></p>
</div>
<div>
<p><center>Lc2: <span id="lc2">-</span></center></p>
</div>
<div id="lc3_div">
<p><center>Lc3: <span id="lc3">-</span></center></p>
</div>
</font>
<br><br>
</main>
<p><font size="2"><center>(c) 2019 M. Lehmann - Version: <span id="cgscaleVersion">0.0</span></center></font></p>
2019-01-23 21:40:06 +01:00
<script>
getHead();
getWiFiNetworks();
getParameter();
getRawValue();
</script>
</body>
</html>