www/js/mon_co2meter.js

changeset 678
14322825cb3d
parent 526
2991acd35cdb
child 680
0bb48333d133
--- a/www/js/mon_co2meter.js	Tue May 12 16:08:30 2020 +0200
+++ b/www/js/mon_co2meter.js	Thu May 14 14:38:20 2020 +0200
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (C) 2019
+ * Copyright (C) 2019-2020
  *
  * Michiel Broek <mbroek at mbse dot eu>
  *
@@ -18,15 +18,13 @@
  * You should have received a copy of the GNU General Public License
  * along with ThermFerm; see the file COPYING.  If not, write to the Free
  * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *****************************************************************************/
+ */
 
 
 $(document).ready(function() {
 
  var record = {},
  blank = {},
- newProduct = false,
- schedule = 0,
 
  productSource = {
   datatype: 'json',
@@ -168,40 +166,8 @@
  $('#gaugeContainer_pressure').jqxGauge(gaugeoptionsp);
  $('#gaugeContainer_pressure').jqxGauge({ caption: { value: 'Bar: 00.000' }});
 
- function sendProduct(code, name, uuid) {
-
-  console.log('sendProduct(' + code + ', ' + name + ', ' + uuid + ')');
-  var data = 'uuid=' + record.uuid + '&beeruuid=' + uuid + '&beercode=' + code + '&beername=' + name;
-  $.ajax({
-   url: 'cmd_co2meter.php',
-   data: data,
-   type: 'POST',
-   success: function(data) {},
-   error: function(jqXHR, textStatus, errorThrown) { console.log('sendProduct() error'); }
-  });
- }
-
- // Get the data immediatly and then at regular intervals to refresh.
+ // Get the data
  dataAdapter.dataBind();
- setInterval(function() {
-  var skip = false;
-  if (newProduct) {
-   sendProduct(record.beercode, record.beername, record.beeruuid);
-   newProduct = false;
-   skip = true;
-  }
-  if (skip) {
-   schedule = 4; // 2 seconds wait to get the results
-  } else {
-   if (schedule > 0)
-    schedule--;
-  }
-
-  if (schedule <= 0) {
-   dataAdapter.dataBind();
-   schedule = 20;
-  }
- }, 500);
 
  $('#select_beer').on('select', function(event) {
   if (event.args) {
@@ -210,7 +176,10 @@
    record.beercode = datarecord.code;
    record.beername = datarecord.name;
    record.beeruuid = datarecord.uuid;
-   newProduct = true;
+   console.log('Select beer ' + record.beercode + ', ' + record.beername);
+   var msg = '{"device":"co2meters","node":"' + record.node + '","unit":"' + record.alias +
+             '","beeruuid":"' + record.beeruuid + '","beercode":"' + record.beercode + '","beername":"' + record.beername + '"}';
+   websocket.send(msg);
   }
  });
 
@@ -219,4 +188,41 @@
  $('#FLog').click(function() {
   window.open('log_co2pressure.php?code=' + record.beercode + '&name=' + record.beername);
  });
+
+ websocket.onmessage = function(evt) {
+  var msg = evt.data;
+  var obj = JSON.parse(msg);
+  if (obj.device == "co2meters" && obj.node == record.node && obj.unit == record.alias) {
+   console.log('ws got this device ' + msg);
+   if (obj.online) {
+    $('#info_online').html('On-line');
+   } else {
+    $('#info_online').html('Off-line');
+   }
+   $('#info_beer').html(obj.beercode + ' - ' + obj.beername);
+   $('#info_mode').html(obj.mode);
+   if (obj.online && obj.mode != 'OFF') {
+    $('#co2meter_powerled').html('<div class="LEDblue_on"></div>Power');
+    $('#select_beer').jqxDropDownList({ disabled: true });
+    $('#select_beer').jqxDropDownList('clearSelection');
+    $('#select_beer').hide();
+   } else {
+    $('#co2meter_powerled').html('<div class="LEDblue_off"></div>Power');
+    $('#select_beer').show();
+    $('#select_beer').jqxDropDownList({ disabled: false });
+   }
+   if (obj.online && (obj.alarm != '0')) {
+    $('#co2meter_alarmled').html('<div class="LEDred_on"></div>Alarm');
+   } else {
+    $('#co2meter_alarmled').html('<div class="LEDred_off"></div>Alarm');
+   }
+
+   $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: ' + obj.temperature.toFixed(3) }});
+   $('#gaugeContainer_temperature').jqxGauge({ value: obj.temperature });
+   $('#gaugeContainer_pressure').jqxGauge({ caption: { value: 'Bar: ' + obj.pressure_bar.toFixed(2) }});
+   $('#gaugeContainer_pressure').jqxGauge({ value: obj.pressure_bar });
+
+  }
+  ws_global(msg);
+ }
 });

mercurial