16 * General Public License for more details. |
16 * General Public License for more details. |
17 * |
17 * |
18 * You should have received a copy of the GNU General Public License |
18 * You should have received a copy of the GNU General Public License |
19 * along with ThermFerm; see the file COPYING. If not, write to the Free |
19 * along with ThermFerm; see the file COPYING. If not, write to the Free |
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
21 *****************************************************************************/ |
21 */ |
22 |
22 |
23 |
23 |
24 $(document).ready(function() { |
24 $(document).ready(function() { |
25 |
25 |
26 var record = {}, |
26 var record = {}, |
27 blank = {}, |
27 blank = {}, |
28 newProduct = false, |
|
29 schedule = 0, |
|
30 |
28 |
31 productSource = { |
29 productSource = { |
32 datatype: 'json', |
30 datatype: 'json', |
33 cache: false, |
31 cache: false, |
34 datafields: [ |
32 datafields: [ |
166 $('#gaugeContainer_temperature').jqxGauge(gaugeoptionst); |
164 $('#gaugeContainer_temperature').jqxGauge(gaugeoptionst); |
167 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: 00.000' }}); |
165 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: 00.000' }}); |
168 $('#gaugeContainer_pressure').jqxGauge(gaugeoptionsp); |
166 $('#gaugeContainer_pressure').jqxGauge(gaugeoptionsp); |
169 $('#gaugeContainer_pressure').jqxGauge({ caption: { value: 'Bar: 00.000' }}); |
167 $('#gaugeContainer_pressure').jqxGauge({ caption: { value: 'Bar: 00.000' }}); |
170 |
168 |
171 function sendProduct(code, name, uuid) { |
169 // Get the data |
172 |
|
173 console.log('sendProduct(' + code + ', ' + name + ', ' + uuid + ')'); |
|
174 var data = 'uuid=' + record.uuid + '&beeruuid=' + uuid + '&beercode=' + code + '&beername=' + name; |
|
175 $.ajax({ |
|
176 url: 'cmd_co2meter.php', |
|
177 data: data, |
|
178 type: 'POST', |
|
179 success: function(data) {}, |
|
180 error: function(jqXHR, textStatus, errorThrown) { console.log('sendProduct() error'); } |
|
181 }); |
|
182 } |
|
183 |
|
184 // Get the data immediatly and then at regular intervals to refresh. |
|
185 dataAdapter.dataBind(); |
170 dataAdapter.dataBind(); |
186 setInterval(function() { |
|
187 var skip = false; |
|
188 if (newProduct) { |
|
189 sendProduct(record.beercode, record.beername, record.beeruuid); |
|
190 newProduct = false; |
|
191 skip = true; |
|
192 } |
|
193 if (skip) { |
|
194 schedule = 4; // 2 seconds wait to get the results |
|
195 } else { |
|
196 if (schedule > 0) |
|
197 schedule--; |
|
198 } |
|
199 |
|
200 if (schedule <= 0) { |
|
201 dataAdapter.dataBind(); |
|
202 schedule = 20; |
|
203 } |
|
204 }, 500); |
|
205 |
171 |
206 $('#select_beer').on('select', function(event) { |
172 $('#select_beer').on('select', function(event) { |
207 if (event.args) { |
173 if (event.args) { |
208 var index = event.args.index, |
174 var index = event.args.index, |
209 datarecord = productlist.records[index]; |
175 datarecord = productlist.records[index]; |
210 record.beercode = datarecord.code; |
176 record.beercode = datarecord.code; |
211 record.beername = datarecord.name; |
177 record.beername = datarecord.name; |
212 record.beeruuid = datarecord.uuid; |
178 record.beeruuid = datarecord.uuid; |
213 newProduct = true; |
179 console.log('Select beer ' + record.beercode + ', ' + record.beername); |
|
180 var msg = '{"device":"co2meters","node":"' + record.node + '","unit":"' + record.alias + |
|
181 '","beeruuid":"' + record.beeruuid + '","beercode":"' + record.beercode + '","beername":"' + record.beername + '"}'; |
|
182 websocket.send(msg); |
214 } |
183 } |
215 }); |
184 }); |
216 |
185 |
217 // The chart button. |
186 // The chart button. |
218 $('#FLog').jqxButton({ template: 'primary', width: '150px', theme: theme }); |
187 $('#FLog').jqxButton({ template: 'primary', width: '150px', theme: theme }); |
219 $('#FLog').click(function() { |
188 $('#FLog').click(function() { |
220 window.open('log_co2pressure.php?code=' + record.beercode + '&name=' + record.beername); |
189 window.open('log_co2pressure.php?code=' + record.beercode + '&name=' + record.beername); |
221 }); |
190 }); |
|
191 |
|
192 websocket.onmessage = function(evt) { |
|
193 var msg = evt.data; |
|
194 var obj = JSON.parse(msg); |
|
195 if (obj.device == "co2meters" && obj.node == record.node && obj.unit == record.alias) { |
|
196 console.log('ws got this device ' + msg); |
|
197 if (obj.online) { |
|
198 $('#info_online').html('On-line'); |
|
199 } else { |
|
200 $('#info_online').html('Off-line'); |
|
201 } |
|
202 $('#info_beer').html(obj.beercode + ' - ' + obj.beername); |
|
203 $('#info_mode').html(obj.mode); |
|
204 if (obj.online && obj.mode != 'OFF') { |
|
205 $('#co2meter_powerled').html('<div class="LEDblue_on"></div>Power'); |
|
206 $('#select_beer').jqxDropDownList({ disabled: true }); |
|
207 $('#select_beer').jqxDropDownList('clearSelection'); |
|
208 $('#select_beer').hide(); |
|
209 } else { |
|
210 $('#co2meter_powerled').html('<div class="LEDblue_off"></div>Power'); |
|
211 $('#select_beer').show(); |
|
212 $('#select_beer').jqxDropDownList({ disabled: false }); |
|
213 } |
|
214 if (obj.online && (obj.alarm != '0')) { |
|
215 $('#co2meter_alarmled').html('<div class="LEDred_on"></div>Alarm'); |
|
216 } else { |
|
217 $('#co2meter_alarmled').html('<div class="LEDred_off"></div>Alarm'); |
|
218 } |
|
219 |
|
220 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: ' + obj.temperature.toFixed(3) }}); |
|
221 $('#gaugeContainer_temperature').jqxGauge({ value: obj.temperature }); |
|
222 $('#gaugeContainer_pressure').jqxGauge({ caption: { value: 'Bar: ' + obj.pressure_bar.toFixed(2) }}); |
|
223 $('#gaugeContainer_pressure').jqxGauge({ value: obj.pressure_bar }); |
|
224 |
|
225 } |
|
226 ws_global(msg); |
|
227 } |
222 }); |
228 }); |