25 |
25 |
26 var bname = ''; |
26 var bname = ''; |
27 var bcode = ''; |
27 var bcode = ''; |
28 var yl = 12; // Normal yeast temp range |
28 var yl = 12; // Normal yeast temp range |
29 var yh = 24; |
29 var yh = 24; |
|
30 var bstage = ''; |
|
31 var bmode = ''; |
30 |
32 |
31 var gaugeoptions = { |
33 var gaugeoptions = { |
32 min: 0, max: 40, width: 375, height: 375, |
34 min: 0, max: 40, width: 375, height: 375, |
33 ranges: [{ startValue: 0, endValue: yl, style: { fill: '#3399FF', stroke: '#3399FF' }, endWidth: 10, startWidth: 10 }, |
35 ranges: [{ startValue: 0, endValue: yl, style: { fill: '#3399FF', stroke: '#3399FF' }, endWidth: 10, startWidth: 10 }, |
34 { startValue: yl, endValue: yh, style: { fill: '#00CC33', stroke: '#00CC33' }, endWidth: 10, startWidth: 10 }, |
36 { startValue: yl, endValue: yh, style: { fill: '#00CC33', stroke: '#00CC33' }, endWidth: 10, startWidth: 10 }, |
53 value: 0, |
55 value: 0, |
54 colorScheme: 'scheme05', |
56 colorScheme: 'scheme05', |
55 animationDuration: 1200, |
57 animationDuration: 1200, |
56 caption: { value: 'Chiller', position: 'bottom', offset: [0, 10] } |
58 caption: { value: 'Chiller', position: 'bottom', offset: [0, 10] } |
57 }; |
59 }; |
58 |
60 var switchoptions = { |
|
61 height: 68, |
|
62 width: 35, |
|
63 theme: theme, |
|
64 thumbSize:'50%', |
|
65 orientation: 'vertical' |
|
66 }; |
|
67 |
|
68 srcMode = [ "OFF", "NONE", "FRIDGE", "BEER", "PROFILE" ]; |
|
69 srcStage = [ "PRIMARY", "SECONDARY", "TERTIARY", "CARBONATION" ]; |
59 $("#gaugeContainer_air").jqxGauge( gaugeoptions ); |
70 $("#gaugeContainer_air").jqxGauge( gaugeoptions ); |
60 $("#gaugeContainer_air").jqxGauge( { caption: { value: 'Air', position: 'bottom', offset: [0, 10] }} ); |
71 $("#gaugeContainer_air").jqxGauge( { caption: { value: 'Air', position: 'bottom', offset: [0, 10] }} ); |
61 $("#gaugeContainer_beer").jqxGauge( gaugeoptions ); |
72 $("#gaugeContainer_beer").jqxGauge( gaugeoptions ); |
62 $("#gaugeContainer_beer").jqxGauge( { caption: { value: 'Beer', position: 'bottom', offset: [0, 10] }} ); |
73 $("#gaugeContainer_beer").jqxGauge( { caption: { value: 'Beer', position: 'bottom', offset: [0, 10] }} ); |
63 $("#gaugeContainer_chiller").jqxGauge( gaugeSmalloptions ); |
74 $("#gaugeContainer_chiller").jqxGauge( gaugeSmalloptions ); |
|
75 $("#fermenter_toggle1").jqxSwitchButton( switchoptions ); |
|
76 $("#fermenter_toggle2").jqxSwitchButton( switchoptions ); |
|
77 $("#fermenter_toggle3").jqxSwitchButton( switchoptions ); |
|
78 |
|
79 $("#info_mode").jqxDropDownList({ theme: theme, source: srcMode, width: 100, height: 23, dropDownHeight: 156 }); |
|
80 $("#info_stage").jqxDropDownList({ theme: theme, source: srcStage, width: 150, height: 23, dropDownHeight: 125 }); |
|
81 |
|
82 function sendBase(stage, mode) { |
|
83 |
|
84 console.log("sendBase("+stage+", "+mode+")"); |
|
85 var data = 'node=rpi01&alias=unit0&payload={"stage":"' + stage; |
|
86 data += '","mode":"' + mode + '","setpoint":{"low":17.8,"high":18.2}}'; |
|
87 $.ajax({ |
|
88 url: "cmd_fermenter.php", |
|
89 data: data, |
|
90 type: "POST", |
|
91 success: function(data) { |
|
92 //do something after something is recieved from php |
|
93 }, |
|
94 error: function(jqXHR, textStatus, errorThrown) { |
|
95 console.log("sendBase() error"); |
|
96 } |
|
97 }); |
|
98 } |
64 |
99 |
65 var url = "getfermenter.php?uuid='" + my_uuid + "'"; |
100 var url = "getfermenter.php?uuid='" + my_uuid + "'"; |
66 var source = { |
101 var source = { |
67 datatype: "json", |
102 datatype: "json", |
68 datafields: [ |
103 datafields: [ |
108 |
143 |
109 var dataAdapter = new $.jqx.dataAdapter(source, { |
144 var dataAdapter = new $.jqx.dataAdapter(source, { |
110 loadComplete: function (records) { |
145 loadComplete: function (records) { |
111 var record = dataAdapter.records[0]; |
146 var record = dataAdapter.records[0]; |
112 var oline = (record.online) ? "On-line" : "Off-line"; |
147 var oline = (record.online) ? "On-line" : "Off-line"; |
113 var html = "<table style='width: 100%; padding: 10px;'>"; |
148 $("#info_uuid").html(record.uuid); |
114 html += "<tr><th colspan=2>Klimaatkast overzicht</th></tr>"; |
149 $("#info_system").html(record.node + "/" + record.alias + " " + oline); |
115 html += "<tr><td>Uuid</td><td>" + record.uuid + "</td></tr>"; |
150 $("#info_beer").html(record.beercode + " - " + record.beername); |
116 html += "<tr><td>Systeem</td><td>" + record.node + "/" + record.alias + " " + oline + "</td></tr>"; |
|
117 html += "<tr><td>Bier</td><td>" + record.beercode + " - " + record.beername + "</td></tr>"; |
|
118 html += "<tr><td>Werking</td><td>" + record.mode + "</td></tr>"; |
|
119 html += "<tr><td>Fase</td><td>" + record.stage + "</td></tr>" |
|
120 html += "</<table>"; |
|
121 $("#fermenter_info").html(html); |
|
122 bcode = record.beercode; |
151 bcode = record.beercode; |
123 bname = record.beername; |
152 bname = record.beername; |
|
153 bstage = record.stage; |
|
154 bmode = record.mode; |
|
155 $("#info_mode").jqxDropDownList('selectItem', record.mode); |
|
156 $("#info_stage").jqxDropDownList('selectItem', record.stage); |
124 |
157 |
125 if (record.online && (record.mode != "OFF")) { |
158 if (record.online && (record.mode != "OFF")) { |
126 $("#fermentor_powerled").html('<div class="LEDblue_on"></div>Power'); |
159 $("#fermenter_powerled").html('<div class="LEDblue_on"></div>Power'); |
127 } else { |
160 } else { |
128 $("#fermentor_powerled").html('<div class="LEDblue_off"></div>Power'); |
161 $("#fermenter_powerled").html('<div class="LEDblue_off"></div>Power'); |
129 } |
162 } |
130 if (record.online && (record.alarm != "0")) { |
163 if (record.online && (record.alarm != "0")) { |
131 $("#fermentor_alarmled").html('<div class="LEDred_on"></div>Alarm'); |
164 $("#fermenter_alarmled").html('<div class="LEDred_on"></div>Alarm'); |
132 } else { |
165 } else { |
133 $("#fermentor_alarmled").html('<div class="LEDred_off"></div>Alarm'); |
166 $("#fermenter_alarmled").html('<div class="LEDred_off"></div>Alarm'); |
134 } |
167 } |
135 |
168 |
136 $("#target_lo").html(record.setpoint_low.toFixed(1)); |
169 $("#target_lo").html(record.setpoint_low.toFixed(1)); |
137 $("#target_hi").html(record.setpoint_high.toFixed(1)); |
170 $("#target_hi").html(record.setpoint_high.toFixed(1)); |
138 $("#load_air").html(record.air_temperature.toFixed(3)); |
171 $("#load_air").html(record.air_temperature.toFixed(3)); |
139 $("#load_beer").html(record.beer_temperature.toFixed(3)); |
172 $("#load_beer").html(record.beer_temperature.toFixed(3)); |
140 |
173 |
141 if (record.online && (record.heater_state != "0")) { |
174 if (record.online && (record.heater_state != "0")) { |
142 $("#fermentor_led1").html('<div class="LEDgreen_on"></div>Heat'); |
175 $("#fermenter_led1").html('<div class="LEDgreen_on"></div>Heat'); |
143 } else { |
176 } else { |
144 $("#fermentor_led1").html('<div class="LEDgreen_off"></div>Heat'); |
177 $("#fermenter_led1").html('<div class="LEDgreen_off"></div>Heat'); |
145 } |
178 } |
146 if (record.online && (record.cooler_state != "0")) { |
179 if (record.online && (record.cooler_state != "0")) { |
147 $("#fermentor_led2").html('<div class="LEDgreen_on"></div>Cool'); |
180 $("#fermenter_led2").html('<div class="LEDgreen_on"></div>Cool'); |
148 } else { |
181 } else { |
149 $("#fermentor_led2").html('<div class="LEDgreen_off"></div>Cool'); |
182 $("#fermenter_led2").html('<div class="LEDgreen_off"></div>Cool'); |
150 } |
183 } |
151 if (record.online && (record.fan_state != "0")) { |
184 if (record.online && (record.fan_state != "0")) { |
152 $("#fermentor_led3").html('<div class="LEDgreen_on"></div>Fan'); |
185 $("#fermenter_led3").html('<div class="LEDgreen_on"></div>Fan'); |
153 } else { |
186 } else { |
154 $("#fermentor_led3").html('<div class="LEDgreen_off"></div>Fan'); |
187 $("#fermenter_led3").html('<div class="LEDgreen_off"></div>Fan'); |
155 } |
188 } |
156 |
189 if (record.online && (record.mode == "NONE")) { |
|
190 $("#fermenter_toggle1").jqxSwitchButton( 'enable' ); |
|
191 $("#fermenter_toggle2").jqxSwitchButton( 'enable' ); |
|
192 $("#fermenter_toggle3").jqxSwitchButton( 'enable' ); |
|
193 } else { |
|
194 $("#fermenter_toggle1").jqxSwitchButton( 'disable' ); |
|
195 $("#fermenter_toggle2").jqxSwitchButton( 'disable' ); |
|
196 $("#fermenter_toggle3").jqxSwitchButton( 'disable' ); |
|
197 $("#fermenter_toggle1").val( (record.heater_state != "0") ); |
|
198 $("#fermenter_toggle2").val( (record.cooler_state != "0") ); |
|
199 $("#fermenter_toggle3").val( (record.fan_state != "0") ); |
|
200 } |
157 |
201 |
158 $('#gaugeContainer_air').jqxGauge({ value: record.air_temperature }); |
202 $('#gaugeContainer_air').jqxGauge({ value: record.air_temperature }); |
159 if (record.online && (record.air_state == "OK")) { |
203 if (record.online && (record.air_state == "OK")) { |
160 $("#gaugeContainer_air").jqxGauge({ disabled: false }); |
204 $("#gaugeContainer_air").jqxGauge({ disabled: false }); |
161 } else { |
205 } else { |
180 dataAdapter.dataBind(); |
224 dataAdapter.dataBind(); |
181 setInterval(function(){ |
225 setInterval(function(){ |
182 dataAdapter.dataBind(); |
226 dataAdapter.dataBind(); |
183 }, 10000); |
227 }, 10000); |
184 |
228 |
|
229 $('#info_mode').on('change', function (event) { |
|
230 sendBase(bstage, args.item.value); |
|
231 }); |
|
232 $('#info_stage').on('change', function (event) { |
|
233 sendBase(args.item.value, bmode); |
|
234 }); |
|
235 |
|
236 |
185 // The chart button. |
237 // The chart button. |
186 $("#FLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
238 $("#FLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
187 $("#FLog").click(function () { |
239 $("#FLog").click(function () { |
188 var url="log_fermentation.php?code=" + bcode + "&name=" + bname; |
240 var url="log_fermentation.php?code=" + bcode + "&name=" + bname; |
189 window.open(url); |
241 window.open(url); |