Screen Capture of WSAdam4_0.html |
I want to emphasize how easy it is to draw that circular gauge!
First of all choose the chart that you like the most.
http://chartjs.devexpress.com/Demos/VizGallery/#index
If you have picked Circular Gauge, let's have a look at 12 samples.
http://chartjs.devexpress.com/Demos/VizGallery/#chart/circulargaugesbasicelementspaletteforranges
Now we have to download the library.
http://chartjs.devexpress.com/Download
Last updated download file is DevExpressChartJS-13.2.9.zip
Next, read the tutorial very thoroughly. After reading this you can do everything!
http://chartjs.devexpress.com/Documentation/Tutorial/Configure_Gauges?version=13_2
If you want to know more, read the API reference.
http://chartjs.devexpress.com/Documentation/ApiReference/dxCircularGauge?version=13_2
I have divided up what we have to do roughly. It could easily be done by just simply following the tutorial.
- Load the needed js library.
- Create the gauge.
- Using HTML, create space for gauge.
If all the above is done, - Send data that gauge is going to represent.
<!DOCTYPE html> <html> <head> <title>ADAM-4017 4.0</title> <!--**************************** 1. Load the needed js library The following 3 js library is included in DevExpressChartJS-13.2.9\Lib\js I have attached it in this posting. ****************************--> <script type="text/javascript" src="jquery-2.0.3.min.js"></script> <script type="text/javascript" src="globalize.min.js"></script> <script type="text/javascript" src="dx.chartjs.js"></script> <script> var ws; var poll = 0; var intervalTimer; // **************************** // 2. Create the gauge // **************************** $(function() { $('#gaugeContainer').dxCircularGauge({ scale: { startValue: 0, endValue: 10, majorTick: { tickInterval: 1 }, minorTick: { visible: true, tickInterval: 0.1 } }, rangeContainer: { ranges: [{ startValue: 0, endValue: 9, color: 'royalblue' }, { startValue: 9, endValue: 10, color: 'red'}] }, valueIndicator: { color: 'red' }, title: { text: 'ADAM-4017', font: { size: 28 }, position: 'bottom-center' } }); }); $(document).ready(function() { WebSocketConnect(); }); function WebSocketConnect() { try { ws = new WebSocket('ws://192.168.219.16:80/'); ws.onopen = function() { status('Connected...'); ws.send("AI0"); } ws.onclose = function() { status('Closed...'); } ws.onerror = function(evt) { status('Error ' + evt.data); } ws.onmessage = function(evt) { // **************************** // 4. Send data that gauge is going to represent. // **************************** $('#gaugeContainer').dxCircularGauge('instance').value(evt.data); } } catch (exception) {status('Exception ' + exception);} } function DI_poll() { ws.send("AI0"); intervalTimer = setTimeout(function() { DI_poll() }, 500); } function DI_pollEnable() { if (!poll) { poll++; DI_poll(); } } function DI_pollDisable() { clearTimeout(intervalTimer); poll = 0; } function status(str) { $('#status').append(str); } </script> </head> <body> <p id="status">Connection Status: </p> <button type="button" onclick="DI_pollEnable()">Input Refresh ON</button> <button type="button" onclick="DI_pollDisable()">OFF</button> <!--**************************** 3. Using HTML create space for gauge. ****************************--> <div id="gaugeContainer" style="height:380px"></div> </body> </html>
Full codes can be found in following links
- WSAdam4_0.html:
https://github.com/michelleseo/Arduino_Web/blob/master/WSAdam/WSAdam4_0.html - dx.chartjs.js:
https://github.com/michelleseo/Arduino_Web/blob/master/WSAdam/dx.chartjs.js - globalize.min.js:
https://github.com/michelleseo/Arduino_Web/blob/master/WSAdam/globalize.min.js - jquery-2.0.3.min.js:
https://github.com/michelleseo/Arduino_Web/blob/master/WSAdam/jquery-2.0.3.min.js
No comments:
Post a Comment