Open notsolowki opened 4 years ago
The last of your majorTicks
should be equal to your maxValue
.
In your example, they differ (300 vs 260), so your gauge value would show up 300/260 = 1.15 times too high.
What would cause the needle not to match up with the value? for example, a value of 100 shows 150 on the needle?
<!doctype html> <html> <head> <title>Testing Gauges</title> <script src="gauge.min.js"></script> <link rel="stylesheet" type="text/css" href="gauge.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <header> <h1>Testing Gauge </h1> </header> <div align="center"> <canvas id="gauge-ps"></canvas> </div> <script> setInterval(function() { GetADC(); }, 1000); function GetADC() { var xhttp = new XMLHttpRequest(); var adc=0; xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { adc = Number(this.responseText); //adc = this.responseText ; document.getElementById("demo").innerHTML = adc; gaugePS.value = adc; //send DATA to needle } }; xhttp.open("GET", "/getADC", true); xhttp.send(); } var gaugePS = new RadialGauge({ renderTo: 'gauge-ps', width: 200, height: 200, units: "F", title: "Analog", minValue:0, maxValue: 260, majorTicks: [0,20,40,60,80,100,120,140,160,180,200,240,260,280,300], minorTicks: 10, strokeTicks: true, highlights: [ { "from": 60, "to": 100, "color": "rgba(0,0, 255, .3)" }, { "from": 190, "to": 260, "color": "rgba(255, 0, 0, .3)" } ], ticksAngle: 225, startAngle: 67.5, colorMajorTicks: "#ddd", colorMinorTicks: "#ddd", colorTitle: "#eee", colorUnits: "#ccc", colorNumbers: "#eee", colorPlate: "#222", borderShadowWidth: 0, borders: true, needleType: "arrow", needleWidth: 2, needleCircleSize: 7, needleCircleOuter: true, needleCircleInner: false, animationDuration: 100, animationRule: "linear", colorBorderOuter: "#333", colorBorderOuterEnd: "#111", colorBorderMiddle: "#222", colorBorderMiddleEnd: "#111", colorBorderInner: "#111", colorBorderInnerEnd: "#333", colorNeedleShadowDown: "#333", colorNeedleCircleOuter: "#333", colorNeedleCircleOuterEnd: "#111", colorNeedleCircleInner: "#111", colorNeedleCircleInnerEnd: "#222", valueBoxBorderRadius: 0, colorValueBoxRect: "#222", colorValueBoxRectEnd: "#333" }); gaugePS.draw(); </script> <p id="demo"></p> </body> </html>
I had this same issue on a Raspberry Pi zero W, running an AJAX script that looped and pulled in values that fed to the gauges. It was a timing issue. I adjusted the gauge variable animationDuration until the values were correct. What's really strange is the value was correct in the text box, it's just the needle that gave a strange value. Hope that helps you.
I had the same issue, this is due to your code having missing intervals for the major ticks.
Currently is has
majorTicks: [0,20,40,60,80,100,120,140,160,180,200,240,260,280,300]
should be
majorTicks: [0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300]
What would cause the needle not to match up with the value? for example, a value of 100 shows 150 on the needle?