Commit 1ee0c71778693591e957adb4846a3de947d85593
0 parents
Exists in
master
first
Showing
7 changed files
with
1684 additions
and
0 deletions
Show diff stats
CR.php
... | ... | @@ -0,0 +1,450 @@ |
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 | + | ... | ... |
CR1000_TNBR_Table1.dat
... | ... | @@ -0,0 +1,40 @@ |
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 | + | ... | ... |
Device.cls.php
... | ... | @@ -0,0 +1,614 @@ |
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 | +?> | |
0 | 615 | \ No newline at end of file | ... | ... |
VH.php
... | ... | @@ -0,0 +1,377 @@ |
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 | + | ... | ... |
WADB.cls.php
... | ... | @@ -0,0 +1,106 @@ |
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 | +?> | |
0 | 107 | \ No newline at end of file | ... | ... |
aa.php
... | ... | @@ -0,0 +1,57 @@ |
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 | +?> | |
0 | 58 | \ No newline at end of file | ... | ... |
backup/CR1000_TNBR_Table1.dat
... | ... | @@ -0,0 +1,40 @@ |
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 | + | ... | ... |