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 |