Commit 1ee0c71778693591e957adb4846a3de947d85593

Authored by tom200e
0 parents
Exists in master

first

File was created 1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2 <?PHP
3 define ('INDEX','http://52.74.132.133/');
4 define ('SYSTEM_DBHOST','52.74.132.133:3306');
5 define ('SYSTEM_DBNAME','sanlien');
6 define ('SYSTEM_DBUSER','3944');
7 define ('SYSTEM_DBPWD','12345');
8 define ('USER_DEVICE_SENSOR','user_device_sensor');
9 define ('USER_DEVICE_SENSOR_LOAD','user_device_sensor_load');
10 define ('USER_CONTACT','user_contact');
11 define ('USER_DEVICE','user_device');
12 /************* 簡訊傳送設定 *******************/
13 include_once('Device.cls.php');
14 include_once('WADB.cls.php');
15 $Device = new Device();
16 ?>
17 <table width="100%" border="1" cellpadding="0" cellspacing="0" style="text-align:center">
18 <thead>
19 <tr>
20 <th style="text-align:center"><?PHP echo '裝置名稱'; ?></th>
21 <th style="text-align:center"><?PHP echo '欄位'; ?></th>
22 <th style="text-align:center"><?PHP echo '時間'; ?></th>
23 <th style="text-align:center"><?PHP echo '電壓'; ?></th>
24 <th style="text-align:center"><?PHP echo '溫度'; ?></th>
25 <th style="text-align:center"><?PHP echo '計算後'; ?></th>
26 <th style="text-align:center"><?PHP echo '初始值'; ?></th>
27 <th style="text-align:center"><?PHP echo '上-下行動值'; ?></th>
28 <th style="text-align:center"><?PHP echo '上-下警戒值'; ?></th>
29 <th style="text-align:center"><?PHP echo '擷取上-下值'; ?></th>
30 <th style="text-align:center"><?PHP echo '原始上-下值'; ?></th>
31 <th style="text-align:center"><?PHP echo '通知者'; ?></th>
32
33 </tr>
34 </thead>
35 <?PHP
36 $filename = "CR1000_TNBR_Table1.dat";
37 $project_code = 'C25104';
38 if($filename != ""){
39 $num = 0;
40 $sensor_data_load_info = $Device->get_sensor_load_data_list($project_code);
41 $sensor_data_load_info_device = $Device->get_sensor_load_data_list($project_code);
42 //print_r($sensor_data_load_info_device);
43
44 //讀取檔案
45 $nn = 0;
46 $handle = @fopen($filename ,"r");
47 while(($data = fgetcsv($handle,1000,",","'")) != false){
48 $i = 0;
49 foreach($data as $key => $value){
50 $aa[$nn][$i] = $value;
51 $i++;
52
53 }
54 $nn++;
55 }
56 fclose($handle);
57 $packet = (@str_replace('"','',$aa[4][0]) == "") ? $aa[5][0]:$aa[4][0];
58 $number_of_key = (str_replace('"','',$aa[4][0]) == "") ? '5':'4';
59 $var = strtotime(str_replace('"','',$packet));
60 //copy($filename, 'backup/'.$filename);
61
62 $bb=0;
63 $handle_1 = @fopen('backup/'.$filename ,"r");
64 while(($data_1 = fgetcsv($handle_1,1000,",","'")) != false){
65 $i = 0;
66 foreach($data_1 as $k => $v_2){
67 $back[$bb][$i] = $v_2;
68 $i++;
69
70 }
71 $nn++;
72 }
73 fclose($handle_1);
74 copy($filename, 'backup/'.$filename);
75 if(!is_file('backup/'.$filename)){
76
77 $v_n = 0;
78 foreach($sensor_data_load_info_device as $key => $value){
79 //判斷檔案是否有符合
80
81 if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature" or $filename == $value['load_data']) {
82 $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //警告值.行動值.等等
83 foreach($sensor_data as $k => $v){
84 $top_active[$v['sensor_id']] = $v['top_active'];
85 $down_active[$v['sensor_id']]= $v['down_active'];
86 $top_alert[$v['sensor_id']] = $v['top_alert'];
87 $down_alert[$v['sensor_id']] = $v['down_alert'];
88 $upper_limit[$v['sensor_id']] = $v['limit_uper'];
89 $lower_limit[$v['sensor_id']] = $v['limit_lower'];
90 $upper[$v['sensor_id']] = $v['upper_limit'];
91 $lower[$v['sensor_id']] = $v['lower_limit'];
92 $unit[$v['sensor_id']] = $v['unit'];
93 }
94 //echo $value['dat']."|".$value['formula']."|".$value['subsum']."<br>";
95 $formula = $value['formula'];
96 $dat = $value['dat'];
97 $dat_1 = explode(',',$value['dat']);
98 $start_val = $value['start_val'];
99 $start_val_1 = explode(',',$value['start_val']);
100 $subsum = $value['subsum'];
101 (@$sensor_data[$v_n]['device_code'] != $value['device_code']) ? $v_n = 0:'';
102 if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature"){
103 $name = $value['name'];
104 }else{
105 $name = $sensor_data[$v_n]['sensor_id'];
106 $v_n++;
107 }
108 $project_code = $value['project_code'];
109 $device_code = $value['device_code'];
110 $formula_val = $value['formula_val'];
111 $C5 = ($value['C5'] != '') ? $value['C5']:0;
112 $C4 = ($value['C4'] != '') ? $value['C4']:0;
113 $C3 = ($value['C3'] != '') ? $value['C3']:0;
114 $C2 = ($value['C2'] != '') ? $value['C2']:0;
115 $C1 = ($value['C1'] != '') ? $value['C1']:0;
116 $C0 = ($value['C0'] != '') ? $value['C0']:0;
117 $S2 = ($value['S2'] != '') ? $value['S2']:0;
118 $S1 = ($value['S1'] != '') ? $value['S1']:0;
119 $S0 = ($value['S0'] != '') ? $value['S0']:0;
120 $F1 = ($value['F1'] != '') ? $value['F1']:0;
121 $F0 = ($value['F0'] != '') ? $value['F0']:0;
122
123
124
125 //fclose($filename);
126 $search_final = count($aa) - 1;
127 $total_default = 0;
128 $j = 0;
129 for($i=$number_of_key;$i<=$search_final;$i++){ //dat檔從第五列資料開始抓
130 //欄位值有兩個時作為判斷
131 if(@$dat_1[1] != ""){
132 $mathself = $aa[$i][$dat_1[0]];
133 $mathself_1 = $aa[$i][$dat_1[1]];
134 }else{
135 //判斷溫度、日期、電壓
136 switch($name){
137 case "date":
138 $sensor_date[] = $aa[$i][$value['dat']];
139 break;
140
141 case "voltage":
142 $sensor_voltage[] = $aa[$i][$value['dat']];
143 break;
144
145 case "temperature":
146 $sensor_temperature[] = $aa[$i][$value['dat']];
147 $temperature[] = $aa[$i][$value['dat']];
148 break;
149 default:
150 $mathself = $aa[$i][$value['dat']];
151 break;
152 }
153 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
154 }
155
156 //初始值有兩個時作為判斷
157 if(@$start_val_1[1] != ""){
158 $default_val = $start_val_1[0];
159 $default_val_1 = $start_val_1[1];
160 }else{
161 $default_val = $start_val;
162 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
163 }
164
165 //$mathself = 2;
166 //$mathself_1 = 3;
167 $total_sum = 0;
168
169
170
171 //計算公式
172 switch($formula_val){
173 case '1':
174 $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
175 $total_default = $C5*pow($default_val,5) + $C4*pow($default_val,4) + $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
176 //$total_sum += $val*$sum;
177 break;
178
179 case '2':
180 $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
181 $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
182 break;
183
184 case '3':
185 $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
186 $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
187 break;
188
189 case '4':
190 $total_sum = $C1*pow($mathself,1) + $C0;
191 $total_default = $C1*pow($default_val,1) + $C0;
192 break;
193
194 case '5':
195 $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val;
196 $total_default = $C5*pow($default_val_1,2) + $C4*$default_val*$default_val_1 + $C3*pow($default_val,2) + $C2*$default_val_1 + $C1*$default_val + $C0 + $val;
197 break;
198
199 case '6':
200 $total_sum = ($C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*$mathself + $C0)*($S2*pow($mathself_1,2) + $S1*$mathself_1 + $S0) + $F1*$mathself_1 + $F0 + $val;
201 $total_default = ($C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*$default_val + $C0)*($S2*pow($default_val_1,2) + $S1*$default_val_1 + $S0) + $F1*$default_val_1 + $F0 + $val;
202 break;
203
204 case '7':
205 $total_sum = 0;
206 break;
207
208 case '8':
209 $total_sum = 0;
210 break;
211
212 case '9':
213 $total_sum = 0;
214 break;
215
216 case '0':
217 $total_sum = 0;
218 break;
219
220 }
221
222 //判斷sensor_name 如果是日期,電壓,溫度 不存入資料庫
223 if($name != 'date' and $name != 'voltage' and $name != 'temperature'){
224 $device_name = $Device->get_device_data($device_code);
225 $Calculat = $total_sum - $total_default + $subsum;
226 $notify_str = $project_name.$device_name['device_name'].$name;
227 $notify_number = "於".str_replace('"','',$sensor_date[$j])."量測值".number_format($Calculat,2)."/".$unit[$value['name']];
228 ?>
229 <tr data-gt="<?php echo $name ?>" class="<?php echo ($key % 2 == 0) ? 'aa' : 'bb'; ?>">
230 <td><?php echo $value['name'] ?></td>
231 <td><?php echo $value['dat'] ?></td>
232 <td><?php echo $sensor_date[$j] = ($sensor_date[$j] != "") ? $sensor_date[$j]:$sensor_date[$j+1];?></td>
233 <td><?php echo $sensor_voltage[$j] = ($sensor_voltage[$j] != "") ? $sensor_voltage[$j]:$sensor_voltage[$j+1]; ?></td>
234 <td><?php echo $sensor_temperature[$j] = ($sensor_temperature[$j] != "") ? $sensor_temperature[$j]:$sensor_temperature[$j+1]; ?></td>
235 <td><?php echo $Calculat; ?></td>
236 <td><?php echo $default_val ?></td>
237 <td><?php echo $top_active[$value['name']]." - " .$down_active[$value['name']]; ?></td>
238 <td><?php echo $top_alert[$value['name']]." - " .$down_alert[$value['name']]; ?></td>
239 <td><?php echo $upper_limit[$value['name']]." - " .$lower_limit[$value['name']]; ?></td>
240 <td><?php echo $upper[$value['name']]." - " .$lower[$value['name']]; ?></td>
241 <td>
242
243
244 </td>
245 </tr>
246 <?PHP
247 //檔案內時間欄位$sensor_date[$i]
248
249 $date = strtotime(str_replace('"','',$sensor_date[$j]));
250 $total = $total_sum-$total_default+$subsum;
251 $Device->add_sensor_load_val($device_code,$value['name'],$sensor_voltage[$j],$sensor_temperature[$j],$mathself,$total,$default_val,$top_alert[$value['name']],$down_alert[$value['name']],$top_active[$value['name']],$down_active[$value['name']],$upper_limit[$value['name']],$lower_limit[$value['name']],$date,$project_code,$filename,$mathself,time()+14400);
252 $j++;
253 }
254
255 }//for迴圈終點
256
257 }
258 $num++;
259 }
260 }else{
261 $v_n = 0;
262 foreach($sensor_data_load_info_device as $key => $value){
263 //判斷檔案是否有符合
264
265 if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature" or $filename == $value['load_data']) {
266 $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //警告值.行動值.等等
267 foreach($sensor_data as $k => $v){
268 $top_active[$v['sensor_id']] = $v['top_active'];
269 $down_active[$v['sensor_id']]= $v['down_active'];
270 $top_alert[$v['sensor_id']] = $v['top_alert'];
271 $down_alert[$v['sensor_id']] = $v['down_alert'];
272 $upper_limit[$v['sensor_id']] = $v['limit_uper'];
273 $lower_limit[$v['sensor_id']] = $v['limit_lower'];
274 $upper[$v['sensor_id']] = $v['upper_limit'];
275 $lower[$v['sensor_id']] = $v['lower_limit'];
276 $unit[$v['sensor_id']] = $v['unit'];
277 }
278 //echo $value['dat']."|".$value['formula']."|".$value['subsum']."<br>";
279 $formula = $value['formula'];
280 $dat = $value['dat'];
281 $dat_1 = explode(',',$value['dat']);
282 $start_val = $value['start_val'];
283 $start_val_1 = explode(',',$value['start_val']);
284 $subsum = $value['subsum'];
285 (@$sensor_data[$v_n]['device_code'] != $value['device_code']) ? $v_n = 0:'';
286 if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature"){
287 $name = $value['name'];
288 }else{
289 $name = $sensor_data[$v_n]['sensor_id'];
290 $v_n++;
291 }
292 $project_code = $value['project_code'];
293 $device_code = $value['device_code'];
294 $formula_val = $value['formula_val'];
295 $C5 = ($value['C5'] != '') ? $value['C5']:0;
296 $C4 = ($value['C4'] != '') ? $value['C4']:0;
297 $C3 = ($value['C3'] != '') ? $value['C3']:0;
298 $C2 = ($value['C2'] != '') ? $value['C2']:0;
299 $C1 = ($value['C1'] != '') ? $value['C1']:0;
300 $C0 = ($value['C0'] != '') ? $value['C0']:0;
301 $S2 = ($value['S2'] != '') ? $value['S2']:0;
302 $S1 = ($value['S1'] != '') ? $value['S1']:0;
303 $S0 = ($value['S0'] != '') ? $value['S0']:0;
304 $F1 = ($value['F1'] != '') ? $value['F1']:0;
305 $F0 = ($value['F0'] != '') ? $value['F0']:0;
306
307
308
309 //fclose($filename);
310 $search_final = count($aa) - 1;
311 $total_default = 0;
312 $j = 0;
313 for($i=count($back);$i<=$search_final;$i++){ //dat檔從第五列資料開始抓
314 //欄位值有兩個時作為判斷
315 if(@$dat_1[1] != ""){
316 $mathself = $aa[$i][$dat_1[0]];
317 $mathself_1 = $aa[$i][$dat_1[1]];
318 }else{
319 //判斷溫度、日期、電壓
320 switch($name){
321 case "date":
322 $sensor_date[] = $aa[$i][$value['dat']];
323 break;
324
325 case "voltage":
326 $sensor_voltage[] = $aa[$i][$value['dat']];
327 break;
328
329 case "temperature":
330 $sensor_temperature[] = $aa[$i][$value['dat']];
331 $temperature[] = $aa[$i][$value['dat']];
332 break;
333 default:
334 $mathself = $aa[$i][$value['dat']];
335 break;
336 }
337 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
338 }
339
340 //初始值有兩個時作為判斷
341 if(@$start_val_1[1] != ""){
342 $default_val = $start_val_1[0];
343 $default_val_1 = $start_val_1[1];
344 }else{
345 $default_val = $start_val;
346 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
347 }
348
349 //$mathself = 2;
350 //$mathself_1 = 3;
351 $total_sum = 0;
352
353
354
355 //計算公式
356 switch($formula_val){
357 case '1':
358 $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
359 $total_default = $C5*pow($default_val,5) + $C4*pow($default_val,4) + $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
360 //$total_sum += $val*$sum;
361 break;
362
363 case '2':
364 $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
365 $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
366 break;
367
368 case '3':
369 $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
370 $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
371 break;
372
373 case '4':
374 $total_sum = $C1*pow($mathself,1) + $C0;
375 $total_default = $C1*pow($default_val,1) + $C0;
376 break;
377
378 case '5':
379 $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val;
380 $total_default = $C5*pow($default_val_1,2) + $C4*$default_val*$default_val_1 + $C3*pow($default_val,2) + $C2*$default_val_1 + $C1*$default_val + $C0 + $val;
381 break;
382
383 case '6':
384 $total_sum = ($C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*$mathself + $C0)*($S2*pow($mathself_1,2) + $S1*$mathself_1 + $S0) + $F1*$mathself_1 + $F0 + $val;
385 $total_default = ($C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*$default_val + $C0)*($S2*pow($default_val_1,2) + $S1*$default_val_1 + $S0) + $F1*$default_val_1 + $F0 + $val;
386 break;
387
388 case '7':
389 $total_sum = 0;
390 break;
391
392 case '8':
393 $total_sum = 0;
394 break;
395
396 case '9':
397 $total_sum = 0;
398 break;
399
400 case '0':
401 $total_sum = 0;
402 break;
403
404 }
405
406 //判斷sensor_name 如果是日期,電壓,溫度 不存入資料庫
407 if($name != 'date' and $name != 'voltage' and $name != 'temperature'){
408 $device_name = $Device->get_device_data($device_code);
409 $Calculat = $total_sum - $total_default + $subsum;
410 $notify_str = $project_name.$device_name['device_name'].$name;
411 $notify_number = "於".str_replace('"','',$sensor_date[$j])."量測值".number_format($Calculat,2)."/".$unit[$value['name']];
412 ?>
413 <tr data-gt="<?php echo $name ?>" class="<?php echo ($key % 2 == 0) ? 'aa' : 'bb'; ?>">
414 <td><?php echo $value['name'] ?></td>
415 <td><?php echo $value['dat'] ?></td>
416 <td><?php echo $sensor_date[$j] = ($sensor_date[$j] != "") ? $sensor_date[$j]:$sensor_date[$j+1];?></td>
417 <td><?php echo $sensor_voltage[$j] = ($sensor_voltage[$j] != "") ? $sensor_voltage[$j]:$sensor_voltage[$j+1]; ?></td>
418 <td><?php echo $sensor_temperature[$j] = ($sensor_temperature[$j] != "") ? $sensor_temperature[$j]:$sensor_temperature[$j+1]; ?></td>
419 <td><?php echo $Calculat; ?></td>
420 <td><?php echo $default_val ?></td>
421 <td><?php echo $top_active[$value['name']]." - " .$down_active[$value['name']]; ?></td>
422 <td><?php echo $top_alert[$value['name']]." - " .$down_alert[$value['name']]; ?></td>
423 <td><?php echo $upper_limit[$value['name']]." - " .$lower_limit[$value['name']]; ?></td>
424 <td><?php echo $upper[$value['name']]." - " .$lower[$value['name']]; ?></td>
425 <td>
426
427
428 </td>
429 </tr>
430 <?PHP
431 //檔案內時間欄位$sensor_date[$i]
432
433 $date = strtotime(str_replace('"','',$sensor_date[$j]));
434 $total = $total_sum-$total_default+$subsum;
435 $Device->add_sensor_load_val($device_code,$value['name'],$sensor_voltage[$j],$sensor_temperature[$j],$mathself,$total,$default_val,$top_alert[$value['name']],$down_alert[$value['name']],$top_active[$value['name']],$down_active[$value['name']],$upper_limit[$value['name']],$lower_limit[$value['name']],$date,$project_code,$filename,$mathself,time()+14400);
436 $j++;
437 }
438
439 }//for迴圈終點
440
441 }
442 $num++;
443 }
444 }
445 }
446
447
448 ?>
449 </table>
450
451
CR1000_TNBR_Table1.dat
File was created 1 "TOA5","CR1000_TNBR","CR1000","20787","CR1000.Std.15","CPU:CR1000_Manjung 8 channel 1min.CR1","15719","Table1"
2 "TIMESTAMP","RECORD","BattV","PTemp_C","Temp_C(1)","Temp_C(2)","Temp_C(3)","Temp_C(4)","Temp_C(5)","Temp_C(6)","Temp_C(7)","Temp_C(8)"
3 "TS","RN","Volts","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C"
4 "","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp"
5 "2016-05-30 16:30:00",0,12.93,33.47,369.3,373.2,362.7,"NAN",33.96,"NAN",321.5,33.39
6 "2016-05-30 16:31:00",1,12.93,33.43,369.6,373.4,363,"NAN",34.25,"NAN",321.7,33.52
7 "2016-05-30 16:32:00",2,12.93,33.4,369.7,373.6,363.2,"NAN",33.4,210.2,321.8,33.56
8 "2016-05-30 16:33:00",3,12.93,33.43,369.6,373.4,363.3,322.5,33.76,210.6,322,33.43
9 "2016-05-30 16:34:00",4,12.92,33.43,369.5,373.3,363.2,322,33.92,210.6,321.8,33.27
10 "2016-05-30 16:35:00",5,12.93,33.4,369.1,372.8,362.8,321.2,34.05,210.5,321.5,33.4
11 "2016-05-30 16:36:00",6,12.93,33.4,368.6,372.5,362.3,320.5,33.97,"NAN",320.7,33.4
12 "2016-05-30 16:37:00",7,12.93,33.4,368.2,372.1,361.9,319.7,34.05,"NAN",320.2,33.24
13 "2016-05-30 16:38:00",8,12.93,33.4,367.8,371.7,"NAN",317.2,34.21,"NAN",319.4,33.56
14 "2016-05-30 16:39:00",9,12.93,33.32,367.2,371.1,361.5,315.5,34.14,216.3,318.5,33.65
15 "2016-05-30 16:40:00",10,12.93,33.29,366.8,370.8,361.1,315.8,33.94,215,317.7,32.8
16 "2016-05-30 16:41:00",11,12.93,33.29,366.5,370.6,360.8,315.8,34.01,214.3,317.6,33.93
17 "2016-05-30 16:42:00",12,12.93,33.29,366.4,370.8,360.6,315.2,33.93,212.1,317.1,33.85
18 "2016-05-30 16:43:00",13,12.93,33.29,366.5,370.8,360.6,313.8,33.85,211.9,316.8,33.85
19 "2016-05-30 16:44:00",14,12.93,33.29,366.9,371.1,360.8,313.9,33.85,212.1,316.4,33.85
20 "2016-05-30 16:45:00",15,12.93,33.25,367.4,371.5,361.2,314.6,34.22,"NAN",316.3,34.14
21 "2016-05-30 16:46:00",16,12.92,33.21,367.9,371.9,361.6,314.5,34.26,"NAN",316.4,34.26
22 "2016-05-30 16:47:00",17,12.94,33.17,368.3,372.4,362,314.1,34.06,211.9,316.6,34.22
23 "2016-05-30 16:48:00",18,12.94,33.17,368.7,372.7,362.4,314,33.74,213.4,316.6,33.74
24 "2016-05-30 16:49:00",19,12.94,33.1,368.9,373.1,362.7,314.5,34.15,213.7,316.6,34.15
25 "2016-05-30 16:50:00",20,12.93,32.99,369.1,373.1,363,313.8,33.71,214.2,316.5,33.71
26 "2016-05-30 16:51:00",21,12.94,32.92,369.1,373.2,"NAN",311.7,33.64,214.5,315.9,33.32
27 "2016-05-30 16:52:00",22,12.94,32.81,369.1,372.9,"NAN",311,33.53,215,315.3,33.37
28 "2016-05-30 16:53:00",23,12.94,32.77,368.9,372.7,363,310.2,33.41,217.8,314.7,33.33
29 "2016-05-30 16:54:00",24,12.95,32.77,368.7,372.6,362.9,310,33.01,217.6,314,32.85
30 "2016-05-30 16:55:00",25,12.93,32.77,368.2,372.1,362.6,308.4,32.93,217.5,313.2,32.85
31 "2016-05-30 16:56:00",26,12.95,32.73,367.8,371.6,362.3,308,32.65,217.1,312.4,32.65
32 "2016-05-30 16:57:00",27,12.94,32.77,367.4,371.3,361.9,306.9,32.53,217.1,311.5,32.53
33 "2016-05-30 16:58:00",28,12.93,32.81,367.1,370.9,361.7,306.9,32.56,217,310.7,32.56
34 "2016-05-30 16:59:00",29,12.94,32.81,366.7,370.1,361.3,307.3,32.56,210.4,310.2,32.4
35 "2016-05-30 17:00:00",30,12.93,32.84,366.4,369.8,361.1,309.2,32.84,212.3,310.1,32.76
36 "2016-05-30 17:01:00",31,12.93,32.84,366.4,370,360.9,310.1,33.25,211.7,310.3,33.08
37 "2016-05-30 17:02:00",32,12.94,32.88,366.5,370.2,360.8,309.2,32.96,211.6,310.5,32.72
38 "2016-05-30 17:03:00",33,12.94,32.88,366.6,370.3,360.7,308,33.04,212,310.3,32.72
39 "2016-05-30 17:04:00",34,12.94,32.88,366.8,370.4,"NAN",308.3,33.04,204.8,310.4,32.72
40
41
File was created 1 <?
2 date_default_timezone_set('Asia/Taipei');
3 class Device{
4
5 var $db;
6
7 //建構函式
8 public function Device(){
9 $this->db = new WADB(SYSTEM_DBHOST, SYSTEM_DBNAME, SYSTEM_DBUSER, SYSTEM_DBPWD);
10 return true;
11 }
12
13 //建立使用者帳號
14 public function add_device_data($data){
15 foreach($data as $key => $value){
16 $$key = mysql_real_escape_string($value);
17 }
18 $device_code = $this->rand_user_code();
19 if($this->check_company_name($device_name) == '0'){
20 $sql = "insert into ".USER_DEVICE."
21 (
22 project_code,
23 device_code,
24 device_name,
25 device_name_short,
26 start_number,
27 end_number,
28 creater,
29 time
30 )
31 value
32 (
33 '".$project_code."',
34 '".$device_code."',
35 '".$device_name."',
36 '".$device_name_short."',
37 '".$start_number."',
38 '".$end_number."',
39 '".$creater."',
40 '".time()."'
41 )";
42 $this->db->insertRecords($sql);
43 $return['success'] = true;
44 $return['data'] = $device_code;
45 }else{
46 $return['error'] = '儀器名稱重複';
47 }
48 return $return;
49 }
50
51 //產生使用者編號
52 private function rand_user_code(){
53 $rand =0;
54 while (true){
55 $rand = rand(10000,99999);
56 $count = $this->check_company_code($rand);
57 if ($count==0){
58 break;
59 }
60 }
61 return $rand;
62 }
63
64 //判斷公司編號是否重複
65 public function check_company_code($rand){
66 $sql = "select
67 count(device_code) as count
68 from
69 ".USER_DEVICE."
70 where
71 device_code='".$rand."'";
72 $retStr = $this->db->selectRecords($sql);
73 return $retStr['0']['count'];
74 }
75
76 //判斷公司名稱是否重複
77 public function check_company_name($device_name){
78 $device_name = mysql_real_escape_string($device_name);
79 $sql = "select
80 count(device_name) as count
81 from
82 ".USER_DEVICE."
83 where
84 device_name='".$device_name."'";
85 $retStr = $this->db->selectRecords($sql);
86 return $retStr['0']['count'];
87 }
88
89 //判斷 Email格式 是否正確
90 private function isValidEmail($email){
91 return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
92 }
93
94
95 //建立專案資料夾
96 public function Copy_File($src,$dst){
97 $dir = opendir($src);
98 @mkdir($dst);
99 while(false !== ( $file = readdir($dir)) ) {
100 if (( $file != '.' ) && ( $file != '..' )) {
101 if ( is_dir($src . '/' . $file) ) {
102 $this->Copy_File($src . '/' . $file,$dst . '/' . $file);
103 }
104 else {
105 copy($src . '/' . $file,$dst . '/' . $file);
106 }
107 }
108 }
109 closedir($dir);
110 }
111
112 //取得儀器清單
113 public function device_list($project_code){
114 $project_code = mysql_real_escape_string($project_code);
115 $sql = "select
116 project_code,
117 device_code,
118 device_name,
119 device_name_short,
120 start_number,
121 end_number
122 from
123 ".USER_DEVICE."
124 where
125 project_code = '".$project_code."' ";
126 $retStr = $this->db->selectRecords($sql);
127 return $retStr;
128 }
129
130 //取得使用者資訊
131 public function get_user_data($user_code){
132 $user_code = mysql_real_escape_string($user_code);
133 $sql = "select
134 user_code,
135 user_name,
136 user_account,
137 user_passwd
138 from
139 ".USER_LIST."
140 where
141 user_code = '".$user_code."' ";
142 $retStr = $this->db->selectRecords($sql);
143 return $retStr;
144 }
145
146 //更新使用者資訊
147 public function update_user_data($data){
148 foreach($data as $key => $value){
149 $$key = mysql_real_escape_string($value);
150 }
151 $sql = "update
152 ".USER_LIST."
153 set
154 user_name = '".$user_name."',
155 user_account = '".$user_account."',
156 user_passwd = '".$user_passwd."'
157 where
158 user_code = '".$user_code."' ";
159 $this->db->updateRecords($sql);
160 }
161
162 //新增修改紀錄
163 public function Insertuser_record($project_code,$project_user,$user_code,$action){
164 $project_code = mysql_real_escape_string($project_code);
165 $system_user = mysql_real_escape_string($system_user);
166 $action = mysql_real_escape_string($action);
167 $sql = "insert into ".USER_RECORD."
168 (
169
170 project_code,
171 project_user,
172 user_code,
173 action,
174 time
175 )
176 values
177 (
178 '".$project_code."',
179 '".$project_user."',
180 '".$user_code."',
181 '".$action."',
182 '".time()."'
183 )";
184 $this->db->insertRecords($sql);
185 }
186
187 //取得儀器資訊
188 public function get_device_data($device_code){
189 $device_code = mysql_real_escape_string($device_code);
190 $sql = "select
191 device_code,
192 device_name,
193 device_name_short,
194 start_number,
195 end_number
196 from
197 ".USER_DEVICE."
198 where
199 device_code = '".$device_code."' ";
200 $retStr = $this->db->selectRecords($sql);
201 return $retStr['0'];
202 }
203
204 public function add_sensor($data){
205 foreach($data as $key => $value){
206 $$key = mysql_real_escape_string($value);
207 }
208 $sql = "insert into user_device_sensor_list
209 (
210 project_code,
211 device_code,
212 sensor_id
213 )
214 values
215 (
216 '".$project_code."',
217 '".$device_code."',
218 '".$sensor_id."'
219 )";
220 $this->db->insertRecords($sql);
221 }
222
223 //取得感測器資訊
224 public function get_sensor_data($project_code,$device_code){
225 $project_code = mysql_real_escape_string($project_code);
226 $device_code = mysql_real_escape_string($device_code);
227 $sql = "select
228 *
229 from
230 user_device_sensor_list
231 where
232 project_code= '".$project_code."'
233 &&
234 device_code = '".$device_code."'
235 order by id asc";
236 $retStr = $this->db->selectRecords($sql);
237 return $retStr;
238 }
239
240 //取得感測器資訊
241 public function get_sensor_data_list($project_code){
242 $project_code = mysql_real_escape_string($project_code);
243 $sql = "select
244 *
245 from
246 user_device_sensor_list
247 where
248 project_code= '".$project_code."'
249 order by id asc";
250 $retStr = $this->db->selectRecords($sql);
251 return $retStr;
252 }
253
254 //更新感測器資訊
255 public function update_sensor_data($id,$sensor_id,$depth,$coefficients,$top_alert,$top_active,$down_alert,$down_active,$upper_limit,$lower_limit){
256 $id = mysql_real_escape_string($id);
257 $sensor_id = mysql_real_escape_string($sensor_id);
258 $depth = mysql_real_escape_string($depth);
259 $coefficients = mysql_real_escape_string($coefficients);
260 $top_alert = mysql_real_escape_string($top_alert);
261 $top_active = mysql_real_escape_string($top_active);
262 $down_alert = mysql_real_escape_string($down_alert);
263 $down_active = mysql_real_escape_string($down_active);
264 $upper_limit = mysql_real_escape_string($upper_limit);
265 $lower_limit = mysql_real_escape_string($lower_limit);
266 $sql = "update
267 user_device_sensor_list
268 set
269 sensor_id = '".$sensor_id."',
270 depth = '".$depth."',
271 coefficients = '".$coefficients."',
272 top_alert = '".$top_alert."',
273 top_active = '".$top_active."',
274 down_alert = '".$down_alert."',
275 down_active = '".$down_active."',
276 upper_limit = '".$upper_limit."',
277 lower_limit = '".$lower_limit."'
278 where
279 id = '".$id."' ";
280 $this->db->updateRecords($sql);
281 }
282
283 //取得感測器LOAD資訊
284 public function get_sensor_load_data($project_code,$device_code){
285 $project_code = mysql_real_escape_string($project_code);
286 $device_code = mysql_real_escape_string($device_code);
287 $sql = "select
288 *
289 from
290 ".USER_DEVICE_SENSOR_LOAD."
291 where
292 project_code= '".$project_code."'
293 &&
294 device_code = '".$device_code."'
295 order by id asc";
296 $retStr = $this->db->selectRecords($sql);
297 return $retStr;
298 }
299
300 //取得所有感測器LOAD資訊
301 public function get_sensor_load_data_list($project_code){
302 $project_code = mysql_real_escape_string($project_code);
303 $sql = "select
304 *
305 from
306 ".USER_DEVICE_SENSOR_LOAD."
307 where
308 project_code= '".$project_code."'
309 order by id asc";
310 $retStr = $this->db->selectRecords($sql);
311 return $retStr;
312 }
313
314 //取得所有感測器LOAD資訊
315 public function get_sensor_load_data_list_for_device($project_code,$device_code){
316 $project_code = mysql_real_escape_string($project_code);
317 $sql = "select
318 *
319 from
320 ".USER_DEVICE_SENSOR_LOAD."
321 where
322 project_code= '".$project_code."' &&
323 device_code ='".$device_code."'
324 order by id asc";
325 $retStr = $this->db->selectRecords($sql);
326 return $retStr;
327 }
328
329 //更新感測器_Load檔資訊
330 public function update_sensor_load_data($id,$name,$dat,$start_val,$formula,$formula_val,$C5,$C4,$C3,$C2,$C1,$C0,$S2,$S1,$S0,$F1,$F0,$subsum,$load_data){
331 $id = mysql_real_escape_string($id);
332 $name = mysql_real_escape_string($name);
333 $dat = mysql_real_escape_string($dat);
334 $start_val = mysql_real_escape_string($start_val);
335 $formula = mysql_real_escape_string($formula);
336 $formula_val = mysql_real_escape_string($formula_val);
337 $C5 = mysql_real_escape_string($C5);
338 $C4 = mysql_real_escape_string($C4);
339 $C3 = mysql_real_escape_string($C3);
340 $C2 = mysql_real_escape_string($C2);
341 $C1 = mysql_real_escape_string($C1);
342 $C0 = mysql_real_escape_string($C0);
343 $S2 = mysql_real_escape_string($S2);
344 $S1 = mysql_real_escape_string($S1);
345 $S0 = mysql_real_escape_string($S0);
346 $F1 = mysql_real_escape_string($F1);
347 $F0 = mysql_real_escape_string($F0);
348 $load_data = mysql_real_escape_string($load_data);
349 $subsum = mysql_real_escape_string($subsum);
350 $sql = "update
351 ".USER_DEVICE_SENSOR_LOAD."
352 set
353 name = '".$name."',
354 dat = '".$dat."',
355 start_val = '".$start_val."',
356 subsum = '".$subsum."',
357 formula = '".$formula."',
358 formula_val = '".$formula_val."',
359 C5 = '".$C5."',
360 C4 = '".$C4."',
361 C3 = '".$C3."',
362 C2 = '".$C2."',
363 C1 = '".$C1."',
364 C0 = '".$C0."',
365 S2 = '".$S2."',
366 S1 = '".$S1."',
367 S0 = '".$S0."',
368 F1 = '".$F1."',
369 F0 = '".$F0."',
370 load_data='".$load_data."'
371 where
372 id = '".$id."' ";
373 $this->db->updateRecords($sql);
374 }
375
376 public function add_sensor_load($name,$dat,$start_val,$formula,$formula_val,$C5,$C4,$C3,$C2,$C1,$C0,$S2,$S1,$S0,$F1,$F0,$subsum,$load_data,$device_code,$project_code){
377 $name = mysql_real_escape_string($name);
378 $dat = mysql_real_escape_string($dat);
379 $start_val = mysql_real_escape_string($start_val);
380 $formula = mysql_real_escape_string($formula);
381 $formula_val = mysql_real_escape_string($formula_val);
382 $C5 = mysql_real_escape_string($C5);
383 $C4 = mysql_real_escape_string($C4);
384 $C3 = mysql_real_escape_string($C3);
385 $C2 = mysql_real_escape_string($C2);
386 $C1 = mysql_real_escape_string($C1);
387 $C0 = mysql_real_escape_string($C0);
388 $S2 = mysql_real_escape_string($S2);
389 $S1 = mysql_real_escape_string($S1);
390 $S0 = mysql_real_escape_string($S0);
391 $F1 = mysql_real_escape_string($F1);
392 $F0 = mysql_real_escape_string($F0);
393 $subsum = mysql_real_escape_string($subsum);
394 $load_data = mysql_real_escape_string($load_data);
395 $device_code = mysql_real_escape_string($device_code);
396 $project_code = mysql_real_escape_string($project_code);
397 $subsum = mysql_real_escape_string($subsum);
398 $sql = "insert into ".USER_DEVICE_SENSOR_LOAD."
399 (
400 project_code,
401 device_code,
402 name,
403 dat,
404 start_val,
405 subsum,
406 formula,
407 formula_val,
408 C5,C4,C3,C2,C1,C0,S2,S1,S0,F1,F0,
409 load_data
410 )
411 values
412 (
413 '".$project_code."',
414 '".$device_code."',
415 '".$name."',
416 '".$dat."',
417 '".$start_val."',
418 '".$subsum."',
419 '".$formula."',
420 '".$formula_val."','".$C5."','".$C4."','".$C3."','".$C2."','".$C1."','".$C0."','".$S2."','".$S1."','".$S0."','".$F1."','".$F0."',
421 '".$load_data."'
422 )";
423 $this->db->insertRecords($sql);
424 }
425
426 //取得感測器名稱
427 public function get_sensor_name_data($project_code,$device_code){
428 $project_code = mysql_real_escape_string($project_code);
429 $device_code = mysql_real_escape_string($device_code);
430 $sql = "select
431 sensor_id
432 from
433 user_device_sensor_list
434 where
435 project_code= '".$project_code."'
436 &&
437 device_code = '".$device_code."'
438 order by id asc";
439 $retStr = $this->db->selectRecords($sql);
440 return $retStr;
441 }
442
443 //取得專案內所有感測器名稱
444 public function get_sensor_list($project_code){
445 $project_code = mysql_real_escape_string($project_code);
446 $sql = "select
447 sensor_id
448 from
449 user_device_sensor_list
450 where
451 project_code= '".$project_code."'
452 order by id asc";
453 $retStr = $this->db->selectRecords($sql);
454 return $retStr;
455 }
456
457 //取得介面圖資訊
458 public function get_interface($project_code,$interface_code){
459 $project_code= mysql_real_escape_string($project_code);
460 $interface_code= mysql_real_escape_string($interface_code);
461 $sql = "select
462 *
463 from
464 user_interface
465 where
466 project_code= '".$project_code."'
467 &&
468 interface_code = '".$interface_code."'
469 order by id asc";
470 $retStr = $this->db->selectRecords($sql);
471 return $retStr;
472 }
473
474 //儲存介面圖tag
475 public function insert_interface_tag($project_code,$interface_code,$name,$pic_x,$pic_y){
476 $project_code= mysql_real_escape_string($project_code);
477 $interface_code= mysql_real_escape_string($interface_code);
478 $name = mysql_real_escape_string($name);
479 $pic_x = mysql_real_escape_string($pic_x);
480 $pic_y = mysql_real_escape_string($pic_y);
481 $sql = "INSERT INTO user_interface_tag (
482 project_code,
483 interface_code,
484 name,
485 pic_x,
486 pic_y)
487 VALUES (
488 '".$project_code."',
489 '".$interface_code."',
490 '".$name."',
491 '".$pic_x."',
492 '".$pic_y."')";
493 $this->db->insertRecords($sql);
494 }
495
496
497
498 //取得介面圖tag
499 public function get_interface_tag_list($project_code,$interface_code){
500 $project_code= mysql_real_escape_string($project_code);
501 $interface_code= mysql_real_escape_string($interface_code);
502 $sql = "select
503 *
504 from
505 user_interface_tag
506 where
507 project_code= '".$project_code."'
508 &&
509 interface_code = '".$interface_code."'
510 order by id asc";
511 $retStr = $this->db->selectRecords($sql);
512 return $retStr;
513 }
514
515 //刪除介面圖tag
516 public function delete_interface_tag($tag_id){
517 $tag_id= mysql_real_escape_string($tag_id);
518 $sql = "DELETE FROM user_interface_tag WHERE id = '".$tag_id."'";
519 $this->db->deleteRecords($sql);
520 }
521
522 public function add_sensor_load_val($device_code,$name,$voltage,$temperature,$mathself,$formula_val,$default_val,$top_alert,$down_alert,$top_active,$down_active,$upper_limit,$lower_limit,$datetime,$project_code,$file_name,$load_value,$file_time){
523 $device_code = mysql_real_escape_string($device_code);
524 $name = mysql_real_escape_string($name);
525 $voltage = mysql_real_escape_string($voltage);
526 $temperature = mysql_real_escape_string($temperature);
527 $mathself = mysql_real_escape_string($mathself);
528 $formula_val = mysql_real_escape_string($formula_val);
529 $default_val = mysql_real_escape_string($default_val);
530 $top_alert = mysql_real_escape_string($top_alert);
531 $down_alert = mysql_real_escape_string($down_alert);
532 $top_active = mysql_real_escape_string($top_active);
533 $down_active = mysql_real_escape_string($down_active);
534 $upper_limit = mysql_real_escape_string($upper_limit);
535 $lower_limit = mysql_real_escape_string($lower_limit);
536 $datetime = mysql_real_escape_string($datetime);
537 $project_code = mysql_real_escape_string(strtoupper($project_code));
538 $file_name = mysql_real_escape_string($file_name);
539 $load_value = mysql_real_escape_string($load_value);
540 $file_time = mysql_real_escape_string($file_time);
541 $sql = "insert into ".$project_code."
542 (
543 device_code,
544 name,
545 voltage,
546 temperature,
547 mathself,
548 formula_val,
549 default_val,
550 top_alert,
551 down_alert,
552 top_active,
553 down_active,
554 upper_limit,
555 lower_limit,
556 datetime,
557 file_name,
558 date,
559 load_value
560 )
561 values
562 (
563 '".$device_code."',
564 '".$name."',
565 '".$voltage."',
566 '".$temperature."',
567 '".$mathself."',
568 '".$formula_val."',
569 '".$default_val."',
570 '".$top_alert."',
571 '".$down_alert."',
572 '".$top_active."',
573 '".$down_active."',
574 '".$upper_limit."',
575 '".$lower_limit."',
576 '".$file_time."',
577 '".$file_name."',
578 '".$datetime."',
579 '".$load_value."'
580 )";
581 $this->db->insertRecords($sql);
582 }
583
584 public function get_sensor_load_val($project_code,$date_start,$date_end,$name){
585 $project_code= mysql_real_escape_string($project_code);
586 $name = mysql_real_escape_string($name);
587 $sql = "select
588 *
589 from
590 ".$project_code."
591 where
592 name = '".$name."'
593 &&
594 date between ".$date_start." and ".$date_end."
595 order by PID asc";
596 $retStr = $this->db->selectRecords($sql);
597 return $retStr;
598 }
599
600 public function get_sensor_load_val_for_interface($project_code,$name){
601 $project_code= mysql_real_escape_string($project_code);
602 $name = mysql_real_escape_string($name);
603 $sql = "select
604 *
605 from
606 ".$project_code."
607 where
608 name = '".$name."'
609 order by PID desc Limit 1";
610 $retStr = $this->db->selectRecords($sql);
611 return $retStr;
612 }
613 }
614 ?>
File was created 1 <?
2 header('refresh: 1800;url="http://127.0.0.1/C25104/VH.php"');
3 define ('INDEX','http://52.74.132.133/');
4 define ('SYSTEM_DBHOST','52.74.132.133:3306');
5 define ('SYSTEM_DBNAME','sanlien');
6 define ('SYSTEM_DBUSER','3944');
7 define ('SYSTEM_DBPWD','12345');
8 define ('USER_DEVICE_SENSOR','user_device_sensor');
9 define ('USER_DEVICE_SENSOR_LOAD','user_device_sensor_load');
10 define ('USER_CONTACT','user_contact');
11 define ('USER_DEVICE','user_device');
12 /************* 簡訊傳送設定 *******************/
13 include_once('Device.cls.php');
14 include_once('WADB.cls.php');
15 $Device = new Device();
16 $project_code = 'C25104';
17 ?>
18 <table width="100%" border="1" cellpadding="0" cellspacing="0" style="text-align:center">
19 <thead>
20 <tr>
21 <th style="text-align:center"><? echo '裝置名稱'; ?></th>
22 <th style="text-align:center"><? echo '時間'; ?></th>
23 <th style="text-align:center"><? echo '電壓'; ?></th>
24 <th style="text-align:center"><? echo '溫度'; ?></th>
25 <th style="text-align:center"><? echo '計算後'; ?></th>
26 <th style="text-align:center"><? echo '初始值'; ?></th>
27 <th style="text-align:center"><? echo '上-下行動值'; ?></th>
28 <th style="text-align:center"><? echo '上-下警戒值'; ?></th>
29 <th style="text-align:center"><? echo '擷取上-下值'; ?></th>
30 <th style="text-align:center"><? echo '通知者'; ?></th>
31
32 </tr>
33 </thead>
34 <?
35 $sensor_data_load_info = $Device->get_sensor_load_data_list($project_code); //load檔資料
36 foreach($sensor_data_load_info as $k => $v){
37 if($sensor_data_load_info[$i]['load_data'] != ""){
38 $load_data[$sensor_data_load_info[$i]['device_code']] = $sensor_data_load_info[$i]['load_data'];
39 }
40 $i++;
41 }
42 $load_data = array_unique($load_data);
43 foreach($load_data as $key => $filename){
44 if($filename != ""){
45 //讀取檔案 原始檔案
46 $nn = 0;
47 $handle = fopen($filename,"r");
48 while(($data = @fgetcsv($handle,1000,",","'")) != false){
49 $i = 0;
50 foreach($data as $k => $value){
51 $aa[$nn][$i] = $value;
52 $i++;
53
54 }
55 $nn++;
56 }
57 @fclose($handle);
58 if(is_file('backup/'.$filename)){
59 //讀取檔案 原始檔案
60 $bb = 0;
61 $handle = fopen('backup/'.$filename,"r");
62 while(($data = @fgetcsv($handle,1000,",","'")) != false){
63 $i = 0;
64 foreach($data as $k => $value){
65 $backup[$bb][$i] = $value;
66 $i++;
67 }
68 $bb++;
69 }
70 @fclose($handle);
71 $sensor_data_load_info_device = $Device->get_sensor_load_data_list_for_device($project_code,$key);
72 foreach($sensor_data_load_info_device as $key => $value){
73 $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //警告值.行動值.等等
74 foreach($sensor_data as $k => $v){
75 $top_active = $v['top_active'];
76 $down_active = $v['down_active'];
77 $top_alert = $v['top_alert'];
78 $down_alert = $v['down_alert'];
79 $upper_limit = $v['limit_uper'];
80 $lower_limit = $v['limit_lower'];
81 $unit = $v['unit'];
82 }
83 //echo $value['dat']."|".$value['formula']."|".$value['subsum']."<br>";
84 $formula = $value['formula'];
85 $dat = $value['dat'];
86 $dat_1 = explode(',',$value['dat']);
87 $start_val = $value['start_val'];
88 $start_val_1 = explode(',',$value['start_val']);
89 $subsum = $value['subsum'];
90 $name = $value['name'];
91 $project_code = $value['project_code'];
92 $device_code = $value['device_code'];
93 $formula_val = $value['formula_val'];
94 $C5 = ($value['C5'] != '') ? $value['C5']:0;
95 $C4 = ($value['C4'] != '') ? $value['C4']:0;
96 $C3 = ($value['C3'] != '') ? $value['C3']:0;
97 $C2 = ($value['C2'] != '') ? $value['C2']:0;
98 $C1 = ($value['C1'] != '') ? $value['C1']:0;
99 $C0 = ($value['C0'] != '') ? $value['C0']:0;
100 $S2 = ($value['S2'] != '') ? $value['S2']:0;
101 $S1 = ($value['S1'] != '') ? $value['S1']:0;
102 $S0 = ($value['S0'] != '') ? $value['S0']:0;
103 $F1 = ($value['F1'] != '') ? $value['F1']:0;
104 $F0 = ($value['F0'] != '') ? $value['F0']:0;
105
106
107
108 //fclose($filename);
109 $search_final = count($aa) - 1;
110 $total_default = 0;
111 $j = 0;
112 for($i=count($backup);$i<=$search_final;$i++){ //dat檔從第五列資料開始抓
113
114 //欄位值有兩個時作為判斷
115 if($dat_1[1] != ""){
116 $mathself = $aa[$i][$dat_1[0]];
117 $mathself_1 = $aa[$i][$dat_1[1]];
118 }else{
119 //判斷溫度、日期、電壓
120 switch($name){
121 case "date":
122 //日期初始化
123 $start_time = strtotime("2015-01-01 00:00");
124 switch(strlen($aa[$i][$dat+1])){
125 case "1":
126 $total_time = $start_time+($aa[$i][$dat+1]*60);
127 break;
128
129 case "2":
130 $total_time = $start_time+($aa[$i][$dat+1]*60);
131 break;
132
133 case "3":
134 $total_time = $start_time+(substr($aa[$i][$dat+1],0,1)*3600)+(substr($aa[$i][$dat+1],1,2)*60);
135 break;
136
137 case "4":
138 $total_time = $start_time+(substr($aa[$i][$dat+1],0,2)*3600)+(substr($aa[$i][$dat+1],2,2)*60);
139 break;
140 }
141 $sensor_date[] = $aa[$i][$dat]*86400+$total_time-86400;
142 break;
143
144 case "voltage":
145 $sensor_voltage[] = $aa[$i][$dat];
146 break;
147
148 case "temperature":
149 $sensor_temperature[] = $aa[$i][$dat];
150 $temperature[] = $aa[$i][$dat];
151 break;
152 default:
153 $mathself = $aa[$i][$dat];
154 break;
155 }
156 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
157 }
158
159 //初始值有兩個時作為判斷
160 if($start_val_1[1] != ""){
161 $default_val = $start_val_1[0];
162 $default_val_1 = $start_val_1[1];
163 }else{
164 $default_val = $start_val;
165 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
166 }
167
168 //$mathself = 2;
169 //$mathself_1 = 3;
170 $total_sum = 0;
171
172
173
174 //計算公式
175 switch($formula_val){
176 case '1':
177 $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
178 $total_default = $C5*pow($default_val,5) + $C4*pow($default_val,4) + $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
179 //$total_sum += $val*$sum;
180 break;
181
182 case '2':
183 $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
184 $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
185 break;
186
187 case '3':
188 $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
189 $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
190 break;
191
192 case '4':
193 $total_sum = $C1*pow($mathself,1) + $C0;
194 $total_default = $C1*pow($default_val,1) + $C0;
195 break;
196
197 case '5':
198 $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val;
199 $total_default = $C5*pow($default_val_1,2) + $C4*$default_val*$default_val_1 + $C3*pow($default_val,2) + $C2*$default_val_1 + $C1*$default_val + $C0 + $val;
200 break;
201
202 case '6':
203 $total_sum = ($C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*$mathself + $C0)*($S2*pow($mathself_1,2) + $S1*$mathself_1 + $S0) + $F1*$mathself_1 + $F0 + $val;
204 $total_default = ($C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*$default_val + $C0)*($S2*pow($default_val_1,2) + $S1*$default_val_1 + $S0) + $F1*$default_val_1 + $F0 + $val;
205 break;
206
207 }
208 if($name != 'date' and $name != 'voltage' and $name != 'temperature'){
209 $date = $sensor_date[$j];
210 $total = $total_sum-$total_default;
211 $Device->add_sensor_load_val($device_code,$name,$sensor_voltage[$i],$sensor_temperature[$i],$mathself,$total,$default_val,$top_alert,$down_alert,$top_active,$down_active,$upper_limit,$lower_limit,$date,$project_code,$filename,$mathself,time()+14400);
212 $j++;
213 }
214
215 }
216
217 }
218 copy($filename, 'backup/'.$filename);
219
220 }else{
221 copy($filename, 'backup/'.$filename);
222 $sensor_data_load_info_device = $Device->get_sensor_load_data_list_for_device($project_code,$key);
223 foreach($sensor_data_load_info_device as $key => $value){
224 $sensor_data = $Device->get_sensor_data($value['project_code'],$value['device_code']); //警告值.行動值.等等
225 foreach($sensor_data as $k => $v){
226 $top_active = $v['top_active'];
227 $down_active = $v['down_active'];
228 $top_alert = $v['top_alert'];
229 $down_alert = $v['down_alert'];
230 $upper_limit = $v['limit_uper'];
231 $lower_limit = $v['limit_lower'];
232 $unit = $v['unit'];
233 }
234 //echo $value['dat']."|".$value['formula']."|".$value['subsum']."<br>";
235 $formula = $value['formula'];
236 $dat = $value['dat'];
237 $dat_1 = explode(',',$value['dat']);
238 $start_val = $value['start_val'];
239 $start_val_1 = explode(',',$value['start_val']);
240 $subsum = $value['subsum'];
241 $name = $value['name'];
242 $project_code = $value['project_code'];
243 $device_code = $value['device_code'];
244 $formula_val = $value['formula_val'];
245 $C5 = ($value['C5'] != '') ? $value['C5']:0;
246 $C4 = ($value['C4'] != '') ? $value['C4']:0;
247 $C3 = ($value['C3'] != '') ? $value['C3']:0;
248 $C2 = ($value['C2'] != '') ? $value['C2']:0;
249 $C1 = ($value['C1'] != '') ? $value['C1']:0;
250 $C0 = ($value['C0'] != '') ? $value['C0']:0;
251 $S2 = ($value['S2'] != '') ? $value['S2']:0;
252 $S1 = ($value['S1'] != '') ? $value['S1']:0;
253 $S0 = ($value['S0'] != '') ? $value['S0']:0;
254 $F1 = ($value['F1'] != '') ? $value['F1']:0;
255 $F0 = ($value['F0'] != '') ? $value['F0']:0;
256
257
258
259 //fclose($filename);
260 $search_final = count($aa) - 1;
261 $total_default = 0;
262 $j = 0;
263 for($i=0;$i<=$search_final;$i++){ //dat檔從第五列資料開始抓
264
265 //欄位值有兩個時作為判斷
266 if($dat_1[1] != ""){
267 $mathself = $aa[$i][$dat_1[0]];
268 $mathself_1 = $aa[$i][$dat_1[1]];
269 }else{
270 //判斷溫度、日期、電壓
271 switch($name){
272 case "date":
273 //日期初始化
274 $start_time = strtotime("2015-01-01 00:00");
275 switch(strlen($aa[$i][$dat+1])){
276 case "1":
277 $total_time = $start_time+($aa[$i][$dat+1]*60);
278 break;
279
280 case "2":
281 $total_time = $start_time+($aa[$i][$dat+1]*60);
282 break;
283
284 case "3":
285 $total_time = $start_time+(substr($aa[$i][$dat+1],0,1)*3600)+(substr($aa[$i][$dat+1],1,2)*60);
286 break;
287
288 case "4":
289 $total_time = $start_time+(substr($aa[$i][$dat+1],0,2)*3600)+(substr($aa[$i][$dat+1],2,2)*60);
290 break;
291 }
292 $sensor_date[] = $aa[$i][$dat]*86400+$total_time-86400;
293 break;
294
295 case "voltage":
296 $sensor_voltage[] = $aa[$i][$dat];
297 break;
298
299 case "temperature":
300 $sensor_temperature[] = $aa[$i][$dat];
301 $temperature[] = $aa[$i][$dat];
302 break;
303 default:
304 $mathself = $aa[$i][$dat];
305 break;
306 }
307 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
308 }
309
310 //初始值有兩個時作為判斷
311 if($start_val_1[1] != ""){
312 $default_val = $start_val_1[0];
313 $default_val_1 = $start_val_1[1];
314 }else{
315 $default_val = $start_val;
316 //$mathself_1 = substr($aa[$i][$dat_1[1]],);
317 }
318
319 //$mathself = 2;
320 //$mathself_1 = 3;
321 $total_sum = 0;
322
323
324
325 //計算公式
326 switch($formula_val){
327 case '1':
328 $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
329 $total_default = $C5*pow($default_val,5) + $C4*pow($default_val,4) + $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
330 //$total_sum += $val*$sum;
331 break;
332
333 case '2':
334 $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
335 $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
336 break;
337
338 case '3':
339 $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0;
340 $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0;
341 break;
342
343 case '4':
344 $total_sum = $C1*pow($mathself,1) + $C0;
345 $total_default = $C1*pow($default_val,1) + $C0;
346 break;
347
348 case '5':
349 $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val;
350 $total_default = $C5*pow($default_val_1,2) + $C4*$default_val*$default_val_1 + $C3*pow($default_val,2) + $C2*$default_val_1 + $C1*$default_val + $C0 + $val;
351 break;
352
353 case '6':
354 $total_sum = ($C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*$mathself + $C0)*($S2*pow($mathself_1,2) + $S1*$mathself_1 + $S0) + $F1*$mathself_1 + $F0 + $val;
355 $total_default = ($C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*$default_val + $C0)*($S2*pow($default_val_1,2) + $S1*$default_val_1 + $S0) + $F1*$default_val_1 + $F0 + $val;
356 break;
357
358 }
359 if($name != 'date' and $name != 'voltage' and $name != 'temperature'){
360 $date = $sensor_date[$j];
361 $total = $total_sum-$total_default;
362
363 $Device->add_sensor_load_val($device_code,$name,$sensor_voltage[$i],$sensor_temperature[$i],$mathself,$total,$default_val,$top_alert,$down_alert,$top_active,$down_active,$upper_limit,$lower_limit,$date,$project_code,$filename,$mathself,time()+14400);
364 $j++;
365 }
366
367 }
368 }
369 }
370
371 }
372 unset($aa);
373 unset($backup);
374 }
375 ?>
376 </table>
377
378
File was created 1 <?php
2
3 class WADB
4 {
5 /* Database Host */
6 var $sDbHost;
7 var $sDbName; // Database Name
8 var $sDbUser; // Database User
9 var $sDbPwd; // Database Password
10 var $sDbDetail; // Database Details
11 var $iNoOfRecords; // Total No of Records
12 var $oQueryResult; // Results of sql query
13 var $aSelectRecords; // Array
14 var $aArrRec; // Array
15 var $bInsertRecords; // Boolean
16 var $iInsertRecId; // Integer - the primary key for inserted record
17 var $bUpdateRecords; // Boolean
18
19 /* Constructor */
20 function WADB ($sDbHost, $sDbName, $sDbUser, $sDbPwd)
21 {
22 $oDbLink = mysql_connect ($sDbHost, $sDbUser, $sDbPwd) or die ("MySQL DB could not be connected");
23 @mysql_select_db ($sDbName, $oDbLink)or die ("MySQL DB could not be selected");
24 @mysql_query("set names 'utf8'");
25 }
26
27 /* seelct Record Object */
28 function selectRecordsObject($sSqlQuery){
29 unset($this->aSelectRecords);
30 $this->oQueryResult = mysql_query($sSqlQuery) or die(mysql_error());
31 $this->iNoOfRecords = mysql_num_rows($this->oQueryResult);
32 if ($this->iNoOfRecords > 0) {
33 while($obj = mysql_fetch_object($this->oQueryResult)) {
34 $this->aSelectRecords[] = $obj;
35 }
36 mysql_free_result($this->oQueryResult);
37 }
38 $this->aArrRec = $this->aSelectRecords;
39 return $this->aArrRec;
40 }
41
42
43 /* Select Records */
44 function selectRecords ($sSqlQuery)
45 {
46 unset($this->aSelectRecords);
47 $this->oQueryResult = mysql_query($sSqlQuery) or die(mysql_error());
48 $this->iNoOfRecords = mysql_num_rows($this->oQueryResult);
49 if ($this->iNoOfRecords > 0) {
50 while ($oRow = mysql_fetch_array($this->oQueryResult,MYSQL_ASSOC)) {
51 $this->aSelectRecords[] = $oRow;
52 }
53 mysql_free_result($this->oQueryResult);
54 }
55 $this->aArrRec = $this->aSelectRecords;
56 return $this->aArrRec;
57 }
58
59 /*Get Number of Records */
60 function getNumberOfRecords () {
61 return $this->iNoOfRecords;
62 }
63
64 /* Get selected data */
65 function getSelectedData (){
66 return $this->aSelectRecords;
67 }
68
69 /* Insert Records */
70 function insertRecords($sSqlQuery)
71 {
72 $this->bInsertRecords = mysql_query ($sSqlQuery) or die (mysql_error());
73 $this->iInsertRecId = mysql_insert_id();
74 return $this->iInsertRecId;
75 }
76
77 /* Find Inserted Id */
78 function getIdForInsertedRecord()
79 {
80 return $this->iInsertRecId;
81 }
82
83 /* Update Records */
84 function updateRecords($sSqlQuery)
85 {
86 return mysql_query($sSqlQuery) or die(mysql_error());
87 }
88 function deleteRecords($sSqlQuery)
89 {
90 return mysql_query($sSqlQuery) or die(mysql_error());
91 }
92 /* 測試新增用 */
93 function insertUser($sSqlQuery)
94 {
95 return mysql_query($sSqlQuery) or die(mysql_error());
96 }
97
98 /* 建立資料表 */
99 function creatTable($sSqlQuery)
100 {
101 return mysql_query($sSqlQuery) or die(mysql_error());
102 }
103
104
105 }
106 ?>
File was created 1 <?php
2 header('refresh: 900;url="http://127.0.0.1/C25104/aa.php"');
3 define ('INDEX','http://52.74.132.133/');
4 define ('SYSTEM_DBHOST','52.74.132.133:3306');
5 define ('SYSTEM_DBNAME','sanlien');
6 define ('SYSTEM_DBUSER','3944');
7 define ('SYSTEM_DBPWD','12345');
8 define ('USER_DEVICE_SENSOR','user_device_sensor');
9 define ('USER_DEVICE_SENSOR_LOAD','user_device_sensor_load');
10 define ('USER_CONTACT','user_contact');
11 define ('USER_DEVICE','user_device');
12 include_once('Device.cls.php');
13 include_once('WADB.cls.php');
14 $project_code = array('C25104');
15
16 $Device = new Device();
17 $i = 0;
18 foreach(@$project_code as $key => $value){
19 $sensor_data_load_info = $Device->get_sensor_load_data_list($value); //load檔資料
20 foreach(@$sensor_data_load_info as $k => $v){
21 $load_data[] = $sensor_data_load_info[$i]['load_data'];
22 $i++;
23 }
24 }
25 $load_data = array_unique($load_data);
26 // 連線,參數分別是 HOST, PORT, TIMEOUT
27 $conn = ftp_connect("219.92.14.237", 21, 60) or die("Connect FTP Server Fail");
28
29 // 登入
30 ftp_login($conn, "SANLIEN", "QEWQTR");
31
32 // 使用被動模式,這個指令必須在ftp_login 後立即使用
33 ftp_pasv($conn, true);
34
35 //目前路徑,剛登入應該在 Home Dir /home/youracc/
36 $pwd= ftp_pwd($conn);
37
38 //改變路徑 chdir 進到 /home/youracc/path/to/
39 ftp_chdir( $conn, '/loggernet');
40
41 //移到上一層 /home/youracc/path/
42 //ftp_cdup( $conn);
43
44 // 取回檔案,使用二進位的方式
45 foreach(@$load_data as $key => $value){
46 if($value != ""){
47 if (ftp_get($conn, $value, $value, FTP_BINARY)) {
48 echo "Successfully written to local_file\n";
49 } else {
50 echo "There was a problem\n";
51 }
52 }
53 }
54 //關閉連結
55 ftp_close($conn);
56
57 ?>
backup/CR1000_TNBR_Table1.dat
File was created 1 "TOA5","CR1000_TNBR","CR1000","20787","CR1000.Std.15","CPU:CR1000_Manjung 8 channel 1min.CR1","15719","Table1"
2 "TIMESTAMP","RECORD","BattV","PTemp_C","Temp_C(1)","Temp_C(2)","Temp_C(3)","Temp_C(4)","Temp_C(5)","Temp_C(6)","Temp_C(7)","Temp_C(8)"
3 "TS","RN","Volts","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C"
4 "","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp"
5 "2016-05-30 16:30:00",0,12.93,33.47,369.3,373.2,362.7,"NAN",33.96,"NAN",321.5,33.39
6 "2016-05-30 16:31:00",1,12.93,33.43,369.6,373.4,363,"NAN",34.25,"NAN",321.7,33.52
7 "2016-05-30 16:32:00",2,12.93,33.4,369.7,373.6,363.2,"NAN",33.4,210.2,321.8,33.56
8 "2016-05-30 16:33:00",3,12.93,33.43,369.6,373.4,363.3,322.5,33.76,210.6,322,33.43
9 "2016-05-30 16:34:00",4,12.92,33.43,369.5,373.3,363.2,322,33.92,210.6,321.8,33.27
10 "2016-05-30 16:35:00",5,12.93,33.4,369.1,372.8,362.8,321.2,34.05,210.5,321.5,33.4
11 "2016-05-30 16:36:00",6,12.93,33.4,368.6,372.5,362.3,320.5,33.97,"NAN",320.7,33.4
12 "2016-05-30 16:37:00",7,12.93,33.4,368.2,372.1,361.9,319.7,34.05,"NAN",320.2,33.24
13 "2016-05-30 16:38:00",8,12.93,33.4,367.8,371.7,"NAN",317.2,34.21,"NAN",319.4,33.56
14 "2016-05-30 16:39:00",9,12.93,33.32,367.2,371.1,361.5,315.5,34.14,216.3,318.5,33.65
15 "2016-05-30 16:40:00",10,12.93,33.29,366.8,370.8,361.1,315.8,33.94,215,317.7,32.8
16 "2016-05-30 16:41:00",11,12.93,33.29,366.5,370.6,360.8,315.8,34.01,214.3,317.6,33.93
17 "2016-05-30 16:42:00",12,12.93,33.29,366.4,370.8,360.6,315.2,33.93,212.1,317.1,33.85
18 "2016-05-30 16:43:00",13,12.93,33.29,366.5,370.8,360.6,313.8,33.85,211.9,316.8,33.85
19 "2016-05-30 16:44:00",14,12.93,33.29,366.9,371.1,360.8,313.9,33.85,212.1,316.4,33.85
20 "2016-05-30 16:45:00",15,12.93,33.25,367.4,371.5,361.2,314.6,34.22,"NAN",316.3,34.14
21 "2016-05-30 16:46:00",16,12.92,33.21,367.9,371.9,361.6,314.5,34.26,"NAN",316.4,34.26
22 "2016-05-30 16:47:00",17,12.94,33.17,368.3,372.4,362,314.1,34.06,211.9,316.6,34.22
23 "2016-05-30 16:48:00",18,12.94,33.17,368.7,372.7,362.4,314,33.74,213.4,316.6,33.74
24 "2016-05-30 16:49:00",19,12.94,33.1,368.9,373.1,362.7,314.5,34.15,213.7,316.6,34.15
25 "2016-05-30 16:50:00",20,12.93,32.99,369.1,373.1,363,313.8,33.71,214.2,316.5,33.71
26 "2016-05-30 16:51:00",21,12.94,32.92,369.1,373.2,"NAN",311.7,33.64,214.5,315.9,33.32
27 "2016-05-30 16:52:00",22,12.94,32.81,369.1,372.9,"NAN",311,33.53,215,315.3,33.37
28 "2016-05-30 16:53:00",23,12.94,32.77,368.9,372.7,363,310.2,33.41,217.8,314.7,33.33
29 "2016-05-30 16:54:00",24,12.95,32.77,368.7,372.6,362.9,310,33.01,217.6,314,32.85
30 "2016-05-30 16:55:00",25,12.93,32.77,368.2,372.1,362.6,308.4,32.93,217.5,313.2,32.85
31 "2016-05-30 16:56:00",26,12.95,32.73,367.8,371.6,362.3,308,32.65,217.1,312.4,32.65
32 "2016-05-30 16:57:00",27,12.94,32.77,367.4,371.3,361.9,306.9,32.53,217.1,311.5,32.53
33 "2016-05-30 16:58:00",28,12.93,32.81,367.1,370.9,361.7,306.9,32.56,217,310.7,32.56
34 "2016-05-30 16:59:00",29,12.94,32.81,366.7,370.1,361.3,307.3,32.56,210.4,310.2,32.4
35 "2016-05-30 17:00:00",30,12.93,32.84,366.4,369.8,361.1,309.2,32.84,212.3,310.1,32.76
36 "2016-05-30 17:01:00",31,12.93,32.84,366.4,370,360.9,310.1,33.25,211.7,310.3,33.08
37 "2016-05-30 17:02:00",32,12.94,32.88,366.5,370.2,360.8,309.2,32.96,211.6,310.5,32.72
38 "2016-05-30 17:03:00",33,12.94,32.88,366.6,370.3,360.7,308,33.04,212,310.3,32.72
39 "2016-05-30 17:04:00",34,12.94,32.88,366.8,370.4,"NAN",308.3,33.04,204.8,310.4,32.72
40
41