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 @@
+
+date_default_timezone_set('Asia/Taipei');
+class Device{
+
+ var $db;
+
+ //建構函式
+ public function Device(){
+ $this->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 @@
+
+header('refresh: 1800;url="http://127.0.0.1/C25104/VH.php"');
+define ('INDEX','http://52.74.132.133/');
+define ('SYSTEM_DBHOST','52.74.132.133:3306');
+define ('SYSTEM_DBNAME','sanlien');
+define ('SYSTEM_DBUSER','3944');
+define ('SYSTEM_DBPWD','12345');
+define ('USER_DEVICE_SENSOR','user_device_sensor');
+define ('USER_DEVICE_SENSOR_LOAD','user_device_sensor_load');
+define ('USER_CONTACT','user_contact');
+define ('USER_DEVICE','user_device');
+/************* ²Tǰe]w *******************/
+include_once('Device.cls.php');
+include_once('WADB.cls.php');
+$Device = new Device();
+$project_code = 'C25104';
+?>
+
+
+
+ echo '˸mW'; ?> |
+ echo 'ɶ'; ?> |
+ echo 'q'; ?> |
+ echo 'ū'; ?> |
+ echo 'p'; ?> |
+ echo 'l'; ?> |
+ echo 'W-Uʭ'; ?> |
+ echo 'W-Uĵ٭'; ?> |
+ echo '^W-U'; ?> |
+ echo 'q'; ?> |
+
+
+
+
+ $sensor_data_load_info = $Device->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
+