Commit 1ee0c71778693591e957adb4846a3de947d85593
0 parents
Exists in
master
first
Showing
7 changed files
with
1684 additions
and
0 deletions
Show diff stats
CR.php
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 |
Device.cls.php
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 | ?> |
VH.php
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 |
WADB.cls.php
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 | ?> |
aa.php
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 |