diff --git a/CR.php b/CR.php new file mode 100644 index 0000000..c314bcb --- /dev/null +++ b/CR.php @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + get_sensor_load_data_list($project_code); + $sensor_data_load_info_device = $Device->get_sensor_load_data_list($project_code); + //print_r($sensor_data_load_info_device); + + //讀取檔案 + $nn = 0; + $handle = @fopen($filename ,"r"); + while(($data = fgetcsv($handle,1000,",","'")) != false){ + $i = 0; + foreach($data as $key => $value){ + $aa[$nn][$i] = $value; + $i++; + + } + $nn++; + } + fclose($handle); + $packet = (@str_replace('"','',$aa[4][0]) == "") ? $aa[5][0]:$aa[4][0]; + $number_of_key = (str_replace('"','',$aa[4][0]) == "") ? '5':'4'; + $var = strtotime(str_replace('"','',$packet)); + //copy($filename, 'backup/'.$filename); + + $bb=0; + $handle_1 = @fopen('backup/'.$filename ,"r"); + while(($data_1 = fgetcsv($handle_1,1000,",","'")) != false){ + $i = 0; + foreach($data_1 as $k => $v_2){ + $back[$bb][$i] = $v_2; + $i++; + + } + $nn++; + } + fclose($handle_1); + copy($filename, 'backup/'.$filename); + if(!is_file('backup/'.$filename)){ + + $v_n = 0; + foreach($sensor_data_load_info_device as $key => $value){ + //判斷檔案是否有符合 + + if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature" or $filename == $value['load_data']) { + $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //警告值.行動值.等等 + foreach($sensor_data as $k => $v){ + $top_active[$v['sensor_id']] = $v['top_active']; + $down_active[$v['sensor_id']]= $v['down_active']; + $top_alert[$v['sensor_id']] = $v['top_alert']; + $down_alert[$v['sensor_id']] = $v['down_alert']; + $upper_limit[$v['sensor_id']] = $v['limit_uper']; + $lower_limit[$v['sensor_id']] = $v['limit_lower']; + $upper[$v['sensor_id']] = $v['upper_limit']; + $lower[$v['sensor_id']] = $v['lower_limit']; + $unit[$v['sensor_id']] = $v['unit']; + } + //echo $value['dat']."|".$value['formula']."|".$value['subsum']."
"; + $formula = $value['formula']; + $dat = $value['dat']; + $dat_1 = explode(',',$value['dat']); + $start_val = $value['start_val']; + $start_val_1 = explode(',',$value['start_val']); + $subsum = $value['subsum']; + (@$sensor_data[$v_n]['device_code'] != $value['device_code']) ? $v_n = 0:''; + if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature"){ + $name = $value['name']; + }else{ + $name = $sensor_data[$v_n]['sensor_id']; + $v_n++; + } + $project_code = $value['project_code']; + $device_code = $value['device_code']; + $formula_val = $value['formula_val']; + $C5 = ($value['C5'] != '') ? $value['C5']:0; + $C4 = ($value['C4'] != '') ? $value['C4']:0; + $C3 = ($value['C3'] != '') ? $value['C3']:0; + $C2 = ($value['C2'] != '') ? $value['C2']:0; + $C1 = ($value['C1'] != '') ? $value['C1']:0; + $C0 = ($value['C0'] != '') ? $value['C0']:0; + $S2 = ($value['S2'] != '') ? $value['S2']:0; + $S1 = ($value['S1'] != '') ? $value['S1']:0; + $S0 = ($value['S0'] != '') ? $value['S0']:0; + $F1 = ($value['F1'] != '') ? $value['F1']:0; + $F0 = ($value['F0'] != '') ? $value['F0']:0; + + + + //fclose($filename); + $search_final = count($aa) - 1; + $total_default = 0; + $j = 0; + for($i=$number_of_key;$i<=$search_final;$i++){ //dat檔從第五列資料開始抓 + //欄位值有兩個時作為判斷 + if(@$dat_1[1] != ""){ + $mathself = $aa[$i][$dat_1[0]]; + $mathself_1 = $aa[$i][$dat_1[1]]; + }else{ + //判斷溫度、日期、電壓 + switch($name){ + case "date": + $sensor_date[] = $aa[$i][$value['dat']]; + break; + + case "voltage": + $sensor_voltage[] = $aa[$i][$value['dat']]; + break; + + case "temperature": + $sensor_temperature[] = $aa[$i][$value['dat']]; + $temperature[] = $aa[$i][$value['dat']]; + break; + default: + $mathself = $aa[$i][$value['dat']]; + break; + } + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //初始值有兩個時作為判斷 + if(@$start_val_1[1] != ""){ + $default_val = $start_val_1[0]; + $default_val_1 = $start_val_1[1]; + }else{ + $default_val = $start_val; + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //$mathself = 2; + //$mathself_1 = 3; + $total_sum = 0; + + + + //計算公式 + switch($formula_val){ + case '1': + $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $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; + //$total_sum += $val*$sum; + break; + + case '2': + $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '3': + $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '4': + $total_sum = $C1*pow($mathself,1) + $C0; + $total_default = $C1*pow($default_val,1) + $C0; + break; + + case '5': + $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val; + $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; + break; + + case '6': + $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; + $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; + break; + + case '7': + $total_sum = 0; + break; + + case '8': + $total_sum = 0; + break; + + case '9': + $total_sum = 0; + break; + + case '0': + $total_sum = 0; + break; + + } + + //判斷sensor_name 如果是日期,電壓,溫度 不存入資料庫 + if($name != 'date' and $name != 'voltage' and $name != 'temperature'){ + $device_name = $Device->get_device_data($device_code); + $Calculat = $total_sum - $total_default + $subsum; + $notify_str = $project_name.$device_name['device_name'].$name; + $notify_number = "於".str_replace('"','',$sensor_date[$j])."量測值".number_format($Calculat,2)."/".$unit[$value['name']]; + ?> + + + + + + + + + + + + + + + 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); + $j++; + } + + }//for迴圈終點 + + } + $num++; + } + }else{ + $v_n = 0; + foreach($sensor_data_load_info_device as $key => $value){ + //判斷檔案是否有符合 + + if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature" or $filename == $value['load_data']) { + $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //警告值.行動值.等等 + foreach($sensor_data as $k => $v){ + $top_active[$v['sensor_id']] = $v['top_active']; + $down_active[$v['sensor_id']]= $v['down_active']; + $top_alert[$v['sensor_id']] = $v['top_alert']; + $down_alert[$v['sensor_id']] = $v['down_alert']; + $upper_limit[$v['sensor_id']] = $v['limit_uper']; + $lower_limit[$v['sensor_id']] = $v['limit_lower']; + $upper[$v['sensor_id']] = $v['upper_limit']; + $lower[$v['sensor_id']] = $v['lower_limit']; + $unit[$v['sensor_id']] = $v['unit']; + } + //echo $value['dat']."|".$value['formula']."|".$value['subsum']."
"; + $formula = $value['formula']; + $dat = $value['dat']; + $dat_1 = explode(',',$value['dat']); + $start_val = $value['start_val']; + $start_val_1 = explode(',',$value['start_val']); + $subsum = $value['subsum']; + (@$sensor_data[$v_n]['device_code'] != $value['device_code']) ? $v_n = 0:''; + if ($value['name'] == "voltage" or $value['name'] == "date" or $value['name'] == "temperature"){ + $name = $value['name']; + }else{ + $name = $sensor_data[$v_n]['sensor_id']; + $v_n++; + } + $project_code = $value['project_code']; + $device_code = $value['device_code']; + $formula_val = $value['formula_val']; + $C5 = ($value['C5'] != '') ? $value['C5']:0; + $C4 = ($value['C4'] != '') ? $value['C4']:0; + $C3 = ($value['C3'] != '') ? $value['C3']:0; + $C2 = ($value['C2'] != '') ? $value['C2']:0; + $C1 = ($value['C1'] != '') ? $value['C1']:0; + $C0 = ($value['C0'] != '') ? $value['C0']:0; + $S2 = ($value['S2'] != '') ? $value['S2']:0; + $S1 = ($value['S1'] != '') ? $value['S1']:0; + $S0 = ($value['S0'] != '') ? $value['S0']:0; + $F1 = ($value['F1'] != '') ? $value['F1']:0; + $F0 = ($value['F0'] != '') ? $value['F0']:0; + + + + //fclose($filename); + $search_final = count($aa) - 1; + $total_default = 0; + $j = 0; + for($i=count($back);$i<=$search_final;$i++){ //dat檔從第五列資料開始抓 + //欄位值有兩個時作為判斷 + if(@$dat_1[1] != ""){ + $mathself = $aa[$i][$dat_1[0]]; + $mathself_1 = $aa[$i][$dat_1[1]]; + }else{ + //判斷溫度、日期、電壓 + switch($name){ + case "date": + $sensor_date[] = $aa[$i][$value['dat']]; + break; + + case "voltage": + $sensor_voltage[] = $aa[$i][$value['dat']]; + break; + + case "temperature": + $sensor_temperature[] = $aa[$i][$value['dat']]; + $temperature[] = $aa[$i][$value['dat']]; + break; + default: + $mathself = $aa[$i][$value['dat']]; + break; + } + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //初始值有兩個時作為判斷 + if(@$start_val_1[1] != ""){ + $default_val = $start_val_1[0]; + $default_val_1 = $start_val_1[1]; + }else{ + $default_val = $start_val; + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //$mathself = 2; + //$mathself_1 = 3; + $total_sum = 0; + + + + //計算公式 + switch($formula_val){ + case '1': + $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $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; + //$total_sum += $val*$sum; + break; + + case '2': + $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '3': + $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '4': + $total_sum = $C1*pow($mathself,1) + $C0; + $total_default = $C1*pow($default_val,1) + $C0; + break; + + case '5': + $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val; + $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; + break; + + case '6': + $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; + $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; + break; + + case '7': + $total_sum = 0; + break; + + case '8': + $total_sum = 0; + break; + + case '9': + $total_sum = 0; + break; + + case '0': + $total_sum = 0; + break; + + } + + //判斷sensor_name 如果是日期,電壓,溫度 不存入資料庫 + if($name != 'date' and $name != 'voltage' and $name != 'temperature'){ + $device_name = $Device->get_device_data($device_code); + $Calculat = $total_sum - $total_default + $subsum; + $notify_str = $project_name.$device_name['device_name'].$name; + $notify_number = "於".str_replace('"','',$sensor_date[$j])."量測值".number_format($Calculat,2)."/".$unit[$value['name']]; + ?> + + + + + + + + + + + + + + + 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); + $j++; + } + + }//for迴圈終點 + + } + $num++; + } + } + } + + + ?> +
+ + +
+ + +
+ diff --git a/CR1000_TNBR_Table1.dat b/CR1000_TNBR_Table1.dat new file mode 100644 index 0000000..4fcf8e5 --- /dev/null +++ b/CR1000_TNBR_Table1.dat @@ -0,0 +1,40 @@ +"TOA5","CR1000_TNBR","CR1000","20787","CR1000.Std.15","CPU:CR1000_Manjung 8 channel 1min.CR1","15719","Table1" +"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)" +"TS","RN","Volts","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C" +"","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp" +"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 +"2016-05-30 16:31:00",1,12.93,33.43,369.6,373.4,363,"NAN",34.25,"NAN",321.7,33.52 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"2016-05-30 16:52:00",22,12.94,32.81,369.1,372.9,"NAN",311,33.53,215,315.3,33.37 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 + diff --git a/Device.cls.php b/Device.cls.php new file mode 100644 index 0000000..17ea546 --- /dev/null +++ b/Device.cls.php @@ -0,0 +1,614 @@ +db = new WADB(SYSTEM_DBHOST, SYSTEM_DBNAME, SYSTEM_DBUSER, SYSTEM_DBPWD); + return true; + } + + //建立使用者帳號 + public function add_device_data($data){ + foreach($data as $key => $value){ + $$key = mysql_real_escape_string($value); + } + $device_code = $this->rand_user_code(); + if($this->check_company_name($device_name) == '0'){ + $sql = "insert into ".USER_DEVICE." + ( + project_code, + device_code, + device_name, + device_name_short, + start_number, + end_number, + creater, + time + ) + value + ( + '".$project_code."', + '".$device_code."', + '".$device_name."', + '".$device_name_short."', + '".$start_number."', + '".$end_number."', + '".$creater."', + '".time()."' + )"; + $this->db->insertRecords($sql); + $return['success'] = true; + $return['data'] = $device_code; + }else{ + $return['error'] = '儀器名稱重複'; + } + return $return; + } + + //產生使用者編號 + private function rand_user_code(){ + $rand =0; + while (true){ + $rand = rand(10000,99999); + $count = $this->check_company_code($rand); + if ($count==0){ + break; + } + } + return $rand; + } + + //判斷公司編號是否重複 + public function check_company_code($rand){ + $sql = "select + count(device_code) as count + from + ".USER_DEVICE." + where + device_code='".$rand."'"; + $retStr = $this->db->selectRecords($sql); + return $retStr['0']['count']; + } + + //判斷公司名稱是否重複 + public function check_company_name($device_name){ + $device_name = mysql_real_escape_string($device_name); + $sql = "select + count(device_name) as count + from + ".USER_DEVICE." + where + device_name='".$device_name."'"; + $retStr = $this->db->selectRecords($sql); + return $retStr['0']['count']; + } + + //判斷 Email格式 是否正確 + private function isValidEmail($email){ + return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email); + } + + + //建立專案資料夾 + public function Copy_File($src,$dst){ + $dir = opendir($src); + @mkdir($dst); + while(false !== ( $file = readdir($dir)) ) { + if (( $file != '.' ) && ( $file != '..' )) { + if ( is_dir($src . '/' . $file) ) { + $this->Copy_File($src . '/' . $file,$dst . '/' . $file); + } + else { + copy($src . '/' . $file,$dst . '/' . $file); + } + } + } + closedir($dir); + } + + //取得儀器清單 + public function device_list($project_code){ + $project_code = mysql_real_escape_string($project_code); + $sql = "select + project_code, + device_code, + device_name, + device_name_short, + start_number, + end_number + from + ".USER_DEVICE." + where + project_code = '".$project_code."' "; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得使用者資訊 + public function get_user_data($user_code){ + $user_code = mysql_real_escape_string($user_code); + $sql = "select + user_code, + user_name, + user_account, + user_passwd + from + ".USER_LIST." + where + user_code = '".$user_code."' "; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //更新使用者資訊 + public function update_user_data($data){ + foreach($data as $key => $value){ + $$key = mysql_real_escape_string($value); + } + $sql = "update + ".USER_LIST." + set + user_name = '".$user_name."', + user_account = '".$user_account."', + user_passwd = '".$user_passwd."' + where + user_code = '".$user_code."' "; + $this->db->updateRecords($sql); + } + + //新增修改紀錄 + public function Insertuser_record($project_code,$project_user,$user_code,$action){ + $project_code = mysql_real_escape_string($project_code); + $system_user = mysql_real_escape_string($system_user); + $action = mysql_real_escape_string($action); + $sql = "insert into ".USER_RECORD." + ( + + project_code, + project_user, + user_code, + action, + time + ) + values + ( + '".$project_code."', + '".$project_user."', + '".$user_code."', + '".$action."', + '".time()."' + )"; + $this->db->insertRecords($sql); + } + + //取得儀器資訊 + public function get_device_data($device_code){ + $device_code = mysql_real_escape_string($device_code); + $sql = "select + device_code, + device_name, + device_name_short, + start_number, + end_number + from + ".USER_DEVICE." + where + device_code = '".$device_code."' "; + $retStr = $this->db->selectRecords($sql); + return $retStr['0']; + } + + public function add_sensor($data){ + foreach($data as $key => $value){ + $$key = mysql_real_escape_string($value); + } + $sql = "insert into user_device_sensor_list + ( + project_code, + device_code, + sensor_id + ) + values + ( + '".$project_code."', + '".$device_code."', + '".$sensor_id."' + )"; + $this->db->insertRecords($sql); + } + + //取得感測器資訊 + public function get_sensor_data($project_code,$device_code){ + $project_code = mysql_real_escape_string($project_code); + $device_code = mysql_real_escape_string($device_code); + $sql = "select + * + from + user_device_sensor_list + where + project_code= '".$project_code."' + && + device_code = '".$device_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得感測器資訊 + public function get_sensor_data_list($project_code){ + $project_code = mysql_real_escape_string($project_code); + $sql = "select + * + from + user_device_sensor_list + where + project_code= '".$project_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //更新感測器資訊 + public function update_sensor_data($id,$sensor_id,$depth,$coefficients,$top_alert,$top_active,$down_alert,$down_active,$upper_limit,$lower_limit){ + $id = mysql_real_escape_string($id); + $sensor_id = mysql_real_escape_string($sensor_id); + $depth = mysql_real_escape_string($depth); + $coefficients = mysql_real_escape_string($coefficients); + $top_alert = mysql_real_escape_string($top_alert); + $top_active = mysql_real_escape_string($top_active); + $down_alert = mysql_real_escape_string($down_alert); + $down_active = mysql_real_escape_string($down_active); + $upper_limit = mysql_real_escape_string($upper_limit); + $lower_limit = mysql_real_escape_string($lower_limit); + $sql = "update + user_device_sensor_list + set + sensor_id = '".$sensor_id."', + depth = '".$depth."', + coefficients = '".$coefficients."', + top_alert = '".$top_alert."', + top_active = '".$top_active."', + down_alert = '".$down_alert."', + down_active = '".$down_active."', + upper_limit = '".$upper_limit."', + lower_limit = '".$lower_limit."' + where + id = '".$id."' "; + $this->db->updateRecords($sql); + } + + //取得感測器LOAD資訊 + public function get_sensor_load_data($project_code,$device_code){ + $project_code = mysql_real_escape_string($project_code); + $device_code = mysql_real_escape_string($device_code); + $sql = "select + * + from + ".USER_DEVICE_SENSOR_LOAD." + where + project_code= '".$project_code."' + && + device_code = '".$device_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得所有感測器LOAD資訊 + public function get_sensor_load_data_list($project_code){ + $project_code = mysql_real_escape_string($project_code); + $sql = "select + * + from + ".USER_DEVICE_SENSOR_LOAD." + where + project_code= '".$project_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得所有感測器LOAD資訊 + public function get_sensor_load_data_list_for_device($project_code,$device_code){ + $project_code = mysql_real_escape_string($project_code); + $sql = "select + * + from + ".USER_DEVICE_SENSOR_LOAD." + where + project_code= '".$project_code."' && + device_code ='".$device_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //更新感測器_Load檔資訊 + 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){ + $id = mysql_real_escape_string($id); + $name = mysql_real_escape_string($name); + $dat = mysql_real_escape_string($dat); + $start_val = mysql_real_escape_string($start_val); + $formula = mysql_real_escape_string($formula); + $formula_val = mysql_real_escape_string($formula_val); + $C5 = mysql_real_escape_string($C5); + $C4 = mysql_real_escape_string($C4); + $C3 = mysql_real_escape_string($C3); + $C2 = mysql_real_escape_string($C2); + $C1 = mysql_real_escape_string($C1); + $C0 = mysql_real_escape_string($C0); + $S2 = mysql_real_escape_string($S2); + $S1 = mysql_real_escape_string($S1); + $S0 = mysql_real_escape_string($S0); + $F1 = mysql_real_escape_string($F1); + $F0 = mysql_real_escape_string($F0); + $load_data = mysql_real_escape_string($load_data); + $subsum = mysql_real_escape_string($subsum); + $sql = "update + ".USER_DEVICE_SENSOR_LOAD." + set + name = '".$name."', + dat = '".$dat."', + start_val = '".$start_val."', + subsum = '".$subsum."', + formula = '".$formula."', + formula_val = '".$formula_val."', + C5 = '".$C5."', + C4 = '".$C4."', + C3 = '".$C3."', + C2 = '".$C2."', + C1 = '".$C1."', + C0 = '".$C0."', + S2 = '".$S2."', + S1 = '".$S1."', + S0 = '".$S0."', + F1 = '".$F1."', + F0 = '".$F0."', + load_data='".$load_data."' + where + id = '".$id."' "; + $this->db->updateRecords($sql); + } + + 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){ + $name = mysql_real_escape_string($name); + $dat = mysql_real_escape_string($dat); + $start_val = mysql_real_escape_string($start_val); + $formula = mysql_real_escape_string($formula); + $formula_val = mysql_real_escape_string($formula_val); + $C5 = mysql_real_escape_string($C5); + $C4 = mysql_real_escape_string($C4); + $C3 = mysql_real_escape_string($C3); + $C2 = mysql_real_escape_string($C2); + $C1 = mysql_real_escape_string($C1); + $C0 = mysql_real_escape_string($C0); + $S2 = mysql_real_escape_string($S2); + $S1 = mysql_real_escape_string($S1); + $S0 = mysql_real_escape_string($S0); + $F1 = mysql_real_escape_string($F1); + $F0 = mysql_real_escape_string($F0); + $subsum = mysql_real_escape_string($subsum); + $load_data = mysql_real_escape_string($load_data); + $device_code = mysql_real_escape_string($device_code); + $project_code = mysql_real_escape_string($project_code); + $subsum = mysql_real_escape_string($subsum); + $sql = "insert into ".USER_DEVICE_SENSOR_LOAD." + ( + project_code, + device_code, + name, + dat, + start_val, + subsum, + formula, + formula_val, + C5,C4,C3,C2,C1,C0,S2,S1,S0,F1,F0, + load_data + ) + values + ( + '".$project_code."', + '".$device_code."', + '".$name."', + '".$dat."', + '".$start_val."', + '".$subsum."', + '".$formula."', + '".$formula_val."','".$C5."','".$C4."','".$C3."','".$C2."','".$C1."','".$C0."','".$S2."','".$S1."','".$S0."','".$F1."','".$F0."', + '".$load_data."' + )"; + $this->db->insertRecords($sql); + } + + //取得感測器名稱 + public function get_sensor_name_data($project_code,$device_code){ + $project_code = mysql_real_escape_string($project_code); + $device_code = mysql_real_escape_string($device_code); + $sql = "select + sensor_id + from + user_device_sensor_list + where + project_code= '".$project_code."' + && + device_code = '".$device_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得專案內所有感測器名稱 + public function get_sensor_list($project_code){ + $project_code = mysql_real_escape_string($project_code); + $sql = "select + sensor_id + from + user_device_sensor_list + where + project_code= '".$project_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //取得介面圖資訊 + public function get_interface($project_code,$interface_code){ + $project_code= mysql_real_escape_string($project_code); + $interface_code= mysql_real_escape_string($interface_code); + $sql = "select + * + from + user_interface + where + project_code= '".$project_code."' + && + interface_code = '".$interface_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //儲存介面圖tag + public function insert_interface_tag($project_code,$interface_code,$name,$pic_x,$pic_y){ + $project_code= mysql_real_escape_string($project_code); + $interface_code= mysql_real_escape_string($interface_code); + $name = mysql_real_escape_string($name); + $pic_x = mysql_real_escape_string($pic_x); + $pic_y = mysql_real_escape_string($pic_y); + $sql = "INSERT INTO user_interface_tag ( + project_code, + interface_code, + name, + pic_x, + pic_y) + VALUES ( + '".$project_code."', + '".$interface_code."', + '".$name."', + '".$pic_x."', + '".$pic_y."')"; + $this->db->insertRecords($sql); + } + + + + //取得介面圖tag + public function get_interface_tag_list($project_code,$interface_code){ + $project_code= mysql_real_escape_string($project_code); + $interface_code= mysql_real_escape_string($interface_code); + $sql = "select + * + from + user_interface_tag + where + project_code= '".$project_code."' + && + interface_code = '".$interface_code."' + order by id asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + //刪除介面圖tag + public function delete_interface_tag($tag_id){ + $tag_id= mysql_real_escape_string($tag_id); + $sql = "DELETE FROM user_interface_tag WHERE id = '".$tag_id."'"; + $this->db->deleteRecords($sql); + } + + 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){ + $device_code = mysql_real_escape_string($device_code); + $name = mysql_real_escape_string($name); + $voltage = mysql_real_escape_string($voltage); + $temperature = mysql_real_escape_string($temperature); + $mathself = mysql_real_escape_string($mathself); + $formula_val = mysql_real_escape_string($formula_val); + $default_val = mysql_real_escape_string($default_val); + $top_alert = mysql_real_escape_string($top_alert); + $down_alert = mysql_real_escape_string($down_alert); + $top_active = mysql_real_escape_string($top_active); + $down_active = mysql_real_escape_string($down_active); + $upper_limit = mysql_real_escape_string($upper_limit); + $lower_limit = mysql_real_escape_string($lower_limit); + $datetime = mysql_real_escape_string($datetime); + $project_code = mysql_real_escape_string(strtoupper($project_code)); + $file_name = mysql_real_escape_string($file_name); + $load_value = mysql_real_escape_string($load_value); + $file_time = mysql_real_escape_string($file_time); + $sql = "insert into ".$project_code." + ( + device_code, + name, + voltage, + temperature, + mathself, + formula_val, + default_val, + top_alert, + down_alert, + top_active, + down_active, + upper_limit, + lower_limit, + datetime, + file_name, + date, + load_value + ) + values + ( + '".$device_code."', + '".$name."', + '".$voltage."', + '".$temperature."', + '".$mathself."', + '".$formula_val."', + '".$default_val."', + '".$top_alert."', + '".$down_alert."', + '".$top_active."', + '".$down_active."', + '".$upper_limit."', + '".$lower_limit."', + '".$file_time."', + '".$file_name."', + '".$datetime."', + '".$load_value."' + )"; + $this->db->insertRecords($sql); + } + + public function get_sensor_load_val($project_code,$date_start,$date_end,$name){ + $project_code= mysql_real_escape_string($project_code); + $name = mysql_real_escape_string($name); + $sql = "select + * + from + ".$project_code." + where + name = '".$name."' + && + date between ".$date_start." and ".$date_end." + order by PID asc"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } + + public function get_sensor_load_val_for_interface($project_code,$name){ + $project_code= mysql_real_escape_string($project_code); + $name = mysql_real_escape_string($name); + $sql = "select + * + from + ".$project_code." + where + name = '".$name."' + order by PID desc Limit 1"; + $retStr = $this->db->selectRecords($sql); + return $retStr; + } +} +?> \ No newline at end of file diff --git a/VH.php b/VH.php new file mode 100644 index 0000000..4623a55 --- /dev/null +++ b/VH.php @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + get_sensor_load_data_list($project_code); //loadɸ + foreach($sensor_data_load_info as $k => $v){ + if($sensor_data_load_info[$i]['load_data'] != ""){ + $load_data[$sensor_data_load_info[$i]['device_code']] = $sensor_data_load_info[$i]['load_data']; + } + $i++; + } + $load_data = array_unique($load_data); + foreach($load_data as $key => $filename){ + if($filename != ""){ + //Ūɮ lɮ + $nn = 0; + $handle = fopen($filename,"r"); + while(($data = @fgetcsv($handle,1000,",","'")) != false){ + $i = 0; + foreach($data as $k => $value){ + $aa[$nn][$i] = $value; + $i++; + + } + $nn++; + } + @fclose($handle); + if(is_file('backup/'.$filename)){ + //Ūɮ lɮ + $bb = 0; + $handle = fopen('backup/'.$filename,"r"); + while(($data = @fgetcsv($handle,1000,",","'")) != false){ + $i = 0; + foreach($data as $k => $value){ + $backup[$bb][$i] = $value; + $i++; + } + $bb++; + } + @fclose($handle); + $sensor_data_load_info_device = $Device->get_sensor_load_data_list_for_device($project_code,$key); + foreach($sensor_data_load_info_device as $key => $value){ + $sensor_data = $Device->get_sensor_data($project_code,$value['device_code']); //ĵi.ʭ. + foreach($sensor_data as $k => $v){ + $top_active = $v['top_active']; + $down_active = $v['down_active']; + $top_alert = $v['top_alert']; + $down_alert = $v['down_alert']; + $upper_limit = $v['limit_uper']; + $lower_limit = $v['limit_lower']; + $unit = $v['unit']; + } + //echo $value['dat']."|".$value['formula']."|".$value['subsum']."
"; + $formula = $value['formula']; + $dat = $value['dat']; + $dat_1 = explode(',',$value['dat']); + $start_val = $value['start_val']; + $start_val_1 = explode(',',$value['start_val']); + $subsum = $value['subsum']; + $name = $value['name']; + $project_code = $value['project_code']; + $device_code = $value['device_code']; + $formula_val = $value['formula_val']; + $C5 = ($value['C5'] != '') ? $value['C5']:0; + $C4 = ($value['C4'] != '') ? $value['C4']:0; + $C3 = ($value['C3'] != '') ? $value['C3']:0; + $C2 = ($value['C2'] != '') ? $value['C2']:0; + $C1 = ($value['C1'] != '') ? $value['C1']:0; + $C0 = ($value['C0'] != '') ? $value['C0']:0; + $S2 = ($value['S2'] != '') ? $value['S2']:0; + $S1 = ($value['S1'] != '') ? $value['S1']:0; + $S0 = ($value['S0'] != '') ? $value['S0']:0; + $F1 = ($value['F1'] != '') ? $value['F1']:0; + $F0 = ($value['F0'] != '') ? $value['F0']:0; + + + + //fclose($filename); + $search_final = count($aa) - 1; + $total_default = 0; + $j = 0; + for($i=count($backup);$i<=$search_final;$i++){ //datɱqĤCƶ}l + + //ȦӮɧ@P_ + if($dat_1[1] != ""){ + $mathself = $aa[$i][$dat_1[0]]; + $mathself_1 = $aa[$i][$dat_1[1]]; + }else{ + //P_ūסBBq + switch($name){ + case "date": + //l + $start_time = strtotime("2015-01-01 00:00"); + switch(strlen($aa[$i][$dat+1])){ + case "1": + $total_time = $start_time+($aa[$i][$dat+1]*60); + break; + + case "2": + $total_time = $start_time+($aa[$i][$dat+1]*60); + break; + + case "3": + $total_time = $start_time+(substr($aa[$i][$dat+1],0,1)*3600)+(substr($aa[$i][$dat+1],1,2)*60); + break; + + case "4": + $total_time = $start_time+(substr($aa[$i][$dat+1],0,2)*3600)+(substr($aa[$i][$dat+1],2,2)*60); + break; + } + $sensor_date[] = $aa[$i][$dat]*86400+$total_time-86400; + break; + + case "voltage": + $sensor_voltage[] = $aa[$i][$dat]; + break; + + case "temperature": + $sensor_temperature[] = $aa[$i][$dat]; + $temperature[] = $aa[$i][$dat]; + break; + default: + $mathself = $aa[$i][$dat]; + break; + } + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //lȦӮɧ@P_ + if($start_val_1[1] != ""){ + $default_val = $start_val_1[0]; + $default_val_1 = $start_val_1[1]; + }else{ + $default_val = $start_val; + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //$mathself = 2; + //$mathself_1 = 3; + $total_sum = 0; + + + + //p⤽ + switch($formula_val){ + case '1': + $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $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; + //$total_sum += $val*$sum; + break; + + case '2': + $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '3': + $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '4': + $total_sum = $C1*pow($mathself,1) + $C0; + $total_default = $C1*pow($default_val,1) + $C0; + break; + + case '5': + $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val; + $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; + break; + + case '6': + $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; + $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; + break; + + } + if($name != 'date' and $name != 'voltage' and $name != 'temperature'){ + $date = $sensor_date[$j]; + $total = $total_sum-$total_default; + $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); + $j++; + } + + } + + } + copy($filename, 'backup/'.$filename); + + }else{ + copy($filename, 'backup/'.$filename); + $sensor_data_load_info_device = $Device->get_sensor_load_data_list_for_device($project_code,$key); + foreach($sensor_data_load_info_device as $key => $value){ + $sensor_data = $Device->get_sensor_data($value['project_code'],$value['device_code']); //ĵi.ʭ. + foreach($sensor_data as $k => $v){ + $top_active = $v['top_active']; + $down_active = $v['down_active']; + $top_alert = $v['top_alert']; + $down_alert = $v['down_alert']; + $upper_limit = $v['limit_uper']; + $lower_limit = $v['limit_lower']; + $unit = $v['unit']; + } + //echo $value['dat']."|".$value['formula']."|".$value['subsum']."
"; + $formula = $value['formula']; + $dat = $value['dat']; + $dat_1 = explode(',',$value['dat']); + $start_val = $value['start_val']; + $start_val_1 = explode(',',$value['start_val']); + $subsum = $value['subsum']; + $name = $value['name']; + $project_code = $value['project_code']; + $device_code = $value['device_code']; + $formula_val = $value['formula_val']; + $C5 = ($value['C5'] != '') ? $value['C5']:0; + $C4 = ($value['C4'] != '') ? $value['C4']:0; + $C3 = ($value['C3'] != '') ? $value['C3']:0; + $C2 = ($value['C2'] != '') ? $value['C2']:0; + $C1 = ($value['C1'] != '') ? $value['C1']:0; + $C0 = ($value['C0'] != '') ? $value['C0']:0; + $S2 = ($value['S2'] != '') ? $value['S2']:0; + $S1 = ($value['S1'] != '') ? $value['S1']:0; + $S0 = ($value['S0'] != '') ? $value['S0']:0; + $F1 = ($value['F1'] != '') ? $value['F1']:0; + $F0 = ($value['F0'] != '') ? $value['F0']:0; + + + + //fclose($filename); + $search_final = count($aa) - 1; + $total_default = 0; + $j = 0; + for($i=0;$i<=$search_final;$i++){ //datɱqĤCƶ}l + + //ȦӮɧ@P_ + if($dat_1[1] != ""){ + $mathself = $aa[$i][$dat_1[0]]; + $mathself_1 = $aa[$i][$dat_1[1]]; + }else{ + //P_ūסBBq + switch($name){ + case "date": + //l + $start_time = strtotime("2015-01-01 00:00"); + switch(strlen($aa[$i][$dat+1])){ + case "1": + $total_time = $start_time+($aa[$i][$dat+1]*60); + break; + + case "2": + $total_time = $start_time+($aa[$i][$dat+1]*60); + break; + + case "3": + $total_time = $start_time+(substr($aa[$i][$dat+1],0,1)*3600)+(substr($aa[$i][$dat+1],1,2)*60); + break; + + case "4": + $total_time = $start_time+(substr($aa[$i][$dat+1],0,2)*3600)+(substr($aa[$i][$dat+1],2,2)*60); + break; + } + $sensor_date[] = $aa[$i][$dat]*86400+$total_time-86400; + break; + + case "voltage": + $sensor_voltage[] = $aa[$i][$dat]; + break; + + case "temperature": + $sensor_temperature[] = $aa[$i][$dat]; + $temperature[] = $aa[$i][$dat]; + break; + default: + $mathself = $aa[$i][$dat]; + break; + } + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //lȦӮɧ@P_ + if($start_val_1[1] != ""){ + $default_val = $start_val_1[0]; + $default_val_1 = $start_val_1[1]; + }else{ + $default_val = $start_val; + //$mathself_1 = substr($aa[$i][$dat_1[1]],); + } + + //$mathself = 2; + //$mathself_1 = 3; + $total_sum = 0; + + + + //p⤽ + switch($formula_val){ + case '1': + $total_sum = $C5*pow($mathself,5) + $C4*pow($mathself,4) + $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $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; + //$total_sum += $val*$sum; + break; + + case '2': + $total_sum = $C3*pow($mathself,3) + $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C3*pow($default_val,3) + $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '3': + $total_sum = $C2*pow($mathself,2) + $C1*pow($mathself,1) + $C0; + $total_default = $C2*pow($default_val,2) + $C1*pow($default_val,1) + $C0; + break; + + case '4': + $total_sum = $C1*pow($mathself,1) + $C0; + $total_default = $C1*pow($default_val,1) + $C0; + break; + + case '5': + $total_sum = $C5*pow($mathself_1,2) + $C4*$mathself*$mathself_1 + $C3*pow($mathself,2) + $C2*$mathself_1 + $C1*$mathself + $C0 + $val; + $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; + break; + + case '6': + $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; + $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; + break; + + } + if($name != 'date' and $name != 'voltage' and $name != 'temperature'){ + $date = $sensor_date[$j]; + $total = $total_sum-$total_default; + + $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); + $j++; + } + + } + } + } + + } + unset($aa); + unset($backup); + } + ?> +
+ diff --git a/WADB.cls.php b/WADB.cls.php new file mode 100644 index 0000000..8157cf4 --- /dev/null +++ b/WADB.cls.php @@ -0,0 +1,106 @@ +aSelectRecords); + $this->oQueryResult = mysql_query($sSqlQuery) or die(mysql_error()); + $this->iNoOfRecords = mysql_num_rows($this->oQueryResult); + if ($this->iNoOfRecords > 0) { + while($obj = mysql_fetch_object($this->oQueryResult)) { + $this->aSelectRecords[] = $obj; + } + mysql_free_result($this->oQueryResult); + } + $this->aArrRec = $this->aSelectRecords; + return $this->aArrRec; + } + + + /* Select Records */ + function selectRecords ($sSqlQuery) + { + unset($this->aSelectRecords); + $this->oQueryResult = mysql_query($sSqlQuery) or die(mysql_error()); + $this->iNoOfRecords = mysql_num_rows($this->oQueryResult); + if ($this->iNoOfRecords > 0) { + while ($oRow = mysql_fetch_array($this->oQueryResult,MYSQL_ASSOC)) { + $this->aSelectRecords[] = $oRow; + } + mysql_free_result($this->oQueryResult); + } + $this->aArrRec = $this->aSelectRecords; + return $this->aArrRec; + } + + /*Get Number of Records */ + function getNumberOfRecords () { + return $this->iNoOfRecords; + } + + /* Get selected data */ + function getSelectedData (){ + return $this->aSelectRecords; + } + + /* Insert Records */ + function insertRecords($sSqlQuery) + { + $this->bInsertRecords = mysql_query ($sSqlQuery) or die (mysql_error()); + $this->iInsertRecId = mysql_insert_id(); + return $this->iInsertRecId; + } + + /* Find Inserted Id */ + function getIdForInsertedRecord() + { + return $this->iInsertRecId; + } + + /* Update Records */ + function updateRecords($sSqlQuery) + { + return mysql_query($sSqlQuery) or die(mysql_error()); + } + function deleteRecords($sSqlQuery) + { + return mysql_query($sSqlQuery) or die(mysql_error()); + } + /* 測試新增用 */ + function insertUser($sSqlQuery) + { + return mysql_query($sSqlQuery) or die(mysql_error()); + } + + /* 建立資料表 */ + function creatTable($sSqlQuery) + { + return mysql_query($sSqlQuery) or die(mysql_error()); + } + + + } +?> \ No newline at end of file diff --git a/aa.php b/aa.php new file mode 100644 index 0000000..c5910d3 --- /dev/null +++ b/aa.php @@ -0,0 +1,57 @@ + $value){ + $sensor_data_load_info = $Device->get_sensor_load_data_list($value); //load檔資料 + foreach(@$sensor_data_load_info as $k => $v){ + $load_data[] = $sensor_data_load_info[$i]['load_data']; + $i++; + } +} +$load_data = array_unique($load_data); +// 連線,參數分別是 HOST, PORT, TIMEOUT +$conn = ftp_connect("219.92.14.237", 21, 60) or die("Connect FTP Server Fail"); + +// 登入 +ftp_login($conn, "SANLIEN", "QEWQTR"); + +// 使用被動模式,這個指令必須在ftp_login 後立即使用 +ftp_pasv($conn, true); + +//目前路徑,剛登入應該在 Home Dir /home/youracc/ +$pwd= ftp_pwd($conn); + +//改變路徑 chdir 進到 /home/youracc/path/to/ +ftp_chdir( $conn, '/loggernet'); + +//移到上一層 /home/youracc/path/ +//ftp_cdup( $conn); + +// 取回檔案,使用二進位的方式 +foreach(@$load_data as $key => $value){ + if($value != ""){ + if (ftp_get($conn, $value, $value, FTP_BINARY)) { + echo "Successfully written to local_file\n"; + } else { + echo "There was a problem\n"; + } + } +} +//關閉連結 +ftp_close($conn); + +?> \ No newline at end of file diff --git a/backup/CR1000_TNBR_Table1.dat b/backup/CR1000_TNBR_Table1.dat new file mode 100644 index 0000000..4fcf8e5 --- /dev/null +++ b/backup/CR1000_TNBR_Table1.dat @@ -0,0 +1,40 @@ +"TOA5","CR1000_TNBR","CR1000","20787","CR1000.Std.15","CPU:CR1000_Manjung 8 channel 1min.CR1","15719","Table1" +"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)" +"TS","RN","Volts","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C","Deg C" +"","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp" +"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 +"2016-05-30 16:31:00",1,12.93,33.43,369.6,373.4,363,"NAN",34.25,"NAN",321.7,33.52 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"2016-05-30 16:52:00",22,12.94,32.81,369.1,372.9,"NAN",311,33.53,215,315.3,33.37 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +"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 +