Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.12 KB | None | 0 0
  1. var url = 'http://www.example.com/json';
  2.  
  3. function removeTable(id)
  4. {
  5. var tbl = document.getElementById(id);
  6. if (tbl) tbl.parentNode.removeChild(tbl);
  7. }
  8.  
  9. document.addEventListener('DOMContentLoaded', function ()
  10. {
  11. // do not display gauge on mobile devices
  12. if (jscd.mobile)
  13. {
  14. removeTable("gaugeTable")
  15. document.getElementById("gaugeTable").innerHTML = "";
  16. }
  17. }, false);
  18.  
  19. (function (window)
  20. {
  21. {
  22. var unknown = '-';
  23. // browser
  24. var nVer = navigator.appVersion;
  25. // mobile version
  26. var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);
  27. }
  28. window.jscd = {
  29. mobile: mobile,
  30. };
  31. }(this));
  32.  
  33.  
  34. $().ready(function ()
  35. {
  36. setInterval(function ()
  37. {
  38. jQuery.support.cors = true;
  39. // do not pull and display non-mobile devices.
  40. if (jscd.mobile)
  41. {
  42. $.ajax(
  43. {
  44. url: url,
  45. data:
  46. {
  47. format: 'json'
  48. },
  49. error: function (jqXHR, textStatus, errorThrown)
  50. {
  51. alert(textStatus + ': ' + errorThrown);
  52. },
  53. dataType: 'json',
  54. crossDomain: true,
  55. success: function (sensorData)
  56. {
  57. var tempHumidData = sensorData.arduino;
  58. renderHTML(tempHumidData);
  59.  
  60. },
  61.  
  62. type: 'GET'
  63. });
  64. }
  65. }, 5000);
  66. });
  67.  
  68.  
  69.  
  70. function renderHTML(data)
  71. {
  72. if (data)
  73. {
  74. removeTable("pullingDataMsg")
  75. var sensorDataContainer = document.getElementById("displaySensorData");
  76. var htmlString = "<table id='headTable' style='width:100%'><tr><th>Location</th><th>Temperature</th><th>Humidity</th></tr>";
  77. for (i = 0; i < data.length; i++)
  78. {
  79. htmlString += "<tr align='center'><td>" + data[i].location + "</td><td>" + data[i].temperatureInC + "&deg;C/ " + data[i].temperatureInF + "&deg;F </td> <td> " + data[i].humidity + "%</td></tr>";
  80. }
  81. htmlString += "</table>"
  82. sensorDataContainer.innerHTML = htmlString;
  83. }
  84. }
  85.  
  86. //------------- Google Gauge -------------------//
  87.  
  88. // global variables
  89. var chart, humidityChart, data, humidityData;
  90. // maximum value for the gauge
  91. var max_gauge_value = 70;
  92. // name of the gauge
  93. var gauge_name = 'Temperature';
  94. var outTemp, drwngRomTemp, outHumidity, drwRomHumid;
  95.  
  96. var hoptions = {
  97. animation:
  98. {
  99. duration: 1000,
  100. easing: 'inAndOut'
  101. },
  102. min: 0,
  103. max: 100,
  104. redFrom: 90,
  105. redTo: 100,
  106. yellowFrom: 75,
  107. yellowTo: 90,
  108. minorTicks: 5
  109. };
  110.  
  111. // load the google gauge visualization
  112. google.load('visualization', '1',
  113. {
  114. 'packages': ['gauge']
  115. });
  116. google.setOnLoadCallback(initChart);
  117.  
  118. // display the data
  119. function displayData(outTemp, drwngRomTemp, outHumidity, drwRomHumid)
  120. {
  121. chart.draw(data, options);
  122. data.setValue(0, 0, gauge_name);
  123. data.setValue(0, 1, outTemp);
  124. data.setValue(1, 0, gauge_name);
  125. data.setValue(1, 1, drwngRomTemp);
  126. humidityChart.draw(humidityData, hoptions);
  127. humidityData.setValue(0, 0, "Humidity");
  128. humidityData.setValue(0, 1, outHumidity);
  129. humidityData.setValue(1, 0, "Humidity");
  130. humidityData.setValue(1, 1, drwRomHumid);
  131. removeTable("pullingDataMsg")
  132. }
  133.  
  134. // load the data
  135. function loadData()
  136. {
  137. // get the data from arduino
  138.  
  139. $.ajax(
  140. {
  141. url: url,
  142. data:
  143. {
  144. format: 'json'
  145. },
  146. error: function (jqXHR, textStatus, errorThrown)
  147. {
  148. alert(textStatus + ': ' + errorThrown);
  149. },
  150. dataType: 'json',
  151. crossDomain: true,
  152. success: function (sensorData)
  153. {
  154. // set the sensor data pulled from arduino to global variable sensorData
  155. // get the data point
  156. outTemp = sensorData.arduino[0].temperatureInC;
  157. drwngRomTemp = sensorData.arduino[1].temperatureInC;
  158. outHumidity = sensorData.arduino[0].humidity;
  159. drwRomHumid = sensorData.arduino[1].humidity;
  160. displayData(outTemp, drwngRomTemp, outHumidity, drwRomHumid);
  161. },
  162.  
  163. type: 'GET'
  164. });
  165. }
  166.  
  167. // initialize the chart
  168. function initChart()
  169. {
  170. var initTempData = {
  171. "cols": [
  172. {
  173. "id": "",
  174. "label": "Label",
  175. "pattern": "",
  176. "type": "string"
  177. },
  178. {
  179. "id": "",
  180. "label": "Temperature",
  181. "pattern": "",
  182. "type": "number"
  183. }],
  184. "rows": [
  185. {
  186. "c": [
  187. {
  188. "v": "Temperature",
  189. "f": null
  190. },
  191. {
  192. "v": -20,
  193. "f": null
  194. }]
  195. },
  196. {
  197. "c": [
  198. {
  199. "v": "Temperature",
  200. "f": null
  201. },
  202. {
  203. "v": -20,
  204. "f": null
  205. }]
  206. }]
  207. };
  208.  
  209. data = new google.visualization.DataTable(initTempData);
  210.  
  211. options = {
  212. greenFrom: 10,
  213. greenTo: 29,
  214. redFrom: 41,
  215. redTo: 70,
  216. yellowFrom: 30,
  217. yellowTo: 40,
  218. majorTicks: ['-10', '0', '10', '20', '30', '40', '50', '60', ''],
  219. minorTicks: 5,
  220. animation:
  221. {
  222. duration: 1000,
  223. easing: 'inAndOut'
  224. },
  225. min: -20,
  226. max: 70,
  227. greenColor: '#CCFFCC',
  228. yellowColor: '#FFFFCC',
  229. redColor: '#F78181'
  230. };
  231.  
  232. chart = new google.visualization.Gauge(document.getElementById('gauge_div'));
  233.  
  234. var initHumidData = {
  235. "cols": [
  236. {
  237. "id": "",
  238. "label": "Label",
  239. "pattern": "",
  240. "type": "string"
  241. },
  242. {
  243. "id": "",
  244. "label": "Humidity",
  245. "pattern": "",
  246. "type": "number"
  247. }],
  248. "rows": [
  249. {
  250. "c": [
  251. {
  252. "v": "Humidity",
  253. "f": null
  254. },
  255. {
  256. "v": 0,
  257. "f": null
  258. }]
  259. },
  260. {
  261. "c": [
  262. {
  263. "v": "Humidity",
  264. "f": null
  265. },
  266. {
  267. "v": 0,
  268. "f": null
  269. }]
  270. }]
  271. };
  272.  
  273.  
  274. humidityData = new google.visualization.DataTable(initHumidData);
  275.  
  276. humidityChart = new google.visualization.Gauge(document.getElementById('humidity_gauge_div'));
  277.  
  278. loadData();
  279.  
  280. // load new data every 5 seconds
  281. setInterval('loadData()', 5000);
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement