www/js/mon_ispindel.js

changeset 578
e75ce5bbda73
parent 570
c8a20234d7e7
child 579
1253a237b620
equal deleted inserted replaced
577:b4bfed3684d0 578:e75ce5bbda73
1 /***************************************************************************** 1 /*****************************************************************************
2 * Copyright (C) 2019 2 * Copyright (C) 2019-2020
3 * 3 *
4 * Michiel Broek <mbroek at mbse dot eu> 4 * Michiel Broek <mbroek at mbse dot eu>
5 * 5 *
6 * This file is part of BMS 6 * This file is part of BMS
7 * 7 *
24 $(document).ready(function() { 24 $(document).ready(function() {
25 25
26 var record = {}, 26 var record = {},
27 blank = {}, 27 blank = {},
28 newProduct = false, 28 newProduct = false,
29 newMode = false,
29 schedule = 0, 30 schedule = 0,
30 31
31 productSource = { 32 productSource = {
32 datatype: 'json', 33 datatype: 'json',
33 cache: false, 34 cache: false,
79 value: 1000, 80 value: 1000,
80 pointer: { pointerType: 'arrow', size: '15%', visible: true, offset: 0 }, 81 pointer: { pointerType: 'arrow', size: '15%', visible: true, offset: 0 },
81 colorScheme: 'scheme05', 82 colorScheme: 'scheme05',
82 showRanges: false 83 showRanges: false
83 }, 84 },
84 url = 'getispindel.php?node="' + my_uuid + '"', 85 url = 'getispindel.php?uuid="' + my_uuid + '"',
85 source = { 86 source = {
86 datatype: 'json', 87 datatype: 'json',
87 datafields: [ 88 datafields: [
88 { name: 'record', type: 'int' }, 89 { name: 'record', type: 'int' },
90 { name: 'uuid', type: 'string' },
91 { name: 'alias', type: 'string' },
89 { name: 'node', type: 'string' }, 92 { name: 'node', type: 'string' },
90 { name: 'online', type: 'int' }, 93 { name: 'online', type: 'int' },
91 { name: 'beercode', type: 'string' }, 94 { name: 'beercode', type: 'string' },
92 { name: 'beername', type: 'string' }, 95 { name: 'beername', type: 'string' },
93 { name: 'beeruuid', type: 'string' }, 96 { name: 'beeruuid', type: 'string' },
94 { name: 'alarm', type: 'int' }, 97 { name: 'alarm', type: 'int' },
95 { name: 'tilt', type: 'float' }, 98 { name: 'angle', type: 'float' },
96 { name: 'temperature', type: 'float' }, 99 { name: 'temperature', type: 'float' },
97 { name: 'battery', type: 'float' }, 100 { name: 'battery', type: 'float' },
98 { name: 'gravity', type: 'float' }, 101 { name: 'gravity', type: 'float' },
99 { name: 'interval', type: 'int' }, 102 { name: 'up_interval', type: 'int' },
100 { name: 'rssi', type: 'int' } 103 { name: 'mode', type: 'string' }
101 ], 104 ],
102 id: 'record', 105 id: 'record',
103 url: url 106 url: url
104 }, 107 },
105 dataAdapter = new $.jqx.dataAdapter(source, { 108 dataAdapter = new $.jqx.dataAdapter(source, {
106 loadComplete: function(records) { 109 loadComplete: function(records) {
107 record = dataAdapter.records[0]; 110 record = dataAdapter.records[0];
108 var oline = (record.online) ? 'On-line' : 'Off-line'; 111 var oline = (record.online) ? 'On-line' : 'Off-line';
109 $('#info_system').html(record.node); 112 $('#info_uuid').html(record.uuid);
113 $('#info_system').html(record.node + '/' + record.alias);
110 $('#info_online').html(oline); 114 $('#info_online').html(oline);
111 $('#info_beer').html(record.beercode + ' - ' + record.beername); 115 $('#info_beer').html(record.beercode + ' - ' + record.beername);
112 // blank['name'] = record.alias; 116 $('#info_mode').jqxDropDownList('selectItem', record.mode);
113 // blank['code'] = record.alias.toUpperCase(); 117 blank['name'] = record.alias;
114 // blank['uuid'] = record.uuid; 118 blank['code'] = record.alias.toUpperCase();
115 119 blank['uuid'] = record.uuid;
116 if (record.online) { 120
121 if (record.online && (record.mode != 'OFF')) {
117 $('#ispindel_powerled').html('<div class="LEDblue_on"></div>Power'); 122 $('#ispindel_powerled').html('<div class="LEDblue_on"></div>Power');
118 $('#select_beer').jqxDropDownList({ disabled: true }); 123 $('#select_beer').jqxDropDownList({ disabled: true });
119 $('#select_beer').jqxDropDownList('clearSelection'); 124 $('#select_beer').jqxDropDownList('clearSelection');
120 $('#select_beer').hide(); 125 $('#select_beer').hide();
121 } else { 126 } else {
131 136
132 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: record.temperature.toFixed(3) + '°C' }}); 137 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: record.temperature.toFixed(3) + '°C' }});
133 $('#gaugeContainer_temperature').jqxGauge({ value: record.temperature }); 138 $('#gaugeContainer_temperature').jqxGauge({ value: record.temperature });
134 139
135 $('#info_battery').val(record.battery); 140 $('#info_battery').val(record.battery);
136 $('#info_rssi').val(record.rssi); 141 $('#info_tilt').val(record.angle);
137 $('#info_tilt').val(record.tilt);
138 142
139 gravity = plato_to_sg(record.gravity) * 1000; 143 gravity = plato_to_sg(record.gravity) * 1000;
140 $('#gaugeContainer_gravity').jqxLinearGauge({ value: gravity }); 144 $('#gaugeContainer_gravity').jqxLinearGauge({ value: gravity });
141 } 145 }
142 }); 146 });
155 return datarecord.code + ' - ' + datarecord.name; 159 return datarecord.code + ' - ' + datarecord.name;
156 } 160 }
157 }); 161 });
158 162
159 $('#info_battery').jqxNumberInput(Show3dec); 163 $('#info_battery').jqxNumberInput(Show3dec);
160 $('#info_rssi').jqxNumberInput(Show0dec);
161 $('#info_tilt').jqxNumberInput(Show3dec); 164 $('#info_tilt').jqxNumberInput(Show3dec);
162 165
163 $('#gaugeContainer_temperature').jqxGauge(gaugeoptionst); 166 $('#gaugeContainer_temperature').jqxGauge(gaugeoptionst);
164 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: 00.000' }}); 167 $('#gaugeContainer_temperature').jqxGauge({ caption: { value: 'Temp: 00.000' }});
165 $('#gaugeContainer_gravity').jqxLinearGauge(gaugeoptionsg); 168 $('#gaugeContainer_gravity').jqxLinearGauge(gaugeoptionsg);
166 169
170 srcMode = ['OFF', 'ON'];
171 $('#info_mode').jqxDropDownList({ theme: theme, source: srcMode, width: 100, height: 24, dropDownHeight: 65 });
172
167 function sendProduct(code, name, uuid) { 173 function sendProduct(code, name, uuid) {
168 174
169 console.log('sendProduct(' + code + ', ' + name + ', ' + uuid + ')'); 175 console.log('sendProduct(' + code + ', ' + name + ', ' + uuid + ')');
170 var data = 'node=' + record.node + '&beeruuid=' + uuid + '&beercode=' + code + '&beername=' + name; 176 var data = 'uuid=' + record.uuid + '&beeruuid=' + uuid + '&beercode=' + code + '&beername=' + name;
171 $.ajax({ 177 $.ajax({
172 url: 'cmd_ispindel.php', 178 url: 'cmd_ispindel.php',
173 data: data, 179 data: data,
174 type: 'POST', 180 type: 'POST',
175 success: function(data) {}, 181 success: function(data) {},
176 error: function(jqXHR, textStatus, errorThrown) { console.log('sendProduct() error'); } 182 error: function(jqXHR, textStatus, errorThrown) { console.log('sendProduct() error'); }
177 }); 183 });
178 } 184 }
179 185
186 function sendMode(mode) {
187
188 console.log('sendMode(' + mode + ')');
189 var data = 'uuid=' + record.uuid + '&mode=' + mode;
190 $.ajax({
191 url: 'cmd_ispindel.php',
192 data: data,
193 type: 'POST',
194 success: function(data) {},
195 error: function(jqXHR, textStatus, errorThrown) { console.log('sendMode() error'); }
196 });
197 }
198
180 // Get the data immediatly and then at regular intervals to refresh. 199 // Get the data immediatly and then at regular intervals to refresh.
181 dataAdapter.dataBind(); 200 dataAdapter.dataBind();
182 setInterval(function() { 201 setInterval(function() {
183 var skip = false; 202 var skip = false;
203 if (newMode) {
204 sendMode(record.mode);
205 newMode = false;
206 skip = true;
207 }
184 if (newProduct) { 208 if (newProduct) {
185 sendProduct(record.beercode, record.beername, record.beeruuid); 209 sendProduct(record.beercode, record.beername, record.beeruuid);
186 newProduct = false; 210 newProduct = false;
187 skip = true; 211 skip = true;
188 } 212 }
207 record.beername = datarecord.name; 231 record.beername = datarecord.name;
208 record.beeruuid = datarecord.uuid; 232 record.beeruuid = datarecord.uuid;
209 newProduct = true; 233 newProduct = true;
210 } 234 }
211 }); 235 });
236 $('#info_mode').on('change', function(event) {
237 var args = event.args;
238 if (args) {
239 record.mode = args.item.value;
240 }
241 newMode = true;
242 });
212 243
213 // The chart button. 244 // The chart button.
214 $('#VLog').jqxButton({ template: 'primary', width: '150px', theme: theme }); 245 $('#VLog').jqxButton({ template: 'primary', width: '150px', theme: theme });
215 // $('#FLog').click(function() { 246 // $('#FLog').click(function() {
216 // window.open('log_co2pressure.php?code=' + record.beercode + '&name=' + record.beername); 247 // window.open('log_co2pressure.php?code=' + record.beercode + '&name=' + record.beername);

mercurial