Commit 1ee0c71778693591e957adb4846a3de947d85593

Authored by tom200e
0 parents
Exists in master

first

... ... @@ -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 +
... ...
... ... @@ -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
... ...
... ... @@ -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 +
... ...
... ... @@ -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
... ...
... ... @@ -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 +
... ...