295 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			295 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
<!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;
 | 
						|
        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("errMsg").innerHTML = value[1];
 | 
						|
                        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]);
 | 
						|
                        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.open("GET", "saveParameter" + data, true);
 | 
						|
            request.onreadystatechange = function(){
 | 
						|
                if(this.readyState == 4 && this.status == 200){
 | 
						|
                    if(this.responseText == "ok"){
 | 
						|
                        alert("Parameters saved");
 | 
						|
                        getParameter();
 | 
						|
                    }else{
 | 
						|
                        alert("Save parameter failed !");
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            request.send();
 | 
						|
        }
 | 
						|
        function autoCalibrate(){
 | 
						|
            alert("Please put the reference weight on the scale.");
 | 
						|
            var request = new XMLHttpRequest();
 | 
						|
            request.open("GET", "autoCalibrate", true);
 | 
						|
            request.onreadystatechange = function(){
 | 
						|
                if(this.readyState == 4 && this.status == 200){
 | 
						|
                    if(this.responseText == "ok"){
 | 
						|
                        alert("Calibration successful");
 | 
						|
                        getParameter();
 | 
						|
                    }else{
 | 
						|
                        alert("Calibration failed !");
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            request.send();
 | 
						|
        }
 | 
						|
        function resetDefault(){
 | 
						|
            if (confirm("Reset to factory defaults ?")) {
 | 
						|
                var request = new XMLHttpRequest();
 | 
						|
                request.open("GET", "resetDefault", true);
 | 
						|
                request.onreadystatechange = function(){
 | 
						|
                    if(this.readyState == 4 && this.status == 200){
 | 
						|
                        if(this.responseText == "ok"){
 | 
						|
                            alert("Reset to factory defaults successful");
 | 
						|
                            getParameter();
 | 
						|
                        }else{
 | 
						|
                            alert("Reset to factory defaults failed !");
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                request.send();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function setValue(id, value)
 | 
						|
        {    
 | 
						|
            var element = document.getElementById(id);
 | 
						|
            element.value = value;
 | 
						|
        }
 | 
						|
        function getValue(id)
 | 
						|
        {    
 | 
						|
            return document.getElementById(id).value;
 | 
						|
        }
 | 
						|
    </script>
 | 
						|
</head>
 | 
						|
<body onload=getRawValue()>
 | 
						|
    <script>
 | 
						|
        getHead();
 | 
						|
        getWiFiNetworks();
 | 
						|
        getParameter();
 | 
						|
    </script>
 | 
						|
    <nav class="navbar navbar-dark fixed-top bg-dark">
 | 
						|
        <div class="container-fluid">
 | 
						|
            <div class="navbar-header">
 | 
						|
                <a class="navbar-brand" href="#"><span id="ssid"></span></a>"
 | 
						|
            </div>
 | 
						|
            <ul class="nav navbar-nav navbar-right">
 | 
						|
                <button type="button" onclick="location.href = '/'" class="btn btn-danger">Home</button>
 | 
						|
            </ul>
 | 
						|
        </div>
 | 
						|
    </nav>
 | 
						|
    <br><br><br>
 | 
						|
    <main role="main" class="container">
 | 
						|
        <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>
 | 
						|
        <button class="btn btn-success btn-lg" onclick="saveParameter()">save</button>
 | 
						|
        <button class="btn btn-primary btn-lg" onclick="autoCalibrate()">auto calibrate</button>
 | 
						|
        <button class="btn btn-danger btn-lg" onclick="resetDefault()">reset</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>
 | 
						|
        <!--<p><font size="4"><center>Lc1: <span id="lc1">-</span> Lc2: <span id="lc2">-</span><div id="lc3_div"> Lc3: <span id="lc3">-</span></div></center></font></p>-->
 | 
						|
    </main>
 | 
						|
    <!--<div class="container"><font size="6"><span id="errMsg">-</span></font></div>-->
 | 
						|
    <p><font size="2"><center>(c) 2019 M. Lehmann - Version: <span id="cgscaleVersion">0.0</span></center></font></p>
 | 
						|
</body>
 | 
						|
</html> |